THE RELATIONAL MODEL I IST 210: Organization of Data IST210 1.
IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional...
-
Upload
garry-nelson -
Category
Documents
-
view
214 -
download
0
Transcript of IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional...
![Page 1: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/1.jpg)
IST 210 Normalization 2
Todd BacastowIST 210
![Page 2: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/2.jpg)
IST 210 Normalization Methods
Inspection Closure
Functional dependencies are key
![Page 3: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/3.jpg)
IST 210 Normal FormsUniverse of relations1 NF
2NF3NF
BCNF4NF
5NF
![Page 4: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/4.jpg)
IST 210 First Normal Form (1NF)
All appropriate data into the empty columns of rows containing the repeating data (‘flattening’ the table), ie, no repeating items in columns
![Page 5: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/5.jpg)
IST 210 Second Normal Form (2NF)
In 1NF and every non-key column is fully dependent on the (entire) primary key
![Page 6: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/6.jpg)
IST 210 Third Normal Form (3NF)
In 2NF, every non-key column is mutually independent, ie, no transitive dependencies
![Page 7: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/7.jpg)
IST 210 Functional Dependencies Describes the relationship between
attributes in a relation Example
If A and B are attributes of relation R, A functionally determines B (A B), if each value of A is associated with exactly one value of B.
A BA functionally
determines B
![Page 8: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/8.jpg)
IST 210 Functional Dependencies Functional dependencies arise from the nature
of the real world that the database models. Often A and B are facts about an entity where
A might be some identifier for the entity and B some characteristic.
Functional dependencies cannot be automatically determined by studying one or more instances of a database.
They can be determined only by a careful study of the real world and a clear understanding of what each attribute means.
![Page 9: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/9.jpg)
IST 210 Functional Dependencies
Important as a constraint on the data that may appear within a relation Scheme-level control of data
Mathematical tool for explaining the process of “normalization” ---- vital for DB redesigning
![Page 10: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/10.jpg)
IST 210 Example
Drinkers (name, addr, beersLiked, manf, favoriteBeer)
Reasonable FD’s to assert: name addr name favoriteBeer beersLiked manf
Note: these happen to imply the underlined key, but the FD’s give more detail than the mere assertion of a key
name
addrbeerLiked
manf favoriteBeer
Jane 16801 Bud A.B. WickedAle
Jane 16801 WickedAle
Pete’s WickedAle
Mike 16803 Bud A.B. Bud
![Page 11: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/11.jpg)
IST 210 Example (cont.) Key (in general) functionally determines all
attributes. name beersLiked addr favoriteBeer beerManf
Shorthand: combine FD’s with common left side by concatenating their right sides
When FD’s are not of the form (Key) other attribute(s), then there is typically an attempt to “cram” too much into one relation.
Sometimes, several attributes jointly determines another attribute, although neither does by itself.
Example: beer bar price
![Page 12: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/12.jpg)
IST 210 Formal Notion of Key K is a key for relation R if:
(1) K all attributes of R(K functionally determines all the attributes of R)
(2) For no proper subset of K is (1) true If K at least satisfies (1), then K is
a superkey
![Page 13: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/13.jpg)
IST 210 ExampleDrinkers (name, addr, beersLiked, manf, favoriteBeer) {name,beerLiked} FD’s all attributes, as seen
Shows {name,beerLiked} is a superkey (functionally determines all attributes)
name beersLiked is false, so name not a superkey beersLiked name also false, so beersLiked not a
superkey Thus, {name,beersLiked} is a key No other keys in this example
Neither name nor beersLiked is on the right of any observed FD, so they must be part of any superkey
![Page 14: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/14.jpg)
IST 210 Who determines Keys/FD’s We could define a relation schema by
simply giving a single key K Then the only FD’s asserted are that KA for
every attribute A No surprise: K is then the only key for those
FD’s, according to the formal definition of ‘Key.’ Or, we could assert some FD’s and deduce
one or more keys by the formal definition E/R diagram implies FD’s by key declarations
and many-to-one relationship declarations
![Page 15: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/15.jpg)
IST 210 Rule of thumb FD’s either come from keyness (i.e.,
a set of attributes that functionally determines all attributes), many-to-one relationship, or from physics E.g., “no two courses can meet in the
same room at the same time” (at least we don’t know a way) yieldsroom time course
![Page 16: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/16.jpg)
IST 210 Boyce-Codd Normal Form Goal = Boyce-Codd Normal Form BCNF = all FD’s follow from the fact
keyeverything Formally, R is in BCNF if every nontrivial FD for
R, say XA, has X a superkey (i.e., X functionally determines all attributes).
Why important? Guarantees no redundancy due to FD’s Guarantees no update anomalies Guarantees no deletion anomalies
Trivial dependency - A dependency is trivial if the functionally determined attribute is a subset of the functionally determining attributes. For instance,
AB AAB functionally
determines B
![Page 17: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/17.jpg)
IST 210 Using Closure to Reach BCNF The closure of a set F of functional
dependencies is the set of all functional dependencies logically implied by F.
Setting: relation R, given FD’s F. Suppose relation R has BCNF violation XB.
We need only look among FD’s of F for a BCNF violation.
Compute X+ (cannot be all attributes) Decompose R into X+ and (R-X+) X. Find the FD’s for the decomposed
relations
R
X X+
![Page 18: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/18.jpg)
IST 210 ExampleDrinkers (name, addr, beersLiked, manf, favoriteBeer) FD’s:
name addr name favoriteBeer beersLiked manf
Pick BCNF violation name addr Close the left side: name+ = name addr favoriteBeer Decomposed relations:
Drinkers1(name,addr,favoriteBeer)Drinkers2(name,beersLiked,manf)
New FD’s: For Drinker1: nameaddr and namefavoriteBeer (BCNF)For Drinker2: beersLikedmanf (violates BCNF, decompose again)
![Page 19: IST 210 Normalization 2 Todd Bacastow IST 210. Normalization Methods Inspection Closure Functional dependencies are key.](https://reader036.fdocuments.us/reader036/viewer/2022082712/56649f305503460f94c4b189/html5/thumbnails/19.jpg)
IST 210 Example (cont.) Final relations all in BCNF
Drinker1(name,addr,favoriteBeer)Drinker3(beersLiked,manf)Drinker4(name,beersLiked)