Presentation is loading. Please wait.

Presentation is loading. Please wait.

Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999.

Similar presentations


Presentation on theme: "Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999."— Presentation transcript:

1 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 1 Chapter 3 Relational algebra and calculus

2 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 2 Query languages for relational databases Operations on databases: –queries: "read" data from the database –updates: change the content of the database Both can be modeled as functions from databases to databases Foundations can be studied with reference to query languages: –relational algebra, a "procedural" language –relational calculus, a "declarative" language –(briefly) Datalog, a more powerful language Then, we will study SQL, a practical language (with declarative and procedural features) for queries and updates

3 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 3 Relational algebra A collection of operators that –are defined on relations –produce relations as results and therefore can be combined to form complex expressions Operators –union, intersection, difference –renaming –selection –projection –join (natural join, cartesian product, theta join)

4 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 4 Union, intersection, difference Relations are sets, so we can apply set operators However, we want the results to be relations (that is, homogeneous sets of tuples) Therefore: –it is meaningful to apply union, intersection, difference only to pairs of relations defined over the same attributes

5 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 5 Union Graduates Managers Graduates  Managers

6 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 6 Intersection Graduates Managers Graduates  Managers

7 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 7 Difference Graduates Managers Graduates - Managers

8 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 8 Paternity  Maternity ??? PaternityMaternity A meaningful but impossible union the problem: Father and Mother are different names, but both represent a "Parent" the solution: rename attributes

9 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 9 Renaming unary operator "changes attribute names" without changing values removes the limitations associated with set operators notation: –  Y  X. (r) example: –  Parent  Father. (Paternity) if there are two or more attributes involved then ordering is meaningful: –  Location,Pay  Branch,Salary. (Employees)

10 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 10 Renaming, example Paternity  Parent  Father. (Paternity)

11 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 11 Renaming and union PaternityMaternity  Parent  Father. (Paternity)   Parent  Mother. (Maternity)

12 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 12 Renaming and union, with more attributes Employees  Location,Pay  Branch,Salary (Employees)   Location,Pay  Factory, Wages (Staff) Staff

13 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 13 Selection and projection Two unary operators, in a sense orthogonal: –selection for "horizontal" decompositions –projection for "vertical" decompositions A B C Selection  A B C Projection  A B

14 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 14 Selection Produce results –with the same schema as the operand –with a subset of the tuples (those that satisfy a condition) Notation: –  F (r) Semantics: –  F (r) = { t | t  r and t satisfies F}

15 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 15 Selection, example Employees  Age 4000 (Employees)

16 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 16 Selection, another example Citizens  PlaceOfBirth=Residence (Citizens)

17 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 17 Projection Produce results –over a subset of the attributes of the operand –with values from all its tuples Notation (given a relation r(X) and a subset Y of X): –  Y (r) Semantics: –  Y (r) = { t[Y] | t  r }

18 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 18 Projection, example Employees  Surname, FirstName (Employees)

19 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 19 Projection, another example Employees  Department, Head (Employees)

20 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 20 Cardinality of projections The result of a projections contains at most as many tuples as the operand It can contain fewer, if several tuples "collapse"  Y (r) contains as many tuples as r if and only if Y is a superkey for r; –this holds also if Y is "by chance" (not defined as a superkey in the schema, but superkey for the specific instance), see the example

21 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 21 Tuples that collapse Students  Surname, DegreeProg (Students)

22 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 22 Tuples that do not collapse, "by chance" Students  Surname, DegreeProg (Students)

23 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 23 Join The most typical operator in relational algebra allows to establish connections among data in different relations, taking into advantage the "value-based" nature of the relational model Two main versions of the join: –"natural" join: takes attribute names into account –"theta" join They are all denoted by the symbol 

24 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 24 A natural join r1r1 r2r2 r 1  r 2

25 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 25 Natural join: definition r 1 (X 1 ), r 2 (X 2 ) r 1  r 2 (natural join of r 1 and r 2 ) is a relation on X 1 X 2 (the union of the two sets): { t on X 1 X 2 | t [X 1 ]  r 1 and t [X 2 ]  r 2 } or, equivalently { t on X 1 X 2 | exist t 1  r 1 and t 2  r 2 with t [X 1 ] = t 1 and t [X 2 ] = t 2 }

26 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 26 Natural join: comments The tuples in the result are obtained by combining tuples in the operands with equal values on the common attributes The common attributes often form a key of one of the operands (remember: references are realized by means of keys, and we join in order to follow references)

27 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 27 Another natural join Offences  Cars

28 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 28 Yet another join Compare with the union: –the same data can be combined in various ways PaternityMaternity Paternity  Maternity

29 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 29 Joins can be "incomplete" If a tuple does not have a "counterpart" in the other relation, then it does not contribute to the join ("dangling" tuple) r1r1 r2r2 r 1  r 2

30 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 30 Joins can be empty As an extreme, we might have that no tuple has a counterpart, and all tuples are dangling r1r1 r2r2 r 1  r 2

31 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 31 The other extreme If each tuple of each operand can be combined with all the tuples of the other, then the join has a cardinality that is the product of the cardinalities of the operands r1r1 r2r2 r 1  r 2

32 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 32 How many tuples in a join? Given r 1 (X 1 ), r 2 (X 2 ) the join has a cardinality between zero and the products of the cardilnalities of the operands: 0  | r 1  r 2 |  | r 1 |  | r 2 | (| r | is the cardinality of relation r) moreover: –if the join is complete, then its cardinality is at least the maximum of | r 1 | and | r 2 | –if X 1  X 2 contains a key for r 2, then | r 1  r 2 |  | r 1 | –if X 1  X 2 is the primary key for r 2, and there is a referential constraint between X 1  X 2 in r 1 and such a key, then | r 1  r 2 | = | r 1 |

33 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 33 Outer joins A variant of the join, to keep all pieces of information from the operands It "pads with nulls" the tuples that have no counterpart Three variants: –"left": only tuples of the first operand are padded –"right": only tuples of the second operand are padded –"full": tuples of both operands are padded

34 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 34 Outer joins r1r1 r2r2 r 1  LEFT r 2 r 1  RIGHT r 2 r 1  FULL r 2

35 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 35 N-ary join The natural join is –commutative: r 1  r 2 = r 2  r 1 –associative: (r 1  r 2 )  r 3 = r 1  (r 2  r 3 ) Therefore, we can write n-ary joins without ambiguity: r 1  r 2  …  r n

36 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 36 N-ary join r1r1 r2r2 r3r3 r 1  r 2  r 3

37 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 37 Cartesian product The natural join is defined also when the operands have no attributes in common in this case no condition is imposed on tuples, and therefore the result contains tuples obtained by combining the tuples of the operands in all possible ways

38 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 38 Cartesian product: example Employees Projects Employes  Projects

39 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 39 Theta-join In most cases, a cartesian product is meaningful only if followed by a selection: –theta-join: a derived operator r 1  F r 2 =  F (r 1  r 2 ) –if F is a conjunction of equalities, then we have an equi-join

40 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 40 Equi-join: example Employees Projects Employes  Project=Code Projects

41 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 41 Queries A query is a function from database instances to relations Queries are formulated in relational algebra by means of expressions over relations

42 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 42 A database for the examples Employees Supervision

43 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 43 Example 1 Find the numbers, names and ages of employees earning more than 40 thousand.

44 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 44 Example 2 Find the registration numbers of the supervisors of the employees earning more than 40 thousand

45 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 45 Example 3 Find the names and salaries of the supervisors of the employees earning more than 40 thousand

46 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 46 Example 4 Find the employees earning more than their respective supervisors, showing registration numbers, names and salaries of the employees and supervisors

47 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 47 Example 5 Find the registration numbers and names of the supervisors whose employees all earn more than 40 thousand

48 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 48 Algebra with null values  Age>30 (People) which tuples belong to the result? The first yes, the second no, but the third? People

49 Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999 49 Material on relational calculus and Datalog will be provided in the near future. Please contact Paolo Atzeni (atzeni@dia.uniroma3.it) for more information


Download ppt "Database Systems (Atzeni, Ceri, Paraboschi, Torlone) Chapter 3 : Relational algebra and calculus McGraw-Hill and Atzeni, Ceri, Paraboschi, Torlone 1999."

Similar presentations


Ads by Google