150 likes | 181 Views
Chapter 8: Relational Algebra. Example of a Relation. attributes (or columns). tuples (or rows). Relational Query Languages. Procedural vs .non-procedural, or declarative “Pure” languages: Relational algebra Tuple relational calculus Domain relational calculus
E N D
Chapter 8: Relational Algebra
Example of a Relation attributes (or columns) tuples (or rows)
Relational Query Languages • Procedural vs .non-procedural, or declarative • “Pure” languages: • Relational algebra • Tuple relational calculus • Domain relational calculus • The above 3 pure languages are equivalent in computing power • We will concentrate in this chapter on relational algebra • Not turning-machine equivalent • consists of 6 basic operations
Select Operation – selection of rows (tuples) • Relation r • A=B ^ D > 5(r)
Project Operation – selection of columns (Attributes) • Relation r: A,C (r)
Union of two relations • Relations r, s: • r s:
Set difference of two relations • Relations r, s: • r – s:
Set intersection of two relations • Relation r, s: • r s Note: rs = r – (r – s)
joining two relations -- Cartesian-product • Relations r, s: • r xs:
Cartesian-product – naming issue B • Relations r, s: r.B s.B • r xs:
Renaming a Table • Allows us to refer to a relation, (say E) by more than one name. x (E) returns the expression E under the name X • Relations r r.A r.B s.A s.B • r xs(r) 1 2 1 2 1 1 2 2 α α β β α β α β
Composition of Operations • Can build expressions using multiple operations • Example: A=C (r x s) • r x s • A=C (r x s)
Joining two relations – Natural Join • Let r and s be relations on schemas R and S respectively. Then, the “natural join” of relations R and S is a relation on schema R S obtained as follows: • Consider each pair of tuples tr from r and ts from s. • If tr and ts have the same value on each of the attributes in RS, add a tuple t to the result, where • t has the same value as tr on r • t has the same value as ts on s
Natural Join • r s Natural Join Example • Relations r, s: A, r.B, C, r.D, E( r.B = s.B ˄ r.D = s.D(r x s)))
Summary of Relational Algebra Operators Symbol (Name) Example of Use σ (Selection) σsalary > = 85000 (instructor) Return rows of the input relation that satisfy the predicate. Π (Projection) ΠID, salary (instructor) Output specified attributes from all rows of the input relation. Remove duplicate tuples from the output. x (Cartesian Product) instructorx department Output pairs of rows from the two input relations that have the same value on all attributes that have the same name. ∪ (Union) Πname (instructor) ∪ Πname (student) Output the union of tuples from the two input relations. - (Set Difference) Πname (instructor) -- Πname (student) Output the set difference of tuples from the two input relations. ⋈ (Natural Join) instructor⋈ department Output pairs of rows from the two input relations that have the same value on all attributes that have the same name.