Построение БД
Построение БД предполагает построение структуры, ее заполнение данными, определение области доступа к данным и их зашита.
Построение структуры связано с нормализацией.
Нормализация. В процессе нормализации – на основе рассмотренного формального аппарата F- и MV-зависимостей строятся 1НФ-5НФ.
1НФ является плоским файлом: в каждом поле может быть только атомарная запись, запись списка или другого сложного объекта не допускается.
Первая нормальная форма 1НФ. Отношение находится в первой нормальной форме, если значения всех его атрибутов простые (атомарные), т. е. значение атрибута не должно быть множеством или повторяющейся группой. В школьном курсе вводится алгебра: элементы – поля N, операции – сложение, вычитание, умножение, деление. Их основные свойства: коммутативность ab = Ьа, ассоциативность (ab)c = а(Ьс), дистрибутивность (a + b)c = ab + Ьс, идемпотентность а2 = а.
Ненормализованному отношению соответствует многоуровневая таблица (иерархия) в отличие от однородной табличной структуры нормализованного отношения.
Проведем построение 1НФ–ЗНФ на основе примера 4.4.
Пример 4.5.
Очевидно, что таблица СТПР не находится в 1НФ, поскольку в полях ПН и Часы имеют место списки. Приведем таблицу к 1НФ.
Рассмотрим операции обновления (включение, удаление, обновление).
Включение. Невозможно поставить номер зачетки студента СН, если не известен табельный номер преподавателя ΓΙΗ.
Рис. 4.5. Построение 2НФ
Удаление. Удаление часов удаляет остальную информацию.
Обновление. Изменение k1 требует просмотра нескольких записей.
Для устранения этих недостатков строится 2НФ (рис. 4.5).
Вторая нормальная форма обеспечивает полную зависимость неключевых атрибутов от ключевых. Полная зависимость означает, что в любой момент времени каждому значению атрибута А соответствует не более одного значения атрибута В, связанного с ним отношением R.
Из рис. 4.5, а видно, что полной зависимости от составного ключа СН ПН нет и таблица распадается на две (рис. 4.5, б).
Здесь можно ввести информацию о студенте, если отсутствует номер преподавателя; удалить часы, не удаляя данных о студенте; обновить название кафедры только один раз. Из двух таблиц легко восстанавливается одна таблица. Заметим, что количество хранимой информации уменьшилось.
Однако и здесь, в таблице С, имеют место недостатки.
Включение. Если нет СН, нельзя ввести данные о факультете и кафедре.
Удаление. Удаление данных kl влечет удаление данных о студенте.
Обновление. Изменение зависимостей "Кафедра-Факультет" потребует просмотра многих записей.
Необходима 3НФ. Третья нормальная форма устраняет избыточные зависимости между неключевыми атрибутами. Зависимость "Кафедра-Факультет" является транзитивной и удаляется, а таблица (рис. 4.6, а) распадается на две: ФС и КС (рис. 4.6, б).
Рис. 4.6. Построение ЗНФ: а – обшая таблица; 6 – таблицы ФС и КС
Существует нормальная форма Бойса-Кодаа (НФБК). Схема отношения R находится в НФБК относительно F-зависимости F, если для любого Y Í R и любого атрибута А Ì RY из Y → А следует Y → R, т. е. если Y нетривиально определяет произвольный атрибут R, то ключ Y есть суперключ К.
Если Y – не ключ в R, то R = (RA, YA).
НФБК существует не всегда.
3НФ является окончательной, если имеют место зависимости 1:1 и 1:М. Для отношений М:М процедура продолжается путем построения 4НФ и 5НФ для MV-зависимостей.
Пусть F-множество F- и MV-зависимостей над U. Схема отношения R находится в 4НФ относительно F, если для каждой MV- зависимости X →→ Y, выводимой из F и XY с R либо MV-зависимость тривиальна, либо X – суперключ для R. Схема БД R находится в 4НФ, если каждая входящая в нее схема отношения находится в 4НФ относительно F.
MV-зависимость X Y называется тривиальной для схемы R, содержащей XY, если любое отношение r(R) удовлетворяет X →→ Y.
Пример 4.6. Отношение "Сбыт" (табл. 4.1) удовлетворяет требованиям MV-зависимостей и может быть представлено в виде 4НФ: каждая из подсхем (табл. 4.2, 4.3) находится в 4НФ.
Таблица 4.1
Отношение "Сбыт"
Завод |
Товар |
Магазин |
z1 |
t1 |
m1 |
z1 |
t1 |
m2 |
z1 |
t2 |
m1 |
z1 |
t2 |
m2 |
z2 |
t2 |
m2 |
Таблица 4.2
Отношение "Производство"
Завод |
Товар |
z1 |
t1 |
z1 |
t2 |
z2 |
t2 |
Таблица 4.3
Отношение "Снабжение"
Завод |
Магазин |
z1 |
m1 |
z1 |
m2 |
z2 |
m2 |
Здесь возможна и другая трактовка (рис. 4.7): отношение М:М заменяется двумя отношениями 1:М с помощью промежуточного ключа, которым оказывается поле "Завод". Нетрудно видеть, что схема табл. 4.1 обладает свойством соединения таблиц (табл. 4.2 и табл. 4.3) без потерь. Фактически отношение "Сбыт" находится в 5НФ.
В то же время отношение "Сбыт1" (табл. 4.4) не отвечает требованиям MV-зависимостей и не может быть разложено на схемы "Производство" и "Снабжение", поскольку, как легко видеть, при соединении из них не восстанавливается схема "Сбыт1".
Отношение находится в 5НФ, если его полная декомпозиция содержит во всех проекциях возможный ключ (ключ-кандидат). Иными словами, отношение R разлагается на несколько схем, каждая из которых находится в 4НФ.
Рис. 4.7. Промежуточный ключ
Таблица 4.4
Отношение "Сбыт1"
Завод |
Товар |
Магазин |
z1 |
t1 |
m1 |
z1 |
t1 |
m2 |
z1 |
t2 |
m1 |
z2 |
t2 |
m2 |