Presentation is loading. Please wait.

Presentation is loading. Please wait.

Algebra1 After this lecture, you should be able to:  Understand the differences between SQL (Structured Query Language) and Relational Algebra expressions.

Similar presentations


Presentation on theme: "Algebra1 After this lecture, you should be able to:  Understand the differences between SQL (Structured Query Language) and Relational Algebra expressions."— Presentation transcript:

1 Algebra1 After this lecture, you should be able to:  Understand the differences between SQL (Structured Query Language) and Relational Algebra expressions.  Build queries in Relational Algebra.  Understand how DBMS’s process the SQL queries.  Make simple query optimization.  Be ready for Quiz 4 and Complete Assignment 7 (Part I). Relational Algebra

2 Algebra2 Relational Algebra  Relational algebra deals with a set of relations closed under operators. Operators operate on one or more relations to yield a relation.  Algebraic Expressions (a + b) * c (A  B)  C  Relational algebra is a basis for database query languages.

3 Algebra3 Characteristics of Relational Algebra  Operational  The order of operations can be specified.  Set-at-a-time  Multiple rows are processed by one operation.  Not too detailed  How to access data is not specified.  Good for query optimization.  Who supplied P2?  SQL Select SName from S, SP where S.S# = SP.S# and P# = 'P2' ;  Relational Algebra  SName (S ⋈ (  p#=‘P2‘ SP ))

4 Algebra4 Relational algebra …  Union: A  B  Intersection: A  B  Difference: A ̶ B  Cartesian Product: S × SP  Division: A / B  Selection:  city= ‘ Rome ‘ S  Projection:  SName,Status S  Join: S ⋈ SP  Renaming ρ(city  pcity) P

5 Algebra5 Terms: Relational algebra ~ Database  Relation ~ Table  Attribute ~ Column  Tuple ~ Row (Record)  Relation schema ~ Structure of table  Relation Instance ~ Data of table

6 Algebra6 Union and Intersection AB a1 b1 AB a2 b1 c2 AB a1 a2 b1 c2 AB b1 PQ P  Q P  Q

7 Algebra7 Union and Intersection: Exercise AB a1 b1 AB a1 c1 AB a1 b1 c1 AB a1 PQ P  Q = ?P  Q = ?

8 Algebra8 Difference (-) AB a1 b1 AB a2 b1 c2 AB a1 P Q P ̶ Q

9 Algebra9 Difference: Exercise AB a1 b1 c1 AB a1 c1 d1 AB b1 P Q P ̶ Q = ?

10 Algebra10 Cartesian Product ( × ) AB a1 b1 CD u2 v2 w2 P Q ABCD a1u2 a1v2 a1w2 b1u2 b1v2 b1w2 P × Q = {(p, q)|p  P and q  Q}

11 Algebra11 Cartesian Product: Exercise A a b CD u2 v2 P Q P × Q = ? ACD au2 av2 bu2 bv2

12 Algebra12 Selection (  ) ABC a1u a2u b2v ABC a2u b2v R  B = 2 R

13 Algebra13 Get all the information of the suppliers located in Paris. select * from s where city = ‘Paris’; Table S sno | sname | status | city ----------------------------- s1 | Smith | 20 | London s2 | Jones | 10 | Paris s3 | Blake | 30 | Paris s4 | Clark | 20 | London s5 | Adams | 30 | Athens  city = ‘Paris‘ S

14 Algebra14 Projection (  ) ABC a1u a2u b2v CA ua vb R  C, A R

15 Algebra15 What are the S#’s and statuses of the suppliers? sno | status ------------ s1 | 20 s2 | 10 s3 | 30 select sno, status from s; Table S sno | sname | status | city ----------------------------- s1 | Smith | 20 | London s2 | Jones | 10 | Paris s3 | Blake | 30 | Paris  sno, status S

16 Algebra16 What are the S#’s and statuses of the suppliers located in Paris? sno | status ------------ s2 | 10 s3 | 30 select sno, status from s where city = 'Paris; Table S sno | sname | status | city ----------------------------- s1 | Smith | 20 | London s2 | Jones | 10 | Paris s3 | Blake | 30 | Paris s4 | Clark | 20 | London s5 | Adams | 30 | Athens  sno, status (  city = ‘Paris‘ S)

17 Algebra17 Selection and Projection: Exercise pno pname color weight city ---- ------ ------- ------ ------ p1 nut red 12 London p2 bolt green 15 Paris p3 screw green 17 Rome select pname, weight from p where color = ‘green’; pname weight ----- ------ bolt 15 screw 17 Get the names and weights of the green parts.  pname, weight (  color = ‘green‘ P)

18 Algebra18  Join A1B1 a1 b2  B1 ≥ B2 (P × Q) A1B1A2B2 a1c1 b2a2 b2b2 b2c1 P A2B2 a2 b2 c1 Q

19 Algebra19 Equijoin A1B1 a1 b2 A1B1A2B2 a1c1 b2a2 b2b2 P A2B2 a2 b2 c1 Q  B1 = B2 (P × Q)

20 Algebra20 Natural Join ( ⋈ ) A1B a1 b2 P A2B a2 b2 c1 Q P ⋈ Q A1BA2 a1c b2a b2b

21 Algebra21 Natural Join: Example S#SNameCity S1AX S2BY S#P#QTY S1P110 S1P220 S2P130 S#SNameCityP#QTY S1AXP110 S1AXP220 S2BYP130 SSP S ⋈ SP = ?

22 Algebra22 Selection, Join, and Projection: Example What are the part numbers of the parts supplied by the suppliers located in Taipei? select SP.pno from S, SP where S.city = ‘Taipei’ and S.sno = SP.sno;  pno ((  S.City=‘Taipei’ S) ⋈ SP) SQL: Algebra:

23 Algebra23 Selection, Join, and Projection: Exercise What are the names of the suppliers who supplied green parts? select sname from P, SP, S where P.color = ‘green’ and P.pno = SP.pno and SP.sno = S.sno;  sname ((  pno (  color=‘green‘ P)) ⋈ SP ⋈ S) SQL: Algebra:

24 Algebra24 Subtraction Examples Get the supplier numbers of the suppliers who did not supply red parts.  The supplier numbers of all the suppliers: AS =  s# (S)  The supplier numbers of the suppliers who supplied some red parts: RPS =  s# (SP ⋈ (  Color = ‘Red‘ (P))  The answer is: AS - RPS

25 Algebra25 Subtraction Examples (cont’d) Get the names of the suppliers who supplied only red parts.  The supplier numbers of the suppliers who supplied some parts: SS =  s# (SP)  The supplier numbers of the suppliers who supplied at least one non-red parts: NRS =  s# (SP ⋈ (  color <> ‘Red‘ (P))  The answer is:  SName ((SS – NRS) ⋈ S)

26 Algebra26 Rename ( ρ ) ABCD a1u2 b1v2 c1w2 Ρ(B->B2, 3  C2) AB2C2D a1U2 b1v2 c1w2

27 Algebra27 Join with Renaming: Example I Get the pairs of the supplier numbers of the suppliers who supply at least one identical part. select SPX.sno, SPY.sno from SP SPX, SP SPY where SPX.pno = SPY.pno and SPX.sno < SPY.sno SQL: Algebra:  snox,snoy (  snox < snoy ((ρ(sno  snox)  sno,pno SP) ⋈ (ρ(sno  snoy)  sno,pno SP) )

28 Algebra28 Join with Renaming: Example II What are the colors of the parts supplied by the suppliers located in Taipei? Table S Table P sno | sname | sts | city pno | pname | color | wgt | city -------------------------- ---------------------------------- s1 | Smith | 20 | London p1 | nut | red | 12 | London s2 | Jones | 10 | Taipei p2 | bolt | green | 17 | Taipei p3 | screw | blue | 17 | Rome Table SP sno | pno | qty --------------- s1 | p1 | 300 s2 | p3 | 200

29 Algebra29 Join with Renaming: Example II What are the colors of the parts supplied by the suppliers located in Taipei? select color From S, SP, P where S.city = ‘Taipei’ and S.sno = SP.sno and SP.pno = P.pno;  color (  S.City=‘Taipei‘ (S ⋈ SP ⋈ P)) Joined also by S.city = P.city ! SQL: Algebra:

30 Algebra30 Join with Renaming: Example II (cont’d)  color (  City=‘Taipei‘ (S ⋈ SP ⋈ ρ(city  pcity)P)) Renamed: ((  color ((  pno ((  sno (  City=‘Taipei‘ S)) ⋈ SP)) ⋈ P) Optimized:  color (  S.City=‘Taipei‘ (S ⋈ SP ⋈ P)) Not Correct:

31 Algebra31 Join Example: Query Plan P SSP ⋈  city=‘Taipei‘ S  sno ⋈  color  pno

32 Algebra32 SQL Query Processing  An SQL query is transformed into an algebraic form for query optimization.  Query optimization is the major task of an SQL query proccessor.  select A 1, A 2, …, A m from T 1, T 2, …, T n where C is converted to  A1, A2, …, Am  C (T 1 x T 2 x … x T n ) and then optimized.

33 Algebra33 Query Optimization Guidelines  JOIN operations are associative and commutative  (R ⋈ S) ⋈ T = R ⋈ ( S ⋈ T)  R ⋈ S = S ⋈ R  JOIN and SELECT operations are associative and commutative if the SELECT operations are still applicable.  PROJECTIONs can be performed to remove column values not used.  These properties can be used for query optimization.  The order of operations can be changed to produce smaller intermediate results.

34 Algebra34 Optimization: Example What are the part numbers of the parts supplied by the suppliers located in Taipei?  pno ((  sno (  S.City=‘Taipei‘ S)) ⋈ (  sno,pno SP)) Optimized:  pno (  S.City=‘Taipei‘ (S ⋈ SP)) Not Optimized:  pno ((  S.City=‘Taipei‘ S) ⋈ SP) Improved:


Download ppt "Algebra1 After this lecture, you should be able to:  Understand the differences between SQL (Structured Query Language) and Relational Algebra expressions."

Similar presentations


Ads by Google