Представление функциональных зависимостей VFP
« Назад Возьмем, к примеру, ранее упомянутую зависимость "Сотрудник – Дата рождения". Ее представление в виде табл. 14.2 является, что очевидно, неудовлетворительным. В самом деле, нередки случаи, когда на одном предприятии работают несколько сотрудников с одинаковой фамилией. В такой ситуации зависимость "Сотрудник – Дата рождения" не является функциональной: одной и той же фамилии будут соответствовать несколько дат рождения (рис. 14.1). Рис. 14.1. Зависимость "Сотрудник – Дата рождения" не является функциональной Поэтому необходимо уточнить исходную зависимость, выполнив ее декомпозицию на две зависимости: "Сотрудник – Табельный номер сотрудника" и "Табельный номер сотрудника – Дата рождения". Обе эти зависимости являются функциональными: каждому значению атрибута "Табельный номер сотрудника" отвечает одно значение второго атрибута ("Сотрудник" или "Дата рождения") зависимости. Замечание. Утверждение о функциональности зависимостей справедливо, если сотрудник имеет один табельный номер независимо от числа занимаемых им должностей. В данном случае эти функциональные зависимости можно отобразить как в одной, так и в двух таблицах (табл. 14.3 и 14.4). Таблица 14.3 Уточненное однотабличное представление зависимости "Сотрудник – Дата рождения"
Таблица 14.4 Уточненное двухтабличное представление зависимости "Сотрудник – Дата рождения"
Нередко процесс выявления функциональных зависимостей оказывается многоходовым. Рассмотрим, например, зависимость "Сотрудник – Оклад". Очевидно, что после разбиения зависимости на две: "Сотрудник – Табельный номер" и "Табельный номер – Оклад" обе могут быть нефункциональными. Это произойдет в том случае, если сотрудник может занимать на предприятии две должности: первую – по основному месту работы, вторую – как совместитель, и на каждом из них один и тот же сотрудник имеет разные табельные номера. Кроме того, оклад сотрудника может по мере продвижения по службе изменяться. Это обстоятельство также необходимо отобразить в результирующем представлении зависимости. Дальнейшее разбиение может быть таким:
Атрибут "Вид трудоустройства" может принимать значения "Основное место работы" и "По совместительству". Отобразить эти зависимости можно в четырех таблицах со столбцами:
Скорее всего, будет получено некоторое повышение производительности, если две последние таблицы объединить в одну: "Табельный номер – Оклад – Номер приказа о назначении оклада – Дата приказа". Таким образом, одни и те же функциональные зависимости можно представлять в виде различных отношений. Выбор варианта отображения осуществляется в процессе нормализации отношений. |