Presentation is loading. Please wait.

Presentation is loading. Please wait.

Database Group, Georgia Tech 1 Relational Model The Relational Model - theoretical foundation.

Similar presentations


Presentation on theme: "Database Group, Georgia Tech 1 Relational Model The Relational Model - theoretical foundation."— Presentation transcript:

1 Database Group, Georgia Tech 1 Relational Model The Relational Model - theoretical foundation

2 Database Group, Georgia Tech 2 Relational Model The Relational Model data structures constraints operations –algebra (ISBL) –tuple calculus (QUEL, SQL) –domain calculus (QBE) views

3 Database Group, Georgia Tech 3 Relational Model Data Structures let D 1, D 2, D 3,..., D n be sets (not necessarily distinct) of atomic values relation, R, defined over D 1, D 2, D 3,..., D n is a subset of the set of ordered n- tuples {<d 1, d 2, d 3,..., d n | d i  D i, i=1,...,n}; D 1, D 2, D 3,..., D n are called domains the number, n, is the degree of the relation (unary, binary, ternary, n-ary). the number of tuples, |R|, in R is called the cardinality of R if D 1, D 2, D 3,..., D n are finite then there are 2 | D1 |  | D2 | ...  | Dn | possible relation states

4 Database Group, Georgia Tech 4 Relational Model Data Structures an attribute name refers to a position in a tuple by name rather than position an attribute name indicate the role of a domain in a relation attribute names must be unique within relations by using attribute names we can forget the ordering of field values in tuples a relation definition includes the following R( A 1 :D 1, A 2 :D 2,..., A n :D n )

5 Database Group, Georgia Tech 5 Relational Model Constraints keys primary keys entity integrity referential integrity RESERVATION FLT#DATECUST# FLT-SCHEDULE FLT# CUSTOMER CUST#CUST-NAME p p

6 Database Group, Georgia Tech 6 Relational Model CUSTOMER cust# first middle last phone# street city state zip RESERVATION flt# date cust# seat# check-in-status ticket# AIRPORT airportcode name city state FLT-SCHEDULE flt# airline dtime from-airportcode atime to-airportcode miles price FLT-WEEKDAY flt# weekday AIRPLANE plane# plane-type total-#seats FLT-INSTANCE flt# date plane##avail-seats

7 Database Group, Georgia Tech 7 Relational Model Operations classes of relational DMLs: –relational algebra (ISBL) –tuple calculus (QUEL, SQL) –domain calculus (QBE) a relational DML with the same “retrieval power” as the relational algebra is said to be relationally complete all relational DMLs have syntax for: –change (insert, delete, update) –queries (retrieval)

8 Database Group, Georgia Tech 8 Relational Model Operations - insert, delete, update constructs for insertion are very primitive: INSERT INTO FLT-SCHEDULE VALUES (“DL212”, “DELTA”, 11-15-00, “ATL”, 13-05-00, ”CHI”, 650, 00351.00); INSERT INTO FLT-SCHEDULE VALUES (FLT#:“DL212”, AIRLINE:“DELTA”); FLT-SCHEDULE flt# airline dtime from-airportcode atime to-airportcode miles price

9 Database Group, Georgia Tech 9 Relational Model Operations - insert, delete, update “insert into FLT-INSTANCE all flights scheduled for Thursday, 9/10/98” INSERT INTO FLT-INSTANCE(flt#, date) (SELECT S.flt#, 1998-09-10 FROM FLT-SCHEDULE S, FLT-WEEKDAY D WHERE S.flt#=D.flt# AND weekday=“TH”); interesting only because it involves a query FLT-SCHEDULE flt# airline dtime from-airportcode atime to-airportcode miles price FLT-WEEKDAY flt# weekday FLT-INSTANCE flt# date plane##avail-seats

10 Database Group, Georgia Tech 10 Relational Model Operations - insert, delete, update constructs for deletion are very primitive: “delete flights scheduled for Thursdays” DELETE FROM FLT-WEEKDAY WHERE weekday=“TH”; interesting only because it involves a query FLT-WEEKDAY flt# weekday

11 Database Group, Georgia Tech 11 Relational Model Operations - insert, delete, update constructs for update are very primitive: “update flights scheduled for Thursdays to Fridays” UPDATE FLT-WEEKDAY SET weekday=“FR” WHERE weekday=“TH”; interesting only because it involves a query FLT-WEEKDAY flt# weekday

12 Database Group, Georgia Tech 12 Relational Model Relational Algebra the Relational Algebra is procedural; you tell it how to construct the result it consists of a set of operators which, when applied to relations, yield relations (closed algebra) R  Sunion R  Sintersection R \ Sset difference R  SCartesian product  A1, A2,..., An (R)projection  expression (R)selection R Snatural join R   Stheta-join R  Sdivideby  [ A 1 B 1,.., An Bn ]rename

13 Database Group, Georgia Tech 13 Relational Model Selection “find (flt #, weekday ) for all flights scheduled for Mondays”  weekday=MO ( FLT-WEEKDAY ) the expression in  expression ( R ) involves: operands: constants or attribute names of R comparison operators: Š   ° = logical operators:  nesting: ( ) FLT-WEEKDAY flt# weekday

14 Database Group, Georgia Tech 14 Relational Model Projection “find flt # for all flights scheduled for Mondays  flt# (  weekday=MO ( FLT-WEEKDAY )) the attributes in the attribute list of  A1, A2,..., An ( R ) must be attributes of the operand R FLT-WEEKDAY flt# weekday

15 Database Group, Georgia Tech 15 Relational Model Union “find the flt# for flights that are schedule for either Mondays, or Tuesdays, or both”   flt# (  weekday=MO ( FLT-WEEKDAY ))   flt# (  weekday=TU ( FLT-WEEKDAY )) the two operands must be "type compatible" FLT-WEEKDAY flt# weekday

16 Database Group, Georgia Tech 16 Relational Model Intersection “find the flt# for flights that are schedule for both Mondays and Tuesdays”   flt# (  weekday=MO ( FLT-WEEKDAY ))   flt# (  weekday=TU ( FLT-WEEKDAY )) the two operands must be "type compatible" FLT-WEEKDAY flt# weekday

17 Database Group, Georgia Tech 17 Relational Model Set Difference “find the flt# for flights that are scheduled for Mondays, but not for Tuesdays”   flt# (  weekday=MO ( FLT-WEEKDAY ))  \   flt# (  weekday=TU ( FLT-WEEKDAY )) the two operands must be "type compatible" Note: R  S = R \ ( R \ S ) FLT-WEEKDAY flt# weekday

18 Database Group, Georgia Tech 18 Relational Model Cartesian Product “make a list containing (flt#, date, cust#) for DL212 on 9/10, 98 for all customers in Roswell that are not booked on that flight” (  cust# (  city=ROSWELL ( CUSTOMER ))    flt#,date (  flt#=DL212  date=1998-09-10 ( FLT-INSTANCE )))  \  flt#,date,cust# (RESERVATION) CUSTOMER cust# first middle last phone# street city state zip RESERVATION flt# date cust# seat# check-in-status ticket# FLT-INSTANCE flt# date plane##avail-seats

19 Database Group, Georgia Tech 19 Relational Model Natural Join “make a list with complete flight instance information” FLT-INSTANCE FLT-WEEKDAY natural join joins relations on attributes with the same names all joins can be expressed by a combination of primitive operators:  FLT-INSTANCE.flt#, date, weekday, #avail-seats (  FLT-INSTANCE.flt#=FLT-WEEKDAY.flt# ( FLT-INSTANCE  FLT-WEEKDAY )) FLT-WEEKDAY flt# weekday FLT-INSTANCE flt# date plane##avail-seats

20 Database Group, Georgia Tech 20 Relational Model  -join “make a list of pairs of ( FLT#1, FLT#2) that form possible connections”  fl1, flt# ((  [flt#  fl1, from-airportcode da1,dtime dt1, to-airportcode aa1, atime at1, date d1] ( FLT-SCHEDULE FLT-INSTANCE )) d1=date   aa1=from-airportcode  at1< dtime ( FLT-SCHEDULE FLT-INSTANCE )) the  -operators: Š   ° = FLT-SCHEDULE flt# airline dtime from-airportcode atime to-airportcode miles price FLT-INSTANCE flt# date plane##avail-seats

21 Database Group, Georgia Tech 21 Relational Model Divideby “list the cust# of customers that have reservations on all flight instances”  flt#, date, cust# RESERVATION   flt#, date ( FLT-INSTANCE ) RESERVATION flt# date cust# seat# check-in-status ticket# FLT-INSTANCE flt# date plane##avail-seats

22 Database Group, Georgia Tech 22 Relational Model R  S R UNION S R  S R INTERSECT S R \ S R MINUS S  A1, A2,..., An (R) R[A1, A2,..., An]  expression (R) R WHERE EXPRESSION R  S R JOIN S (no shared attributes) R S R JOIN S (shared attributes) R   Svia selection from  R  S R DIVIDEBY S  [ A1 B1,..., An Bn ] (R) R[A1 B1,.., An Bn] ISBL - an example algebra

23 Database Group, Georgia Tech 23 Relational Model Features of ISBL the Peterlee Relational Test Vehicle, PRTV, has a query optimizer for ISBL Naming results: T = R JOIN S Lazy evaluation: T = N!R JOIN N!S LIST T 2-for-1 JOIN: –Cartesian product if no shared attribute names –natural join if shared attribute names ISBL is relationally complete !

24 Database Group, Georgia Tech 24 Relational Model ISBL - an example query “make a list of pairs of ( FLT#1, FLT#2) that form possible connections” LIST ((( FLT-SCHEDULE JOIN FLT-INSTANCE ) [ FLT#  FL1, FROM-AIRPORTCODE DA1,DTIME DT1, TO- AIRPORTCODE AA1, ATIME AT1, DATE D1 ]) JOIN ( FLT-SCHEDULE JOIN FLT-INSTANCE ) WHERE D1=DATE  AA1=FROM-AIRPORTCODE  AT1< DTIME )[ FL1, FLT# ] FLT-SCHEDULE flt# airline dtime from-airportcode atime to-airportcode miles price FLT-INSTANCE flt# date plane##avail-seats

25 Database Group, Georgia Tech 25 Relational Model Relational Calculus the Relational Calculus is non- procedural. It allows you to express a result relation using a predicate on tuple variables (tuple calculus): { t | P(t) } or on domain variables (domain calculus): { | P( ) } you tell the system which result you want, but not how to construct it

26 Database Group, Georgia Tech 26 Relational Model Tuple Calculus query expression: { t | P(t) } where P is a predicate built from atoms range expression: t  R denotes that t is a member of R ; so does R(t) attribute value: t.A denotes the value of t on attribute A constant: c denotes a constant atoms: t  R, r.A  s.B, or r.A  c comparison operators: Š  ° = predicate: an atom is a predicate; if P 1 and P 2 are predicates, so are ¬( P 1 ) and ( P 1 ), P 1  P 2, P 1  P 2, and P 1  P 2 if P(t) is a predicate, t is a free variable in P, and R is a relation then  t  R  (P(t)) and  t  R (P(t) ) are predicates

27 Database Group, Georgia Tech 27 Relational Model Tuple Calculus { r |  ( r  CUSTOMER } is infinite, or unsafe a tuple calculus expression { r | P(r) } is safe if all values that appear in the result are from Dom( P ), which is the set of values that appear in P itself or in relations mentioned in P CUSTOMER cust# first middle last phone# street city state zip

28 Database Group, Georgia Tech 28 Relational Model Selection “find ( FLT#, WEEKDAY ) for all flights scheduled for Mondays { t | FLT-WEEKDAY (t)  t. WEEKDAY=MO} FLT-WEEKDAY flt# weekday

29 Database Group, Georgia Tech 29 Relational Model Projection “find FLT# for all flights scheduled for Mondays { t.FLT# | FLT-WEEKDAY (t)  t. WEEKDAY = MO} FLT-WEEKDAY flt# weekday

30 Database Group, Georgia Tech 30 Relational Model Union “find the FLT# for flights that are schedule for either Mondays, or Tuesdays, or both”  { t.FLT# | FLT-WEEKDAY (t)  (t. WEEKDAY=MO  t.WEEKDAY=TU)} FLT-WEEKDAY flt# weekday

31 Database Group, Georgia Tech 31 Relational Model Intersection “find the FLT# for flights that are schedule for both Mondays and Tuesdays”  { t.FLT# | FLT-WEEKDAY (t)  t. WEEKDAY=MO   s  FLT-WEEKDAY (s)  t.FLT#=s.FLT#  s.WEEKDAY=TU ) } FLT-WEEKDAY flt# weekday

32 Database Group, Georgia Tech 32 Relational Model Set Difference “find the FLT# for flights that are scheduled for Mondays, but not for Tuesdays”  { t.FLT# | FLT-WEEKDAY (t)  t. WEEKDAY=MO   ((  s) ( FLT- WEEKDAY (s)  t.FLT#=s.FLT#  s.WEEKDAY=TU))} FLT-WEEKDAY flt# weekday

33 Database Group, Georgia Tech 33 Relational Model Cartesian Product {s. FLT#, s. DATE, t.CUST# | FLT-INSTANCE (s)  CUSTOMER (t)  t. CITY=ROSWELL  s.FLT#=DL212  s. DATE=1998-09- 10    r  FLT-INSTANCE (r)   r ° s  r. FLT#= s. FLT#   r. DATE= s. DATE  r. CUST#= t. CUST# )} “make a list containing (FLT#, DATE, CUST#) for DL212 on 9/10, 98 for all customers in Roswell that are not booked on that flight” CUSTOMER cust# first middle last phone# street city state zip RESERVATION flt# date cust# seat# check-in-status ticket# FLT-INSTANCE flt# date plane##avail-seats

34 Database Group, Georgia Tech 34 Relational Model Natural Join “make a list with complete flight instance information” { s. FLT#, s. WEEKDAY, t. DATE, t.PLANE#, t. #AVAIL- SEATS | FLT-WEEKDAY (s)  FLT-INSTANCE (t)  s. FLT# =t. FLT# } FLT-WEEKDAY flt# weekday FLT-INSTANCE flt# date plane##avail-seats

35 Database Group, Georgia Tech 35 Relational Model  -join “make a list of pairs of ( FLT#1, FLT#2) that form possible connections” { s. FLT#, t.FLT # | FLT-SCHEDULE (s)  FLT- SCHEDULE (t)  ((  u)(  v) FLT-INSTANCE (u)  FLT-INSTANCE (v)  u.FLT #= s.FLT #  v.FLT #= t.FLT #  u.DATE = v.DATE  s.TO- AIRPORTCODE = t.FROM-AIRPORTCODE  s.ATIME < t.DTIME ) } FLT-SCHEDULE flt# airline dtime from-airportcode atime to-airportcode miles price FLT-INSTANCE flt# date plane##avail-seats

36 Database Group, Georgia Tech 36 Relational Model Divideby “list the CUST# for customers that have reservations on all flight instances” { s.CUST # | RESERVATION (s)  ((  t) FLT- INSTANCE (t) ((  r) RESERVATION (r)  r.FLT #=t.FLT #  r.DATE =t.DATE  r.CUST #=s.CUST #))} RESERVATION flt# date cust# seat# check-in-status ticket# FLT-INSTANCE flt# date plane##avail-seats

37 Database Group, Georgia Tech 37 Relational Model QUEL - an example tuple calculus “make a list of pairs of ( FLT#1, FLT#2) that form possible connections” range s is FLT-SCHEDULE range t is FLT-SCHEDULE range u is FLT-INSTANCE range v is FLT-INSTANCE retrieve into CON ( s. FLT#, t. FLT# ) where u. FLT# =s. FLT# and v. FLT# =t. FLT# and u. DATE =v. DATE and s. TO- AIRPORTCODE =t. FROM-AIRPORTCODE and s. ATIME < t. DTIME; FLT-SCHEDULE flt# airline dtime from-airportcode atime to-airportcode miles price FLT-INSTANCE flt# date plane##avail-seats

38 Database Group, Georgia Tech 38 Relational Model QBE - Projection “find FLT# for all flights scheduled for Mondays FLT-WEEKDAY FLT# WEEKDAY P. =MONDAY

39 Database Group, Georgia Tech 39 Relational Model QBE - Union “find the FLT# for flights that are schedule for either Mondays, or Tuesdays, or both”  FLT-WEEKDAY FLT# WEEKDAY P.MONDAY P.TUESDAY

40 Database Group, Georgia Tech 40 Relational Model QBE - Intersection “find the FLT# for flights that are schedule for both Mondays and Tuesdays”  FLT-WEEKDAY FLT# WEEKDAY P._SXMONDAY _SXTUESDAY

41 Database Group, Georgia Tech 41 Relational Model QBE - Set Difference “find the FLT# for flights that are scheduled for Mondays, but not for Tuesdays”  FLT-WEEKDAY FLT# WEEKDAY P._SXMONDAY _SXTUESDAY 

42 Database Group, Georgia Tech 42 Relational Model QBE - Cartesian Product “make a list containing (FLT#, DATE, CUST#) for DL212 on 9/10, 98 for all customers in Roswell that are not booked on that flight” RESERVATION FLT#DATECUST# _F_D_C  98-9-10 FLT-INSTANCE FLT#DATE #AVAIL- SEATS P._FP._D _F _DDL212 CUSTOMER CUST#CUST-NAMECITY P._CROSWELL

43 Database Group, Georgia Tech 43 Relational Model QBE - Natural Join “make a list with complete flight instance information” FLT-WEEKDAY FLT# WEEKDAY FLT-INSTANCE FLT#DATE #AVAIL- SEATS P._SX_SXP.

44 Database Group, Georgia Tech 44 Relational Model QBE  -join “make a list of pairs of ( FLT#1, FLT#2) that form possible same day connections” CONDITION _AT < _DT FLT-SCHEDULE FLT# AIRLINE FROM- AIRPORT CODE DTIMEPRICEATIME TO- AIRPORT CODE P._SX_A_AT FLT-INSTANCE FLT#DATE#SEATS _SX _SY _D FLT-SCHEDULE FLT# AIRLINEDTIMEPRICEATIME P._SY_A_DT FROM- AIRPORT CODE TO- AIRPORT CODE

45 Database Group, Georgia Tech 45 Relational Model Views relational query languages are closed, i.e., the result of a query is a relation a view is a named result of a query a view is a snapshot relation views can be used in other queries and view definitions queries on views are evaluated by query modification some views are updatable some views are not updatable more on views when we look at SQL


Download ppt "Database Group, Georgia Tech 1 Relational Model The Relational Model - theoretical foundation."

Similar presentations


Ads by Google