Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Проблема дублирования информации
В некоторых случаях замена ИФ его полной декомпозицией позволяет избежать дублирования информации. Рассмотрим пример. Пусть в ИФ (как и в предыдущем примере) хранятся данные о сотрудниках, дежуривших в составе оперативной группы управления предприятием («ДАТА» — дата дежурства; «ТЕЛЕФОН» — рабочий телефон сотрудника): ИФ
Рассмотрим две проекции файла: ПФ1 =proj [ДАТА, СОТРУДНИК] (ИФ); ПФ2 = proj [СОТРУДНИК, ТЕЛЕФОН] (ИФ). 201 ПФ11
ПФ2
Данные проекции образуют полную декомпозицию ИФ. В ПФ2 номер рабочего телефона каждого сотрудника упоминается однократно, тогда как в ИФ столько раз, сколько этот сотрудник заступал на дежурство. Очевидно, что для данного примера разбиение ИФ на проекции позволяет избежать дублирования информации. Устранить дублирования информации важно по двум причинам: 1) можно добиться существенной экономии памяти; 2) если некоторое значение поля повторяется несколько раз, то при корректировке данных необходимо менять содержимое всех этих полей, в противном случае нарушится целостность данных. Для современных ЭВМ, имеющих значительные ресурсы памяти, более важной является вторая причина. Чтобы найти критерий, позволяющий объективно судить о целесообразности использования полной декомпозиции файла с точки зрения исключения дублирования информации, воспользуемся понятием «первичный ключ». Напомним, что первичным ключом называют минимальный набор полей файла, по значениям которых можно однозначно идентифицировать запись. Если значение первичного ключа не определено, то запись не может быть помещена в файл БД. Для данного примера проекции ПФ1 =proj [ДАТА, СОТРУДНИК1 (ИФ); ПФ2 = proj [ДАТА, ТЕЛЕФОН] (ИФ) образуют полную декомпозицию ИФ, однако не исключают дублирования информации. Причина заключается в том, что обе про- 202 екции содержат первичный ключ ИФ (в рассмотренном примере им является поле «ДАТА», если, конечно, сотрудник не может одновременно находиться в двух и более суточных нарядах). Можно доказать, что дублирование информации неизбежно, если проекции, порождающие полную декомпозицию, содержат общий первичный ключ ИФ. Рассмотрим ИФ ИФ
и две его проекции: ПФ1
ПФ2
Для того чтобы вторая запись ИФ отличалась от первой (в противном случае в файле БД были две одинаковые записи, что недопустимо), она формально должна быть представлена одним из семи вариантов: (*', у, z); (x, у', z); (x, у, z'); (x', у', z); (x, у', z')\ (х', у', z'); (х', у, z'). Пусть FY — первичный ключ. Для того чтобы дублирования информации не было, вторая запись ИФ должна быть или (х\ у, z), или (х, у, z'), но это противоречит тому, что FY— первичный ключ. Следовательно, для того чтобы дублирования информации не происходило, необходимо исключить наличие первичного ключа ИФ в проекциях, образующих его полную декомпозицию. Другими словами, если существует такая полная композиция файла, которая образована проекциями, не имеющими первичного ключа ИФ, то замена ИФ этой декомпозицией исключает дублирование информации. Если же полная декомпозиция файла содержит проекции, имеющие общий первичный ключ ИФ, то его замена полной декомпозицией не исключает дублирования информации. 203 14.3. Проблема присоединенных записей Еще раз рассмотрим приведенный ранее пример. Исходный файл и его две проекции останутся такими же. В ИФ поле «ДАТА» является ключом и не может быть пустым. Как поступить, если нужно запомнить данные о фамилии и номере рабочего телефона нового сотрудника, который еще не дежурил (например, о Смирнове с номером телефона 7-35)? Записать эти данные в ИФ нельзя (первичный ключ не может быть пустым), но можно поместить эти сведения в ПФ2. При этом ПФ2 формально перестает быть проекцией ИФ, хотя соединение ПФ1 и ПФ2 дает ИФ (без сведений о Смирнове). Записи, вносимые в отдельные проекции ИФ, называются присоединенными. Представление файла в виде его полной декомпозиции может позволить решить проблему присоединенных записей, но важно помнить, что соединение проекций ИФ может привести к их потере. Целесообразность представления ИФ в виде полной декомпозиции с точки зрения решения проблемы присоединенных записей, как и проблемы дублирования информации полностью определяется наличием или отсутствием в проекциях ИФ общего первичного ключа. Пусть в ИФ БД хранятся данные о сотрудниках, исполняющих обязанности в дежурном расчете (НОМЕРР — номер в составе дежурного расчета). ИФ
Если считать, что один и тот же сотрудник не может исполнять обязанности нескольких номеров дежурного расчета, то в качестве первичного ключа можно использовать НОМЕРР. Полную декомпозицию ИФ составляют проекции: ПФ1
204 ПФ2
В качестве присоединенных записей можно рассматривать либо добавление нового номера дежурного расчета (4) и фамилии сотрудника (Семин), либо нового номера расчета (4) и телефона (9-18) без указания фамилии сотрудника, однако эту информацию можно внести и в ИФ путем формирования записей типа
или
Таким образом, представление ИФ в виде проекций, содержащих общий первичный ключ ИФ, не дает преимуществ с точки зрения решения проблемы присоединенных записей. Обобщая сказанное, можно сформулировать общее требование к файлу, представление которого в виде полной декомпозиции не имеет смысла. Говорят, что файл находится в пятой нормальной форме (5 НФ) (см. гл. 15), если у него нет ни одной полной декомпозиции или нет ни одной полной декомпозиции, в которую входили бы проекции, не имеющие общего первичного ключа ИФ. Если файл не находится в 5 НФ, имеется возможность избежать дублирования информации и потерю присоединенных записей, переходя от ИФ к такой его полной декомпозиции, которая образована проекциями, не содержащими первичный ключ. Если полученные таким образом файлы проекций не находятся в 5 НФ, то каждую из них можно заменить полной декомпозицией и т. д. |
Последнее изменение этой страницы: 2019-05-08; Просмотров: 361; Нарушение авторского права страницы