Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
90
Добавлен:
10.02.2015
Размер:
2.04 Mб
Скачать

7. Проектирование реляционных баз данных с использованием нормализации

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

Рассмотрим схему отношения: СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ

(СОТР_ИМЯ, СОТР_ЗАРП, ОТД_НОМЕР, ПРО_НОМЕР, СОТР_ЗАДАН)

Мы предполагаем, что каждый сотрудник может работать только в одном отделе, что зарплаты сотрудников определяются отделом, в котором они работают, и каждый сотрудник выполняет некоторое задание в рамках некоторого проекта

СОТР_ИМЯ

СОТР_ЗАРП

ОТД_НОМЕР

ПРО_НОМЕР

СОТР_ЗАДАН

Козлов

10000

Отдел 2

Проект 2

Анализ данных

Козлов

10000

Отдел 2

Проект 3

Проектирование

Иванов

9000

Отдел 3

Проект 2

Программирование

Максимов

10000

Отдел 2

Проект 1

Анализ данных

Иванов

9000

Отдел 3

Проект 1

Анализ данных

  1. Избыточность: Номер отдела повторяется несколько раз для некоторых сотрудников

  2. Аномалии обновления: Мы не можем перевести сотрудника из одного отдела в другой, обновляя данные об отделах в единственном кортеже. В результате может оказаться, что сотрудник работает в нескольких отделах, хотя это противоречит условия проекта.

  3. Аномалии вставки: Мы не можем включить в список нового сотрудника, если он не участвует в некотором проекте.

  4. Аномалии удаления: Если мы завершаем работу с некоторым проектом и удаляем его из базы данных, то мы вынуждены удалить всех сотрудников, которые принимали участие в этом единственном проекте.

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

В теории реляционных баз данных обычно выделяется следующая последовательность нормальных форм:

  • первая нормальная форма (1NF);

  • вторая нормальная форма (2NF);

  • третья нормальная форма (3NF);

  • нормальная форма Бойса-Кодда (BCNF);

  • четвертая нормальная форма (4NF);

  • пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).

7.1. Основные свойства нормальных форм

  • каждая следующая нормальная форма в некотором смысле лучше предыдущей;

  • при переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются.

7.2. Функциональная зависимость

В отношении R атрибут Y функционально зависит от атрибута X (X и Y могут быть составными) в том и только в том случае, если каждому значению X соответствует в точности одно значение Y: Такую функциональную зависимость будем обозначать R.X R.Y (FD – functional dependency). Например: СОТР_ИМЯ ОТД_НОМЕР или (СОТР_ИМЯ, ПРО_НОМЕР) СОТР_ЗАДАН. Функциональная зависимость обозначается X Y. На практике, функциональная зависимость – удобный способ отразить факт, что для любого отношения существует некий набор атрибутов, который позволяет однозначно определить значения других неуникальных атрибутов.

Для определения зависимостей необходимо проанализировать семантику атрибутов отношения . Функциональные зависимости являются отражением зависимостей, существующих в реальном мире. Включение соответствующей зависимости в проект принимается проектировщиком системы. Например включение зависимостиСОТР_ИМЯ ОТД_НОМЕР означает, что сотрудник не может одновременно работать в двух отделах (запрет на совмещение).

Из определенных зависимостей могут вытекать другие зависимости: например, СОТР_ИМЯ ОТД_НОМЕР И ОТД_НОМЕР СОТР_ЗАРП дают зависимость (СОТР_ИМЯ, ОТД_НОМЕР) (ОТД_НОМЕР, СОТР_ЗАРП). Пусть есть множество функциональных зависимостей для схемы отношенияинекоторая функциональная зависимость. Говорят, чтологически следует из, если для каждого отношениясо схемой, удовлетворяющего зависимостям из, выполняется. В частности,ивлечет. Обозначим через- замыкание множествафункциональных зависимостей. Если, то говорят, что- полное семейство зависимостей.

Пример: Пусть и. Тогдасостоит из всех зависимостей, для которых выполняется одно из условий:

1. содержит. Например,,,

2. содержити не содержит.не содержит. Например,,

3. одна из зависимостейили

На языке функциональных зависимостей можно выразить понятие ключа:

Если схема отношенияс функциональными зависимостями из, а Х подмножество множества, то Х называется ключом, если

1.

Соседние файлы в папке Базы данных(1 курс, 2 семестр,2011-2012)