![Page 1: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/1.jpg)
Lecture 6:
Design Constraints and Functional Dependencies
January 21st, 2004
![Page 2: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/2.jpg)
Administration
• Questions about project?
• Anything else?
![Page 3: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/3.jpg)
Outline
• End of conceptual modeling
• Functional dependencies (3.4)
• Rules about FDs (3.5)
• Design of a Relational schema (3.6)
![Page 4: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/4.jpg)
Modeling Subclasses
The world is inherently hierarchical. Some entities are special cases of others
• We need a notion of subclass.• This is supported naturally in object-oriented formalisms.
Products
Software products
Educational products
![Page 5: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/5.jpg)
Product
name category
price
isa isa
Educational ProductSoftware Product
Age Groupplatforms
Subclasses in E/R Diagrams
![Page 6: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/6.jpg)
Understanding Subclasses
• Think in terms of records:– Product
– SoftwareProduct
– EducationalProduct
field1
field2
field1
field2
field1
field2
field3
field4field5
![Page 7: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/7.jpg)
Subclasses to Relations
Product
name category
price
isa isa
Educational ProductSoftware Product
Age Groupplatforms
Name Price Category
Gizmo 99 gadget
Camera 49 photo
Toy 39 gadget
Name platforms
Gizmo unix
Name Age Group
Gizmo todler
Toy retired
Product
Sw.Product
Ed.Product
![Page 8: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/8.jpg)
Modeling UnionTypes With Subclasses
FurniturePiece
Person Company
Say: each piece of furniture is owned either by a person, or by a company
![Page 9: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/9.jpg)
Modeling Union Types with Subclasses
Say: each piece of furniture is owned either by a person, or by a company
Solution 1. Acceptable, imperfect (What’s wrong ?)
FurniturePiecePerson Company
ownedByPerson ownedByPerson
![Page 10: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/10.jpg)
Modeling Union Types with Subclasses
Solution 2: better, more laborious
isa
FurniturePiece
Person CompanyownedBy
Owner
isa
![Page 11: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/11.jpg)
Constraints in E/R Diagrams
Finding constraints is part of the modeling process. Commonly used constraints:
Keys: social security number uniquely identifies a person.
Single-value constraints: a person can have only one father.
Referential integrity constraints: if you work for a company, it must exist in the database.
Other constraints: peoples’ ages are between 0 and 150.
![Page 12: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/12.jpg)
Keys in E/R Diagrams
address name ssn
Person
Product
name category
price
No formal way to specify multiple keys in E/R diagrams
Underline:
![Page 13: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/13.jpg)
Single Value Constraints
makes
makes
v. s.
![Page 14: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/14.jpg)
Referential Integrity Constraints
CompanyProduct makes
CompanyProduct makes
![Page 15: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/15.jpg)
Other Constraints
CompanyProduct makes<100
What does this mean ?
![Page 16: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/16.jpg)
Weak Entity SetsEntity sets are weak when their key comes from otherclasses to which they are related.
UniversityTeam affiliation
numbersport name
![Page 17: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/17.jpg)
Handling Weak Entity Sets
UniversityTeam affiliation
numbersport name
Convert to a relational schema (in class)
![Page 18: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/18.jpg)
Relational Schema Design
PersonbuysProduct
name
price name ssn
Conceptual Model:
Relational Model:plus FD’s
Normalization:Eliminates anomalies
![Page 19: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/19.jpg)
Functional Dependencies
Definition: A1, ..., Am B1, ..., Bn holds in R if:
t, t’ R, (t.A1=t’.A1 ... t.Am=t’.Am t.B1=t’.B1 ... t.Bm=t’.Bm )
A1 ... Am B1 ... Bm
if t, t’ agree here then t, t’ agree here
t
t’
R
![Page 20: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/20.jpg)
Important Point!
• Functional dependencies are part of the schema!
• They constrain the possible legal data instances.
• At any point in time, the actual database may satisfy additional FD’s.
![Page 21: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/21.jpg)
Examples
• EmpID Name, Phone, Position
• Position Phone
• but Phone Position
EmpID Name Phone PositionE0045 Smith 1234 ClerkE1847 John 9876 SalesrepE1111 Smith 9876 SalesrepE9999 Mary 1234 Lawyer
![Page 22: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/22.jpg)
Formal definition of a key
• A key is a set of attributes A1, ..., An s.t. for any other attribute B, A1, ..., An B
• A minimal key is a set of attributes which is a key and for which no subset is a key
• Note: book calls them superkey and key
![Page 23: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/23.jpg)
Examples of Keys
• Product(name, price, category, color)name, category pricecategory color
Keys are: {name, category} and all supersets
• Enrollment(student, address, course, room, time)student addressroom, time coursestudent, course room, time
Keys are: [in class]
![Page 24: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/24.jpg)
Finding the Keys of a Relation
Given a relation constructed from an E/R diagram, what is its key?
Rules: 1. If the relation comes from an entity set, the key of the relation is the set of attributes which is the key of the entity set.
address name ssn
Person Person(address, name, ssn)
![Page 25: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/25.jpg)
Finding the Keys
PersonbuysProduct
name
price name ssn
buys(name, ssn, date)
date
Rules: 2. If the relation comes from a many-many relationship, the key of the relation is the set of all attribute keys in the relations corresponding to the entity sets
![Page 26: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/26.jpg)
Finding the KeysExcept: if there is an arrow from the relationship to E, then we don’t need the key of E as part of the relation key.
Purchase
Product
Person
Store
CreditCard
name
card-nossn
sname
Purchase(name , sname, ssn, card-no)
![Page 27: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/27.jpg)
Expressing DependenciesSay: “the CreditCard determines the Person”
Purchase
Product
Person
Store
CreditCard
name
card-nossn
sname
Purchase(name , sname, ssn, card-no)
Incomplete(what does
it say ?)
card-no name
![Page 28: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/28.jpg)
Finding the Keys
More rules in the book – please read !
![Page 29: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/29.jpg)
Inference Rules for FD’s
A , A , … A 1 2 n B , B , … B 1 2 m
A , A , … A 1 2 n 1
Is equivalent to
B
A , A , … A 1 2 n 2B
A , A , … A 1 2 n mB
…
Splitting rule and Combing rule
A1 ... Am B1 ... Bm
![Page 30: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/30.jpg)
Inference Rules for FD’s(continued)
A , A , … A 1 2 n iA Trivial Rule
Why ?
A1 ... Am
where i = 1, 2, ..., n
![Page 31: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/31.jpg)
Inference Rules for FD’s(continued)
A , A , … A 1 2 n
Transitive Closure Rule
B , B , … B1 2 m
A , A , … A 1 2 n
1B , B …, B
2 m
1C , C …, C
2 p
1C , C …, C
2 p
If
and
then
Why ?
![Page 32: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/32.jpg)
A1 ... Am B1 ... Bm C1 ... Cp
![Page 33: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/33.jpg)
• Enrollment(student, major, course, room, time)student major
major, course room
course time
What else can we infer ? [in class]
![Page 34: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/34.jpg)
Closure of a set of Attributes
Given a set of attributes {A1, …, An} and a set of dependencies S.Problem: find all attributes B such that:
any relation which satisfies S also satisfies:A1, …, An B
The closure of {A1, …, An}, denoted {A1, …, An} ,is the set of all such attributes B
+
![Page 35: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/35.jpg)
Closure Algorithm
Start with X={A1, …, An}.
Repeat until X doesn’t change do:
if is in S, and
C is not in X
then
add C to X.
B , B , … B 1 2 nC
B , B , … B 1 2 n
are all in X, and
![Page 36: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/36.jpg)
ExampleA B CA D E B DA F B
Closure of {A,B}: X = {A, B, }
Closure of {A, F}: X = {A, F, }
R(A,B,C,D,E,F)
![Page 37: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/37.jpg)
Why Is the Algorithm Correct ?
• Show the following by induction:– For every B in X:
• A1, …, An B
• Initially X = {A1, …, An} -- holds• Induction step: B1, …, Bm in X
– Implies A1, …, An B1, …, Bm– We also have B1, …, Bm C– By transitivity we have A1, …, An C
• This shows that the algorithm is sound; need to show it is complete
![Page 38: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/38.jpg)
Relational Schema Design(or Logical Design)
Main idea:
• Start with some relational schema
• Find out its FD’s
• Use them to design a better relational schema
![Page 39: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/39.jpg)
Relational Schema Design
Anomalies:• Redundancy = repeat data• Update anomalies = Fred moves to “Bellvue”• Deletion anomalies = Fred drops all phone numbers:
what is his city ?
Recall set attributes (persons with several phones):
SSN Name, City, but not SSN PhoneNumber
Name SSN PhoneNumber City
Fred 123-45-6789 206-555-1234 Seattle
Fred 123-45-6789 206-555-6543 Seattle
Joe 987-65-4321 908-555-2121 Westfield
Joe 987-65-4321 908-555-1234 Westfield
![Page 40: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/40.jpg)
Relation DecompositionBreak the relation into two:
Name SSN City
Fred 123-45-6789 Seattle
Joe 987-65-4321 Westfield
SSN PhoneNumber
123-45-6789 206-555-1234
123-45-6789 206-555-6543
987-65-4321 908-555-2121
987-65-4321 908-555-1234
![Page 41: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/41.jpg)
Relational Schema Design
PersonbuysProduct
name
price name ssn
Conceptual Model:
Relational Model:plus FD’s
Normalization:Eliminates anomalies
![Page 42: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/42.jpg)
Decompositions in GeneralR(A1, ..., An)
Create two relations R1(B1, ..., Bm) and R2(C1, ..., Cp)
such that: B1, ..., Bm C1, ..., Cp = A1, ..., An
and:R1 = projection of R on B1, ..., Bm
R2 = projection of R on C1, ..., Cp
![Page 43: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/43.jpg)
Incorrect Decomposition
• Sometimes it is incorrect:
Name Price Category
Gizmo 19.99 Gadget
OneClick 24.99 Camera
DoubleClick 29.99 Camera
Decompose on : Name, Category and Price, Category
![Page 44: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/44.jpg)
Incorrect Decomposition
Name Category
Gizmo Gadget
OneClick Camera
DoubleClick Camera
Price Category
19.99 Gadget
24.99 Camera
29.99 Camera
Name Price Category
Gizmo 19.99 Gadget
OneClick 24.99 Camera
OneClick 29.99 Camera
DoubleClick 24.99 Camera
DoubleClick 29.99 Camera
When we put it back:
Cannot recover information
![Page 45: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/45.jpg)
Normal Forms
First Normal Form = all attributes are atomic
Second Normal Form (2NF) = old and obsolete
Third Normal Form (3NF) = this lecture
Boyce Codd Normal Form (BCNF) = this lecture
Others...
![Page 46: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/46.jpg)
Boyce-Codd Normal Form
A simple condition for removing anomalies from relations:
In English (though a bit vague):
Whenever a set of attributes of R is determining another attribute, should determine all the attributes of R.
A relation R is in BCNF if:
Whenever there is a nontrivial dependency A1, ..., An B
in R , {A1, ..., An} is a key for R
A relation R is in BCNF if:
Whenever there is a nontrivial dependency A1, ..., An B
in R , {A1, ..., An} is a key for R
![Page 47: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/47.jpg)
Example
What are the dependencies?SSN Name, City
What are the keys?{SSN, PhoneNumber}
Is it in BCNF?
Name SSN PhoneNumber City
Fred 123-45-6789 206-555-1234 Seattle
Fred 123-45-6789 206-555-6543 Seattle
Joe 987-65-4321 908-555-2121 Westfield
Joe 987-65-4321 908-555-1234 Westfield
![Page 48: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/48.jpg)
Decompose it into BCNF
Name SSN City
Fred 123-45-6789 Seattle
Joe 987-65-4321 Westfield
SSN PhoneNumber
123-45-6789 206-555-1234
123-45-6789 206-555-6543
987-65-4321 908-555-2121
987-65-4321 908-555-1234
SSN Name, City
![Page 49: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/49.jpg)
Summary of BCNF Decomposition
Find a dependency that violates the BCNF condition:
A , A , … A 1 2 n B , B , … B 1 2 m
A’sOthers B’s
R1 R2
Heuristics: choose B , B , … B “as large as possible”1 2 m
Decompose:
Is there a 2-attribute relation that isnot in BCNF ?
Continue untilthere are noBCNF violationsleft.
![Page 50: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/50.jpg)
Example Decomposition Person(name, SSN, age, hairColor, phoneNumber)
SSN name, ageage hairColor
Decompose in BCNF (in class):
Step 1: find all keys
Step 2: now decompose
![Page 51: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/51.jpg)
Other Example
• R(A,B,C,D) A B, B C
• Key: A, D
• Violations of BCNF: A B, A C, A BC
• Pick A BC: split into R1(A,BC) R2(A,D)
• What happens if we pick A B first ?
![Page 52: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/52.jpg)
Correct Decompositions A decomposition is lossless if we can recover:
R(A,B,C)
R1(A,B) R2(A,C)
R’(A,B,C) should be the same as R(A,B,C)
R’ is in general larger than R. Must ensure R’ = R
Decompose
Recover
![Page 53: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/53.jpg)
Correct Decompositions
• Given R(A,B,C) s.t. AB, the decomposition into R1(A,B), R2(A,C) is lossless
![Page 54: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/54.jpg)
3NF: A Problem with BCNFUnit Company Product
Unit Company
Unit Product
FD’s: Unit Company; Company, Product UnitSo, there is a BCNF violation, and we decompose.
Unit Company
No FDs
![Page 55: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/55.jpg)
So What’s the Problem?
Unit Company Product
Unit Company Unit Product
Galaga99 UW Galaga99 databasesBingo UW Bingo databases
No problem so far. All local FD’s are satisfied.Let’s put all the data back into a single table again:
Galaga99 UW databasesBingo UW databases
Violates the dependency: company, product -> unit!
![Page 56: Lecture 6: Design Constraints and Functional Dependencies January 21st, 2004](https://reader034.vdocuments.site/reader034/viewer/2022051516/56649cf75503460f949c7f4d/html5/thumbnails/56.jpg)
Solution: 3rd Normal Form (3NF)
A simple condition for removing anomalies from relations:
A relation R is in 3rd normal form if :
Whenever there is a nontrivial dependency A1, A2, ..., An Bfor R , then {A1, A2, ..., An } a super-key for R, or B is part of a key.
A relation R is in 3rd normal form if :
Whenever there is a nontrivial dependency A1, A2, ..., An Bfor R , then {A1, A2, ..., An } a super-key for R, or B is part of a key.