Проблема присоединенных записей

      Комментарии к записи Проблема присоединенных записей отключены

Рассмотрим использованный в подразд. 6.1 пример. Пусть в ИФ хранятся данные о сотрудниках, дежуривших в составе оперативной группы предприятия («ДАТА» — дата дежурства; «ТЕЛЕФОН» — рабочий телефон сотрудника).

Рассмотрим две проекции файла:

В ИФ поле «ДАТА» является ключом и не может быть пустым. Как поступить, если нужно запомнить данные о фамилии и номере рабочего телефона нового сотрудника, который еще не дежурил (например, о Смирнове с номером телефона 7-35)? Записать эти данные в ИФ нельзя (первичный ключ не может быть пустым), но можно поместить эти сведения в проекцию ПФ2. При этом ПФ2 формально перестает быть проекцией ИФ, хотя соединение ПФ1 и ПФ2 дает исходный файл (без сведений о Смирнове).

Записи, вносимые в отдельные проекции ИФ, называются присоединенными. Представление файла в виде его полной декомпозиции может позволить решить проблему присоединенных записей, но важно помнить, что соединение проекций ИФ может привести к их потере.

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

Пусть в ИФ БД хранятся данные о сотрудниках, исполняющих обязанности в дежурном расчете («НОМЕР_Р» — номер в составе дежурного расчета; «ТЕЛЕФОН» — номер рабочего телефона).

Если считать, что один и тот же сотрудник не может исполнять обязанности нескольких номеров дежурного расчета, то в качестве первичного ключа можно использовать «НОМЕР_Р». Полную декомпозицию исходного файла составляют проекции:

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

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

Обобщая сказанное, можно сформулировать общее требование к файлу, представление которого в виде полной декомпозиции не имеет смысла.

Говорят, что файл находится в пятой нормальной форме (5 НФ), если у него или нет ни одной полной декомпозиции или нет ни одной полной декомпозиции, в которую входили бы проекции, не имеющие общего первичного ключа ИФ.

Если файл не находится в 5 НФ, имеется возможность избежать дублирования информации и потерю присоединенных записей, переходя от ИФ к такой его полной декомпозиции, которая образована проекциями, не содержащими первичный ключ. Если полученные таким образом файлы проекций не находятся в 5 НФ, то каждую из них можно заменить полной декомпозицией и т.д.

Процесс последовательного перехода к полным декомпозициям файлов БД называется нормализацией файлов БД, главная цель которой — исключение дублирования информации и потери присоединенных записей.

Статьи к прочтению:

ЗАПИСЬ СТРИМА от 08.10.17 ► Cuphead #6


Похожие статьи: