Профтемы студенту и преподавателю
Taketop.ru
СТУДЕНТУ И ПРЕПОДАВАТЕЛЮ
лекции по дисциплинам
Информатика и вычислительная техника :: Базы данных
Нормализация баз данных
Одни и те же данные могут группироваться в таблицы (отноше­ния) различными способами. Группировка атрибутов в отношениях должна быть рациональной, т. е. минимизирующей дублирование данных и упрощающей процедуры их обработки и обновления. Уст­ранение избыточности данных является одной из важнейших задач проектирования баз данных и обеспечивается нормализацией.
Нормализация таблиц (отношений) — это формальный аппа­рат ограничений на формирование таблиц (отношений), который позволяет устранить дублирование, обеспечивает непротиворечи­вость хранимых в базе данных, уменьшает трудозатраты на веде­ние (ввод, корректировку) базы данных. Процесс нормализации заключается в разложении (декомпозиции) исходных отношений БД на более простые отношения. Каждая ступень этого процесса приводит схему отношений в последовательные нормальные фор­мы. Для каждой ступени нормализации имеются наборы ограни­чений, которым должны удовлетворять отношения БД. Нормали­зация позволяет удалить из таблиц базы избыточную неключевую информацию.
Процесс нормализации основан на понятии функциональной зависимости атрибутов: атрибут А зависит от атрибута В (В -» А), если в любой момент времени каждому значению атрибута В соот­ветствует не более одного значения атрибута А.
Зависимость, при которой каждый неключевой атрибут зависит от всего составного ключа и не зависит от его частей, называется полной функциональной зависимостью.
 Если атрибут А зависит от ат­рибута В, а атрибут В зависит от атрибута С (С -> В -» А), но обрат­ная зависимость отсутствует, то зависимость С от А называется транзитивной.
 
Общее понятие нормализации подразделяется на несколько «нормальных форм».
 
Информационный объект (или сущность) находится в первой нормальной форме (1НФ), когда все его атрибуты имеют единствен­ное значение. Если в каком-либо атрибуте есть повторяющиеся зна­чения, объект (сущность) не находится в 1НФ, и упущен еще по крайней мере один информационный объект (еще одна сущность).
Например, отношение
 
ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов, Преподаватели)
 
не находится в 1НФ, так как атрибут Преподаватели подразумевает возможность присутствия нескольких фамилий преподавателей в записи, относящейся к какому-то конкретному предмету, что соот­ветствует участию нескольких преподавателей в ведении одной дис­циплины. Переведем атрибут с повторяющимися значениями в но­вую сущность, назначим ей первичный ключ (Код преподавателя) и свяжем с исходной сущностью ссылкой на первичный ключ послед­ней (Код предмета). В результате получим две сущности, причем во вторую сущность ПРЕПОДАВАТЕЛЬ мы добавляем характеризую­щие ее атрибуты:
 
ПРЕДМЕТ (Код предмета, Название. Цикл, Объем часов);
 ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия И.О., Должность, Оклад, Адрес, Код предмета).
 
Полученные выражения соответствуют случаю, когда несколько преподавателей могут вести один предмет, но каждый преподава­тель не может вести более одной дисциплины. А если учесть, что на самом деле один лектор может читать более одной дисциплины, так же как одну и ту же дисциплину могут читать несколько лекторов, необходимо отказаться от жесткой привязки преподавателя к пред­мету в сущности Преподаватель, создав дополнительную сущность Изучение, которая будет показывать, как связаны между собой пре­подаватели и предметы:
 
ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия И.О., Должность, Оклад, Адрес);
ИЗУЧЕНИЕ (Код предмета, Код преподавателя).
 
Информационный объект находится во второй нормальной фор­ме (2НФ), если он уже находится в первой нормальной форме, и ка­ждый неидентифицирующий (описательный) атрибут зависит от всего уникального идентификатора информационного объекта. Если некий атрибут не зависит полностью от уникального иденти­фикатора сущности, значит, он внесен ошибочно и должен быть удален. Нормализация в этом случае производится путем нахожде­ния существующего информационного объекта, к которому данный атрибут относится, или созданием нового информационного объек­та, в который атрибут должен быть помещен.
Возвращаясь к предыдущему примеру, замечаем что атрибут Цикл в сущности ПРЕДМЕТ, характеризующий принадлежность предмета к циклу гуманитарных, естественно-научных, общепро­фессиональных или специальных дисциплин, не полностью зависит от уникального идентификатора Код предмета, так как разные пред­меты могут иметь одно и то же значение атрибута Цикл. Перенесем атрибут в новую сущность ЦИКЛ и получим четыре взаимосвязан­ные сущности:
ПРЕДМЕТ (Код предмета, Название, Объем часов. Код цикла);
ЦИКЛ (Код цикла, Название цикла);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия И.О., Должность, Оклад, Адрес):
ИЗУЧЕНИЕ (Код предмета, Код преподавателя).
 
Информационный объект (или сущность) находится в третьей нормальной форме (ЗНФ), если он уже находится во второй нор­мальной форме и ни один описательный атрибут не зависит от ка­ких-либо других описательных атрибутов. Атрибуты, зависящие от других неидентифицирующих атрибутов, нормализуются путем пе­ремещения зависимого атрибута и атрибута, от которого он зависит, в новый информационный объект.
 
В нашем примере неключевые атрибуты Должность и Оклад на­ходятся в транзитивной зависимости. В чем опасность такой зави­симости? Во-первых, несколько человек могут работать в одной и той же должности. При изменении должностного оклада в этом слу­чае нужно будет менять данные в каждой записи, содержащей эту должность. В рассмотренной ситуации нужно создать новую сущ­ность ДОЛЖНОСТЬ с находящимися в транзитивной зависимости атрибутами — Название должности и Оклад и сделать ссылку от сущности ПРЕПОДАВАТЕЛЬ на сущность ДОЛЖНОСТЬ:
 
ПРЕДМЕТ (Код предмета, Название, Объем часов, Код цикла);
ЦИКЛ (Код цикла, Название цикла);
ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия И.О., Код должности, Адрес);
ДОЛЖНОСТЬ (Код должности, Название должности, Оклад);
ИЗУЧЕНИЕ (Код предмета, Код преподавателя).

Работы, представленные на сайте http://taketop.ru, предназначено исключительно для ознакомления. Все права в отношении работ и/или содержимого работ, представленных на сайте http://taketop.ru, принадлежат их законным правообладателям. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие или полученные в связи с использованием работ и/или содержимого работ, представленных на сайте http://taketop.ru
Рейтинг@Mail.ru
Сайт управляется SiNG cms © 2010-2015