Relational Calculus คือภาษาที่ให้ในการดึงข้อมูลจาก database แต่เนื่องจากไม่ user-friendly จึงไ้ด้เปลี่ยนเป็น SQL ในปัจจุบัน โดยที่ Relational Calculus เป็นการบอกว่าต้องการข้อมูลอะไร (what) จาก database
Relational Algebra คือภาษาที่บอกว่า จะดึงข้อมูลที่ต้องการมาได้อย่างไร (how) โดยแปลจาก relational calculus เป็น relational algebra
แล้วตัว optimizer จึงมาคำนวณว่าควรจะใช้วิธีไหนประกอบกับ statistics ให้เป็น execution plan ที่จะทำงานจริงๆ บน database
ตัวอย่างของ relational algebra คือ
Πbalance(σbalance<2500(account))
ซึ่งแปลงมาจาก SQL ดังนี้ select balance from account where balance <>
σ คือ select การเลือกเราเฉพาะ row ที่มี balance < 2500
Π คือ project การดึงเฉพาะ column account
relational algebra มี basic operators 8 ตัว
1. σ (sigma) คือ select
2. π(pi) คือ project
3. ∪ (cup) คือ union
4. ∩(cap) คือ intesection
5. - (minus) คือ difference
6. ρ (rho) คือ rename
7. ×(times) คือ product ก็เหมือนกับ cross join
8. (bow-tie) คือ join คล้ายกับ product แต่ว่ามีเงื่อนไข
operator 1 - 6 เป็น unary operator ส่วน operator 7 - 8 เป็น binary operator
No comments:
Post a Comment