0% found this document useful (0 votes)
177 views1 page

Lossless Join and Dependency Preserving

Lossless-join decomposition breaks a relation into two or more relations in a way that a natural join of the new relations will return the original relation. For example, decomposing a Student relation into separate Student and Major relations is lossless-join since joining them returns the original. A decomposition is dependency-preserving if the functional dependencies can still be enforced after decomposing. Any relation can be decomposed into 3NF form while maintaining lossless-join and preserving dependencies, but this is not always possible for BCNF decompositions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
177 views1 page

Lossless Join and Dependency Preserving

Lossless-join decomposition breaks a relation into two or more relations in a way that a natural join of the new relations will return the original relation. For example, decomposing a Student relation into separate Student and Major relations is lossless-join since joining them returns the original. A decomposition is dependency-preserving if the functional dependencies can still be enforced after decomposing. Any relation can be decomposed into 3NF form while maintaining lossless-join and preserving dependencies, but this is not always possible for BCNF decompositions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Lossless-join Decomposition

If R is a relation schema and F is a set of FDs over R, a decomposition of R into 2


schemas with attribute sets X &Y is said to be lossless-join if for every instance r of R
that satisfies the dependencies in F, a natural join of X & Y will produce r.

Let’s go back to our schema from our initial example:

Student (StudentID, Name, Major code, Major name). We saw in the original example
the problems with the redundancy caused by this schema. What if we decompose this
into the following schemas:

Student (StudentID, Name, Major code)


Major(Major code, Major name)

This decomposition is considered a lossless-join decomposition because a natural join


between Student and Major will result in the original schema.

Dependency –preserving
A decomposition is considered to be dependency preserving if after the decomposition,
the dependencies can still be enforced. Let’s look at our contracts example:

C -> CSJDPQV, JP -> C, SD -> P.

If we decompose the original schema into:

(CSJDQV) and (SDP) We still have a lossless-join decomposition, because a natural join
between the two will return the original – however this decomposition has lost the ability
to track JP -> C. J ended in the first and P in the second.

Any relation can be decomposed into a 3NF form and both be lossless-join and
dependency preserving, however the same cannot be said for BCNF. Given the
following scenario:

R = (A,B,C), F = (AB -> C, C -> A)

R is not in BCNF, and you cannot decompose R into BCNF form and preserve the
dependencies; however it is in 3NF.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy