1 The Entity- Relationship Model Instructor: Mohamed Eltabakh [email protected] Part-3.
Revisit FDs & BCNF Normalization 1 Instructor: Mohamed Eltabakh [email protected].
-
Upload
esmond-stephens -
Category
Documents
-
view
237 -
download
10
Transcript of Revisit FDs & BCNF Normalization 1 Instructor: Mohamed Eltabakh [email protected].
![Page 2: Revisit FDs & BCNF Normalization 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/2.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/3.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/4.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/5.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/6.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/7.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/8.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/9.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/10.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/11.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/12.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/13.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/14.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/15.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/16.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/17.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/18.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/19.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/20.jpg)
Normalization
20
![Page 21: Revisit FDs & BCNF Normalization 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/21.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/22.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/23.jpg)
First Normal Form (1NF): Example
23
Since all attributes are primitive It is in 1NF
![Page 24: Revisit FDs & BCNF Normalization 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/24.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/25.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/26.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/27.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/28.jpg)
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 1 Instructor: Mohamed Eltabakh meltabakh@cs.wpi.edu.](https://reader035.fdocuments.in/reader035/viewer/2022081514/56649f1d5503460f94c338c2/html5/thumbnails/29.jpg)
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