Top Banner
Faloutsos CMU - 15-415 1 CMU SCS Carnegie Mellon Univ. Dept. of Computer Science 15-415 - Database Applications Lecture#6: Relational calculus CMU SCS Faloutsos CMU SCS 15-415 #2 General Overview - rel. model history concepts Formal query languages relational algebra rel. tuple calculus rel. domain calculus CMU SCS Faloutsos CMU SCS 15-415 #3 Overview - detailed rel. tuple calculus why? details examples equivalence with rel. algebra – more examples; ‘safety’ of expressions re. domain calculus + QBE CMU SCS Faloutsos CMU SCS 15-415 #4 Motivation Q: weakness of rel. algebra? A: procedural – describes the steps (ie., ‘how’) (still useful, for query optimization) CMU SCS Faloutsos CMU SCS 15-415 #5 Solution: rel. calculus describes what we want – two equivalent flavors: ‘tuple’ and ‘domain’ calculus basis for SQL and QBE, resp. CMU SCS Faloutsos CMU SCS 15-415 #6 Rel. tuple calculus (RTC) first order logic )} ( | { t P t } | { STUDENT t t ‘Give me tuples ‘t’, satisfying predicate P - eg:
17

Relational calculus - andrew.cmu.ed

Feb 07, 2023

Download

Documents

Khang Minh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

1

CMU SCS

Carnegie Mellon Univ.

Dept. of Computer Science

15-415 - Database Applications

Lecture#6: Relational calculus

CMU SCS

Faloutsos CMU SCS 15-415 #2

General Overview - rel. model

• history

• concepts

• Formal query languages

– relational algebra

– rel. tuple calculus

– rel. domain calculus

CMU SCS

Faloutsos CMU SCS 15-415 #3

Overview - detailed

• rel. tuple calculus

– why?

– details

– examples

– equivalence with rel. algebra

– more examples; ‘safety’ of expressions

• re. domain calculus + QBE

CMU SCS

Faloutsos CMU SCS 15-415 #4

Motivation

• Q: weakness of rel. algebra?

• A: procedural

– describes the steps (ie., ‘how’)

– (still useful, for query optimization)

CMU SCS

Faloutsos CMU SCS 15-415 #5

Solution: rel. calculus

– describes what we want

– two equivalent flavors: ‘tuple’ and ‘domain’

calculus

– basis for SQL and QBE, resp.

CMU SCS

Faloutsos CMU SCS 15-415 #6

Rel. tuple calculus (RTC)

• first order logic

)}(|{ tPt

}|{ STUDENTtt

‘Give me tuples ‘t’, satisfying predicate P - eg:

Page 2: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

2

CMU SCS

Faloutsos CMU SCS 15-415 #7

Details

• symbols allowed:

• quantifiers

),(,

,,,,,,

,,,

,

CMU SCS

Faloutsos CMU SCS 15-415 #8

Specifically

• Atom

'..

.

attrsattrt

constattrt

TABLEt

CMU SCS

Faloutsos CMU SCS 15-415 #9

Specifically

• Formula:

– atom

– if P1, P2 are formulas, so are

– if P(s) is a formula, so are

...21;21 PPPP

))((

))((

sPs

sPs

CMU SCS

Faloutsos CMU SCS 15-415 #10

Specifically

• Reminders:

– DeMorgan

– implication:

– double negation:

))(())(( sPTABLEssPTABLEs

)21(21 PPPP

2121 PPPP

„every human is mortal : no human is immortal‟

CMU SCS

Faloutsos CMU SCS 15-415 #11

Reminder: our Mini-U db

STUDENT

Ssn Name Address

123 smith main str

234 jones forbes 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

CMU SCS

Faloutsos CMU SCS 15-415 #12

Examples

• find all student records

}|{ STUDENTtt

output

tuple of type „STUDENT‟

Page 3: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

3

CMU SCS

Faloutsos CMU SCS 15-415 #13

Examples

• (selection) find student record with ssn=123

CMU SCS

Faloutsos CMU SCS 15-415 #14

Examples

• (selection) find student record with ssn=123

}123.|{ ssntSTUDENTtt

CMU SCS

Faloutsos CMU SCS 15-415 #15

Examples

• (projection) find name of student with

ssn=123

}123.|{ ssntSTUDENTtt

CMU SCS

Faloutsos CMU SCS 15-415 #16

Examples

• (projection) find name of student with

ssn=123

)}..

123.(|{

namesnamet

ssnsSTUDENTst

„t‟ has only one column

CMU SCS

Faloutsos CMU SCS 15-415 #17

‘Tracing’

)}..

123.(|{

namesnamet

ssnsSTUDENTst

STUDENT

Ssn Name Address

123 smith main str

234 jones forbes aves

Name

aaaa

….

jones

zzzz

t

CMU SCS

Faloutsos CMU SCS 15-415 #18

Examples cont’d

• (union) get records of both PT and FT

students

Page 4: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

4

CMU SCS

Faloutsos CMU SCS 15-415 #19

Examples cont’d

• (union) get records of both PT and FT

students

}_

_|{

STUDENTPTt

STUDENTFTtt

CMU SCS

Faloutsos CMU SCS 15-415 #20

Examples

• difference: find students that are not staff

(assuming that STUDENT and STAFF are

union-compatible)

CMU SCS

Faloutsos CMU SCS 15-415 #21

Examples

• difference: find students that are not staff

}

|{

STAFFt

STUDENTtt

CMU SCS

Faloutsos CMU SCS 15-415 #22

Cartesian product

• eg., dog-breeding: MALE x FEMALE

• gives all possible couples

MALE

name

spike

spot

FEMALE

name

lassie

shiba

x = M.name F.name

spike lassie

spike shiba

spot lassie

spot shiba

CMU SCS

Faloutsos CMU SCS 15-415 #23

Cartesian product

• find all the pairs of (male, female)

}..

..

|{

namefnameft

namemnamemt

FEMALEf

MALEmt

CMU SCS

Faloutsos CMU SCS 15-415 #24

‘Proof’ of equivalence

• rel. algebra <-> rel. tuple calculus

Page 5: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

5

CMU SCS

Faloutsos CMU SCS 15-415 #25

Overview - detailed

• rel. tuple calculus

– why?

– details

– examples

– equivalence with rel. algebra

– more examples; ‘safety’ of expressions

• re. domain calculus + QBE

CMU SCS

Faloutsos CMU SCS 15-415 #26

More examples

• join: find names of students taking 15-415

CMU SCS

Faloutsos CMU SCS 15-415 #27

Reminder: our Mini-U db

STUDENT

Ssn Name Address

123 smith main str

234 jones forbes 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

CMU SCS

Faloutsos CMU SCS 15-415 #28

More examples

• join: find names of students taking 15-415

)}41515.

..

..(

|{

idce

namesnamet

ssnessnsTAKESe

STUDENTst

CMU SCS

Faloutsos CMU SCS 15-415 #29

More examples

• join: find names of students taking 15-415

)}41515.

..

..(

|{

idce

namesnamet

ssnessnsTAKESe

STUDENTst

projection

selection

join

CMU SCS

Faloutsos CMU SCS 15-415 #30

More examples

• 3-way join: find names of students taking a

2-unit course

Page 6: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

6

CMU SCS

Faloutsos CMU SCS 15-415 #31

Reminder: our Mini-U db

STUDENT

Ssn Name Address

123 smith main str

234 jones forbes 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

CMU SCS

Faloutsos CMU SCS 15-415 #32

More examples

• 3-way join: find names of students taking a

2-unit course

)}2.

..

..

..(

|{

unitsc

namesnamet

idccidce

ssnessnsCLASSc

TAKESeSTUDENTst

selection

projection

join

CMU SCS

Faloutsos CMU SCS 15-415 #33

More examples

• 3-way join: find names of students taking a

2-unit course - in rel. algebra??

))(( 2 CLASSTAKESSTUDENTunitsname

CMU SCS

Faloutsos CMU SCS 15-415 #34

Even more examples:

• self -joins: 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

CMU SCS

Faloutsos CMU SCS 15-415 #35

Even more examples:

• self -joins: find Tom’s grandparent(s)

)}"".

..

..(

|{

Tomidcq

idptidpp

idpqidcp

PCqPCpt

CMU SCS

Faloutsos CMU SCS 15-415 #36

Hard examples: DIVISION

• find suppliers that shipped all the ABOMB

parts

SHIPMENT

s# p#

s1 p1

s2 p1

s1 p2

s3 p1

s5 p3

ABOMB

p#

p1

p2

BAD_S

s#

s1

Page 7: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

7

CMU SCS

Faloutsos CMU SCS 15-415 #37

Hard examples: DIVISION

• find suppliers that shipped all the ABOMB

parts

)))}#.#.

#.#.

(

((|{

ppps

ssst

SHIPMENTs

ABOMBppt

CMU SCS

Faloutsos CMU SCS 15-415 #38

General pattern

• three equivalent versions:

– 1) if it’s bad, he shipped it

– 2)either it was good, or he shipped it

– 3) there is no bad shipment that he missed

))}(((|{ tPABOMBppt

))}(((|{ tPABOMBppt

))}(((|{ tPABOMBppt

CMU SCS

Faloutsos CMU SCS 15-415 #39

a b is the same as a b

• If a is true, b must be

true for the

implication to be true.

If a is true and b is

false, the implication

evaluates to false.

• If a is not true, we

don’t care about b, the

expression is always

true.

a T

F

T F

b

T

T T

F

CMU SCS

Faloutsos CMU SCS 15-415 #40

More on division

• find (SSNs of) students that take all the

courses that ssn=123 does (and maybe even

more)

find students ‘s’ so that

if 123 takes a course => so does ‘s’

CMU SCS

Faloutsos CMU SCS 15-415 #41

More on division

• find students that take all the courses that

ssn=123 does (and maybe even more)

)}

)..1

..1

(1

)123.((|{

ssnossnt

idctidct

TAKESt

ssntTAKEStto

CMU SCS

Faloutsos CMU SCS 15-415 #42

Safety of expressions

• FORBIDDEN:

It has infinite output!!

• Instead, always use

}|{ STUDENTtt

}....|{ TABLESOMEtt

Page 8: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

8

CMU SCS

Faloutsos CMU SCS 15-415 #43

Overview - conclusions

• rel. tuple calculus: DECLARATIVE

– dfn

– details

– equivalence to rel. algebra

• rel. domain calculus + QBE

CMU SCS

Faloutsos CMU SCS 15-415 #44

General Overview

• relational model

• Formal query languages

– relational algebra

– rel. tuple calculus

– rel. domain calculus

CMU SCS

Faloutsos CMU SCS 15-415 #45

Overview - detailed

• rel. tuple calculus

– dfn

– details

– equivalence to rel. algebra

• rel. domain calculus + QBE

CMU SCS

Faloutsos CMU SCS 15-415 #46

Rel. domain calculus (RDC)

• Q: why?

• A: slightly easier than RTC, although

equivalent - basis for QBE.

• idea: domain variables (w/ F.O.L.) - eg:

• ‘find STUDENT record with ssn=123’

CMU SCS

Faloutsos CMU SCS 15-415 #47

Rel. Dom. Calculus

}123,,|,,{ sSTUDENTansans

• find STUDENT record with ssn=123’

CMU SCS

Faloutsos CMU SCS 15-415 #48

Details

• Like R.T.C - symbols allowed:

• quantifiers

),(,

,,,,,,

,,,

,

Page 9: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

9

CMU SCS

Faloutsos CMU SCS 15-415 #49

Details

• but: domain (= column) variables, as

opposed to tuple variables, eg:

STUDENTans ,,

ssn name address

CMU SCS

Faloutsos CMU SCS 15-415 #50

Reminder: our Mini-U db

STUDENT

Ssn Name Address

123 smith main str

234 jones forbes 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

CMU SCS

Faloutsos CMU SCS 15-415 #51

Examples

• find all student records

}|{ STUDENTtt

},,|,,{ STUDENTansans

RTC:

CMU SCS

Faloutsos CMU SCS 15-415 #52

Examples

• (selection) find student record with ssn=123

CMU SCS

Faloutsos CMU SCS 15-415 #53

Examples

• (selection) find student record with ssn=123

}123.|{ ssntSTUDENTttRTC:

},,123|,,123{ STUDENTanan

or

}123,,|,,{ sSTUDENTansans

CMU SCS

Faloutsos CMU SCS 15-415 #54

Examples

• (projection) find name of student with

ssn=123

},,123|{ STUDENTann

Page 10: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

10

CMU SCS

Faloutsos CMU SCS 15-415 #55

Examples

• (projection) find name of student with

ssn=123

}),,123(|{ STUDENTanan

need to „restrict‟ “a”

)}..

123.(|{

namesnamet

ssnsSTUDENTst

RTC:

CMU SCS

Faloutsos CMU SCS 15-415 #56

Examples cont’d

• (union) get records of both PT and FT

students

}_

_|{

STUDENTPTt

STUDENTFTtt

RTC:

CMU SCS

Faloutsos CMU SCS 15-415 #57

Examples cont’d

• (union) get records of both PT and FT

students

}_,,

_,,|,,{

STUDENTPTans

STUDENTFTansans

CMU SCS

Faloutsos CMU SCS 15-415 #58

Examples

• difference: find students that are not staff

RTC:

}

|{

STAFFt

STUDENTtt

CMU SCS

Faloutsos CMU SCS 15-415 #59

Examples

• difference: find students that are not staff

},,

,,|,,{

STAFFans

STUDENTansans

CMU SCS

Faloutsos CMU SCS 15-415 #60

Cartesian product

• eg., dog-breeding: MALE x FEMALE

• gives all possible couples

MALE

name

spike

spot

FEMALE

name

lassie

shiba

x = M.name F.name

spike lassie

spike shiba

spot lassie

spot shiba

Page 11: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

11

CMU SCS

Faloutsos CMU SCS 15-415 #61

Cartesian product

• find all the pairs of (male, female) - RTC:

}..

..

|{

namefnameft

namemnamemt

FEMALEf

MALEmt

CMU SCS

Faloutsos CMU SCS 15-415 #62

Cartesian product

• find all the pairs of (male, female) - RDC:

}

|,{

FEMALEf

MALEmfm

CMU SCS

Faloutsos CMU SCS 15-415 #63

‘Proof’ of equivalence

• rel. algebra <-> rel. domain calculus

<-> rel. tuple calculus

CMU SCS

Faloutsos CMU SCS 15-415 #64

Overview - detailed

• rel. domain calculus

– why?

– details

– examples

– equivalence with rel. algebra

– more examples; ‘safety’ of expressions

CMU SCS

Faloutsos CMU SCS 15-415 #65

More examples

• join: find names of students taking 15-415

CMU SCS

Faloutsos CMU SCS 15-415 #66

Reminder: our Mini-U db

STUDENT

Ssn Name Address

123 smith main str

234 jones forbes 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 12: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

12

CMU SCS

Faloutsos CMU SCS 15-415 #67

More examples

• join: find names of students taking 15-415 -

in RTC

)}41515.

..

..(

|{

idce

namesnamet

ssnessnsTAKESe

STUDENTst

CMU SCS

Faloutsos CMU SCS 15-415 #68

More examples

• join: find names of students taking 15-415 -

in RDC

)},41515,

,,(|{

TAKESgs

STUDENTansgasn

CMU SCS

Faloutsos CMU SCS 15-415 #69

Sneak preview of QBE:

)},41515,

,,(|{

TAKESgs

STUDENTansgasn

STUDENT

Ssn Name Address

_x P.

TAKES

SSN c-id grade

_x 15-415

CMU SCS

Faloutsos CMU SCS 15-415 #70

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

CMU SCS

Faloutsos CMU SCS 15-415 #71

More examples

• 3-way join: find names of students taking a

2-unit course - in RTC:

)}2.

..

..

..(

|{

unitsc

namesnamet

idccidce

ssnessnsCLASSc

TAKESeSTUDENTst

selection

projection

join

CMU SCS

Faloutsos CMU SCS 15-415 #72

Reminder: our Mini-U db

STUDENT

Ssn Name Address

123 smith main str

234 jones forbes 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

_x .P

_x _y

_y 2

Page 13: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

13

CMU SCS

Faloutsos CMU SCS 15-415 #73

More examples

• 3-way join: find names of students taking a

2-unit course

}2,,

,,

,,

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

CLASScnc

TAKESgcs

STUDENTans

n

CMU SCS

Faloutsos CMU SCS 15-415 #74

More examples

• 3-way join: find names of students taking a

2-unit course

)}

2,,

,,

,,

(,,,,|{

CLASScnc

TAKESgcs

STUDENTans

cngcasn

CMU SCS

Faloutsos CMU SCS 15-415 #75

Even more examples:

• self -joins: 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

CMU SCS

Faloutsos CMU SCS 15-415 #76

Even more examples:

• self -joins: find Tom’s grandparent(s)

)}"".

..

..(

|{

Tomidcq

idptidpp

idpqidcp

PCqPCpt

CMU SCS

Faloutsos CMU SCS 15-415 #77

Even more examples:

• self -joins: find Tom’s grandparent(s)

)}"".

..

..(

|{

Tomidcq

idptidpp

idpqidcp

PCqPCpt

)}"",

,(|{

PCTomp

PCpgpg

CMU SCS

Faloutsos CMU SCS 15-415 #78

Even more examples:

• self -joins: find Tom’s grandparent(s)

)}"",

,(|{

PCTomp

PCpgpg

Page 14: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

14

CMU SCS

Faloutsos CMU SCS 15-415 #79

Hard examples: DIVISION

• find suppliers that shipped all the ABOMB

parts

SHIPMENT

s# p#

s1 p1

s2 p1

s1 p2

s3 p1

s5 p3

ABOMB

p#

p1

p2

BAD_S

s#

s1

CMU SCS

Faloutsos CMU SCS 15-415 #80

Hard examples: DIVISION

• find suppliers that shipped all the ABOMB

parts

)))}#.#.

#.#.

(

((|{

ppps

ssst

SHIPMENTs

ABOMBppt

CMU SCS

Faloutsos CMU SCS 15-415 #81

Hard examples: DIVISION

• find suppliers that shipped all the ABOMB

parts

)},

(|{

SHIPMENTps

ABOMBpps

)))}#.#.

#.#.

(

((|{

ppps

ssst

SHIPMENTs

ABOMBppt

CMU SCS

Faloutsos CMU SCS 15-415 #82

More on division

• find students that take all the courses that

ssn=123 does (and maybe even more)

)}

)..1

..1

(1

)123.((|{

ssnossnt

idctidct

TAKESt

ssntTAKEStto

CMU SCS

Faloutsos CMU SCS 15-415 #83

More on division

• find students that take all the courses that

ssn=123 does (and maybe even more)

))})',,('

),,123((|{

TAKESgcsg

TAKESgcgcs

CMU SCS

Faloutsos CMU SCS 15-415 #84

Safety of expressions

• similar to RTC

• FORBIDDEN:

},,|,,{ STUDENTansans

Page 15: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

15

CMU SCS

Faloutsos CMU SCS 15-415 #85

Overview - detailed

• rel. domain calculus + QBE

– dfn

– details

– equivalence to rel. algebra

CMU SCS

Faloutsos CMU SCS 15-415 #86

Fun Drill:Your turn …

• Schema:

Movie(title, year, studioName)

ActsIn(movieTitle, starName)

Star(name, gender, birthdate, salary)

CMU SCS

Faloutsos CMU SCS 15-415 #87

Your turn …

• Queries to write in TRC:

– Find all movies by Paramount studio

– … movies starring Kevin Bacon

– Find stars who have been in a film w/Kevin Bacon

– Stars within six degrees of Kevin Bacon*

– Stars connected to K. Bacon via any number of

films**

* Try two degrees for starters ** Good luck with this one!

CMU SCS

Faloutsos CMU SCS 15-415 #88

Answers …

• Find all movies by Paramount studio

{M | MMovie M.studioName = ‘Paramount’}

CMU SCS

Faloutsos CMU SCS 15-415 #89

Answers …

• Movies starring Kevin Bacon

{M | MMovie AActsIn(A.movieTitle = M.title A.starName = ‘Bacon’))}

CMU SCS

Faloutsos CMU SCS 15-415 #90

Answers …

• Stars who have been in a film w/Kevin

Bacon

{S | SStar AActsIn(A.starName = S.name A2ActsIn(A2.movieTitle = A.movieTitle A2.starName = ‘Bacon’))}

movie star A2:

S: name …

‘Bacon’

movie star A:

Page 16: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

16

CMU SCS

Faloutsos CMU SCS 15-415 #91

Answers …

• Stars within six degrees of Kevin Bacon

{S | SStar AActsIn(A.starName = S.name A2ActsIn(A2.movieTitle = A.movieTitle A3ActsIn(A3.starName = A2.starName A4ActsIn(A4.movieTitle = A3.movieTitle A4.starName = ‘Bacon’))}

two

CMU SCS

Faloutsos CMU SCS 15-415 #92

Two degrees:

S: name …

‘Bacon’

movie star A4:

movie star A3:

CMU SCS

Faloutsos CMU SCS 15-415 #93

Two degrees:

S: name …

‘Bacon’

movie star A2:

movie star A:

movie star A4:

movie star A3:

CMU SCS

Faloutsos CMU SCS 15-415 #94

Answers …

• Stars connected to K. Bacon via any

number of films

• Sorry … that was a trick question

– Not expressible in relational calculus!!

• What about in relational algebra?

– We will be able to answer this question shortly …

CMU SCS

Faloutsos CMU SCS 15-415 #95

Expressive Power

• Expressive Power (Theorem due to Codd):

– Every query that can be expressed in relational

algebra can be expressed as a safe query in DRC /

TRC; the converse is also true.

• Relational Completeness:

Query language (e.g., SQL) can express every query

that is expressible in relational algebra/calculus.

(actually, SQL is more powerful, as we will see…)

CMU SCS

Faloutsos CMU SCS 15-415 #96

Question:

• Can we express previous query (‘any #

steps’) in relational algebra?

• A: If we could, then by Codd’s theorem we

could also express it in relational calculus.

However, we know the latter is not possible,

so the answer is no.

Page 17: Relational calculus - andrew.cmu.ed

Faloutsos CMU - 15-415

17

CMU SCS

Faloutsos CMU SCS 15-415 #97

Summary • The relational model has rigorously defined query

languages — simple and powerful.

• Relational algebra is more operational/procedural

– useful as internal representation for query evaluation

plans

• Relational calculus is declarative

– users define queries in terms of what they want, not in

terms of how to compute it.

CMU SCS

Faloutsos CMU SCS 15-415 #98

Summary - cnt’d • 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.