Нахождение первичного ключа и нормализация отношения с функциональными зависимостями

Я готовлюсь к экзамену по базам данных, и я понял, что мой профессор не преподавал раздел лекций по нормализации, но затмил их, поэтому я занимался самообучением, и в примечаниях есть этот пример без решений, и мне было интересно если я все делал правильно

Данное отношение R = {A,B,C,D,E,F,G,H,I,J}

И функциональные зависимости:

A,B -> C
A -> D,E
B -> F
F -> G,H
D -> I,J
  1. Определить первичный ключ
  2. Разложите R так, чтобы оно было в 2NF, затем покажите его в 3NF.

Итак, я получил первичный ключ, чтобы быть (A, B, D, F)

А потом я попытался преобразовать его в 2NF, и я получил отношения:

(ABC), (DIJ), (ADE), (BF), (FGH)

И я, честно говоря, понятия не имею, правильно ли это или как затем поместить его в 3NF... или я только что пропустил 2NF и уже поместил его в 3NF. Любая помощь?

1 ответ

Решение

Мне кажется, что вы пропустили NF2 и нормализовали отношение прямо в 3NF:)

Первичный ключ для исходного отношения должен быть (A, B), так как по правилам вывода (транзитивность, такая как A->D,E и D->I,J, следовательно, A->I,J) определяет все остальные атрибуты. С этого момента мы имеем следующее:

  • FD1: A, B -> C
  • FD2: A -> D, E (Частичный)
  • FD3: B -> F (Частично)
  • FD4: F -> G, H
  • FD5: D -> я, J

2NF (частичные зависимости не допускаются)

Теперь мы можем разложить отношение на три отношения, перемещая частичные FD в отдельные отношения, но сохраняя другие FD, которые могут зависеть от этих частичных FD, такие как FD2 и FD5. Это даст нам следующие результаты:

  • R1 (A, D, E, I, J) - FD2, FD5 (переходный)
  • R2 (B, F, G, H) - FD3 FD4 (переходный)
  • R3 (A, B, C) - FD1

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

Удачи с экзаменами!

Другие вопросы по тегам