สามารถใช้พีชคณิต / แคลคูลัสเชิงสัมพันธ์เพื่อทดสอบ / ตรวจสอบ SQL ได้หรือไม่?


9

มันเป็นไปได้หรือเป็นไปได้ที่จะใช้พีชคณิตเชิงสัมพันธ์และ / หรือแคลคูลัสเชิงสัมพันธ์ในรูปแบบของการพิสูจน์เพื่อทดสอบ / ตรวจสอบความถูกต้องของคำสั่ง SQL ฟังก์ชั่นและขั้นตอนการจัดเก็บ?

ดูเหมือนว่าฉันควรจะเป็นไปได้อย่างน้อยที่สุด แต่ฉันไม่รู้ว่ามีรายละเอียดที่ฉันทำหายไปหรือไม่นั่นทำให้การแมป 1: 1 ระหว่างการพิสูจน์และรหัสไม่ถูกต้อง

คุณเคยลองวิธีนี้บ้างไหม? มันใช้งานได้หรือ ประสบการณ์ของคุณเป็นอย่างไร


2
โปรดทำซ้ำหลังจากฉัน: SQL ไม่เกี่ยวข้อง
Deer Hunter

คำตอบ:


4

มีกฎการแมปที่ทราบระหว่างตัวดำเนินการพีชคณิตเชิงสัมพันธ์กับคำสั่ง SQL ตัวอย่างเช่นตัวดำเนินการ Sigma จับคู่กับคำสั่ง SELECT มีการแมปแบบหนึ่งต่อหนึ่งสำหรับตัวดำเนินการเข้าร่วม Delta แผนที่เพื่อเลือกชุดย่อยของคอลัมน์ ฯลฯ

เป็นไปได้ไหมที่จะใช้พีชคณิตเชิงสัมพันธ์เพื่อตรวจสอบความถูกต้องของคำสั่ง SQL?

ใช่มันเป็นไปได้ แน่นอนว่าคุณจะต้องมีสคีมาที่ชัดเจนของฐานข้อมูลที่มีความสัมพันธ์ทั้งหมดคีย์ต่างประเทศ ฯลฯ ในบางกรณีการจัดการกับคำสั่งพีชคณิตเชิงสัมพันธ์ได้ง่ายกว่างบ SQL (มีกฎการเปลี่ยนแปลงที่พิสูจน์แล้วสำหรับการแก้ไขและคำสั่งที่ง่ายขึ้น) .

แต่ในทางกลับกันฉันไม่คิดว่าการตรวจสอบคำสั่งโดยใช้พีชคณิตเชิงสัมพันธ์นั้นง่ายกว่าการทดสอบคำสั่ง SQL โดยเฉพาะเมื่อคุณมีฐานข้อมูลที่พร้อมให้คุณใช้งานคำสั่งและดูผลลัพธ์


1
แค่อยากจะบอกว่า: ผู้ประกอบการสัมพันธ์แมปไปที่ "SELECT DISTINCT" เนื่องจากพีชคณิตเชิงสัมพันธ์ใช้ชุดของ tuples และดังนั้นจึงไม่สามารถจัดการรายการที่ซ้ำกัน sigma นั้นสอดคล้องกับ WHERE-clause, pi กับ SELECT และอื่น ๆ
ขัดแย้ง

ตัวดำเนินการที่เข้าร่วมไม่ใช่ 1: 1 เวอร์ชันของ SQL จะถือว่าเป็นโมฆะเป็นพิเศษและเพรดิเคตในทำนองเดียวกันจะไม่ใช่บูลีน
philipxy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.