988 B
lec22
Functional Dependancy
If we have an attribute a that could produce b,c,d
reliably everytime then we would only need to keep track of a
instead of keeping track of all the repeats because the dependants depend on a
.
Example:
building -> roomNumber
This one makes sense since we would likely be able to find duplicate room numbers in different buildings. Most places have a name for each building however.
BCNF
Boyce Codd Normal Form
If we have a key which sources our redundancy we're ok because we can easily find all redundancies. If we're not looking at a key then we could be in the middle of a dependancy nest.
Say we have a schema like advisees(inst_id, student_id, student_name)
.
Student name depends on student_id
so there's no reason to have it in the schema.
A schema follows BCNF if there's a non-trivial functional dependancy
- x -> y for r
- then x is a superkey for r
Example
instructor_offices(inst_id, name, office)