Relational Algebra
Traditional set Operator Union Intersection Difference Cartesian product
Special relational operators Restric (or select) Project Join divide
EXAMPLE STUDENT StudNo Name DeptCode S0001 สมศรี D001 S0002 สมศักดิ์ D001 S0003 สมถวิล D002 S0004 สมปารถนา D002 Department DeptCode DeptName D001 ชีววิทยา D002 คอมพิวเตอร์
Restrict (Select) Dept=’D002’ Student D002 StudNo Name DeptCode S0003 สมถวิล D002 S0004 สมปารถนา D002
Project Name Student NAME สมศรี สมศักดิ์ สมถวิล สมปารถนา
Product (X) ABCABC XYXY AABBCCAABBCC XYXYXXXYXYXX Product
Student X Department StudNo Name DeptCode DeptCode DeptName S0001 สมศรี D001 D001 ชีววิทยา S0002 สมศักดิ์ D001 D001 ชีววิทยา S0003 สมถวิล D002 D001 ชีววิทยา S0004 สมปารถนา D002 D001 ชีววิทยา S0001 สมศรี D001 D002 คอมพิวเตอร์ S0002 สมศักดิ์ D001 D002 คอมพิวเตอร์ S0003 สมถวิล D002 D002 คอมพิวเตอร์ S0004 สมปารถนา D002 D002 คอมพิวเตอร์
Union
Math_c lub Computer_club Math_club U Computer_club FirstName LastName ดวงใจสุขสำราญ มารีมีตา โจมขอนแก่น สมศักดิ์มีโชค กานดาสุขดี FirstName LastName มารีมีตา อรัญขอนแก่น ดวงใจสุขสำราญ สมพรมีโชค กานดาสุขดี FirstNameLastName ดวงใจสุขสำราญ มารีมีตา อรัญขอนแก่น โจมขอนแก่น สมศักดิ์มีโชค สมพรโชคดี กานดาสุขดี
Intersection FirstName LastName ดวงใจ สุขสำราญ มารี มีตา กานดา สุขดี Math_club Computer_club
Difference Math_club - Computer_club FirstName LastName โจม ขอนแก่น สมศักดิ์ มีโชค
Natural (Join) A1 A2 A3 B1 B2 B3 B1 B2 B3 C1 C2 C3 A1 A2 A3 B1 B2 B3 C1 C2 C3 Natural Join
StudNo Name DeptCode DeptCode DeptName S0001 สมศรี D001 D001 ชีววิทยา S0002 สมศักดิ์ D001 D001 ชีววิทยา S0003 สมถวิล D002 D002 คอมพิวเตอร์ S0004 สมปารถนา D002 D002 คอมพิวเตอร์ STUDENT STUDENT.DeptCode = DEPARTMENT.DeptCode DEPARTMENT
Divide ABCABC AAABCAAABC XYZXYXYZXY XZXZ a
Dividend => student StudNO StudName CourseNumber CourseName 10 สุภาพร การเขียนโปรแกรมภาษาซี 10 สุภาพร โครงสร้างข้อมูล 10 สุภาพร โปรแกรมระบบ 10 สุภาพร ระบบจัดการฐานข้อมูล 20 สุดารัตน์ การเขียนโปรแกรมภาษาซี 30 นนทยา การเขียนโปรแกรมภาษาซี 30 นนทยา โครงสร้างข้อมูล 30 นนทยา โปรแกรมระบบ 30 นนทยา ระบบจัดการฐานข้อมูล Course (divisor) CourseNumber CourseName การเขียนโปรแกรมภาษาซี โครงสร้างข้อมูล ระบบจัดการฐานข้อมูล โปรแกรมระบบ
StudNo StudName 10 สุภาพร 30 นนทยา เอาเฉพาะคอลัมน์ที่ไม่มีใน dividend เท่านั้นและ ต้องตรงกับ divisor และต้องไม่ซ้ำกันด้วย
OPERATIONS of Relational Algebra Operation PurposeNotation SELECTSelects all tuples that satisfy the selection condition from a relation R. σ ( R) UNION Produces a relation that includes all the tuples in R1 or R2 or both R1 and R2; R1 and R2 must be union compactable R1 U R2 JoinProduces all combinations of tuple from R1 and R2 that satisfy a join condition with only equality comparisons R1 (join cond.) R2 PROJECTProduces a new relation with only some of attributes of R, and removed duplicate tuples. (R)
OPERATIONS of Relational Algebra (cont.) Operation PurposeNotation INTERSECTI ON Produces a relation that includes all the tuples in both R1 and R2; R1 and R2 must be union compatible R1 R2 DIVISION Produces a relation R(X) that includes all tuples t[X] in R1[Z] that appear in combination with every tuple from R2(Y), where Z = X U Y. R1 ÷ R2 CATESIAN Produce Produces a relation that has the attributes of R1 and R2 and includes as tuples all possible combinations of tuples from R1 to R2 R1 X R2 DIFFERENCEProduces a relation that includes all the tuples in R1 that are not in R2; R1 and R2 must be union compatible R1-R2
Additional Relational Operation Aggregate Functions and Grouping