Как вы рассчитываете функциональные зависимости для разложения?

StackOverflow https://stackoverflow.com/questions/9460487

  •  13-11-2019
  •  | 
  •  

Вопрос

Сказать, что R имеет следующие атрибуты: {a, b, c, d, e} и имеет следующие функциональные зависимости:

A -> BC
CD -> E
B -> D
E -> A
.

И существует разложение, состоящее из R1 (A, B, C) и R2 (A, D, E).Как я могу вычислить функциональные зависимости R1 и R2?

Фактический вопрос о домашней работе просит меня, если R1 / R2 находится в BCNF / 3NF / ни одна, но я уже знаю, как сделать эту часть (см., Если левая сторона FD содержится в ключах-кандидатах). .

Это было полезно?

Решение

Хитрость - подумать о FD в качестве определяющих ключей, а не в данной схеме, а на прогнозах этого.

Например, в исходной схеме {abcde} FD A -> BC говорит, что A ({A}, на самом деле) представляет собой ключ на этой таблице, проецировал до {abc}. То есть союз ЛГС и RHS FD определяет, какую проекцию, и LHS определяет ключ на эту проекцию.

Теперь обратитесь к разложенной версии, в которой у вас есть два отчетливых таблицы (схемы) {abc} и {Ade}.

Ваши первые и последние FD все еще являются выразимыми в этих схемах. Первая FD на первой схеме / таблице и последнее на последнем.

Но остальные два стали невыразимыми (невыразимыми как fd , то есть) из-за разложения. Что это значит, для общего дизайна базы данных, заключается в том, что вам придется объявлять / определять / реализовать ограничение базы данных, которое говорит, и делает ровно то же самое, что и оригинальная FD. (Общий рецепт для этого заключается в следующем: восстановить оригинальную таблицу, присоединившись к разложениям вместе, проект, который присоединяется к упомянутому атрибутам, и обеспечить ключ в этой проекции. Достижение этого не совсем не будет тривиально для таких случаев, как эти упражнения курса.)

Решая, не должны ли быть или нет R1 / R2 в XNF, теперь должны быть сделаны, учитывая только те из исходных FD, которые все еще являются выразимыми (A-> BC).

Я полагаю, вы должны прийти к выводу, что R1 находится в 3 / до н.э., а R2 до сих пор нет.

Примеры, такие как эти (и большинство упражнений по курсу относятся к этой природе), фактически иллюстрируют, насколько смешно перенапряжена концепция нормализации в области дизайна базы данных. Какие вопросы - общая картина, которая включает в себя все ограничения, которые относятся к базе данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top