Файл: Базы данных - уч. пособие.pdf

Добавлен: 28.11.2018

Просмотров: 10882

Скачиваний: 43

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

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

61

Одной из направляющих при проектировании реляционных БД является тех-

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

Так, ограничением первой нормальной формы (1NF), как мы отмечали в тре-

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

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

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

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

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

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

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

или PJ/NF).

Обычно на практике применение находят только первые три нормальные формы.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Для атрибутов отношений реляционных БД справедливо опреде-
ление функциональной зависимости: так, в отношении R атри-
бут Y функционально зависит от атрибута X в том и только
в том случае, если каждому значению X соответствует одно
значение Y
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Схематично функциональную зависимость атрибута от атрибута изобра-

жают так: R.X

→ R.Y или (→ Y).


background image

62

Глава 4. Технология проектирования реляционных баз данных

Из этого определения следуют определения полной и транзитивной функцио-

нальной зависимости.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

→ Y называется транзитив-

ной, если имеется такой атрибут Z, что существуют функцио-
нальные зависимости X

→ Z и Z → Y, и при этом отсутствует

функциональная зависимость Z

→ .

В отношении R атрибуты взаимно независимы, если ни один из
этих атрибутов функционально не зависит от других
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.1.2 Вторая нормальная форма

Рассмотрим процесс нормализации отношения по 2NF, т. е. приведем отноше-

ние (рис. 4.1), находящееся в первой нормальной форме, ко второй нормальной
форме.

Рис. 4.1 – Отношение, не удовлетворяющее второй нормальной форме

Схема отношения «Успеваемость»: (№ зачетной книжки, ФИО студента, Место

рождения, Дата рождения, Курс, Средний балл). Первичным ключом отношения
является совокупность атрибутов «№ зачетной книжки», «Курс».

Можно выявить следующие функциональные зависимости:

• «№ зачетной книжки»

→ «ФИО студента»;

• «№ зачетной книжки»

→ «Место рождения»;

• «№ зачетной книжки»

→ «Дата рождения»;

• «№ зачетной книжки», «Курс»

→ «Средний балл».

Первичный ключ данного отношения состоит из совокупности атрибутов «№ за-

четной книжки, Курс», однако в нашем случае атрибуты «ФИО студента», «Место


background image

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

63

рождения» и «Дата рождения» функционально зависят только от части первичного
ключа — «№ зачетной книжки».

При работе с таким ненормализованным отношением невозможно обеспечить

корректную работу по выполнению операции вставки нового кортежа при зане-
сении данных о студентах, сведений об успеваемости которых еще нет, т. к. пер-
вичный ключ не может содержать неопределенное значение (в нашем случае часть
ключа «Курс» не определена). При удалении записи из отношения мы теряем связь
конкретного студента с его успеваемостью за конкретный курс. Аналогично мы по-
лучим неверный результат при выполнении подсчета общего количества студентов.
Такие неприятные явления называются аномалиями схемы отношения или колли-
зиями. Эти недостатки реляционных отношений устраняются путем нормализации
по 2NF.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

Приведение данного отношения к 2NF заключается в разбиении (декомпози-

ции) на два отношения, удовлетворяющих соответствующим требованиям нор-
мализации. Можно произвести следующую декомпозицию отношения «Успевае-
мость» в два отношения: «Студенты» и «Успеваемость студентов» (рис. 4.2). Пер-
вичным ключом отношения «Студенты» является атрибут «№ зачетной книжки».

Рис. 4.2 – Результат декомпозиции отношения «Успеваемость»


background image

64

Глава 4. Технология проектирования реляционных баз данных

Можно выявить следующие функциональные зависимости:

• «№ зачетной книжки»

→ «ФИО студента»;

• «№ зачетной книжки»

→ «Место рождения»;

• «№ зачетной книжки»

→ «Дата рождения».

Первичным ключом отношения «Успеваемость студентов» является совокуп-

ность атрибутов «№ зачетной книжки», «Курс».

В этом отношении существует одна функциональная зависимость: «№ зачет-

ной книжки», «Курс»

→ «Средний балл».

Каждое из этих двух отношений находится в 2NF, и в них устранены отмечен-

ные выше аномалии (легко проверить, что все указанные операции выполняются
без проблем).

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

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Отношение R находится во второй нормальной форме (2NF)
в том и только в том случае, когда оно находится в 1NF и каж-
дый его неключевой атрибут полностью зависит от каждого по-
тенциального ключа этого отношения
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.1.3 Третья нормальная форма

Добавим в отношение «Студенты» два атрибута: «№ группы» и «ФИО курато-

ра» (рис. 4.3). Первичным ключом отношения «Студенты» является атрибут «№ за-
четной книжки». Отношение находится во второй нормальной форме, поскольку
отсутствуют зависимости атрибутов от части первичного ключа.

Рис. 4.3 – Отношение «Студенты», не удовлетворяющее

третьей нормальной форме

Первичным ключом отношения «Студенты» является атрибут «№ зачетной

книжки». Отношение находится во второй нормальной форме, поскольку отсут-
ствуют зависимости атрибутов от части первичного ключа.

Функциональная зависимость «№ зачетной книжки»

→ «ФИО куратора» тран-

зитивная, поскольку является следствием функциональных зависимостей «№ за-
четной книжки»

→ «№ группы» и «№ группы» → «ФИО куратора». Другими сло-

вами, «ФИО куратора» является характеристикой не студента, а группы, в которой
он проходит обучение.


background image

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

65

Легко заметить, что в рассматриваемом отношении, в свою очередь, существу-

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

Чтобы корректно изменить ФИО куратора группы, необходимо последователь-

но изменить все кортежи, описывающие студентов этой группы, т. е. в отношении
«Студенты» благодаря добавлению двух новых атрибутов по-прежнему существу-
ют аномалии. Их можно устранить путем дальнейшей нормализации отношения.
Дадим определение третьей нормальной формы.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

Приведение отношения к 3NF (нормализация по 3NF) также заключается в де-

композиции этого отношения. Можно произвести декомпозицию отношения «Сту-
денты» в два отношения «Справочник студентов» и «Кураторы групп». Результат
нормализации представлен на (рис. 4.4).

Рис. 4.4 – Результат декомпозиции отношения «Студенты»

Первичным ключом отношения «Кураторы групп» является атрибут «№ груп-

пы». Для этого отношения характерна одна функциональная зависимость: «№ груп-
пы»

→ «ФИО куратора».

Результирующие отношения находятся в 3NF и свободны от отмеченных ано-

малий.