72
Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014 Mohammad Hammoud

Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

  • Upload
    vandien

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Database Applications (15-415)

Relational Calculus Lecture 5, January 27, 2014

Mohammad Hammoud

Page 2: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Today… Last Session:

Relational Algebra

Today’s Session:

Relational algebra

The division operator and summary

Relational calculus

Tuple relational calculus

Domain relational calculus

Announcement:

PS2 will be posted by tonight. It is due on Feb 06, 2014 by midnight

Page 3: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Outline

The Division Operator and Summary of Relational Operators

Tuple Relational Calculus

Domain Relational Calculus

Page 4: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

The Division Operation Division:

Not supported as a primitive operator, but useful for expressing queries like:

Let A have 2 fields, x and y; B has only field y:

A/B contains all x tuples (sailors) such that for every y tuple (boat) in B, there is an xy tuple in A

Or: If the set of y values (boats) associated with an x value (sailor) in A contains all y values in B, then x value is in A/B

Formally: A/B =

In general, x and y can be any lists of fields; y is the list of fields in B, and x

y is the list of fields in A

SR

Find sailors who have reserved all boats

x x y A y B| ,

Page 5: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples of Divisions

sno pnos1 p1s1 p2s1 p3s1 p4s2 p1s2 p2s3 p2

s4 p2

s4 p4

pnop2

pnop2p4

pnop1p2p4

snos1s2s3s4

snos1s4

snos1

A

B1

B2

B3 A/B1

A/B2 A/B3

Page 6: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Expressing A/B Using Basic Operators

Division can be derived from the fundamental operators

Idea: For A/B, compute all x values that are not `disqualified’ by some y value in B

x value is disqualified if by attaching y value from B, we obtain an xy tuple that is “not” in A

Disqualified x values:

A/B:

x x A B A(( ( ) ) )

x A( ) all disqualified tuples

Page 7: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

A Query Example

Find the names of sailors who’ve reserved all boats

How can we find sailors who’ve reserved all ‘Interlake’ boats?

( , (,

Re ) / ( ))Tempsidssid bid

servesbid

Boats

sname Tempsids Sailors( )

Page 8: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Relational Algebra: Summary Operators (with notations):

1. Selection ( ): selects a subset of rows from a relation

2. Projection ( ): deletes unwanted columns from a relation

3. Cross-product ( ): allows combining two relations

4. Set-difference ( ): retains tuples which are in relation 1, “but not” in relation 2

5. Union ( ∪ ): retains tuples which are in “either” relation 1 “or” relation 2, “or in both”

Page 9: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Relational Algebra: Summary Operators (with notations):

6. Intersection ( ∩ ): retains tuples which are in relation 1 “and” in relation 2

7. Join ( ): allows combining two relations according to a specific condition (e.g., theta, equi and natural joins)

8. Division ( ÷ ): generates the largest instance Q such that Q ×B ⊆A when computing A/B

9. Renaming ( ): returns an instance of a new relation with some fields being potentially “renamed”

Page 10: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Outline

The Division Operator and Summary of Relational Operators

Tuple Relational Calculus

Domain Relational Calculus

Page 11: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Overview - Detailed

Tuple Relational Calculus (TRC)

Why?

Details

Examples

Equivalence with relational algebra

‘Safety’ of expressions

Page 12: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Motivation

Question: What is the weakness of relational algebra?

Answer: Procedural

It describes the steps for computing the desired answer (i.e., ‘how’)

Still useful, especially for query optimization

Page 13: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Relational Calculus (in General)

It describes ’what’ we want (not how)

It has two equivalent flavors, ‘tuple’ and ‘domain’ calculus

It is the basis for SQL and Query By Example (QBE)

It is useful for proofs (see query optimization, later)

Page 14: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Tuple Relational Calculus (TRC)

RTC is a subset of ‘first order logic’:

Examples:

)}(|{ tPt

}|{ STUDENTtt

Give me tuples ‘t’, satisfying predicate ‘P’

Find all students:

Find all sailors with a rating above 7:

}7.|{ ratingtSailorstt

A “formula” that describes t

Page 15: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Syntax of TRC Queries

The allowed symbols:

Quantifiers:

),(,

,,,,,,

,,,

,

Page 16: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Syntax of TRC Queries

‘Atomic formulas’:

attrsopattrt

constopattrt

TABLEt

..

.

Where op is an operator in the set {<, >, =, ≤, ≥, ≠}

Page 17: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Syntax of TRC Queries

A ‘formula’ is:

Any atomic formula

If P1 and P2 are formulas, so are

If P(s) is a formula, so are

21;21;21;2;1 PPPPPPPP

))((

))((

sPs

sPs

Page 18: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Basic Rules

Reminders:

De Morgan:

Implication:

Double Negation:

))(())(( sPTABLEssPTABLEs

)21(21 PPPP

2121 PPPP

‘every human is mortal : no human is immortal’

Page 19: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

A Mini University Database

STUDENT

Ssn Name Address

123 smith main str

234 jones QF ave

CLASS

c-id c-name units

15-413 s.e. 2

15-412 o.s. 2

TAKES

SSN c-id grade

123 15-413 A

234 15-413 B

Page 20: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

Find all student records

}|{ STUDENTtt

output

tuple of type ‘STUDENT’

Page 21: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

Find the student record with ssn=123

Page 22: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

}123.|{ ssntSTUDENTtt

This is equivalent to the ‘Selection’ operator in Relational Algebra!

Find the student record with ssn=123

Page 23: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

Find the name of the student with ssn=123

}123.|{ ssntSTUDENTtt

Will this work?

Page 24: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

Find the name of the student with ssn=123

)}..

123.(|{

namesnamet

ssnsSTUDENTst

‘t’ has only one column

This is equivalent to the ‘Projection’ operator in Relational Algebra!

Page 25: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

Get records of part time or full time students*

* Assume we maintain tables for PT_STUDENT and FT_STUDENT in our Mini University DB

}_

_|{

STUDENTPTt

STUDENTFTtt

This is equivalent to the ‘Union’ operator in Relational Algebra!

Page 26: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

• Find students that are not staff*

}

|{

STAFFt

STUDENTtt

* Assume we maintain a table for STAFF in our Mini University DB and that STUDENT and STAFF are union-compatible

This is equivalent to the ‘Difference’ operator in Relational Algebra!

Page 27: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Cartesian Product: A Reminder

Assume MALE and FEMALE dog tables as follows:

MALE

name

spike

spot

FEMALE

name

lassie

shiba

x = M.name F.name

spike lassie

spike shiba

spot lassie

This gives all possible couples!

Page 28: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples (Cont’d)

Find all the pairs of (male, female) dogs

)}..

..(

|{

namefnameft

namemnamemt

FEMALEf

MALEmt

This is equivalent to the ‘Cartesian Product’ operator in Relational Algebra!

Page 29: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More Examples

Find the names of students taking 15-415

STUDENT

Ssn Name Address

123 smith main str

234 jones QF ave

CLASS

c-id c-name units

15-413 s.e. 2

15-412 o.s. 2

TAKES

SSN c-id grade

123 15-413 A

234 15-413 B

2-way Join!

Page 30: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More Examples

Find the names of students taking 15-415

)}41515.

..

..(

|{

idce

namesnamet

ssnessnsTAKESe

STUDENTst

Page 31: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More Examples

Find the names of students taking 15-415

)}41515.

..

..(

|{

idce

namesnamet

ssnessnsTAKESe

STUDENTst

projection

selection

join

Page 32: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More Examples

Find the names of students taking a 2-unit course

STUDENT

Ssn Name Address

123 smith main str

234 jones QF ave

CLASS

c-id c-name units

15-413 s.e. 2

15-412 o.s. 2

TAKES

SSN c-id grade

123 15-413 A

234 15-413 B

3-way Join!

Page 33: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More Examples

Find the names of students taking a 2-unit course

)}2.

..

..

..(

|{

unitsc

namesnamet

idccidce

ssnessnsCLASSc

TAKESeSTUDENTst

selection

projection

join

What is the equivalence of this in Relational Algebra?

Page 34: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More on Joins

Assume a Parent-Children (PC) table instance as follows:

Who are Tom’s grandparent(s)? (this is a self-join)

PC

p-id c-id

Mary Tom

Peter Mary

John Tom

PC

p-id c-id

Mary Tom

Peter Mary

John Tom

Page 35: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More Join Examples

Find Tom’s grandparent(s)

)}"".

..

..(

|{

Tomidcq

idptidpp

idpqidcp

PCqPCpt

What is the equivalence of this in Relational Algebra?

Page 36: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Harder Examples: DIVISION

Find suppliers that shipped all the bad parts

SHIPMENT

s# p#

s1 p1

s2 p1

s1 p2

s3 p1

s5 p3

BAD_P

p#

p1

p2

BAD_S

s#

s1

Page 37: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Harder Examples: DIVISION

Find suppliers that shipped all the bad parts

)))}#.#.

#.#.

(

(_(|{

ppps

ssst

SHIPMENTs

PBADppt

What is the equivalence of this in Relational Algebra?

Page 38: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

General Patterns

There are three equivalent versions:

1) If it is bad, he shipped it

2) Either it was good, or he shipped it

3) There is no bad shipment that he missed

))}((_(|{ tPPBADppt

))}((_(|{ tPPBADppt

))}((_(|{ tPPBADppt

Page 39: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More on Division

Find (SSNs of) students that take all the courses that ssn=123 does (and maybe even more)

One way to think about this: Find students ‘s’ so that if 123 takes a course => so does ‘s’

Page 40: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More on Division

Find (SSNs of) students that take all the courses that ssn=123 does (and maybe even more)

)}

)..1

..1

(1

)123.((|{

ssnossnt

idctidct

TAKESt

ssntTAKEStto

Page 41: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

‘Proof’ of Equivalence

Relational Algebra <-> TRC

But…

Page 42: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Safety of Expressions

What about?

It has infinite output!!

Instead, always use:

}|{ STUDENTtt

}....|{ TABLESOMEtt

Page 43: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Outline

The Division Operator and Summary of Relational Operators

Tuple Relational Calculus

Domain Relational Calculus

Page 44: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Overview - Detailed

Domain Relational Calculus (DRC)

Why?

Details

Examples

Equivalence with TRC and relational algebra

‘Safety’ of expressions

Page 45: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Domain Relational Calculus (DRC)

Question: why?

Answer: slightly easier than TRC, although equivalent- basis for QBE

Idea: “domain” variables instead of “tuple” variables

Example: ‘find STUDENT record with ssn=123’

}123,,|,,{ sSTUDENTansans

Page 46: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Syntax of DRC Queries

The allowed symbols are:

Quantifiers:

),(,

,,,,,,

,,,

,

Exactly like

TRC!

Page 47: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Syntax of DRC Queries

But: domain (= column) variables, as opposed to tuple variables:

STUDENTans ,,

ssn name address

Page 48: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Reminder: Our Mini University DB

STUDENT

Ssn Name Address

123 smith main str

234 jones QF ave

CLASS

c-id c-name units

15-413 s.e. 2

15-412 o.s. 2

TAKES

SSN c-id grade

123 15-413 A

234 15-413 B

Page 49: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

Find all student records

},,|,,{ STUDENTansans

}|{ STUDENTtt

What is the equivalence of this in TRC?

Page 50: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

#50

Examples

Find the student record with ssn=123

}123.|{ ssntSTUDENTttIn TRC:

},,123|,,123{ STUDENTanan

OR:

}123,,|,,{ sSTUDENTansans

This is equivalent to the ‘Selection’ operator in Relational Algebra!

Page 51: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

},,123|{ STUDENTann

Find the name of student with ssn=123

)}..

123.(|{

namesnamet

ssnsSTUDENTst

In TRC:

Page 52: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

}),,123(|{ STUDENTanan

need to ‘bind’ “a”

)}..

123.(|{

namesnamet

ssnsSTUDENTst

In TRC:

Find the name of student with ssn=123

This is equivalent to the ‘Projection’ operator in Relational Algebra!

Page 53: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

Get records of both PT and FT students

}_

_|{

STUDENTPTt

STUDENTFTtt

In TRC:

}_,,

_,,|,,{

STUDENTPTans

STUDENTFTansans

This is equivalent to the ‘Union’ operator in Relational Algebra!

Page 54: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

Find the students that are not staff

In TRC:

}

|{

STAFFt

STUDENTtt

},,

,,|,,{

STAFFans

STUDENTansans

This is equivalent to the ‘Difference’ operator in Relational Algebra!

Page 55: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

Find all the pairs of (male, female)

)}..

..(

|{

namefnameft

namemnamemt

FEMALEf

MALEmt

In TRC:

{ m, f | m MALE

f FEMALE }

This is equivalent to the ‘Cartesian Product’ operator in Relational Algebra!

Page 56: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Examples

Find the names of students taking 15-415

STUDENT

Ssn Name Address

123 smith main str

234 jones QF ave

CLASS

c-id c-name units

15-413 s.e. 2

15-412 o.s. 2

TAKES

SSN c-id grade

123 15-413 A

234 15-413 B

2-way Join!

Page 57: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

#57

Examples

Find the names of students taking 15-415

)}41515.

..

..(

|{

idce

namesnamet

ssnessnsTAKESe

STUDENTstIn TRC:

)},41515,

,,(|{

TAKESgs

STUDENTansgasn

This is equivalent to the ‘Join’ operator in Relational Algebra!

Page 58: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

A Sneak Preview of QBE

STUDENT

Ssn Name Address

_x P.

TAKES

SSN c-id grade

_x 15-415

Very user friendly

Heavily based on RDC

Very similar to MS Access interface

)},41515,

,,(|{

TAKESgs

STUDENTansgasn

Page 59: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More Examples

Find the names of students taking a 2-unit course

STUDENT

Ssn Name Address

123 smith main str

234 jones QF ave

CLASS

c-id c-name units

15-413 s.e. 2

15-412 o.s. 2

TAKES

SSN c-id grade

123 15-413 A

234 15-413 B

3-way Join!

Page 60: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More Examples

• Find the names of students taking a 2-unit course

)}2.

..

..

..(

|{

unitsc

namesnamet

idccidce

ssnessnsCLASSc

TAKESeSTUDENTst

selection

projection

join

In TRC:

Page 61: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More Examples

• Find the names of students taking a 2-unit course

}2,,

,,

,,

.............|{

CLASScnc

TAKESgcs

STUDENTans

n

In DRC:

Page 62: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More Examples

• Find the names of students taking a 2-unit course

)}

2,,

,,

,,

(,,,,|{

CLASScnc

TAKESgcs

STUDENTans

cngcasn

In DRC:

Easier than TRC!

Page 63: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Even More Examples

Find Tom’s grandparent(s)

PC

p-id c-id

Mary Tom

Peter Mary

John Tom

PC

p-id c-id

Mary Tom

Peter Mary

John Tom

)}"".

..

..(

|{

Tomidcq

idptidpp

idpqidcp

PCqPCpt

)}"",

,(|{

PCTomp

PCpgpg

In TRC: In DRC:

Page 64: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Harder Examples: DIVISION

Find suppliers that shipped all the bad parts

SHIPMENT

s# p#

s1 p1

s2 p1

s1 p2

s3 p1

s5 p3

BAD_P

p#

p1

p2

BAD_S

s#

s1

Page 65: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Harder Examples: DIVISION

• Find suppliers that shipped all the bad parts

)))}#.#.

#.#.

(

(_(|{

ppps

ssst

SHIPMENTs

PBADppt

)},

_(|{

SHIPMENTps

PBADpps

In TRC: In DRC:

Page 66: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More on Division

Find (SSNs of) students that take all the courses that ssn=123 does (and maybe even more)

)}

)..1

..1

(1

)123.((|{

ssnossnt

idctidct

TAKESt

ssntTAKEStto

In TRC:

Page 67: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

More on Division

Find (SSNs of) students that take all the courses that ssn=123 does (and maybe even more)

In DRC:

))})',,('

),,123((|{

TAKESgcsg

TAKESgcgcs

Page 68: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

‘Proof’ of Equivalence

Relational Algebra <-> Domain Relational Calculus <-> Tuple Relational Calculus

But…

Page 69: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Safety of Expressions

Similar to TRC

FORBIDDEN:

{ s,n,a | s,n,a STUDENT}

Page 70: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Summary

The relational model has rigorously defined query languages — simple and powerful

Relational algebra is more operational/procedural

Useful for internal representation of query evaluation plans

Relational calculus is declarative

Users define queries in terms of what they want, not in terms of how to compute them

Page 71: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Summary

Several ways of expressing a given query

A query optimizer should choose the most efficient version

Algebra and “safe” calculus have same expressive power

leads to the notion of relational completeness

Page 72: Database Applications (15-415) - Carnegie Mellon Universitymhhammou/15415-s14/lectures/Lecture5... · Database Applications (15-415) Relational Calculus Lecture 5, January 27, 2014

Next Class

SQL- Part I