Характеристика реляционной модели данных. Нормализация отношений.

Реляционная модель данных отличается удобным для пользователя табличным представлением и доступом к данным. Она является совокупностью простейших двумерных таблиц – отношений. В реляционной модели достигается гораздо более высокий уровень абстракции данных, чем в иерархической или сетевой. Это обеспечивается за счет использования математической теории отношений (реляционная алгебра).

Основу модели составляет набор взаимосвязанных таблиц, в которых хранятся данные.

Схема базы данных – набор заголовков таблиц, взаимосвязанных друг с другом

Заголовок отношения – заголовок таблицы – названия полей (столбцов) таблицы

Тело отношения – тело таблицы – совокупность значений для всех объектов реального мира, которая представлена в виде записей таблицы (строк таблицы)

Схема отношения - строка заголовков столбцов

Кортеж отношения – строка таблицы, однозначное представление объекта реального мира

Домен – множество допустимых значений атрибута

Степень отношения – количество столбцов отношения

Мощность отношения ­ количество строк (КОРТЕЖЕЙ)

Целостность данных - это механизм поддержания соответствия базы данных предметной области. В реляционной модели данных определены два базовых требования обеспечения целостности:

ü целостность сущностей - каждый кортеж любого отношения должен отличатся от любого другого кортежа этого отношения (т.е. любое отношение должно обладать первичным ключом). Очевидно, что если данное требование не соблюдается (т.е. кортежи в рамках одного отношения не уникальны), то в базе данных может хранится противоречивая информация об одном и том же объекте. Поддержание целостности сущностей обеспечивается средствами системы управления базой данных (СУБД). Это осуществляется с помощью двух ограничений:

3. при добавлении записей в таблицу проверяется уникальность их первичных ключей;

4. не позволяется изменение значений атрибутов, входящих в первичный ключ.

ü целостность ссылок (ссылочная целостность).

Наряду с первичными ключами отношения имеют внешние ключи. Если отношение С связывает отношения А и В, то оно должно включать внешние ключи, соответствующие первичным ключам отношений А и В.

Условие ссылочной целостности ставит следующие проблемы проектирования БД:

ü возможно или невозможно появление во внешних ключах неопределенных значений (NULL-значения – значения атрибута для отсутствующей информации);

ü что произойдет при попытке удаления кортежей из отношения, на который ссылается внешний ключ. При этом существуют следующие возможности:

1. операция каскадируется - то есть удаление кортежей в отношении приводит к удалению соответствующих кортежей в связанном отношении;

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

ü что произойдет при попытке обновления первичного ключа отношения, на которое ссылается некоторый внешний ключ. При этом существуют следующие возможности:

1. операция каскадируется - то есть при обновлении первичного ключа происходит обновление внешнего ключа в связанном отношении;

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

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

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

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

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

ü нормальная форма Бойса - Кодда (усиленная 3NF);

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

ü пятая нормальная форма (5NF).

На практике обычно ограничиваются приведением данных к третьей нормальной форме. Нормальные формы основаны на понятии функциональной зависимости (в дальнейшем «зависимость»).

Функциональная зависимость - Атрибут В сущности Е функционально зависит от атрибута А сущности Е, если в любой момент времени каждому значению В соответствует ровно одно значение А. т. е. А однозначно определяет В.

Полная функциональная зависимость - Атрибут В сущности Е полностью функционально зависит от ряда атрибутов А сущности Е, если В функционально зависит от А и не зависит ни от какого подряда А.

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

Для приведения сущности к первой нормальной форме следует:

ü разделить сложные атрибуты на атомарные,

ü создать новую сущность,

ü перенести в нее все «повторяющиеся» атрибуты,

ü выбрать возможный ключ для новой сущности (или создать новый ключ);

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

Вторая нормальная форма (2NF). Сущность находится во второй нормальной форме, если она находится в первой нормальной форме, и каждый неключевой атрибут полностью зависит от первичного ключа (не должно быть зависимости от части ключа). Вторая нормальная форма имеет смысл только для сущностей, имеющих сложный первичный ключ.

Для приведения сущности ко второй нормальной форме следует:

ü выделить атрибуты, которые зависят только от части первичного ключа, создать новую сущность;

ü поместить атрибуты, зависящие от части ключа, в их собственную (новую) сущность;

ü установить связь от прежней сущности к новой.

Третья нормальная форма (3NF). Сущность находится в третьей нормальной форме, если она находится во второй нормальной форме и никакой неключевой атрибут не зависит от другого неключевого атрибута (не должно быть взаимозависимости между неключевыми атрибутами).

Для приведения сущности к третьей нормальной форме следует:

ü создать новую сущность и перенести в нее атрибуты с одной и той же зависимостью от неключевого атрибута;

ü использовать атрибут(ы), определяющий эту зависимость, в качестве первичного ключа новой сущности;

ü установить связь от новой сущности к старой.

Наши рекомендации