Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Проблема дублирования информации



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

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

ИФ

 

ДАТА СОТРУДНИК ТЕЛЕФОН
11.01 Иванов 3-12
15.01 Сидоров 4-21
24.01 Сидоров 4-21
30.01 Сидоров 4-21
01.02 Иванов 3-12

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

ПФ1 =proj [ДАТА, СОТРУДНИК] (ИФ); ПФ2 = proj [СОТРУДНИК, ТЕЛЕФОН] (ИФ).

201


ПФ11

 

ДАТА СОТРУДНИК
11.01 Иванов
15.01 Сидоров
24.01 Сидоров
30.01 Сидоров
01.02 Иванов

ПФ2

 

СОТРУДНИК ТЕЛЕФОН
Иванов 3-12
Сидоров 4-21

Данные проекции образуют полную декомпозицию ИФ. В ПФ2 номер рабочего телефона каждого сотрудника упоминается одно­кратно, тогда как в ИФ столько раз, сколько этот сотрудник засту­пал на дежурство. Очевидно, что для данного примера разбиение ИФ на проекции позволяет избежать дублирования информации.

Устранить дублирования информации важно по двум причи­нам:

1) можно добиться существенной экономии памяти;

2) если некоторое значение поля повторяется несколько раз, то при корректировке данных необходимо менять содержимое всех этих полей, в противном случае нарушится целостность данных.

Для современных ЭВМ, имеющих значительные ресурсы па­мяти, более важной является вторая причина.

Чтобы найти критерий, позволяющий объективно судить о целесообразности использования полной декомпозиции файла с точки зрения исключения дублирования информации, восполь­зуемся понятием «первичный ключ». Напомним, что первичным ключом называют минимальный набор полей файла, по значени­ям которых можно однозначно идентифицировать запись. Если значение первичного ключа не определено, то запись не может быть помещена в файл БД.

Для данного примера проекции

ПФ1 =proj [ДАТА, СОТРУДНИК1 (ИФ);

ПФ2 = proj [ДАТА, ТЕЛЕФОН] (ИФ)

образуют полную декомпозицию ИФ, однако не исключают дуб­лирования информации. Причина заключается в том, что обе про-

202


екции содержат первичный ключ ИФ (в рассмотренном примере им является поле «ДАТА», если, конечно, сотрудник не может одновременно находиться в двух и более суточных нарядах).

Можно доказать, что дублирование информации неизбежно, если проекции, порождающие полную декомпозицию, содержат общий первичный ключ ИФ. Рассмотрим ИФ

ИФ

 

FX FY FZ
X У Z
X? У Z

и две его проекции:

ПФ1

 

FX FY
X У
х' У

ПФ2

 

FY FZ
У Z

Для того чтобы вторая запись ИФ отличалась от первой (в про­тивном случае в файле БД были две одинаковые записи, что не­допустимо), она формально должна быть представлена одним из семи вариантов: (*', у, z); (x, у', z); (x, у, z'); (x', у', z); (x, у', z')\ (х', у', z'); (х', у, z').

Пусть FY — первичный ключ. Для того чтобы дублирования информации не было, вторая запись ИФ должна быть или (х\ у, z), или (х, у, z'), но это противоречит тому, что FY— первичный ключ. Следовательно, для того чтобы дублирования информации не происходило, необходимо исключить наличие первичного ключа ИФ в проекциях, образующих его полную декомпозицию.

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

203


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

Еще раз рассмотрим приведенный ранее пример. Исходный файл и его две проекции останутся такими же.

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

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

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

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

ИФ

 

HOMEPJP СОТРУДНИК ТЕЛЕФОН
1 Иванов 3-12
2 Сидоров 4-20
3 Фомин 8-61

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




ПФ1

 

НОМЕР_Р СОТРУДНИК
1 Иванов
2 Сидоров
3 Фомин

204


ПФ2

 

HQMEP^P ТЕЛЕФОН
1 3-12
2 4-20
3 8-61

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

 

HOMEPJ3 СОТРУДНИК ТЕЛЕФОН
4 Семин  

или

 

НОМЕР_Р СОТРУДНИК ТЕЛЕФОН
4   9-18

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

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

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


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 357; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.018 с.)
Главная | Случайная страница | Обратная связь