Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VisualFoxPro.doc
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

Уточненное двухтабличное представление зависимости "Сотрудник – Дата рождения"

Табельный номер

Сотрудник

Табельный номер

Дата рождения

К023

Иванов

К023

03.10.1979

М425

Нестеров

М425

01.12.1980

М427

Иванов

М427

04.09.1983

М429

Реутов

М429

02.11.1982

Нередко процесс выявления функциональных зависимостей оказывается многоходовым. Рассмотрим, например, зависимость "Сотрудник – Оклад". Очевидно, что после разбиения зависимости на две: "Сотрудник – Табельный номер" и "Табельный номер – Оклад" обе могут быть нефункциональными. Это произойдет в том случае, если сотрудник может занимать на предприятии две должности: первую – по основному месту работы, вторую – как совместитель, и на каждом из них один и тот же сотрудник имеет разные табельные номера. Кроме того, оклад сотрудника может по мере продвижения по службе изменяться. Это обстоятельство также необходимо отобразить в результирующем представлении зависимости.

Дальнейшее разбиение может быть таким:

  • "Сотрудник – Код сотрудника";

  • "Код сотрудника - Табельный номер";

  • "Табельный номер – Вид трудоустройства";

  • "Табельный номер – Оклад – Номер приказа о назначении оклада";

  • "Номер приказа о назначении оклада – Дата приказа".

Атрибут "Вид трудоустройства" может принимать значения "Основное место работы" и "По совместительству".

Отобразить эти зависимости можно в четырех таблицах со столбцами:

  1. "Сотрудник – Код сотрудника".

  2. "Код сотрудника – Табельный номер – Вид трудоустройства".

  3. "Табельный номер – Оклад – Номер приказа о назначении оклада".

  4. "Номер приказа о назначении оклада – Дата приказа".

Скорее всего, будет получено некоторое повышение производительности, если две последние таблицы объединить в одну:

"Табельный номер – Оклад – Номер приказа о назначении оклада – Дата приказа".

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

14.3.2. Нормализация отношений

Рассмотрим, не прибегая к точным формулировкам, процесс нормализации таблиц базы данных. Суть его в разбиении первоначальной таблицы на более мелкие. При этом разбиение выполняется без потерь данных: всегда можно восстановить исходную таблицу, объединяя мелкие, полученные в результате ее декомпозиции.

Таблица представлена в первой нормальной форме (1НФ) , если в таблице нет групп столбцов с повторяющимися данными и все ее столбцы содержат неделимые данные.

Рассмотрим, к примеру, табл. 14.5.

Таблица 14.5

Изделия и поставщики

Вид

Тип

Поставщики

Диод

АД110

Циклон, Трио

Диод

ГД508

Аист, Трио

Микросхема

К122

Циклон

Микросхема

К245

Сириус

Столбец "Поставщики" содержит данные, которые могут (и должны) быть разделены. Следовательно, эта таблица не удовлетворяет 1НФ.

В табл. 14.6 данные столбцов "Сумма" и "Всего" вычисляются по значениям столбцов "Количество", "Цена" и "НДС 20%":

Сумма = Цена * Количество

Всего = Сумма + НДС 20% = Цена * Количество + НДС 20%

Таблица 14.6

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]