2016-10-29 2 views
0

Я нашел это отношение таким образом - CUSTOMER (NAME, STREET, CITY, STATE, ZIP)Как разложить таблицу 3NF и НФБК

что используют сокращенные для каждого следующим образом,

Name - N 
STREET - R 
CITY - C 
STATE - T 
ZIP - Z 

И дал F = {N->RCT, RCT->Z, Z->CT}

И вопрос будет разлагаться до 3NF и BCNF.

Я разлагают его 3NF, в здесь я считал практический способ,

R1(N,R,Z) 
R2(Z,C,T) 

Является ли это правильно?

Или мне нужно учитывать только заданные функциональные зависимости для разложения. Если я думаю, что этот путь и разлагаться 3NF, то ответ будет

R1(N,R,C,T) 
R2(R,C,T,Z) 

Пожалуйста, кто-то советы мне, какой путь правильный путь.

+0

В вашем первом распаковке, как вы, что случилось с N-> RCT? Во втором, что случилось с Z-> CT? –

+0

@ MikeSherrill'CatRecall 'В моей первой декомпозиции я рассматриваю только зависимости N> RCT и Z-> CT, поскольку, используя имя, я могу получить улицу, город и штат. И использовать zip, если я могу получить город и штат. то я создаю отношение R2 как R2 (Z, C, T). И R1 (N, R, Z) здесь я рассматриваю Z как внешний ключ. – user3099298

+0

Нормализация заключается не в том, чтобы найти судоходный путь. Нормализация не отбрасывает функциональные зависимости. (RCT-> Z?) –

ответ

1

Ваше первое разложение неверно, а второе. Чтобы разложить в 3NF, первый шаг алгоритма синтеза требует найти каноническое покрытие набора зависимостей, а затем сгруппировать зависимости, найденные в группах с той же левой стороной.

Поскольку нет избыточных зависимостей или superflous атрибута в вашей зависимости, мы можем начать с тремя зависимостей, которые имеют другую сторону левой руки, производя три соотношения:

from N → RCT, R1 (N, R, C, T), with key N 
from RCT → Z, R2 (R, C, T, Z), with key RCT 
from Z → CT, R3 (C, T, Z), with key Z 

затем, отметив, что треть отношение полностью содержится во втором, мы можем его устранить. Окончательный формальный шаг алгоритма требует, чтобы мы проверяли, есть ли в каком-либо разложенном отношении ключ исходного отношения (в противном случае необходимо добавить новое отношение с ключом). Это верно, поскольку Z является таким ключом, который присутствует во втором отношении. Таким образом, окончательное разложение:

R1 (N, R, C, T), with key N 
R2 (R, C, T, Z), with key RCT 

Обратите внимание, что, применяя «анализ» алгоритмы, чтобы найти BCNF мы получим другое решение:

R1 <(N, R, C, T), 
    { N → RCT }> 

R2 <(C, T, Z), 
    { Z → CT } > 

R3 <(R, Z), 
    { } > 

, но в этом разложении функциональная зависимость CRT → Z İŞ потерял.

Смежные вопросы