the “online” edition *** lecture #10 (normal form finale)...will take you right to 3nf (even...
TRANSCRIPT
![Page 1: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/1.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1
*** The “Online” Edition ***
Introduction to Data Management
Lecture #10(Normal Form Finale)Instructor: Mike Carey
![Page 2: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/2.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 2
Today’s Notices
v Continue watching the wiki:§ http://www.ics.uci.edu/~cs122a/
v And also Piazza, of course:§ http://piazza.com/uci/fall2020/cs122a/home
v HW#3 is under way! (Time flies, right? J)§ Normalization (in part for CheckedTweets.org)§ Due at 4 PM next Wed w/usual 24-hr late window
v Web resource for FDs and normalization:§ http://www.ict.griffith.edu.au/~jw/normalization/ind.php#1NFTo3NF
![Page 3: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/3.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 3
Quick Time Check!
![Page 4: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/4.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 4
Quick Time Check! (cont.)
![Page 5: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/5.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 5
We Are Here...
All “relations”
1NF
2NF
3NF
BCNF. . .
![Page 6: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/6.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 6
Decomposing a Design into BCNF
v Consider a relation R with FDs F. If X à Y violatesBCNF, decompose R into R–Y and XY. (R-Y has X still!)§ Repeated application of this idea will yield a collection of
relations that are BCNF, a lossless join decomposition, and guaranteed to terminate. (Didn’t say dependency preserving...)
v Ex: CSJDPQV with CàCSJDPQV, JPàC, SDàP, and JàS.§ To deal with SDàP, decompose into SDP, CSJDQV.§ To deal with JàS, decompose CSJDQV into JS and CJDQV.
v Note that in general, several dependencies may violate BCNF. (And the order in which we process them can lead to different decompositions – only some of which may be dependency preserving!)
![Page 7: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/7.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 7
BCNF and Dependency Preservation
v In general, there simply may not be a dependency preserving decomposition into BCNF.§ E.g., R(CSZ) with CS à Z, Z à C.§ Can’t decompose preserving the first FD; not in BCNF...
v Consider again decomposing the relation CSJDPQV into relations SDP, JS and CJDQV:§ Not dependency preserving (w.r.t. JP à C, SD à P, J à S).§ However, it is indeed a lossless join decomposition.§ In this case, adding JPC to the collection of relations would
give us a dependency preserving decomposition.• But: JPC data would be used only for FD checking! (Redundancy!)
![Page 8: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/8.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 8
Decomposition into 3NFv That lossless join decomposition algorithm for
BCNF can also be used to obtain a lossless join decomposition into 3NF (and might stop earlier).
v One idea to ensure dependency preservation:§ If XàY is not preserved in the BCNF decomposition,
then add a relation XY.§ Problem is that XY may violate 3NF (or even 2NF) due
to other FDs, so this approach won’t work in general.v The real fix: Instead of using the given set of FDs F
to guide the decomposition, use a minimal cover for F.
![Page 9: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/9.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 9
Minimal Cover for a Set of FDsv Minimal cover G for a set of FDs F:
§ Closure of G = closure of F, i.e., G+ = F+.§ Right hand side (RHS) of each FD in G is a single attribute.§ If we change G by deleting any FD or deleting attributes
from the LHS of any FD in G, the closure would change.v Intuitively: Every FD in G is needed, with G being as
“as small as possible” to have the same closure as F.v E.g., AàB, ABCDàE, EFàGH, ACDFàEG has the
following minimal cover (trust me for now):§ AàB, ACDàE, EFàG and EFàH
v M.C.à lossless-join, dep. pres. 3NF decomposition!
![Page 10: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/10.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 10
Computing the Minimal Cover1. Put the set of given FDs in a Standard Form.
§ This turns F into a set G of equivalent FDs with a singleattribute on the right-hand side of each FD.
2. Minimize the left-hand side of each FD in G.§ For each FD in G, check each LHS attribute to see if it can
be deleted without breaking the equivalence G+ = F+.3. Delete redundant FDs.
§ For any FDs that remain, check to see if this FD can be deleted without breaking the equivalence G+ = F+.
And voila – you now have a minimal cover for F…!
![Page 11: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/11.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 11
Obtaining that 3NF DecompositionI. Compute F’s minimal cover G (which is also
sometimes denoted as F-).II. Search for dependencies in F- that have the same
attribute set on their left hand side, α:a. αàY1, αàY2, .... αàYkb. Construct one relation as (α,Y1, Y2, ...Yk )c. Repeat this process for all of the FDs’ α’s
d. If none of the relations from above contains a candidate key for the original relation R, add one more relation with (just) the attributes of a candidate key for R.(Q: Why…?)
![Page 12: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/12.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 12
Testing Your Understanding…v Now that you now how to compute BCNF and 3NF
decompositions, try it on our earlier examples!
§ ≠2NF: Supplies(sno, sname, saddr, pno, pname, pcolor) with: snoàsname, snoàsaddr, pnoàpname, pnoàpcolor
§ ≠3NF: Workers(eno, ename, esal, dno, dname, dfloor)with: enoàename, eno,enameàesal, enoàdno, dnoà dname,dfloor
§ ≠BCNF: Supply2(sno, sname, pno)with: snoàsname, snameàsno
Note: I changed the ≠3NF example’s FDs to be equivalent to our earlier FDs but messier to better illustrate the nature of the minimal cover algorithm’s operation.
![Page 13: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/13.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 13
Testing Your Understanding (cont.)…v ≠3NF:
Workers(eno, ename, esal, dno, dname, dfloor)with: enoàename, eno,enameàesal, enoàdno, dnoà dname,dfloor
3NF M.C. step 1: 3NF M.C. step 2:enoàenameeno,enameàesal è enoàesalenoàdnodnoàdnamednoàdfloor
3NF step II:Emp(eno, ename, esal, dno)Dept(dno, dname, dfloor)
We got lucky!(No lossy join!)
Q2: What if the Emp-Dept relationship had been M:N?
Q1: What is the attribute closure of eno – and what does that mean...?
?
![Page 14: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/14.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 14
Testing Your Understanding (cont.)…
Q1: What is the attribute closure of eno – and what does that mean...?{eno}
{eno, ename}{eno, ename, esal}{eno, ename, esal, dno}{eno, ename, esal, dno, dname}{eno, ename, esal, dno, dname, dfloor}
à That’s everything in Workers! (Thus…?)
![Page 15: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/15.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 15
Testing Your Understanding (cont.)…v ≠3NF (modified to M:N):
Workers(eno, ename, esal, dno, dname, dfloor)with: enoàename, eno,enameàesal, enoàdno, dnoà dname,dfloor
enoàenameeno,enameàesal è enoàesalenoàdnodnoàdnamednoàdfloor
Emp(eno, ename, esal, dno)Dept(dno, dname, dfloor) Works(eno, dno)
Q2: What if the Emp-Dept relationship had been M:N?
Without Works we’d have a lossy join…!
![Page 16: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/16.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 16
Relational Design Theory Summaryv If a relation is in BCNF, it is free of redundancies
that can be detected using FDs. (Trying to ensure that all relations are in BCNF is thus a good goal.)
v If a relation is not in BCNF, we will decompose it into a lossless-join collection of BCNF relations.§ Are all FDs preserved? If a lossless-join, dependency-
preserving decomposition into BCNF is not possible, consider 3NF instead.
§ Note: Decompositions should really be carried out while keeping performance requirements in mind. (More later!)
![Page 17: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/17.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 17
On Refining ER Based Designs
v 1st diagram translated: Workers(S,N,L,D,C) Departments(D,M,B)(Lots associated with workers.)
v Suppose all workers in a dept are assigned the same lot: D à L ....
v Redundancy! Fixed by: Workers2(S,N,D,C) WorkersLots(D,L) Departments(D,M,B)
v Can further fine-tune this: Workers2(S,N,D,C) Departments(D,M,B,L)
lotdname
budgetdid
sincename
Works_In DepartmentsWorkers
ssn
Before:
After:Notice: Lot wasn’t really a “Worker attribute”!
N 1
lot
dnamebudget
did
sincename
Works_In DepartmentsWorkers
ssn
N 1
![Page 18: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/18.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 18
PS: On Refining ER Based Designs
v 1st diagram translated: Workers(S,N,L,D,S) Departments(D,M,B)§ Lots associated with workers.
v Suppose all workers in a dept are assigned the same lot: D à L ....
v Redundancy; fixed by: Workers2(S,N,D,S) WorkersLots(D,L) Departments(D,M,B)
v Can further fine-tune this: Workers2(S,N,D,S) Departments(D,M,B,L)
lotdname
budgetdid
sincename
Works_In DepartmentsWorkers
ssn
Before:
After:Notice: Lot wasn’t really a “Worker attribute”!
N 1
lot
dnamebudget
did
sincename
Works_In DepartmentsWorkers
ssn
N 1
Note:In many cases the relational translation of an ER design will take you right to 3NF (even BCNF)…!- Entity keyàattributes for entity sets.- Relationship keyà attributes for relationship sets.(But problems could arise with FDs within attributes.)
![Page 19: The “Online” Edition *** Lecture #10 (Normal Form Finale)...will take you right to 3NF (even BCNF)…!-Entity keyàattributesfor entity sets.-Relationship keyàattributes for relationship](https://reader035.vdocuments.net/reader035/viewer/2022071512/613329bbdfd10f4dd73ae916/html5/thumbnails/19.jpg)
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 19
Questions…?