1 / 42

Relations and Relational Algebra

This lecture covers the relational model, relational data structure, and relational data manipulation. Learn about tables representing relations, mathematical definitions of relations, and operations like union, difference, and intersection.

maryctaylor
Download Presentation

Relations and Relational Algebra

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Relations and Relational Algebra Database Systems Lecture 2 Natasha Alechina www.cs.nott.ac.uk/~nza/G51DBS

  2. In this Lecture • The Relational Model • Relational data structure • Relational data manipulation • For more information • Connolly and Begg – Chapters 3.1-3.2.2 and 4 • Ullman and Widom – Chapter 3.1, 5.1 • Codd’s paper – on http://www.cs.nott.ac.uk/~nza/G51DBS07

  3. Relations • We will use tables to represent relations: Anne aaa@cs.nott.ac.uk Bob bbb@cs.nott.ac.uk Chris ccc@cs.nott.ac.uk

  4. Relations • This is a relation between people and email addresses Anne aaa@cs.nott.ac.uk Bob bbb@cs.nott.ac.uk Chris ccc@cs.nott.ac.uk

  5. Relations • A mathematician would say that it is a set of pairs: <Anne, aaa @ cs.nott.ac.uk>, <Bob, bbb @ cs.nott.ac.uk>, and <Chris, ccc @ cs.nott.ac.uk>. Anne aaa@cs.nott.ac.uk Bob bbb@cs.nott.ac.uk Chris ccc@cs.nott.ac.uk

  6. Relations • Each value in the first column is a name, each value in the second column is an email address. • In general, each column has a domain – a set from which all possible values can come. Anne aaa@cs.nott.ac.uk Bob bbb@cs.nott.ac.uk Chris ccc@cs.nott.ac.uk

  7. Relations • A mathematical relation is a set of tuples: sequences of values. Each tuple corresponds to a row in a table: Anne aaa@cs.nott.ac.uk 0115111111 Bob bbb@cs.nott.ac.uk 0115222222 Chris ccc@cs.nott.ac.uk 0115333333

  8. Relations: terminology • Degree of a relation: how long the tuples are, or how many columns the table has • In the first example (name,email) degree of the relation is 2 • In the second example (name,email,telephone) degree of the relation is 3 • Often relations of degree 2 are called binary, relations of degree 3 are called ternary etc. • Cardinality of the relation: how many different tuples are there, or how many different rows the table has.

  9. Relations: mathematical definition • Mathematical definition of a relation R of degree n, where values come from domains A1, …,An: R  A1 A2 …  An (relation is a subset of the Cartesian product of domains) Cartesian product: A1 A2 …  An = {<a1, a2, …, an>: a1 A1, a2 A2, …, an An}

  10. Relational model: data manipulation • Data is represented as relations. • Manipulation of data (query and update operations) corresponds to operations on relations • Relational algebra describes those operations. They take relations as arguments and produce new relations. • Think of numbers and corresponding operators +,,\, * or booleans and corresponding operators &,|,! (and, or, not). • Relational algebra contains two kinds of operators: common set-theoretic ones and operators specific to relations (for example projecting on one of the columns).

  11. Union • Standard set-theoretic definition of union: A  B = {x: x  A or x  B} • For example, {a,b,c}  {a,d,e} = {a,b,c,d,e} • For relations, we want the result to be a relation again: a set R  A1 …  An for some n and domains A1,…,An. (or, in other words, a proper table, with each column associated with a single domain of values). • So we require in order to take a union of relations R and S that R and S have the same number of columns and that corresponding columns have the same domains.

  12. Union-compatible relations • Two relations R and S are union-compatible if they have the same number of columns and corresponding columns have the same domains.

  13. Example: not union-compatible (different number of columns) Anne aaa 111111 Tom 1980 Bob bbb 222222 Sam 1985 Chris Steve ccc 333333 1986

  14. Example: not union-compatible (different domains for the second column) Anne aaa Tom 1980 Bob bbb Sam 1985 Chris Steve ccc 1986

  15. Example: union-compatible Anne 1970 Tom 1980 Bob 1971 Sam 1985 Chris Steve 1972 1986

  16. Union of two relations • Let R and S be two union-compatible relations. Then their union R  S is a relation which contains tuples from both relations: R  S = {x: x  R or x  S}. • Note that union is a partial operation on relations: it is only defined for some (compatible) relations, not for all of them. • Similar to division for numbers (result of division by 0 is not defined).

  17. Example: shopping lists R S R  S Cheese 1.34 Cream 5.00 Cheese 1.34 Milk 0.80 Soap 1.00 Milk 0.80 Bread 0.60 Bread 0.60 Eggs 1.20 Eggs 1.20 Soap 1.00 Soap 1.00 Cream 5.00

  18. Difference of two relations Let R and S be two union-compatible relations. Then their differenceR  S is a relation which contains tuples which are in R but not in S: R  S = {x: x  R and x  S}. • Note that difference is also a partial operation on relations.

  19. Example R S R  S Cheese 1.34 Cream 5.00 Cheese 1.34 Milk 0.80 Soap 1.00 Milk 0.80 Bread 0.60 Bread 0.60 Eggs 1.20 Eggs 1.20 Soap 1.00

  20. Intersection of two relations Let R and S be two union-compatible relations. Then their intersection is a relation R  S which contains tuples which are both in R and S: R  S = {x: x  R and x  S} • Note that intersection is also a partial operation on relations.

  21. Example R S R  S Cheese 1.34 Cream 5.00 Soap 1.00 Milk 0.80 Soap 1.00 Bread 0.60 Eggs 1.20 Soap 1.00

  22. Cartesian product • Cartesian product is a total operation on relations. • Usual set theoretic definition of product: R  S = {<x,y>: x  R, y  S} • Under the standard definition, if <Cheese, 1.34>  R and <Soap,1.00>  S, then < <Cheese, 1.34>, <Soap,1.00>>  R  S (the result is a pair of tuples).

  23. Extended Cartesian product • Extended Cartesian product flattens the result in a 4-element tuple: <Cheese, 1.34, Soap, 1.00> • For the rest of the course, “product” means extended product.

  24. Extended Cartesian product of relations Let R be a relation with column domains {A1,…,An} and S a relation with column domains {B1,…,Bm}. Then their extended Cartesian product R  S is a relation R  S = {<c1,…,cn,cn+1,…,cn+m>: <c1, …,cn> R, <cn+1,…,cn+m > S}

  25. Example R S RS Cheese 1.34 Cream 5.00 Cheese 1.34 Cream 5.00 Milk 0.80 Soap 1.00 Milk 0.80 Cream 5.00 Bread 0.60 Bread 0.60 Cream 5.00 Eggs 1.20 Eggs 1.20 Cream 5.00 Soap 1.00 Soap 1.00 Cream 5.00 Cheese 1.34 Soap 1.00 Milk 0.80 Soap 1.00 Bread 0.60 Soap 1.00 Eggs 1.20 Soap 1.00 Soap 1.00 Soap 1.00

  26. Projection • Let R be a relation with n columns, and X is a set of column identifiers (at the moment, we will use numbers, but later we will give then names, like “Email”, or “Telephone”). Then projection of R on X is a new relation  X(R) which only has columns from X. • For example, 1,2(R) is a table with only the 1st and 2nd columns from R.

  27. Example: 13(R) R: 1 2 3 Anne aaa@cs.nott.ac.uk 0115111111 Bob bbb@cs.nott.ac.uk 0115222222 Chris ccc@cs.nott.ac.uk 0115333333

  28. Example: 13(R) 13(R): Anne 0115111111 Bob 0115222222 Chris 0115333333

  29. Selection • Let R be a relation with n columns and  is a property of tuples. • Selection from R subject to condition  is defined as follows:   (R) = {<a1 ,…,an>  R:  (a1 ,…,an )}

  30. What is a reasonable property? • We assume that properties are written using {and, or, not} and expressions of the form col(i)  col(j)(where i,j are column numbers) orcol(i)  v, where v is a value from the domain Ai. •  is a comparator which makes sense when applied to values from i and j columns (= , , maybe also , , ,  if there is a natural order on values).

  31. What is a meaningful comparison • We can always at least tell if two values in the same domain are equal or not (database values are finitely represented). • In some cases, it makes sense to compare values from different column domains: for example, if both are domains contain strings, or both contain dates. • For example, 1975 > 1987 is a meaningful comparison, “Anne” = 1981 is not. • We can only use a comparison in selection property if its result is true or false, never undefined.

  32. Example: selection •  col(3) < 2002 and col(2) = Nolan (R) R Insomnia Nolan 2002 Magnolia Anderson 1999 Insomnia Skjoldbjaerg 1997 Memento Nolan 2000 Gattaca Niccol 1997

  33. Example: selection •  col(3) < 2002 and col(2) = Nolan (R) Insomnia Nolan 2002 Magnolia Anderson 1999 Insomnia Skjoldbjaerg 1997 Memento Nolan 2000 Gattaca Niccol 1997

  34. Example: selection •  col(3) < 2002 and col(2) = Nolan (R) Insomnia Nolan 2002 Magnolia Anderson 1999 Insomnia Skjoldbjaerg 1997 Memento Nolan 2000 Gattaca Niccol 1997

  35. Example: selection •  col(3) < 2002 and col(2) = Nolan (R) Insomnia Nolan 2002 Magnolia Anderson 1999 Insomnia Skjoldbjaerg 1997 Memento Nolan 2000 Gattaca Niccol 1997

  36. Example: selection •  col(3) < 2002 and col(2) = Nolan (R) Insomnia Nolan 2002 Magnolia Anderson 1999 Insomnia Skjoldbjaerg 1997 Memento Nolan 2000 Gattaca Niccol 1997

  37. Example: selection •  col(3) < 2002 and col(2) = Nolan (R) Insomnia Nolan 2002 Magnolia Anderson 1999 Insomnia Skjoldbjaerg 1997 Memento Nolan 2000 Gattaca Niccol 1997

  38. Example: selection •  col(3) < 2002 and col(2) = Nolan (R) Memento Nolan 2000

  39. Summary • Data is represented as tables • Operations on tables: • union of two union-compatible tables (tables with the same number of columns and the same domains for corresponding columns) • set difference of two union-compatible tables • intersection of two union-compatible tables • extended Cartesian product of two tables • project a table on some of its columns • select rows in a table satisfying a property • Result of an operation is again a table, so operations can be chained

  40. Example exam question • What is the result of 1,3( col(2) = col(4) (R  S) ), where R and S are: R S Anne 111111 Chris 333333 Bob 222222 Dan 111111 (5 marks)

  41. Other operations • Not all SQL queries can be translated into relational algebra operations defined in the lecture. • Extended relational algebra includes counting and other additional operations.

  42. Next Lecture The Relational Model • Relational data integrity For more information • Connolly and Begg chapter 3

More Related