lecture 10: relational algebra
DESCRIPTION
Lecture 10: Relational Algebra. Relational Algebra. A formalism for creating new relations from existing ones Its place in the big picture:. Declarative query language. Algebra. Implementation. Relational algebra Relational bag algebra. SQL, relational calculus. Relational Algebra. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/1.jpg)
Lecture 10: Relational Algebra
![Page 2: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/2.jpg)
Relational Algebra
• A formalism for creating new relations from existing ones
• Its place in the big picture:
Declarativequery
languageAlgebra Implementation
SQL,relational calculus
Relational algebraRelational bag algebra
![Page 3: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/3.jpg)
Relational Algebra• Five operators:
– Union: – Difference: -– Selection: s– Projection: P – Cartesian Product:
• Derived or auxiliary operators:– Intersection, complement– Joins (natural, equi-join, theta join, semi-join)– Renaming: r
![Page 4: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/4.jpg)
1. Union and 2. Difference
• R1 R2• Example:
– ActiveEmployees RetiredEmployees
• R1 – R2• Example:
– AllEmployees – RetiredEmployees
![Page 5: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/5.jpg)
What about Intersection ?
• It is a derived operator• R1 R2 = R1 – (R1 – R2)• Also expressed as a join (will see later)• Example
– UnionizedEmployees RetiredEmployees
![Page 6: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/6.jpg)
3. Selection• Returns all tuples which satisfy a condition• Notation: sc(R)• Examples
– sSalary > 40000 (Employee)– sname = “Smith” (Employee)
• The condition c can be =, <, , >, , <>
![Page 7: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/7.jpg)
Selection Example
EmployeeSSN Name DepartmentID Salary999999999 John 1 30,000777777777 Tony 1 32,000888888888 Alice 2 45,000
SSN Name DepartmentID Salary888888888 Alice 2 45,000
Find all employees with salary more than $40,000.sSalary > 40000 (Employee)
![Page 8: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/8.jpg)
4. Projection• Eliminates columns, then removes
duplicates• Notation: PA1,…,An (R)• Example: project social-security number
and names:– PSSN, Name (Employee)– Output schema: Answer(SSN, Name)
![Page 9: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/9.jpg)
Projection Example
EmployeeSSN Name DepartmentID Salary999999999 John 1 30,000777777777 Tony 1 32,000888888888 Alice 2 45,000
SSN Name999999999 John777777777 Tony888888888 Alice
P SSN, Name (Employee)
![Page 10: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/10.jpg)
5. Cartesian Product
• Each tuple in R1 with each tuple in R2• Notation: R1 R2• Example:
– Employee Dependents• Very rare in practice; mainly used to
express joins
![Page 11: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/11.jpg)
Cartesian Product Example Employee Name SSN John 999999999 Tony 777777777 Dependents EmployeeSSN Dname 999999999 Emily 777777777 Joe Employee x Dependents Name SSN EmployeeSSN Dname John 999999999 999999999 Emily John 999999999 777777777 Joe Tony 777777777 999999999 Emily Tony 777777777 777777777 Joe
![Page 12: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/12.jpg)
Relational Algebra• Five operators:
– Union: – Difference: -– Selection: s– Projection: P – Cartesian Product:
• Derived or auxiliary operators:– Intersection, complement– Joins (natural, equi-join, theta join, semi-join)– Renaming: r
![Page 13: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/13.jpg)
Renaming
• Changes the schema, not the instance• Notation: r B1,…,Bn (R)• Example:
– rGivenName, SocSecNo (Employee)– Output schema:
Answer(GivenName, SocSecNo)
![Page 14: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/14.jpg)
Renaming Example
EmployeeName SSNJohn 999999999Tony 777777777
GivenName SocSecNo John 999999999Tony 777777777
r GivenName, SocSecNo (Employee)
![Page 15: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/15.jpg)
Natural Join• Notation: R1 R2⋈• Meaning: R1 R2 = ⋈ PA(sC(R1 R2))
• Where:– The selection sC checks equality of all common
attributes– The projection eliminates the duplicate common
attributes
![Page 16: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/16.jpg)
Natural Join ExampleEmployeeName SSNJohn 999999999Tony 777777777
DependentsSSN Dname999999999 Emily777777777 Joe
Name SSN DnameJohn 999999999 EmilyTony 777777777 Joe
Employee ⋈ Dependents = PName, SSN, Dname(s SSN=SSN2(Employee rSSN2, Dname(Dependents)))
![Page 17: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/17.jpg)
Natural Join
• R= S=
• R S=⋈
A BX YX ZY ZZ V
B CZ UV WZ V
A B CX Z UX Z VY Z UY Z VZ V W
![Page 18: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/18.jpg)
Natural Join
• Given the schemas R(A, B, C, D), S(A, C, E), what is the schema of R S ?⋈
• Given R(A, B, C), S(D, E), what is R S ?⋈• Given R(A, B), S(A, B), what is R S ?⋈
![Page 19: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/19.jpg)
Theta Join
• A join that involves a predicate• R1 ⋈q R2 = sq (R1 R2)• Here q can be any condition
![Page 20: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/20.jpg)
Equi-join
• A theta join where q is an equality• R1 ⋈A=B R2 = sA=B (R1 R2)• Example:
– Employee ⋈SSN=SSN Dependents
• Most useful join in practice
![Page 21: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/21.jpg)
Semijoin
• R S = ⋉ PA1,…,An (R S)⋈• Where A1, …, An are the attributes in R• Example:
– Employee Dependents ⋉
![Page 22: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/22.jpg)
Semijoins in Distributed Databases
• Semijoins are used in distributed databases
SSN Name. . . . . .
SSN Dname Age. . . . . .
EmployeeDependents
network
Employee ⋈ssn=ssn (sage>71 (Dependents))
T = P SSN s age>71 (Dependents)R = Employee T⋉
Answer = R Dependents⋈
![Page 23: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/23.jpg)
Complex RA Expressions
sname=`Fred’ sname=gizmo
PpidPssn
⋈seller-ssn=ssn
⋈pid=pid
⋈buyer-ssn=ssn
P name
Purchase ProductPersonPerson
![Page 24: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/24.jpg)
Operations on BagsA bag = a set with repeated elementsAll operations need to be defined carefully on bags• {a,b,b,c}{a,b,b,b,e,f,f}={a,a,b,b,b,b,b,c,e,f,f}• {a,b,b,b,c,c} – {b,c,c,c,d} = {a,b,b,d}• sC(R): preserve the number of occurrences• PA(R): no duplicate elimination• Cartesian product, join: no duplicate elimination• New operator for Duplicate EliminationRelational Engines work on bags, not sets !
Reading assignment: 5.1-5.2
![Page 25: Lecture 10: Relational Algebra](https://reader036.vdocument.in/reader036/viewer/2022062305/56816479550346895dd65c41/html5/thumbnails/25.jpg)
Finally: RA has Limitations
• Cannot compute “transitive closure”
• Find all direct and indirect relatives of Fred• Cannot be expressed in RA!
Name1 Name2 Relationship
Fred Mary Father
Mary Joe Cousin
Mary Bill Spouse
Nancy Lou Sister