ТЕМА 1.2. НОРМАЛИЗАЦИЯ БАЗ ДАННЫХ. СРЕДСТВА ДОСТУПА
Нормализация — это формальный аппарат ограничений на формирование таблиц (отношений), который позволяет устранить дублирование, обеспечивает непротиворечивость хранимых данных и уменьшает трудозатраты на ведение (ввод, корректировку) базы данных.
Процесс нормализации заключается в разложении (декомпозиции) исходных отношений БД на более простые отношения. При этом на каждой ступени этого процесса схемы отношений приводятся в нормальные формы, для каждой ступени нормализации имеются наборы ограничений, которым должны удовлетворять отношения БД. Тем самым удаляется из таблиц базы избыточная не ключевая информация.
Процесс нормализации основан на понятии функциональной зависимости атрибутов: атрибут А зависит от атрибута В (В —> А), если в любой момент времени каждому значению атрибута В соответствует не более одного значения атрибута А.
Зависимость, при которой каждый не ключевой атрибут зависит от всего составного ключа и не зависит от его частей, называется полной функциональной зависимостью. Если атрибут А зависит от атрибута В, а атрибут В зависит от атрибута С, но обратная зависимость при этом отсутствует, то зависимость С от А называется транзитивной.
Общее понятие нормализации подразделяется на несколько нормальных форм.
Информационный объект (сущность) находится в первой нормальной форме (НФ), когда все его атрибуты имеют единственное значение. Если в каком-либо атрибуте есть повторяющиеся значения, объект (сущность) не находится в 1НФ, и упущен, по крайней мере, еще один информационный объект (еще одна сущность).
Например, задано следующее отношение:
ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов, Преподаватели).
Это отношение не находится в 1НФ, так как атрибут ПРЕПОДАВАТЕЛИ подразумевает возможность наличия нескольких фамилий преподавателей в записи, относящейся к какому-то конкретному предмету, что соответствует участию нескольких преподавателей в ведении одной дисциплины.
Переведем атрибут с повторяющимися значениями в новую сущность, назначим ей первичный ключ (Код преподавателя) и свяжем с исходной сущностью ссылкой на ее первичный ключ (Код предмета). В результате получим две сущности, причем во вторую сущность добавятся характеризующие ее атрибуты:
ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, ФИО, Должность, Оклад, Адрес, Код предмета).
Полученные выражения соответствуют случаю, когда несколько преподавателей могут вести один предмет, но каждый преподаватель не может вести более одной дисциплины. А если учесть, что на самом деле один лектор может читать более одной дисциплины, так же как одну и ту же дисциплину могут читать несколько лекторов, необходимо отказаться от жесткой привязки преподавателя к предмету в сущности ПРЕПОДАВАТЕЛЬ, создав дополнительную сущность ИЗУЧЕНИЕ, которая будет показывать, как связаны между собой преподаватели и предметы:
ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, ФИО, Должность, Оклад, Адрес);
ИЗУЧЕНИЕ (Код предмета, Код преподавателя).
Информационный объект находится во второй нормальной форме (НФ), если он уже находится в первой нормальной форме и каждый его не идентифицирующий (описательный) атрибут зависит от всего уникального идентификатора информационного объекта. Если некий атрибут не зависит полностью от уникально го идентификатора информационного объекта, значит, он внесен в состав этого информационного объекта ошибочно и его не обходимо удалить. Нормализация в этом случае производится путем нахождения существующего информационного объекта, к которому данный атрибут относится, или созданием нового информационного объекта, в который атрибут должен быть помещен.
Возвратившись к последнему примеру, заметим, что атрибут Цикл, в сущности ПРЕДМЕТ, характеризующий принадлежность предмета к циклу гуманитарных, естественно-научных, общепрофессиональных или специальных дисциплин, не полностью зависит от уникального идентификатора Код предмета, так как разные предметы могут иметь одно и то же значение атрибута Цикл. Перенесем этот атрибут в новую сущность ЦИКЛ и получим четыре взаимосвязанных сущности:
ПРЕДМЕТ (Код предмета, Название, Объем часов, Код цикла);
ЦИКЛ (Код цикла, Название цикла);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, ФИО, Должность, Оклад, Адрес);
ИЗУЧЕНИЕ (Код предмета, Код преподавателя).
Информационный объект находится в третьей нормальной форме (ЗНФ), если он уже находится во второй нормальной форме и ни один его описательный атрибут не зависит от каких-либо других описательных атрибутов. Атрибуты, зависящие от других не идентифицирующих атрибутов, нормализуются путем перемещения зависимого атрибута и атрибута, от которого он зависит, в новый информационный объект.
В данном случае не ключевые атрибуты Должность и Оклад находятся в транзитивной зависимости. Опасность такой зависимости состоит в том, что несколько человек могут работать в одной и той же должности. При изменении должностного оклада в этом
случае нужно будет менять данные в каждой записи, содержащей эту должность, следовательно, требуется создать новую сущность ДОЛЖНОСТЬ с находящимися в транзитивной зависимости атрибутами Название должности и Оклад и сделать ссылку от сущности ПРЕПОДАВАТЕЛЬ на сущность ДОЛЖНОСТЬ:
ПРЕДМЕТ (Код предмета, Название, Объем часов, Код цикла);
ЦИКЛ (Код цикла, Название цикла);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, ФИО, Код должности, Адрес);
ДОЛЖНОСТЬ (Код должности, Название должности, Оклад);
ИЗУЧЕНИЕ (Код предмета, Код преподавателя).
Дата добавления: 2015-11-06; просмотров: 828;