dr. a.i. cristea acristea/ cs 319: theory of databases: c2

26
Dr. A.I. Cristea http://www.dcs.warwick.ac.uk/ ~acristea/ CS 319: Theory of Databases: C2

Upload: amelia-ball

Post on 28-Mar-2015

223 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Dr. A.I. Cristea

http://www.dcs.warwick.ac.uk/~acristea/

CS 319: Theory of Databases: C2

Page 2: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Organisational

• Office hours

• 11:00-12:00, Wednesdays

• 17:00-18:00, Thursdays

• Per email is also possible – but availability depends on demand

• (general questions better to post on forum)

Page 3: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

… previous

Generalities on Databases

Page 4: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

… previous

Generalities on DatabasesDefinitions of databasesThe issues databases tried/try to solveThe ingredients of a databaseThe users of a database and their respective roles (look at the later review of the database administrator as well)The data abstraction levels in a databaseThe data models in a databaseThe distinction between instance and schemaData definition versus data manipulation languageData manager program and its functionsOverall database system structure

Page 5: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

(provisionary) Content1. Generalities DB2. Integrity constraints (FD revisited)3. Temporal Data4. Relational Algebra (revisited)5. Query optimisation6. Tuple calculus7. Domain calculus8. Query equivalence9. LLJ, DP and applications10. The Askew Wall11. Datalog

Page 6: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Functional Dependency- A functional dependency (FD) has the form X Y

where X and Y are sets of attributes in a relation R

X Y iff any two tuples that agree on X value also agree on Y value

X Y if and only if:

for any instance r of R

for any tuples t1 and t2 of r

t1(X) = t2(X) t1(Y) = t2(Y)

Page 7: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Notations• r R indicates instance r is a valid instance

for schema R (relation type). • t r indicates t is a tuple of r. • X R (***) indicates X is a subset of the

set of attributes used by R (~ heading). • XY means X Y.

(***) Should actually be X Attr(R) (heading)

Page 8: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

To prove or not to prove, that is the question.

Given a proposition Q it always holds that Q Q.

For example:

))(::())(::( xPxxPx

))(::())(::( xPxxPx {De Morgan}

ergoProve or give a counter example

Page 9: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Proving

• To prove a functional dependency we can use the inference rules (Armstrong) or the definition of functional dependency

• Normally, the choice is optional.

Page 10: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Why prove something using definition of FD?

• Usually we prefer “inference rules”.

• However: we must prove that they are correct (hold). – via FD definitions!

Page 11: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Ex: Augmentation and Transitivity rules1. Augmentation: Prove (using the definition of fd)

that if X, Y and Z are sets of attributes of a relational schema R, and the fd X Y holds in R, then XZ YZ also holds in R.

2. Transitivity: Prove (using the definition of fd) that if X, Y and Z are sets of attributes of a relational schema R, and the fds X Y and Y Z hold in R, then X Z also holds in R.

Page 12: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Augumentation (in short)(r R, t1, t2 r : t1[X]=t2[X] : t1[Y]=t2[Y])

(this is the definition of X Y)(r R, t1, t2 r : t1[Z]=t2[Z] : t1[Z]=t2[Z])

(this is always true) (because ((A B) (C D) (A C) (B D))(r R, t1, t2 r : t1[X]=t2[X] t1[Z]=t2[Z] :

t1[Y]=t2[Y] t1[Z]=t2[Z]) (because for a function t: t[X Z] = t[X] t[Z])(r R, t1, t2 r : t1[XZ]=t2[XZ] : t1[YZ]=t2[YZ])

(this is the definition of XZ YZ)

Page 13: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Lemma 1• ((A B) (C D) (A C) (B D))• <=> (use (X Y) <=> (~X v Y) ⇒ (twice) and distribute the negation over the conjunction) ~(A B) v ~(C D) v ~(A ⇒ ⇒ C) v (B D)• <=> (use ~(X Y) <=> (X ⇒ ~Y), distribute negation over

conjunction) (A ~B) v (C ~D) v ~A v ~C v (B D)• <=> (use ((X ~Y) v ~X) <=> (~Y v ~X)) ~A v~B v~C v~D v (B D)• <=> (distribute negation over conjunction) ~A v~(B D) v~C v (B D)• <=> ( (X v~X) <=> true; true/false elimination) true

Page 14: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Augumentation (formal -1)(1) (r R, t1, t2 r ::t1[X]=t2[X] t1[Y]=t2[Y]) (this ⇒

is the definition of X Y)(2) (r R, t1, t2 r :: t1[Z]=t2[Z] t1[Z]=t2[Z]) (this ⇒

is always true)(3) Since both (1) and (2) hold, we can conjugate them:

(r R, t1, t2 r :: t1[X]=t2[X] t1[Y]=t2[Y]) ⇒ (r R, t1, t2 r :: t1[Z]=t2[Z] t1[Z]=t2[Z])⇒

(domain splitting)(4) (r R, t1, t2 r :: (t1[X]=t2[X] t1[Y]=t2[Y]) ⇒

t1[Z]=t2[Z] t1[Z]=t2[Z]))⇒

Page 15: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Augumentation (formal -2) (domain splitting)(4) (r R, t1, t2 r :: (t1[X]=t2[X] t1[Y]=t2[Y]) ⇒

t1[Z]=t2[Z] t1[Z]=t2[Z]))⇒(5) ⇒ (because of Lemma 1: ((A B) ⇒ (C D)) ((A ⇒ ⇒

C) (B ⇒ D)))(r R, t1, t2 r :: (t1[X]=t2[X] t1[Z]=t2[Z]) ⇒(t1[Y]=t2[Y] t1[Z]=t2[Z]))

(6) ⇒ (because for a function t: t[X Z] = t[X] t[Z])(r R, t1, t2 r :: (t1[XZ]=t2[XZ] ⇒t1[YZ]=t2[YZ])(this is the definition of XZ YZ)

Page 16: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Transitivity (1)• (1) (r R, t1, t2 r:: (t1[X]=t2[X]) (t1[Y]=t2[Y])) ⇒ (definition of X Y)• (2) (r R, t1, t2 r:: (t1[Y]=t2[Y]) (t1[Z]=t2[Z])) ⇒ (definition of Y Z)• Since both (1) and (2) hold, we can conjugate them: (r R, t1, t2 r :: (t1[X]=t2[X]) (t1[Y]=t2[Y])) ⇒ (r R, t1, t2 r :: (t1[Y]=t2[Y]) (t1[Z]=t2[Z]))⇒ (domain splitting) (r R, t1, t2 r ::( t1[X]=t2[X] t1[Y]=t2[Y]) ⇒

(t1[Y]=t2[Y] t1[Z]=t2[Z]))⇒

Page 17: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Transitivity (2) (domain splitting) (r R, t1, t2 r ::( t1[X]=t2[X] t1[Y]=t2[Y]) ⇒ (t1[Y]=t2[Y]

t1[Z]=t2[Z]))⇒• ⇒ (because of Lemma 2: ((A B) ⇒ (B C)) (A C))⇒ ⇒ ⇒ • (r R, t1, t2 r :: t1[X]=t2[X] t1[Z]=t2[Z])⇒ (this is the definition of X Z)

Page 18: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Lemma 2• ((A B) ⇒ (B C)) (A C)⇒ ⇒ ⇒ (use (X Y) ⇒ (~X v Y) and distribute the negation over the conjunction) ~(A B) v ~(B C) v (A C)⇒ ⇒ ⇒ (use ~(X Y) ⇒ (X ~Y), distribute negation over conjunction) (A ~B) v (B ~C) v (~A v C) (use ((X ~Y) v ~X) (~Y v ~X)) ~A v ~B v B v C ( (X v ~X) true; true/false elimination) true

Page 19: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Disproving

• to show a rule does not hold you must find (using your imagination) at least one instance in which the given fds hold and the “supposedly implied” fds do not hold.

Page 20: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Bogus rules3. Disprove that if X and Y are sets of attributes of a

relational schema R, and the fd X Y holds in R, then Y X also holds in R.

4. Disprove that if X, Y and Z are sets of attributes of a relational schema R, and the fds X Y and Y Z hold in R, then Z X also holds in R.

5. Disprove that if X, Y and Z are sets of attributes of a relational schema R, and the fd XY Z holds in R, then X YZ also holds in R.

Page 21: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Bogus rules 33. Disprove that if X and Y are sets of

attributes of a relational schema R, and the fd X Y holds in R, then Y X also holds in R.

• Solution:• Consider the following relation instance,• where we use singletons for X and Y:• We see that X Y holds, but not Y X

X Y

1 0

0 0

Page 22: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Bogus rules 4• Disprove that if X, Y and Z are sets of

attributes of a relational schema R, and the fds X Y and Y Z hold in R, then Z X also holds in R.

• Solution:• Consider the following relation instance,• where we use singletons for X, Y, and Z:• We see that both X Y and Y Z hold• But not Z X.

X Y Z

0 0 0

1 0 0

Page 23: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Bogus rules 5• Disprove that if X, Y and Z are sets of

attributes of a relational schema R, and the fd XY Z holds in R, then X YZ also holds in R.

• Solution:• Consider the following relation instance• where we use singletons for X, Y, and Z:• We see that XY Z holds, but not X

YZ.X Y Z

0 0 0

0 1 0

Page 24: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Summary

• We have learned how to prove & disprove FDs based on the definition

Page 25: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

… to follow

Functional Dependencies (FDs) applied (2)

Page 26: Dr. A.I. Cristea acristea/ CS 319: Theory of Databases: C2

Questions?