Download presentation
Presentation is loading. Please wait.
Published byAdrian Stevens Modified over 9 years ago
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:
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.