revisit fds & bcnf normalization

29
Revisit FDs & BCNF Normalization 1 Instructor: Mohamed Eltabakh [email protected]

Upload: mikaia

Post on 06-Jan-2016

41 views

Category:

Documents


0 download

DESCRIPTION

Revisit FDs & BCNF Normalization. Instructor: Mohamed Eltabakh [email protected]. Announcements. Project Phase 2 is due Now !!! Project Phase 3 will be out today (Nov. 11) and due on Nov. 22 (8:00am) Project feedback !!! Keep in mind the midterm exam is on Nov. 22. FDs and Normalization. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Revisit FDs & BCNF Normalization

Revisit FDs & BCNF Normalization

1

Instructor: Mohamed Eltabakh [email protected]

Page 2: Revisit FDs & BCNF Normalization

Announcements

Project Phase 2 is due Now !!!

Project Phase 3 will be out today (Nov. 11) and due on Nov. 22 (8:00am)

Project feedback !!!

Keep in mind the midterm exam is on Nov. 22

2

Page 3: Revisit FDs & BCNF Normalization

FDs and Normalization Given a database schema, how do you judge whether or not

the design is good?

How do you ensure it does have redundancy or anomaly problems?

To ensure your database schema is in a good form we use: Functional Dependencies Normalization Rules

3

Page 4: Revisit FDs & BCNF Normalization

Usage of Functional Dependencies

Discover all dependencies between attributes

Identify the keys of relations

Enable good (Lossless) decomposition of a given relation

4

Page 5: Revisit FDs & BCNF Normalization

Functional Dependencies (FDs)

The basic form of a FDs

A1,A2,…An B1, B2,…Bm

5

L.H.S R.H.S

>> The values in the L.H.S uniquely determine the values in the R.H.S attributes (when you lookup the DB)

>> It does not mean that L.H.S values compute the R.H.S values

>> The values in the L.H.S uniquely determine the values in the R.H.S attributes (when you lookup the DB)

>> It does not mean that L.H.S values compute the R.H.S values

Examples:

SSN personName, personDoB, personAddress

DepartmentID, CourseNum CourseTitle, NumCredits

personName personAddress X

Page 6: Revisit FDs & BCNF Normalization

Functional Dependencies (FDs)

Let R be a relation schema where α⊆R and β⊆R -- α and β are subsets of R’s attributes

The functional dependency α→β holds on R if and only if: For any legal instance of R, whenever any two tuples t1 and t2 agree

on the attributes α, they also agree on the attributes β. That is, t1[α]=t2[α] ⇒ t1[β] =t2[β]

6

A B

A B (Does not hold)B A (holds)

A B (holds)B A (holds)

A B

44

A B (holds)B A (Does not holds)

A B

4444

Page 7: Revisit FDs & BCNF Normalization

Functional Dependencies & Keys

K is a superkey for relation schema R if and only if K → R -- K determines all attributes of R

K is a candidate key for R if and only if K→R, and No α⊂K, α→R

7

Keys imply FDs, and FDs imply keysKeys imply FDs, and FDs imply keys

Minimal superkey

Page 8: Revisit FDs & BCNF Normalization

Example IStudent(SSN, Fname, Mname, Lname, DoB, address, age, admissionDate)

If you know that SSN is a key, Then SSN Fname, Mname, Lname, DoB, address, age, admissionDate

If you know that (Fname, Mname, Lname) is a key, Then Fname, Mname, Lname SSN, DoB, address, age, admissionDate

If you know that SSN Fname, Mname, Lname, DoB, address, age, admissionDate Then, we infer that SSN is a candidate key

If you know that Fname, Mname, Lname SSN, DoB, address, age, admissionDate

Then, we infer that (Fname, Mname, Lname) is a key. Is it Candidate or super key??? Does any pair of attributes together form a key??

If no (Fname, Mname, Lname) is a candidate key If yes (Fname, Mname, Lname) is a super key

8

Page 9: Revisit FDs & BCNF Normalization

Example II

Does this FD hold? title year length genre studioName

Does this FD hold? title year starName

What is a key of this relation? {title, year, starName} Is it candidate key?

9

YESYES

NONO

>> For this instance not a candidate key>> In general it can be candidate key(depending on the assumptions)

>> For this instance not a candidate key>> In general it can be candidate key(depending on the assumptions)

Page 10: Revisit FDs & BCNF Normalization

Properties of FDs

Consider A, B, C, Z are sets of attributes

Reflexive (trivial): A B is trivial if B A

10

Page 11: Revisit FDs & BCNF Normalization

Properties of FDs (Cont’d)

Consider A, B, C, Z are sets of attributes

Transitive: if A B, and B C, then A C

Augmentation: if A B, then AZ BZ

Union: if A B, A C, then A BC

Decomposition: if A BC, then A B, A C

11

Use these properties to derive more FDs

Use these properties to derive more FDs

Page 12: Revisit FDs & BCNF Normalization

Example Given R( A, B, C, D, E)

F = {A BC, DE C, B D}

Is A a key for R or not? Does A determine all other attributes? A A B C D

Is BE a key for R? BE B E D C

Is ABE a candidate or super key for R? ABE A B E D C AE A E B C D

12

NONO

NONO

>> ABE is a super key>> AE is a candidate key>> ABE is a super key>> AE is a candidate key

Page 13: Revisit FDs & BCNF Normalization

Closure of Functional Dependencies

Given a set F set of functional dependencies, there are other FDs that can be inferred based on F For example: If A → B and B → C, then we can infer that

A → C

Closure set F F+

The set of all FDs that can be inferred from F We denote the closure of F by F+

F+ is a superset of F

13

Page 14: Revisit FDs & BCNF Normalization

Functional Closure: Example Given R( A, B, C, D, E)

F = {A BC, DE C, B D}

Report 4 FDs in F+

A A B C D AE A B C D E DEB C B B E B E D C

Which properties did we use to infer these extra FDs ??

14

Page 15: Revisit FDs & BCNF Normalization

Attribute Closure

Attribute Closure of A Given a set of FDs, compute all attributes X that A

determines A X

Attribute closure is easy to compute Just recursively apply the transitive property

A can be a single attribute or set of attributes

15

Page 16: Revisit FDs & BCNF Normalization

Algorithm for Computing Attribute Closures

Computing the closure of set of attributes {A1, A2, …, An}:

1. Let X = {A1, A2, …, An}

2. If there exists a FD: B1, B2, …, Bm C, such that every Bi X, then X = X C

3. Repeat step 2 until no more attributes can be added.

X is the closure of the {A1, A2, …, An} attributes X = {A1, A2, …, An} +

16

Page 17: Revisit FDs & BCNF Normalization

Example 1: Attribute Closure

Assume relation R (A, B, C, D, E)

Given F = {A B, B C, C D E }

What is the attribute closure of A (A+)? A+ = {A} A+ = {A, B} A+ = {A, B, C}

17

Page 18: Revisit FDs & BCNF Normalization

Example 2: Attribute Closure

Given R( A, B, C, D, E) F = {A BC, DE C, B D}

What is the attribute closure {AB}+ ? {AB}+ = {A B} {AB}+ = {A B C} {AB}+ = {A B C D}

What is the attribute closure {BE}+ ? {BE}+ = {B E} {BE}+ = {B E D} {BE}+ = {B E D C}

18

Set of attributes α is a key if α+ contains all

attributes

Set of attributes α is a key if α+ contains all

attributes

Page 19: Revisit FDs & BCNF Normalization

Summary of FDs They capture the dependencies between attributes

How to infer more FDs using properties such as transitivity, augmentation, and union

Functional closure F+

Attribute closure A+

Relationship between FDs and keys

19

Page 20: Revisit FDs & BCNF Normalization

Normalization

20

Page 21: Revisit FDs & BCNF Normalization

Normalization Set of rules to avoid “bad” schema design

Decide whether a particular relation R is in “good” form If not, decompose R to be in a “good” form

Several levels of normalization First Normal Form (1NF) BCNF Third Normal Form (3NF) Fourth Normal Form (4NF)

If a relation is in a certain normal form, then it is known that certain kinds of problems are avoided or minimized

21

Page 22: Revisit FDs & BCNF Normalization

First Normal Form (1NF) Attribute domain is atomic if its elements are considered to

be indivisible units (primitive attributes)

Examples of non-atomic domains are multi-valued and composite attributes

A relational schema R is in first normal form (1NF) if the domains of all attributes of R are atomic

22

We assume all relations are in 1NFWe assume all relations are in 1NF

Page 23: Revisit FDs & BCNF Normalization

First Normal Form (1NF): Example

23

Since all attributes are primitive It is in 1NF

Page 24: Revisit FDs & BCNF Normalization

Boyce-Codd Normal Form (BCNF): Definition

A relation schema R is in BCNF with respect to a

set F of functional dependencies if for all functional

dependencies in F+ of the form

α → β

where α ⊆ R and β ⊆ R, then at least one of the

following holds:

α → β is trivial (i.e.,β α) ⊆

α is a superkey for R

24

Page 25: Revisit FDs & BCNF Normalization

BCNF: Example

25

sNumber sName pNumber pName

s1 Dave p1 MM

s2 Greg p2 ER

s3 Mike p1 MM

Student

Student Info Professor Info

Is relation Student in BCNF given FD: pNumber pName It is not trivial FD pNumber is not a key in Student relation

How to fix it and make it in BCNF???

NONO

Page 26: Revisit FDs & BCNF Normalization

Decomposing a Schema into BCNF

If R is not in BCNF because of non-trivial dependency α → β, then decompose R

R is decomposed into two relations R1 = (α U β ) -- α is super key in R1 R2 = (R- (β - α)) -- R2.α is foreign keys to R1.α

26

Page 27: Revisit FDs & BCNF Normalization

Example of BCNF Decomposition

sNumber sName pNumber pName

s1 Dave p1 MM

s2 Greg p2 MM

StudentProf

FDs: pNumber pName

sNumber sName pNumber

s1 Dave p1

s2 Greg p2

Student

pNumber pName

p1 MM

p2 MM

Professor

FOREIGN KEY: Student (PNum) references Professor (PNum)

27

Page 28: Revisit FDs & BCNF Normalization

What is Nice about this Decomposing ???

R is decomposed into two relations R1 = (α U β ) -- α is super key in R1 R2 = (R- (β - α)) -- R2.α is foreign keys to R1.α

28

This decomposition is lossless(Because R1 and R2 can be joined based on α, and α is

unique in R1)

This decomposition is lossless(Because R1 and R2 can be joined based on α, and α is

unique in R1)

When you join R1 and R2 on α, you get R back without lose of information

Page 29: Revisit FDs & BCNF Normalization

StudentProf = Student ⋈Professor

sNumber sName pNumber pName

s1 Dave p1 MM

s2 Greg p2 MM

StudentProf

FDs: pNumber pName

sNumber sName pNumber

s1 Dave p1

s2 Greg p2

Student

pNumber pName

p1 MM

p2 MM

Professor

FOREIGN KEY: Student (PNum) references Professor (PNum)

29