Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы баз денных.doc
Скачиваний:
106
Добавлен:
10.12.2013
Размер:
789.5 Кб
Скачать

Проектирование реляционной базы данных.

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

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

Таблица находится во второй нормальной форме (2Н.Ф.), если она находится в 1Н.Ф. и все не ключевые атрибуты функционально полно зависят от ключа.

Таблица находится в третьей нормальной форме (3Н.Ф.), если она находится во 2Н.Ф. и устранены транзитивные зависимости внутри таблицы.

Таблица находится в нормальной форме Бойса-Кодда (Н.Ф.Б.К.), если она находится во второй нормальной форме и каждая детерминанта функциональной зависимости является возможным ключом (, гдеявляется детерминантом).

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

Таблица находится в пятой нормальной форме (5Н.Ф.), если она разложима без потерь.

Проектирование реляционной базы данных начинается с универсального отношения. Универсальное отношение – это одна таблица, которая содержит все атрибуты, используемые в нашей системе. Например, универсальное отношение для базы Поставщик- Деталь-Поставка имеет вид:

фамилия

статус

Город пос-

тавщика

Название детали

вес

цвет

Город детали

количество

Иванов

70

Пермь

гайка

12

красный

Пермь

100

болт

13

синий

Кунгур

200

...

...

Проектирование сводится к постепенному переводу универсального отношения к пятой нормальной форме.

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

Чтобы прейти ко второй нормальной форме нужно разбить данную таблицу на таблицы, так чтобы это было разложение без потерь. Для этого разобьем таблицу на две, первая будет содержать поля - фамилия поставщика (ключ), статус, город поставщика, вторая таблица будет содержать поля – фамилия поставщика, название детали, вес, цвет, город детали, количество, причем фамилия +название детали=ключ.

После данного разбиения первая таблица будет находится не только во второй нормальной форме, но и в третьей. А во второй таблице сохранятся аномалии технологических операций, т.е. вторую таблицу необходимо еще разбить на две: таблица 2.1 с полями - название детали, вес, цвет, город детали; таблица 2.2 с полями - фамилия поставщика, название детали, количество(эти две таблицы находятся в 3Н.Ф.).

Методы проектирования.

  1. Метод нормализации.

Метод начинается с универсального отношения и основан на постепенном переходе к пятой нормальной форме.

Пример:

Фамилия автора

произведение

Пушкин

Евгений Онегин, Капитанская дочка, ...

Лермонтов

Герой нашего времени, Кавказский пленник, ...

В этой таблице атрибут Произведение является повторяющейся группой, таблица не является нормализованной. Для перехода к первой нормальной форме дублируем:

автор

произведение

Пушкин

Евгений Онегин

Пушкин

Капитанская дочка

Пушкин

...

Лермонтов

Герой нашего времени

Лермонтов

Кавказский пленник

Лермонтов

...

Таблица находится в первой нормальной форме, является реляционной таблицей.

Пример:

r( поставщик, статус, город поставщика, деталь, количество) – это универсальное отношение. Установим функциональные зависимости:

поставщик +деталь = первичный ключ;

П+Д С (от поставщика и детали зависит статус);

П+Д Г (город);

П+Д К (количество);

ГС;

ПС;

ПГ.

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

Т1(Поставщик, Статус, Город), Т2(Поставщик, Деталь, количество). Данные 2 находятся во второй нормальной форме. Установим функциональные зависимости для Т1:

ПС;

ПГ;

ГС.

П С это транзитивная зависимость.

Г

Втаблице Т1 сохраняются аномалии технологических операций: при удалении поставщика теряется зависимость Город Статус, не можем добавить нового поставщика пока не знаем статуса города. Следовательно необходимо таблицу Т1 разбить еще на 2: Т11(П,Г) и Т12(Г,С).

Таблицы Т11, Т12, Т2 представляют нашу базу в третьей нормальной форме.

Пример:

Т(№служащего, фамилия, №проекта, название работы).

Предположим, что в таблице нет однофамильцев, тогда ключом является либо №служащего+№проекта, либо фамилия+№проекта,

тогда №служащего фамилия. Приведем таблицу в Н.Ф.Б.К., для этого разложим таблицу на две: Т1(№служащего, фамилия), Т2(№служащего, №проекта, Название работы).

Пример:

Т(№детали,№проекта,№поставщика).

проекта+№детали №поставщика;

поставщика №проекта. Следовательно нужно разбить еще на 2:

Т1(№детали, №поставщика) и Т2(№поставщика,№проекта).

Чтобы перевести таблицу в 4Н.Ф. нужно многозначную Ф.З. выделить в отдельную таблицу, в 5Н.Ф. все таблицы должны соединяться без потерь.

Соседние файлы в предмете Базы данных