Top Banner
Lecture 10: Relational Algebra
25

Lecture 10: Relational Algebra

Feb 23, 2016

Download

Documents

jerry

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 Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lecture 10:  Relational  Algebra

Lecture 10: Relational Algebra

Page 2: Lecture 10:  Relational  Algebra

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

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

1. Union and 2. Difference

• R1 R2• Example:

– ActiveEmployees RetiredEmployees

• R1 – R2• Example:

– AllEmployees – RetiredEmployees

Page 5: Lecture 10:  Relational  Algebra

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

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

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

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

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

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

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

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

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

Renaming Example

EmployeeName SSNJohn 999999999Tony 777777777

GivenName SocSecNo John 999999999Tony 777777777

r GivenName, SocSecNo (Employee)

Page 15: Lecture 10:  Relational  Algebra

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

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

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

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

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

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

Semijoin

• R S = ⋉ PA1,…,An (R S)⋈• Where A1, …, An are the attributes in R• Example:

– Employee Dependents ⋉

Page 22: Lecture 10:  Relational  Algebra

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

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

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

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