Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

1. Decomposition Assume R = (S T U V W X Y Z) and F = {S TV , T U, W XY , SW Z}

ID: 3848049 • Letter: 1

Question

1. Decomposition

Assume
R = (S T U V W X Y Z)
and
F = {S TV , T U, W XY , SW Z}

Where S, T, U, V , W, X, Y and Z represent individual attributes.
Decompose R into BCNF, lossless, dependency preserving.
If this is not possible, decompose R into 3NF, lossless, dependency preserving. Show

your decomposition and state whether is it BCNF or 3NF.

2. Decomposition

Assume
R = (S T U V W X Y Z)
and
F = {S TUV W, T UV , W XY , V Z }.

Where S T, U, V , W, X, Y and Z represent individual attributes.
Decompose R into BCNF, lossless, dependency preserving.
If this is not possible, decompose R into 3NF, lossless, dependency preserving. Show

your decomposition and state whether it is BCNF or 3NF.

Explanation / Answer

BCNF acts otherwise from 3NF only if there square measure multiple overlapping candidate keys.

The reason is that the purposeful dependency X -> Y is in fact true if Y could be a set of X. thus in any table that has only 1 candidate key and is in 3NF, it's already in BCNF as a result of there's no column (either key or non-key) that's functionally smitten by something besides that key.

Because every dish should have precisely one in every of every topping kind, we all know that (Pizza, Topping Type) could be a candidate key. we tend to additionally apprehend intuitively that a given topping cannot belong to differing types at the same time. So (Pizza, Topping) should be distinctive and so is additionally a candidate key. thus we've 2 overlapping candidate keys.

I showed Associate in Nursing anomaly wherever we tend to marked mozarella because the wrong topping kind. we all know this is often wrong, however the rule that creates it wrong could be a dependency Topping -> Topping kind that isn't a legitimate dependency for BCNF for this table. it is a dependency on one thing aside from a full candidate key.

So to resolve this, we tend to take Topping kind out of the Pizzas table and build it a non-key attribute during a Toppings table.