Как определить правильный шаг для завершения 3NF?

Это пример из учебника: рассмотрим отношение R (A ,B ,C ,D ,E ) с ФД AB -> C, C -> B и A -> D.

Получаем, что ключ АВЕ и ACE. С разложениями: ABE+=ACE+=ABCDE.

Как проверить минимальность? Я знаю, что AB+=ABD и в учебнике так написано, потому что AB+ не включает C. Тогда оно минимально. C+=AB и A+=AD также минимальны. Но я не знаю, почему. Как проверить минимальность?

Кроме того, должны ли мы найти все FD, кроме тех, которые заданы, чтобы проверить, следует ли выполнять 3-NF или нет?

Затем мы проверяем, можно ли разделить AB -> C на A -> C и B -> C, мы замечаем, что они не стоят сами по себе, поэтому AB -> C не может быть разделен.

Остаются окончательные соотношения: S1(ABC), S2(BC), S3(AD) и ключ (поскольку его нет) S4(ABE) (или S4(ABC)). Затем мы удаляем S2, потому что это подмножество S1.

Если оно находится в 3НФ и нарушений нет, то почему исходное отношение разбивают на: S1(A, B, C), S2(A, D) и S4(A, B, E).

Название книги и страница: Системы баз данных Ульмана, стр. 103.


person mamajava    schedule 27.02.2017    source источник


Ответы (1)


Как проверить минимальность?

Авторы не используют здесь слово минимальность. Чтобы проверить минимальный базис, выполните процедуру, описанную в первых двух абзацах примера 3.27. Это сводится к

  • «... убедиться, что мы не можем устранить ни одну из данных зависимостей».
  • «…проверить, что мы не можем удалить какие-либо атрибуты с левой стороны».

Кроме того, должны ли мы найти все FD, кроме тех, которые заданы, чтобы проверить, следует ли выполнять 3-NF или нет?

Этот вопрос не имеет особого смысла. 3NF — это не то, что вы выполняете. Пример в учебнике имеет отношение к алгоритму синтеза схем 3NF. Алгоритм синтеза разлагает отношение R на отношения, которые все находятся по крайней мере в 3NF.

Алгоритм синтеза работает с FD, которые вы получили. В академической среде, как вы могли бы найти в учебнике, предполагается, что вы получили достаточно информации для решения проблемы. В реальных приложениях вам может быть предоставлен набор FD от бизнес-аналитика. Не думайте, что аналитик дал вам достаточно информации; искать больше FD.

Затем мы проверяем, можно ли разделить AB -> C на A -> C и B -> C, мы замечаем, что они не стоят сами по себе, поэтому AB -> C не может быть разделен.

Нет. Вы подтверждаете (не уведомляете), что не можете удалить какие-либо атрибуты с левой стороны. Удаление A оставляет B->C; устранение B оставляет A->C. Ни один из них не подразумевается тремя исходными FD. Таким образом, вы не можете удалить какие-либо атрибуты с левой стороны.

Если [исходное отношение] находится в 3НФ и нарушений нет. . .

Исходное отношение не находится в 3NF. Этого нет даже в 2NF. (А->Г)

person Mike Sherrill 'Cat Recall'    schedule 16.04.2017