Algebra1 After this lecture, you should be able to: Understand the differences between SQL...

Preview:

Citation preview

Algebra 1

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

Algebra 2

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.

Algebra 3

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, SPwhere S.S# = SP.S# and P# = 'P2' ;

Relational Algebra

SName (S ⋈ (p#=‘P2‘ SP ))

Algebra 4

Relational algebra …

Union: A B Intersection: A B Difference: A B B Cartesian Product: S × SP Division: A / B Selection: city=‘Rome‘ S

Projection: SName,Status S Join: S ⋈ SP Renaming ρ(citypcity)

P

Algebra 5

Terms: Relational algebra ~ Database

Relation ~ Table Attribute ~ Column Tuple ~ Row (Record) Relation schema ~ Structure of table Relation Instance ~ Data of table

Algebra 6

Union and Intersection

A B

a 1

b 1

A B

a 2

b 1

c 2

A B

a 1

a 2

b 1

c 2

A B

b 1

P Q

P QP Q

Algebra 7

Union and Intersection: Exercise

A B

a 1

b 1

A B

a 1

c 1

A B

a 1

b 1

c 1

A B

a 1

P Q

P Q = ?

P Q = ?

Algebra 8

Difference (-)

A Ba 1

b 1

A Ba 2

b 1

c 2

A B

a 1

P Q

P B Q

Algebra 9

Difference: Exercise

A B

a 1

b 1

c 1

A B

a 1

c 1

d 1

A B

b 1

P Q

P ̶ Q = ?

Algebra 10

Cartesian Product (×)

A B

a 1

b 1

C D

u 2

v 2

w 2

P Q

A B C D

a 1 u 2

a 1 v 2

a 1 w 2

b 1 u 2

b 1 v 2

b 1 w 2

P × Q = {(p, q)|p P and q Q}

Algebra 11

Cartesian Product: Exercise

A

a

b

C D

u 2

v 2

P Q

P × Q = ?

A C D

a u 2

a v 2

b u 2

b v 2

Algebra 12

Selection ()

A B C

a 1 u

a 2 u

b 2 v

A B C

a 2 u

b 2 v

R

B = 2 R

Algebra 13

Get all the information of the suppliers located in Paris.

select *from swhere 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

Algebra 14

Projection ()

A B C

a 1 u

a 2 u

b 2 v

C A

u a

v b

R

C, A R

Algebra 15

What are the S#’s and statuses of the suppliers?

sno | status ------------ s1 | 20 s2 | 10 s3 | 30

select sno, statusfrom s;

Table S sno | sname | status | city----------------------------- s1 | Smith | 20 | London s2 | Jones | 10 | Paris s3 | Blake | 30 | Paris

sno, status S

Algebra 16

What are the S#’s and statuses of the suppliers located in Paris?

sno | status ------------ s2 | 10 s3 | 30

select sno, statusfrom swhere 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)

Algebra 17

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, weightfrom pwhere color = ‘green’;

pname weight ----- ------ bolt 15 screw 17

Get the names and weights of the green parts.

pname, weight (color = ‘green‘ P)

Algebra 18

Join

A1 B1

a 1

b 2

B1 ≥ B2 (P × Q)

A1 B1 A2 B2

a 1 c 1

b 2 a 2

b 2 b 2

b 2 c 1

P

A2 B2

a 2

b 2

c 1

Q

Algebra 19

Equijoin

A1 B1

a 1

b 2

A1 B1 A2 B2

a 1 c 1

b 2 a 2

b 2 b 2

PA2 B2

a 2

b 2

c 1

Q

B1 = B2 (P × Q)

Algebra 20

Natural Join (⋈ )

A1 B

a 1

b 2

P

A2 B

a 2

b 2

c 1

Q

P ⋈ Q

A1 B A2

a 1 c

b 2 a

b 2 b

Algebra 21

Natural Join: Example

S# SName City

S1 A X

S2 B Y

S# P# QTY

S1 P1 10

S1 P2 20

S2 P1 30

S# SName

City P# QTY

S1 A X P1 10

S1 A X P2 20

S2 B Y P1 30

S SP

S ⋈ SP = ?

Algebra 22

Selection, Join, and Projection: Example

What are the part numbers of the parts supplied by thesuppliers located in Taipei?

select SP.pnofrom S, SPwhere S.city = ‘Taipei’ and S.sno = SP.sno;

pno((S.City=‘Taipei’S)⋈ SP)

SQL:

Algebra:

Algebra 23

Selection, Join, and Projection: Exercise

What are the names of the suppliers who supplied greenparts?

select snamefrom P, SP, Swhere P.color = ‘green’ and P.pno = SP.pno and SP.sno = S.sno;

sname((pno(color=‘green‘P))⋈ SP ⋈ S)

SQL:

Algebra:

Algebra 24

Subtraction Examples

Get the supplier numbers of the suppliers who did notsupply 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

Algebra 25

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)

Algebra 26

Rename (ρ)

A B C D

a 1 u 2

b 1 v 2

c 1 w 2

ΡΡ(B->B2, (B->B2, 33C2)C2)

A B2 C2 D

a 1 U 2

b 1 v 2

c 1 w 2

Algebra 27

Join with Renaming: Example I

Get the pairs of the supplier numbers of the supplierswho supply at least one identical part.

select SPX.sno, SPY.snofrom SP SPX, SP SPYwhere SPX.pno = SPY.pno and SPX.sno < SPY.sno

SQL:

Algebra: snox,snoy(snox < snoy

((ρ(snosnox)sno,pnoSP)⋈

(ρ(snosnoy)sno,pnoSP)

))

Algebra 28

Join with Renaming: Example IIWhat are the colors of the parts supplied by the suppliers located in Taipei?

Table S Table Psno | 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

Algebra 29

Join with Renaming: Example IIWhat are the colors of the parts supplied by the suppliers located in Taipei?

select colorFrom S, SP, Pwhere 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 !Joined also by S.city = P.city !

SQL:

Algebra:

Algebra 30

Join with Renaming: Example II (cont’d)

color(City=‘Taipei‘

(S ⋈ SP ⋈ ρ(citypcity)P))

Renamed:

color((((pno((sno(City=‘Taipei‘S)) ⋈ SP))⋈ P)

Optimized:

color(S.City=‘Taipei‘(S ⋈ SP ⋈ P))

Not Correct:

Algebra 31

Join Example: Query Plan

PPSS SPSP

city=‘Taipei‘S

sno

color

pno

Algebra 32

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 A1, A2, … , Am

from T1, T2, … , Tn

where C

is converted to

A1, A2, …, Am C (T1 x T2 x … x Tn)

and then optimized.

Algebra 33

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.

Algebra 34

Optimization: Example What are the part numbers of the parts supplied by thesuppliers located in Taipei?

pno((sno(S.City=‘Taipei‘S))⋈(sno,pnoSP))

Optimized:

pno (S.City=‘Taipei‘(S ⋈ SP))

Not Optimized:

pno ((S.City=‘Taipei‘S)⋈ SP)

Improved:

Recommended