<<
>>

2.2.4. Функциональная зависимость попей файла

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

Очевидно, необходимо сформулировать критерий, позво­ляющий даже для незаполненного файла, исходя из возмож­ных значений его полей, судить о возможности получения полной декомпозиции файла из тех или иных его проекций. Такой критерий строится на понятии функциональной за­висимости полей файла [34].

Пусть X и У — некоторые непересекающиеся совокупно­сти полей файла.

Говорят, что У находится в функциональ­ной зависимости от X тогда и только тогда, когда с каж­дым значением X связано не более одного значения У.

Любые две записи файла, содержащие одинаковые зна­чения X, должны содержать одинаковые значения У, при­чем это ограничение действует не только на текущие значе­ния записей файла, но и на все возможные значения, кото­рые могут появиться в файле. Вместе с тем одинаковым зна­чениям У могут соответствовать различные значения X.

Рассмотрим уже знакомый пример. Пусть в ИФ имеются поля:

ДЕЖУРСТВО ДОЛЖНОСТЬ | ФАМИЛИЯ | ТЕЛЕФОН

Поле ТЕЛЕФОН находится в функциональной зависимо­сти от полей ДОЛЖНОСТЬ и ФАМИЛИЯ (считаем, что в данном файле не будет храниться информация о сотрудни­ках-однофамильцах, имеющих одинаковые должности).

По­нятно, что один и тот же номер рабочего телефона могут иметь несколько сотрудников, т. е. по значению поля ТЕЛЕ­ФОН нельзя однозначно определить должность и фамилию сотрудника.

Пусть X состоит из нескольких полей. Говорят, что У находится в полной функциональной зависимости от X, если У функционально зависит от X и функционально не зависит от любого подмножества X' не совпадающего с X (Х'сХ) [54].

В условиях предыдущего примера поле ТЕЛЕФОН на­ходится в полной функциональной зависимости от совокупно­сти полей ДОЛЖНОСТЬ и ФАМИЛИЯ, поскольку оно не зависит функционально ни от поля ДОЛЖНОСТЬ, ни от поля ФАМИЛИЯ по отдельности.

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

Пусть имеются три непересекающиеся совокупности по­лей исходного файла: Н, .1, К. Если К фунционально зависит от 3, то проекции рго] [Н, .1] (ИФ) и рго; [Л", К] (ИФ) образу­ют полную декомпозицию исходного файла.

Докажем это утверждение. Введем вспомогательный файл

ИФ1 = рго] [Н, Д] (ИФ) ► < рго] [.I, К] (ИФ).

Покажем, что каждая запись ИФ присутствует в ИФ1, и наоборот.

А. Возьмем произвольную запись исходного файла: (Ь, к). Очевидно, что ее часть (Ь, ]) принадлежит первой проек­ции, у, к) — второй проекции ИФ. По определению операции соединения можно утверждать, что запись (Ь, ^ к) должна присутствовать в файле ИФ1.

Б. Возьмем произвольную запись вспомогательного фай­ла: (Ь', У, к'). Согласно определению файла ИФ1 можно за­писать: рго] [Н, .1] (ИФ1) = рго] [Н, .1] (ИФ). Следовательно, в файле ИФ должна находиться хотя бы одна запись типа (Ь', У, к'), где к' пока не определено. По аналогии можно запи­сать: рго] [Л", К] (ИФ1) = рго] [«I, К] (ИФ). Следовательно, в файле ИФ должна находиться хотя бы одна запись типа (Ь", У, к'), где Ь" пока не определено.

Таким образом, в исходном файле ИФ должны содер­жаться записи (Ь', к") и (Ь", У, к'). Но поскольку К функ­ционально зависит от можно заключить, что к" = к' и, следовательно, в ИФ имеется запись (Ь", У, к'), которую мы определили как произвольную запись ИФ1. Доказательство закончено.

Вернемся к примеру. Пусть в ИФ имеются поля: ДЕЖУРСТВО | ДОЛЖНОСТЬ 1 ФАМИЛИЯ | ТЕЛЕФОН |

Так как поле ТЕЛЕФОН находится в функциональной зависимости от полей ДОЛЖНОСТЬ и ФАМИЛИЯ, можно заключить, что полную декомпозицию ИФ следует искать в виде проекций:

ПФ1 = pro; [ДЕЖУРСТВО, ДОЛЖНОСТЬ, ФАМИЛИЯ] (ИФ); ПФ2 = proj [ДОЛЖНОСТЬ, ФАМИЛИЯ, ТЕЛЕФОН] (ИФ).

Для этого примера можно обозначить:

Н = [ДЕЖУРСТВО];

J = [ДОЛЖНОСТЬ, ФАМИЛИЯ];

К = [ТЕЛЕФОН].

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

<< | >>
Источник: Балдин К. В., Уткин В. Б.. Информационные системы в экономике: Учебник. — 5-е изд. — М.: Издательско-торго- вая корпорация «Дашков и К0», — 395 с.. 2008

Еще по теме 2.2.4. Функциональная зависимость попей файла:

  1. 2.2.5. Нормальные формы файла
  2. 2.2.1. Полная декомпозиция файла
  3. ФУНКЦИОНАЛЬНЫЕ ЭКВИВАЛЕНТЫ, ФУНКЦИОНАЛЬНЫЕ АЛЬТЕРНАТИВЫ
  4. Функциональный учет затрат и результатов деятельности (метод ABC). Сущность функционального учета затрат
  5. Теория зависимости
  6. 3.2.4. Сочетание операционной и финансовой зависимости
  7. Основное и зависимое общества.
  8. Учет расчетов с дочерними и зависимыми обществами
  9. 56. Понятие дочерних и зависимых обществ, их виды
  10. 80 ПРОГНОЗИРОВАНИЕ НА ОСНОВЕ ПРОПОРЦИОНАЛЬНЫХ ЗАВИСИМОСТЕЙ
  11. 7.8. Автокорреляция с лаговой зависимой переменной