Определение. Нормализованное отношение находится в НФБК тогда и только тогда, когда каждый детерминант является потенциальным ключом

Нормализованное отношение находится в НФБК тогда и только тогда, когда каждый детерминант является потенциальным ключом.

Напомню, что в определении функциональной зависимости: f: X  Y левая часть (X) называется детерминантом. Кроме того, рассматриваются только нетривиальные функциональные зависимости.

В приведенном выше примере определена функциональная зависимость T  P, но детерминант T не является потенциальным ключом. Следовательно, данное отношение не находится в НФБК.

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

T  P: E1(T, P) – преподаватель проводит занятия по определенным предметам, и E2(S, T) – студент обучается у определенного преподавателя. При наличии первой функциональной зависимости всегда можно узнать, какой именно предмет изучает студент под руководством конкретного преподавателя. Однако следует отметить, что такая декомпозиция не сохраняет функциональные зависимости, а значит, некоторые данные в этих двух отношениях не могут обновляться независимо. Например, если вместо какого-либо преподавателя, проводящего занятия по предмету, назначается другой преподаватель, необходимо изменить соответствующие кортежи и в отношении E1, и в отношении E2.

Примечание: при проектировании с использованием IDEF1x подобная ситуация выглядит следующим образом. В соответствии с заданными функциональными зависимостями определяются сущности ПРЕДМЕТ, ПРЕПОДАВАТЕЛЬ и ПРЕДМЕТ СТУДЕНТА (предмет, изучаемый студентом). Очевидно, что имеются связи типа 1:n между сущностями ПРЕДМЕТ и ПРЕПОДАВАТЕЛЬ, ПРЕДМЕТ и ПРЕДМЕТ СТУДЕНТА (Рис. 6.6). Поскольку, как было показано выше, отношение ПРЕДМЕТ СТУДЕНТА имеет второй ключ, схема может быть представлена и по-другому (Рис. 6.7).

Рис. 6.6. Отображение требований предметной области: нарушение НФБК

Рис. 6.7. Второй вариант отображения требований предметной области

Кроме того, так как студент изучает предмет под руководством определенного преподавателя, имеет место и связь между сущностями ПРЕДМЕТ СТУДЕНТА и ПРЕПОДАВАТЕЛЬ. В результате сущность ПРЕДМЕТ СТУДЕНТА не удовлетворяет НФБК.

Из концептуальной схемы видно, что связь между сущностями ПРЕДМЕТ и ПРЕДМЕТ СТУДЕНТА является лишней: так как каждый преподаватель ведет занятия только по одному предмету, можно выяснить, какой предмет изучает студент, зная, какой преподаватель проводит занятия с этим студентом. Эту связь следует удалить, в результате чего сущность ПРЕДМЕТ СТУДЕНТА будет удовлетворять НФБК (Рис. 6.8).

Рис. 6.8. Обеспечение НФБК

Следует иметь в виду, что подобные связи не всегда являются лишними.

Рассмотрим следующий пример. Имеются сущности ПОСТАВЩИК и ТОВАР, для которых определено следующее условие: каждый товар поставляется только одним поставщиком (но поставщик может поставлять много товаров). Кроме того, имеется сущность ГОРОД. Каждый поставщик дислоцируется в определенном городе, и каждый товар производится в определенном городе (Рис. 6.9).

Рис. 6.9. Схема, удовлетворяющая НФБК

Можно увидеть, что данная схема внешне напоминает схему, приведенную выше (Рис. 6.7).

Однако в данном примере связь между сущностями ГОРОД и ПОСТАВЛЯЕМЫЙ ТОВАР не является лишней, так как поставщик может быть дислоцирован в одном городе, а поставляемый им товар производится в другом городе. Это означает, что, по сравнению с предыдущим примером, здесь отсутствует функциональная зависимость (G, C)  P, и в сущности ПОСТАВЛЯЕМЫЙ ТОВАР нет альтернативного ключа (G, C).

Многозначные зависимости

Рассмотрим некоторое ненормализованное отношение, задающее расписание занятий:

Учебный курс День занятий Студент
C1 Понедельник Среда Иванов Петров Сидоров
C2 Пятница Мягков Быков

Каждый кортеж такого отношения содержит индекс учебного курса, список дней недели, когда проводятся занятия, и список студентов, изучающих данный курс. Такое расписание означает, что занятия по каждому курсу проводятся во все указанные дни недели, и все студенты посещают все занятия по курсу.

Предположения, которые могут быть сделаны:

• Каждый курс может иметь произвольное количество дней занятий.

• Каждый курс могут изучать произвольное количество студентов.

• Дни занятий и студенты совершенно не зависят друг от друга, т.е. независимо от дня занятий состав группы студентов один и тот же.

• День занятий может быть связан с любыми курсами.

• Каждый студент может быть связан с любым курсом.

Преобразуем данное отношение в нормализованное отношение CDS:

CDS Учебный курс День занятий Студент
  C1 Понедельник Иванов
  C1 Понедельник Петров
  C1 Понедельник Сидоров
  C1 Среда Иванов
  C1 Среда Петров
  C1 Среда Сидоров
  C2 Пятница Мягков
  C2 Пятница Быков

Важно отметить, что для рассматриваемых данных функциональные зависимости, кроме тривиальных, не заданы. Нормализованное отношение CDS означает, что кортеж

<Учебный курс:c, День занятий:d, Студент:s>

появляется в отношении тогда и только тогда, когда занятия по курсу c проводятся в день недели d и посещаются студентом s.

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

Если в отношении существуют кортежи <c, d1, s1> и <c, d2, s2>, то также присутствуют и кортежи <c, d2, s1> и <c, d1, s2>.

Очевидно, что в данном отношении имеет место избыточность, которая может привести к проблемам.

Проблема вставки. Чтобы добавить в приведенное отношение информацию о том, что занятия по курсу C2 могут проводиться еще и в четверг, надо включить в отношение два кортежа: <C2, четверг, Мягков> и <C2, четверг, Быков>.

Проблема обновления. Чтобы перенести, например, день занятий по курсу C2 с пятницы на вторник, надо изменить данные в двух кортежах.

Проблема удаления. Чтобы отменить, например, занятия в понедельник по курсу C1, надо удалить из отношения три кортежа.

Тем не менее, отношение CDS находится в НФБК, так как все атрибуты отношения образуют первичный ключ.

Интуитивно ясно, что эти проблемы вызваны тем, что студенты и дни занятий никак не связаны друг с другом. Можно исправить эту ситуацию, если разбить данное отношение на два:

CD(Учебнвый курс, День занятий) и CS (Учебный курс, Студент).

CD Учебный курс День занятий   CS Учебный курс Студент
  C1 Понедельник     C1 Иванов
  C1 Среда     C1 Петров
  C2 Пятница     C1 Сидоров
          C2 Мягков
          C2 Быков

Оба отношения находятся в НФБК; более того, исходное отношение CDS может быть восстановлено с помощью операции естественного соединения отношений CD и CS, т.е. выполнена декомпозиция без потери информации, но эта декомпозиция выполнена не на основе функциональной зависимости.

Эти интуитивные идеи были теоретически сформулированы Фейгином (Fagin) в 1971 г. с помощью понятия многозначных зависимостей. Приведенная выше декомпозиция выполняется на основе многозначных зависимостей.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: