Presentation is loading. Please wait.

Presentation is loading. Please wait.

RELATIONAL ALGEBRA Prof. Sin-Min LEE Department of Computer Science.

Similar presentations


Presentation on theme: "RELATIONAL ALGEBRA Prof. Sin-Min LEE Department of Computer Science."— Presentation transcript:

1 RELATIONAL ALGEBRA Prof. Sin-Min LEE Department of Computer Science

2 Terminology: ztable (relation) zrow (tuple) yformally, a relation is a set of ordered n- tuples. Domain : set of data values from which an attribute value can be drawn. Eg. yset of department names yset of legal salaries yset of possible employee birth dates

3 If D 1, D 2, D 3 ……. D n are the domains of a relation R. Then, R  D 1 x D 2 x D 3 x ………..x D n.

4 What are the query languages? zIt is an abstract language. We use it to express the set of operations that any relational query language must perform. zTwo types of operations: z 1.set-theoretic operations: tables are essentially sets of rows  2.native relational operations: focus on the structure of the rows Query languages are specialized languages for asking questions,or queries,that involve the data in database.

5 Database Scheme A relational database scheme, or schema, corresponds to a set of table definitions. Eg: product(p_id, name, category, description) supply(p_id, s_id, qnty_per_month) supplier(s_id, name, address, ph#) * remember the difference between a DB instance and a DB scheme.

6 Keys zThe super key, candidate key and primary key notations presented for ER model apply for relational model also.

7 Query languages zprocedural vs. non-procedural zcommercial languages have some of both zwe will study: yrelational algebra ( which is procedural, i.e. tells you how to process a query ) yrelational calculus ( which is non-procedural i.e. tells what you want )

8

9 Relational Algebra Fundamental operators  select   project  zcartesian product  zunion  zset difference - Other operators znatural join JOIN (butterfly symbol) zset intersection  zdivision 

10 A Simple DB account ac# owner ss# balance 1 bob 123 1000 2 sue 456 2000 3 jane 789 3000 transaction t# ac# type amount outcome date 1 1 W 1500 bounced 5/1/98 2 2 D 1000 ok 5/2/98 3 1 W 100 ok 5/4/98 4 3 D 500 ok 5/7/98 5 2 W 200 ok 5/9/98 account had transaction

11 Select eg:  balance>=1500 account result : ac# owner ss# balance 2 sue 456 2000 3 jane 789 3000 Project eg: π owner, ss# account result: owner ss# bob 123 sue 456 jane 789

12

13 Cartesian product eg: account  transaction ythis will have 15 rows like the ones shown below: ac# owner ss# balance t# type amount outcome date 1 bob 123 1000 1 W 1500 bounced 5/1/98 2 sue 456 2000 2 D 1000 ok 5/2/98 …………… Composing operations eg: “show all transactions done by account owner Bob”. σ account.ano= transaction.ano ((  owner=“Bob” account)  transaction)

14 zNatural Join - combines σ, π,  - very commonly used Natural Join forms the cross product of its two arguments, does a selection to enforce equality of columns with the same name and removes duplicate columns. Eg: “show all transactions done by account owner Bob” σ owner=“Bob” (account JOIN transaction)

15 Rename operation What if you need to access the same relation twice in a query? eg. person(ss#, name, mother_ss#, father_ss#) “Find the name of Bob’s mother” needs the “person” table to be accessed twice. The operation ρ x (r) evaluates to a second logical copy of relation r renamed to x.

16 Rename operation (contd) eg: π mother.name ( (ρ mother (person)) JOIN mother.ss# = person.mother_ss# (  name=“Bob ” (person)))

17

18

19

20

21 Additional Operations Additional Operations are those that can be expressed in terms of other operations. zSet Intersection r  s = r-(r-s) eg.: r a b s a b r  s = a b 1 a 1 a 1 a 2 b 2 c 3 d 3 d 3 d r s

22 Additional Operations(cntd.) zDivision  yuseful for “for all” queries Definition: Let r(R) and s(S), where R & S are sets of attributes, be relations, where S is a subset of R. The relation r  s has scheme R-S. The tuples in r  s consist of the R-S part of the tuples of r such that some tuple t r in r with the those R-S attribute values matches every tuple in s. zCan also be defined in terms of relational algebra.

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57 Additional Operations(cntd.) zAssignment operation Sometimes it is convenient to write a relational algebra expression as a sequence of steps rather than one large expression. To do this, you can use assignment: relname expression eg.: temp π pno (part) bigsuppliers supply  temp


Download ppt "RELATIONAL ALGEBRA Prof. Sin-Min LEE Department of Computer Science."

Similar presentations


Ads by Google