Title: Multivalued Dependency
1Multivalued Dependency
2Introduction
- Goal in Databases
- BCNF (Boyce Codd Normal Form)
- Losslessness
- Dependency preservation
3Remember
- Boyce Codd Normal Form (BCNF) eliminates all
redundancy that can be discovered based on
functional dependencies.
4Issue
- Some relation schemas, even though they are in
BCNF, do not seem to be sufficiently normalized. - They still contain repetitions
5Case study
- Consider the bank database schema
- cust_loan (loan_number, cust_id, cust_name,
cust_street, cust_city) - This is BCNF because of the functional
dependency - cust_id -gt cust_name, cust_street cust_city
- And because cust_id is not a key for cust_loan
6Case Study
- But what if some customers have several
addresses? -
- We no longer wish to enforce the func.
dependency cust_id -gtcust_street cust_city - But we still want to enforce
- cust_id -gt cust_name
7Case Study
- Following BCNF decomposition algorithm
- we get
- R1 (cust_id, cust_name)
- R2 (loan_number, cust_id, cust_street,
cust_city) - (both in BCNF)
8Case Study
- The issue
- Despite R2 in BCNF, there is redundancy. We
repeat the address of each residence for each
loan that the customer has.
9Case Study
- We can therefore decompose further into
- loan_cust_id (loan_number, cust_id)
- cust_residence (cust_id, cust_street,
cust_city) - But there is no constraint that lead us to do
that. - To deal with this, we need a few form of
constraint 4NF.
104NF
- We can use multivalued dependencies to define
the fourth normal form
114NF
- A relation schema R is in fourth normal form
with respect to a set D of functional and
multivalued dependencies if, for all multivlued
dependencies in D of the form A --gt-gt B at least
one of the following holds - A --gt-gt B is a trivial multivalued dependency
- A is a superkey for schema R
12Multivalued Dependency
- Requires that other tuples of a certain form be
present in the relation. - Also referred to as
- tuple-generating dependency
13Example
- R relation schema, A and B follow the multivalued
dependency - A --gt-gt B
- The relationship between A and B is independent
of the relation between A and R B - If A --gt-gt B is satisfied by all relations on R
then - A --gt-gt B is a trivial multivalued dependency
14Example
- Lets reconsider
- R2 (loan_number, cust_id, cust_street,
cust_city)
loan_number cust_id cust_street cust_city
L-23 99-123 North Rye
L-23 99-123 Main Manchester
L-93 15-106 Lake Horseneck
15Example
loan_number cust_id cust_street cust_city
L-23 99-123 North Rye
L-23 99-123 Main Manchester
L-93 15-106 Lake Horseneck
We must repeat the loan number once for each
address a customer has and we must repeat the
address for each loan a customer has.
16Example
loan_number cust_id cust_street cust_city
L-23 99-123 North Rye
L-23 99-123 Main Manchester
L-93 15-106 Lake Horseneck
We must repeat the loan number once for each
address a customer has and we must repeat the
address for each loan a customer has. This
repetition is unnecessary since the relationship
between a customer and his address is independent
of the relationship between that customer and a
loan.
17Example
- Therefore this relation is illegal
loan_number cust_id cust_street cust_city
L-23 99-123 North Rye
L-27 99-123 Main Manchester
18Example
- Therefore this relation is illegal
loan_number cust_id cust_street cust_city
L-23 99-123 North Rye
L-27 99-123 Main Manchester
- To make it legal we should add tuples
- (L23, 99-123, Main, Manchester) and
- (L27, 99-123, North, Rye)
19Example
loan_number cust_id cust_street cust_city
L-23 99-123 North Rye
L-27 99-123 Main Manchester
L-23 99-123 Main Manchester
L-27 99-123 North Rye
20Example
loan_number cust_id cust_street cust_city
L-23 99-123 North Rye
L-27 99-123 Main Manchester
L-23 99-123 Main Manchester
L-27 99-123 North Rye
- We want Cust_id --gt-gt cust_street cust_city
- to hold
21Conclusion
- We can use multivalued dependencies
- To test relations to determine whether they are
legal under a given set of functional and
multivalued dependencies - To specify constraints on the set of legal
relations