Database Design & Schema Refinement

Post on 14-Oct-2014

1849 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

Transcript

Database Design & Schema Refinement

Professor Navneet GoyalDepartment of Computer Science & Information SystemsBITS, Pilani

© Prof. Navneet Goyal, BITS, Pilani

Topics Database Design Steps Redundancy Schema Refinement

Minimizing Redundancy Functional Dependencies (FDs) Normalization using FDs

First Normal Form (1NF) Second Normal Form (2NF) Third Normal Form (3NF) Boyce-Codd Normal Form (BCNF)

© Prof. Navneet Goyal, BITS, Pilani

Database Design Steps Requirements Analysis Conceptual Modeling (ER Model) Logical Modeling (Relational Model) Schema Refinement (Normalization)

© Prof. Navneet Goyal, BITS, Pilani

Redundancy Same information at many places in

the DB Problems:

Wastage of Space Update Anomalies

• Update Anomaly• Insert Anomaly• Delete Anomaly

Normalization is used for “minimizing” redundancy

© Prof. Navneet Goyal, BITS, Pilani

Update AnomaliesConsider the relation:EMP_PROJ ( Emp#, Proj#, Ename, Pname, No_hours) Update Anomaly: Changing the name of project

number P1 from “Billing” to “Customer-Accounting” may cause this update to be made for all 100 employees working on project P1

Insert Anomaly: Cannot insert a project unless an employee is assigned to it

Inversely - Cannot insert an employee unless he/she is assigned to a project.

© Prof. Navneet Goyal, BITS, Pilani

Update AnomaliesConsider the relation:EMP_PROJ ( Emp#, Proj#, Ename, Pname, No_hours) Delete Anomaly: When a project is deleted, it will

result in deleting all the employees who work on that project. Alternately, if an employee is the sole employee on a project, deleting that employee would result in deleting the corresponding project

© Prof. Navneet Goyal, BITS, Pilani

SolutionDecompose the relation:EMP_PROJ ( Emp#, Proj#, Ename, Pname, No_hours)Into the following smaller relations:EMP (Emp#, Ename)PROJ (Proj#, Pname)EMP_PROJ ( Emp#, Proj#, No_hours) What happened to update anomalies? We need to find out the basis for

decomposing a relation to get rid of update anomalies

© Prof. Navneet Goyal, BITS, Pilani

Redundancy Integrity constraints, in particular

functional dependencies, can be used to identify schemas with such problems and to suggest refinements.

Main refinement technique: decomposition (replacing ABCD with, say, AB and BCD, or ACD and ABD).

Decomposition should be used judiciously: Is there a reason to decompose a relation? What problems (if any) does the decomposition

cause?

© Prof. Navneet Goyal, BITS, Pilani

Functional Dependencies Constraints on the set of legal

relations Require that the value for a certain

set of attributes determines uniquely the value for another set of attributes

A functional dependency is a generalization of the notion of a key

© Prof. Navneet Goyal, BITS, Pilani

Functional Dependencies A functional dependency X Y holds over relation R

if, for every allowable instance r of R: t1 r, t2 r, (t1) = (t2) implies (t1) = (t2) i.e., given two tuples in r, if the X values agree, then the Y

values must also agree. (X and Y are sets of attributes.) An FD is a statement about all allowable instances of a

relation Must be identified based on semantics of application. Given some allowable instance r1 of R, we can check if it

violates some FD f, but we cannot tell if f holds over R! K is a candidate key for R means that K R

However, K R does not require K to be minimal!

X X YY

© Prof. Navneet Goyal, BITS, Pilani

Let R be a relation schema R and R

The functional dependency holds on R if and only if for any legal relations r(R), whenever any two tuples t1 and t2 of r agree on the attributes , they also agree on the attributes . That is, t1[] = t2 [] t1[ ] = t2 [ ]

Example: Consider r(A,B ) with the following instance of r.

On this instance, A B does NOT hold, but B A does hold.

1 41 53 7

Functional Dependencies

© Prof. Navneet Goyal, BITS, Pilani

Functional Dependencies

t

u

A’s B’s

If t & u agree here

Then they must

agree here

A B

© Prof. Navneet Goyal, BITS, Pilani

K is a superkey for relation schema R if and only if K R K is a candidate key for R if and only if

K R, and for no K, R

Functional dependencies allow us to express constraints that cannot be expressed using superkeys. Consider the schema:bor_loan = (customer_id, loan_number, amount )We expect this functional dependency to hold:loan_number amountbut would not expect the following to hold: amount customer_name

Functional Dependencies

© Prof. Navneet Goyal, BITS, Pilani

A functional dependency is trivial if it is satisfied by all instances of a relation Example:

• customer_name, loan_number customer_name

• customer_name customer_name In general, is trivial if

Functional Dependencies

© Prof. Navneet Goyal, BITS, Pilani

Consider the relation:PLOTS (prop#, state, plot#, area, price, Tax_rate)

Information about plots available in India. The constraints on the relation are: Prop# is unique throughout India Plot# are unique within a given state For a given_state, tax_rate is fixed Plots having the same area have the same price, irrespective

of the state in which they are located Write all the FDs on the relation

PLOTS

Functional Dependencies

© Prof. Navneet Goyal, BITS, Pilani

Functional DependenciesPLOTS

Prop# State Plot# Area Price Tax_rate

FD1 PK

FD2 CK

FD3

FD4

Identify redundancy in PLOTSIdentify update anomalies in PLOTS

© Prof. Navneet Goyal, BITS, Pilani

Functional DependenciesPLOTS

FD1 PK

FD2 CK

Plot#StateProp# Area

PriceAreaFD4

Tax_rateFD3

State

© Prof. Navneet Goyal, BITS, Pilani

Normal Forms based on PK 2 NF 3 NF

Normal Forms based on CKs Boyce-Codd Normal Form (BCNF)

Other Normal Forms 4 NF (Multivalued Dependencies) 5 NF (Join Dependencies) Deal with very rare practical situations

Normal Forms

© Prof. Navneet Goyal, BITS, Pilani

Based on the concept of Full FDs (FFD) If A & B are sets of attributes of R, B is said to

be FFD on A if AB, but no proper subset of A determines B

No partial dependencies on the PK Is PLOTS in 2NF? YES Single attribute PK All relations with single attribute PK are in 2

NF!! 2 NF applies to relations with composite keys

2 NF

© Prof. Navneet Goyal, BITS, Pilani

A relation that is in 1NF & every non-PK attribute is fully functionally dependent on the PK, is said to be in 2 NF

1 NF

2 NF

2 NFRemove all

Partial Dependencies

© Prof. Navneet Goyal, BITS, Pilani

Based on the concept of transitive dependency

No non-PK attribute should be transitively dependent on the PK

Transitive DependencyIf AB & BC, then A transitively determines C through B, provided B & C do not determine A

Is PLOTS in 3NF? NO

3 NF

© Prof. Navneet Goyal, BITS, Pilani

3 NFPLOTS

Prop# State Plot# Area Price Tax_rate

FD1 PK

FD2 CK

FD3

FD4Prop# transitively determines tax_rate through stateProp# transitively determines price through area

© Prof. Navneet Goyal, BITS, Pilani

A relation that is in 1NF & 2 NF & no non-PK attribute is transitively dependent on the PK, is said to be in 3 NF

2 NF

3 NF

3 NFRemove all

Transitive Dependencies

© Prof. Navneet Goyal, BITS, Pilani

Based on FDs that take into account all candidate keys of a relation

For a relation with only 1 CK, 3NF & BCNF are equivalent

A relation is said to be in BCNF if every determinant is a CK

Is PLOTS in BCNF? NO

BCNF

© Prof. Navneet Goyal, BITS, Pilani

Consider the relation R(A,B,C) with functional dependencies ABC and CB.

• Is R in 2NF?• Is R in 3NF?• Is R in BCNF?

Problem 1

© Prof. Navneet Goyal, BITS, Pilani

For the relation R (A,B,C,D), the Functional Dependencies are AB, AC, AD, & BA.

Find the candidate keys of R List transitive dependencies in R

(assume any CK as PK) Find the highest current normal

form of R

Problem 2

© Prof. Navneet Goyal, BITS, Pilani

Closure of a set of FDs Given a set of FDs F on a relation R, it may

be possible that several other FDs must also hold for R

For Example, R=(A,B,C) & FDs, AB & BC hold in R, then FD AC also holds on R

For a given value of A, there can be only one corresponding value of B, & for that value of B, there can be only one corresponding value for C

The closure of F is the set of all FDs that can be inferred from F, & is denoted by F+

© Prof. Navneet Goyal, BITS, Pilani

Equivalent Set of FDs Two sets of FDs, S & T, are

equivalent if the set of relation instances satisfying S is exactly the same as the set of relation instances satisfying T

S follows from T if every relation instance that satisfies T also satisfies all FDs in S

S & T are equivalent iff S follows from T, & T follows from S

© Prof. Navneet Goyal, BITS, Pilani

Trivial, Non-trivial & Completely Non-trivial FDsAB Trivial

If B’s are a subset of the A’s Non-trivial

If atleast one of the B’s is not among A’s

Completely Non-trivialIf none of the B’s is also one of the A’s

© Prof. Navneet Goyal, BITS, Pilani

Trivial Dependency RuleThe FD A1A2A3…AnB1B2B3…Bm

is equivalent to A1A2A3…AnC1C2C3…Ck

where the C’s are all those B’s that are not A’s

© Prof. Navneet Goyal, BITS, Pilani

Closure of a set of FDs It is not suff. to consider just the given set of

FDs We need to consider all FDs that hold Given F, more FDs can be inferred Such FDs are said to be logically implied by F F+ is the set of all FDs logically implied by F We can compute F+using formal defn. of FD If F were large, this process would be

lengthy & cumbersome Axioms or Rules of Inference provide simpler

technique Armstrong;s Axioms

© Prof. Navneet Goyal, BITS, Pilani

Inference Rules for FDsArmstrong's inference rules:IR1. (Reflexive) If Y X, then X YIR2. (Augmentation) If X Y, then XZ YZ

(Notation: XZ stands for X U Z)IR3. (Transitive) If X Y and Y Z, then X Z

IR1, IR2, IR3 form a sound & complete set of inference rules

Never generates any wrong FD

Generate all FDs that hold

© Prof. Navneet Goyal, BITS, Pilani

Some additional inference rules that are useful:

IR4: Decomposition: If XYZ, then XY & XZIR5: Union: If XY & XZ, then XYZIR6: Psuedotransitivity: If XY & WYZ,then WXZ Above three inference rules, as well as any

other inference rules, can be deduced from IR1, IR2, and IR3 (completeness property)

Prove all the six rules (IR1 – IR6) – Use defn. of FD & either by direct proof or proof by contradiction

Inference Rules for FDs

© Prof. Navneet Goyal, BITS, Pilani

Inference Rules for FDsIR1. (Reflexive) If Y X, then X YProof: Y X & t1 & t2 Є some instance r of R э

t1[X]=t2[X], then t1[Y]=t2[Y] because Y X.IR2. (Augmentation) If X Y, then XZ YZProof by contradiction: Assume XY holds but

XZYZ does not. Then there must exist 2 tuples t1 & t2 э 1. t1[X]=t2[X], 2. t1[Y]=t2[Y]

3. t1[XZ]=t2[XZ] & 4. t1[YZ]≠t2[YZ]Not possible because from 1 & 3 we deduce 5. t1[Z]=t2[Z], & from 2 & 5 we deuce 6. t1[YZ]=t2[YZ], contradicting 4

© Prof. Navneet Goyal, BITS, Pilani

Example R = (A, B, C, G, H, I)

F = { A B A CCG HCG I B H}

some members of F+

A H • by transitivity from A B and B H

AG I • by augmenting A C with G, to get AG CG

and then transitivity with CG I CG HI

• By union rule

© Prof. Navneet Goyal, BITS, Pilani

Procedure for Computing F+

To compute the closure of a set of functional dependencies F:

F + = Frepeatfor each functional dependency f in F+

apply reflexivity and augmentation rules on f add the resulting functional dependencies to F +for each pair of functional dependencies f1and f2 in F + if f1 and f2 can be combined using transitivity then add the resulting functional dependency to F +until F + does not change any further

NOTE: We shall see an alternative procedure for this task later

© Prof. Navneet Goyal, BITS, Pilani

Closure of Attribute Sets Set of attributes functionally determined by X Closure of a set of attributes X with respect to F

is the set X+ of all attributes that are functionally determined by X

Algo. for computing closure: compute F+ & take all FDs with X on the LHS & take union of the RHS of all such FDs

X+ can be calculated by repeatedly applying IR1, IR2, IR3 using the FDs in F

Both these approaches become cumbersome if F is large & consequently F+ is larger

© Prof. Navneet Goyal, BITS, Pilani

Closure of Attribute Sets Given a set of attributes define the closure of under F

(denoted by +) as the set of attributes that are functionally determined by under F

Algorithm to compute +, the closure of under F

result := ;while (changes to result) do

for each in F dobegin

if result then result := result end

Try to find out why this algorithm works!Complexity of this algorithmCan you do any better?

© Prof. Navneet Goyal, BITS, Pilani

Example of Attribute Set Closure R = (A, B, C, G, H, I) F = {A B, A C, CG H, CG I, B H} (AG)+

1. result = AG2. result = ABCG (A C and A B)3. result = ABCGH (CG H and CG AGBC)4. result = ABCGHI (CG I and CG AGBCH)

Is AG a candidate key? 1. Is AG a super key?

1. Does AG R? == Is (AG)+ R2. Is any subset of AG a superkey?

1. Does A R? == Is (A)+ R2. Does G R? == Is (G)+ R

© Prof. Navneet Goyal, BITS, Pilani

Uses of Attribute ClosureThere are several uses of the attribute closure

algorithm: Testing for superkey:

To test if is a superkey, we compute +, and check if +

contains all attributes of R. Testing functional dependencies

To check if a functional dependency holds (or, in other words, is in F+), just check if +.

That is, we compute + by using attribute closure, and then check if it contains .

Is a simple and cheap test, and very useful Computing closure of F

For each R, we find the closure +, and for each S +, we output a functional dependency S.

© Prof. Navneet Goyal, BITS, Pilani

Canonical Cover Sets of functional dependencies may have

redundant dependencies that can be inferred from the others For example: A C is redundant in: {A B, B C} Parts of a functional dependency may be redundant

• E.g.: on RHS: {A B, B C, A CD} can be simplified to {A B, B C, A D}

• E.g.: on LHS: {A B, B C, AC D} can be simplified to {A B, B C, A D}

Intuitively, a canonical cover of F is a “minimal” set of functional dependencies equivalent to F, having no redundant dependencies or redundant parts of dependencies

© Prof. Navneet Goyal, BITS, Pilani

Equivalence of Sets of FDs Two sets of FDs F and G are equivalent if:

- every FD in F can be inferred from G, &- every FD in G can be inferred from F

Hence, F and G are equivalent if F+=G+

Definition: F covers G if every FD in G can be inferred from F (i.e., if G+F+)

F and G are equivalent if F covers G and G covers F

There is an algorithm for checking equivalence of sets of FDs

© Prof. Navneet Goyal, BITS, Pilani

Extraneous Attributes Consider a set F of functional dependencies and the

functional dependency in F. Attribute A is extraneous in if A

and F logically implies (F – { }) {( – A) }. Attribute A is extraneous in if A

and the set of functional dependencies (F – { }) { ( – A)} logically implies F.

Note: implication in the opposite direction is trivial in each of the cases above, since a “stronger” functional dependency always implies a weaker one

Example: Given F = {A C, AB C } B is extraneous in AB C because {A C, AB C}

logically implies A C (I.e. the result of dropping B from AB C).

Example: Given F = {A C, AB CD} C is extraneous in AB CD since AB C can be inferred

even after deleting C

© Prof. Navneet Goyal, BITS, Pilani

Testing if an Attribute is Extraneous

Consider a set F of functional dependencies and the functional dependency in F.

To test if attribute A is extraneous in 1. compute ({} – A)+ using the dependencies in F 2. check that ({} – A)+ contains A; if it does, A is

extraneous To test if attribute A is extraneous in

1. compute + using only the dependencies in F’ = (F – { }) { ( – A)},

2. check that + contains A; if it does, A is extraneous

© Prof. Navneet Goyal, BITS, Pilani

Canonical Cover A canonical cover for F is a set of dependencies Fc such that

F logically implies all dependencies in Fc, and Fc logically implies all dependencies in F, and No functional dependency in Fc contains an extraneous

attribute, and Each left side of functional dependency in Fc is unique.

To compute a canonical cover for F:repeat

Use the union rule to replace any dependencies in F 1 1 and 1 2 with 1 1 2 Find a functional dependency with an extraneous attribute either in or in If an extraneous attribute is found, delete it from

until F does not change

Note: Union rule may become applicable after some extraneous attributes have been deleted, so it has to be re-applied

© Prof. Navneet Goyal, BITS, Pilani

Computing Canonical Cover R = (A, B, C)

F = {A BC, B C, A B, AB C} Combine A BC and A B into A BC

Set is now {A BC, B C, AB C} A is extraneous in AB C

Check if the result of deleting A from AB C is implied by the other dependencies• Yes: in fact, B C is already present!

Set is now {A BC, B C} C is extraneous in A BC

Check if A C is logically implied by A B and the other dependencies• Yes: using transitivity on A B and B C.

• Can use attribute closure of A in more complex cases The canonical cover is: A B, B C

© Prof. Navneet Goyal, BITS, Pilani

Problems with DecompositionsThere are three potential problems to consider: Some queries become more expensive

• e.g., What is the price of prop# 1? Given instances of the decomposed relations, we

may not be able to reconstruct the corresponding instance of the original relation! • Fortunately, not in the PLOTS example• How we could say this?

Checking some dependencies may require joining the instances of the decomposed relations.• Fortunately, not in the PLOTS example• How we could say this?

Tradeoff: Must consider these issues vs. redundancy

© Prof. Navneet Goyal, BITS, Pilani

Lossy Decomposition

A B C1 2 34 5 67 2 81 2 87 2 3

A B C1 2 34 5 67 2 8

A B1 24 57 2

B C2 35 62 8

JOINSpurious Tuples

Note that we can never get anythng less than the original relation

Since we don’t know which tuples are spurious and which are genuine, we have indeed lost information

© Prof. Navneet Goyal, BITS, Pilani

Lossy Decomposition

S# StatusS3 30S5 30

S# CityS3 ParisS5 Athens

S# StatusS3 30S5 30

Status City30 Paris30 Athens

S# Status CityS3 30 ParisS5 30 Athens

1

2

© Prof. Navneet Goyal, BITS, Pilani

Lossless Decomposition Observe that S satisfies the FDs:

S# Status & S# City It can not be a coincidence that S is equal to

the join of its projections on {S#, Status} & {S#, City}

Heaths’ Theorem:Let R{A,B,C} be a relation, where A, B, & C are sets of attributes. If R satisfies AB & AC, then R is equal to the join of its projections on {A,B} & {A,C}

Observe that in 2 the FD, S# City is lost

© Prof. Navneet Goyal, BITS, Pilani

Lossless Decomposition

The decomposition of R into R1, R2, …Rn is lossless if for any instance r of R r = R1 (r ) R2 (r ) …… Rn (r )

We can replace R by R1 & R2, knowing that the instance of R can be recovered from the instances of R1 & R2

We can use FDs to show that decompositions are lossless

© Prof. Navneet Goyal, BITS, Pilani

Lossless Decomposition

TheoremA decomposition of R into R1 and R2 is lossless join wrt FDs F, if and only if at least one of the following dependencies is in F+:

• R1 R2 R1• R1 R2 R2

In other words, R1 R2 forms a superkey of either R1 or R2

© Prof. Navneet Goyal, BITS, Pilani

Dependency Preservation Let Fi be the set of dependencies

in F + that include only attributes in Ri.

• A decomposition is dependency preserving, if

(F1 F2 … Fn )+ = F +• If it is not, then checking updates for

violation of functional dependencies may require computing joins, which is expensive.

© Prof. Navneet Goyal, BITS, Pilani

Testing for Dependency Preservation

To check if a dependency is preserved in a decomposition of R into R1, R2, …, Rn we apply the following test (with attribute closure done with respect to F) result =

while (changes to result) dofor each Ri in the decomposition

t = (result Ri)+ Ri

result = result t If result contains all attributes in , then the functional dependency

is preserved. We apply the test on all dependencies in F to check if a

decomposition is dependency preserving This procedure takes polynomial time, instead of the exponential

time required to compute F+ and (F1 F2 … Fn)+

© Prof. Navneet Goyal, BITS, Pilani

Example R = (A, B, C )

F = {A B, B C}Key = {A}

R is not in BCNF Decomposition R1 = (A, B), R2 = (B, C)

R1 and R2 in BCNF Lossless-join decomposition Dependency preserving

© Prof. Navneet Goyal, BITS, Pilani

4 NF BCNF removes any anomalies due to FDs Further research has led to the

identification of another type of dependency called Multi-valued Dependency (MVD)

Proposed by R Fagin* in 1977 MVDs can also cause data redundancy MVDs are a generalization of FDs

* R Fagin: “Multi-valued Dependencies & a new normal form for relational databases,” ACM TODS2, No. 3 (Sept. 1977)

© Prof. Navneet Goyal, BITS, Pilani

4 NF Consider the following relation HCTX:

In relational databases, repeating groups are not allowed

Course Teacher TextsDBS N Goyal

J P MisraGarciaRaghu

ADBS J P Misra ConnollyGarcia

© Prof. Navneet Goyal, BITS, Pilani

4 NF 1 NF Version

COURSE TEACHER TEXTS

DBS N GOYAL GARCIADBS N GOYAL RAGHU RDBS J P MISRA GARCIADBS J P MISRA RAGHU RADBS J P MISRA GARCIAADBS J P MISRA CONNOLLY

CTX

NO FDs in this relation

© Prof. Navneet Goyal, BITS, Pilani

4 NF Highest Normal Form?

COURSE TEACHER TEXTS

DBS N GOYAL GARCIADBS N GOYAL RAGHU RDBS J P MISRA GARCIADBS J P MISRA RAGHU RADBS J P MISRA GARCIAADBS J P MISRA CONNOLLY

CTXBCNF?

© Prof. Navneet Goyal, BITS, Pilani

4 NF Anomalies?

COURSE TEACHER TEXTS

DBS N GOYAL GARCIADBS N GOYAL RAGHU RDBS J P MISRA GARCIADBS J P MISRA RAGHU RADBS J P MISRA GARCIAADBS J P MISRA CONNOLLY

CTXMANY!!

© Prof. Navneet Goyal, BITS, Pilani

4 NFAnomalies New Teacher for DBS New Text for ADBS Teacher teaching DBS leaves

© Prof. Navneet Goyal, BITS, Pilani

4 NFPoints to note: If (c,t1,x1), (c,t2,x2) both appear, then

(c,t1,x2), (c,t2,x1) will also appear. Teachers and texts are completely independent of

one another CTX has no FDs at all CTX is in BCNF Any all key relation must necessarily be in BCNF!! But still there is a need to normalize CTX

© Prof. Navneet Goyal, BITS, Pilani

4 NFDecompose CTX into CT & TX

COURSE TEACHERDBS N GOYALDBS J P MISRAADBS J P MISRA

COURSE TEXTDBS GARCIADBS RAGHU RADBS GARCIAADBS CONNOLLY

CT TX

© Prof. Navneet Goyal, BITS, Pilani

4 NF Decompose CTX into CT & TX is not done

on the basis of FDs (as there are no FDs) Decompose CTX into CT & TX is done on

the basis of MVDs MVDs

Represents a dependency between attributes of a relation, such that for every value of A, there is a set of values of B & a set of values of C, The set of values for B & C are independent of each other

course teacher (course multi-determines teacher)

course text (text multi-dependent on course)

© Prof. Navneet Goyal, BITS, Pilani

4 NF Interpretation of course teacher

Although a course does not have a single corresponding teacher, i.e. the FD course teacher does not hold

Still each course must have a ‘well defined’ set of teachers

For a given course c and a given text x, the set of teachers t matching the pair (c,x) depends on value of c alone

It makes no difference which particular value of x we choose

Interpret course text analogously

© Prof. Navneet Goyal, BITS, Pilani

4 NFFormal Definition Let R be a relation and A,B,C be subsets of attributes

of R, then we say that A Biff, in every possible legal value of R, the set of B values matching a given (A,C) pair depends only on the value of A and is independent of the C value.

It can be easily shown that for R(A,B,C), the MVD A B hold iff the MVD A C also holds.

MVDs always go together in pairs and we write them asA B | Ccourse teacher | text

© Prof. Navneet Goyal, BITS, Pilani

4 NFFagin Theorem Let R(A,B,C) be a relation where A,B,C and

be subsets of attributes of R, then R is equal to the join of its projections on {A,B} and {A,C} iff R satisfies the MVDA B | C

© Prof. Navneet Goyal, BITS, Pilani

4 NF An MVDs A B is trivial if

(a) B A or (b) A U B = R

A relation that is in BCNF & contains no non-trivial MVDs is said to be in 4NF

CTX is not in 4NF because course teacher is a non trivial MVD

© Prof. Navneet Goyal, BITS, Pilani

Multi-Valued Dependencies Most common source of redundancy

in BCNF schemas is to put 2 or more M:M relationships in a single relation

© Prof. Navneet Goyal, BITS, Pilani

Formal Definition of MVD The MVD

A1A2….An B1B2…Bmholds for a relation R iffor each pair of tuples t & u that agree on As, we can find a tuple v that agrees

1. With t & u on As2. With t on Bs3. With u on all attributes of R that are

not among As & Bs

© Prof. Navneet Goyal, BITS, Pilani

MVD

t

v

A’s B’sA B

Others

u

© Prof. Navneet Goyal, BITS, Pilani

Problem Solving Consider a relation R (A,B,C,D,E,F)

with the following FDs:F = {ABC, BCAD, DE, CFB}

(a) Find out whether AB is a key of R or not.(b) Use the result of part (a) to find out

whether ABD is implied by F

AB+={ABCDE}

If D is in AB+, then ABD is implied by F

Q & A

Thank You

top related