Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Нормализация баз данных

Одни и те же данные могут группироваться в таблицы (отноше­ния) различными способами. Группировка атрибутов в отношениях должна быть рациональной, т. е. минимизирующей дублирование данных и упрощающей процедуры их обработки и обновления. Уст­ранение избыточности данных является одной из важнейших задач проектирования баз данных и обеспечивается нормализацией.

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

Процесс нормализации основан на понятии функциональной зависимости атрибутов: атрибут А зависит от атрибута В (В -» А), если в любой момент времени каждому значению атрибута В соот­ветствует не более одного значения атрибута А.

Зависимость, при которой каждый неключевой атрибут зависит от всего составного ключа и не зависит от его частей, называется полной функциональной зависимостью. Если атрибут А зависит от ат­рибута В, а атрибут В зависит от атрибута С (С -» В -> А), но обрат­ная зависимость отсутствует, то зависимость С от А называется транзитивной.

Общее понятие нормализации подразделяется на несколько «нормальных форм».

Информационный объект (или сущность) находится в первой нормальной форме (1НФ), когда все его атрибуты имеют единствен­ное значение. Если в каком-либо атрибуте есть повторяющиеся зна­чения, объект (сущность) не находится в 1НФ, и упущен еще по крайней мере один информационный объект (еще одна сущность).

Например, отношение

ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов, Преподаватели)

не находится в 1НФ, так как атрибут Преподаватели подразумевает возможность присутствия нескольких фамилий преподавателей в записи, относящейся к какому-то конкретному предмету, что соот­ветствует участию нескольких преподавателей в ведении одной дис­циплины. Переведем атрибут с повторяющимися значениями в но­вую сущность, назначим ей первичный ключ (Код преподавателя) и свяжем с исходной сущностью ссылкой на первичный ключ послед­ней (Код предмета). В результате получим две сущности, причем во вторую сущность ПРЕПОДАВАТЕЛЬ мы добавляем характеризую­щие ее атрибуты:

ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов);

ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия И.О., Должность, Оклад, Адрес, Код предмета).

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

ПРЕДМЕТ (Код предмета, Название, Цикл, Объем часов);

ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия И.О., Должность, Оклад, Адрес);

ИЗУЧЕНИЕ (Код предмета, Код преподавателя).

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

Возвращаясь к предыдущему примеру, замечаем что атрибут Цикл в сущности ПРЕДМЕТ, характеризующий принадлежность предмета к циклу гуманитарных, естественно-научных, общепро­фессиональных или специальных дисциплин, не полностью зависит от уникального идентификатора Код предмета, так как разные пред­меты могут иметь одно и то же значение атрибута Цикл. Перенесем атрибут в новую сущность ЦИКЛ и получим четыре взаимосвязан­ные сущности:

ПРЕДМЕТ (Код предмета, Название, Объем часов, Код цикла);

ЦИКЛ (Код цикла, Название цикла);

ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия И.О., Должность, Оклад, Адрес);

ИЗУЧЕНИЕ (Код предмета, Код преподавателя).

Информационный объект (или сущность) находится в третьей нормальной форме (ЗНФ), если он уже находится во второй нор­мальной форме и ни один описательный атрибут не зависит от ка­ких-либо других описательных атрибутов. Атрибуты, зависящие от других неидентифицирующих атрибутов, нормализуются путем пе­ремещения зависимого атрибута и атрибута, от которого он зависит, в новый информационный объект.

В нашем примере неключевые атрибуты Должность и Оклад на­ходятся в транзитивной зависимости. В чем опасность такой зави­симости? Во-первых, несколько человек могут работать в одной и той же должности. При изменении должностного оклада в этом слу­чае нужно будет менять данные в каждой записи, содержащей эту должность. В рассмотренной ситуации нужно создать новую сущ­ность ДОЛЖНОСТЬ с находящимися в транзитивной зависимости атрибутами — Название должности и Оклад и сделать ссылку от сущности ПРЕПОДАВАТЕЛЬ на сущность ДОЛЖНОСТЬ:

ПРЕДМЕТ (Код предмета, Название, Объем часов, Код цикла);

ЦИКЛ (Код цикла, Название цикла);

ПРЕПОДАВАТЕЛЬ (Код преподавателя, Фамилия И.О., Код должности, Адрес);

ДОЛЖНОСТЬ (Код должности, Название должности, Оклад);

ИЗУЧЕНИЕ (Код предмета, Код преподавателя).

 

<== предыдущая лекция | следующая лекция ==>
Основы реляционной алгебры | Этапы проектирования баз данных
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 940; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.