Лекция 1.4
Зависимости между атрибутами отношений:
Функциональная- атрибут Б функционально зависит от А если для любого значения А найдется соответствие одно значение Б. Таблица которая находится выше функциональной зависимости: от фамилии зависит кафедра, должность, предмет. Определим первичный ключ данной таблицы, он будет стоять из нескольких атрибутов (первичный ключ будет составной - фамилия, предмет и группа),
Частичная зависимость - это зависимость не ключевого атрибута от части составного ключа (например, должность зависит от фамилии).
Полная функциональная зависимость - это зависимость от всего составного ключа, например, в нашей таблице от всего составного ключа зависит атрибут «вид занятий».
Транзитивные зависимости- атрибут В зависит от А транзитивно (через кого-то), если для атрибутов А, В и С выполняются условия В зависит от А и С зависит от В, но обратная зависимость отсутствует. В нашей таблице существует транзитивная зависимость фамилия стрелочка, должность стрелочка оклад.
Многозначные зависимость- в отношении ЭР атрибут В зависит от атрибута А если каждому значению А соответствует множество значений В не связанных с другими атрибутами. Многозначные зависимости могут быть: - один ко многим 1:М -многие к одному А двойная стрелка влево В -многие ко многим
Нормальные формы
Процесс проектирования БД с использованием метода нормальных форм заключается в последовательном переводе отношений из первой нормальной формы в нормальные формы более высокого порядка по определенным правилам. Каждая нормальная форма:
Ограничивает определенный тип функциональной зависимости предыдущей нормальной формы.
Устраняет соответствующие аномалии при выполнении операций над отношениями БД.
Сохраняет свойства предыдущих нормальных форм.
Рассмотрим последовательность нормальных форм: - 1НФ - 2НФ - 3НФ - усиленная 3НФ (БКНФ) - 4НФ - 5НФ
1НФ
Отношение находится в 1НФ, если все его атрибуты являются простыми. Исходные отношения строятся так, чтобы все его атрибуты были простыми. Перевод отношений в следующую нормальную форму осуществляется методом декомпозиции без потерь. Метод обеспечивает, что запросы к исходному отношению и к отношениям, полученным в результате декомпозиции дадут одинаковый результат.
Лекция 1.5
1НФ
Запрос- это выборка данных по условию.
Предположим в отношении R (A, B,C,D,E) устранение функциональной зависимости C>D позволяет перевести его в следующую нормальную форму. Для этого выполняется декомпозиция отношения ЭР на отношения ЭР1 (A, B,C,D,E) и отношения ЭР2 с атрибутами (C,D). Рассмотрим отношение преподаватель, она имеет составной ключ фамилия, предмет группа, все атрибуты пресытые т.е. все отношения находится в 1НФ. В отношении присутствует явное и неявное избыточное дублирование данных т.е. повторяются сведения о стаже, о должности и окладе преподавателей, а так же можно заметить что у одинаковых должностей одинаковые оклады и есть одинаковые надбавки на стаж. Все это избыточное дублирование ведет к тому, что возникает проблема редактирования: изменение должностей, например, у Иванова нужно просмотреть и изменить все строки где он фигурирует. Для устранения избыточности нужно перевести отношение во 2НФ.
2НФ
Отношение находится во 2НФ если при нахождении его в 1НФ каждый не ключевой атрибут функционально полно зависит от первичного ключа. Для устранения частичной зависимости и перевода отношения во 2НФ необходимо используя операцию проекции (деление таблицы на несколько) разложить его на 2 отношения:
Во-первых, построить проекцию без атрибутов, которые находятся в частичной функциональной зависимости от первичного ключа.
Во-вторых, построить проекции на части составного первичного ключа и атрибуты, зависящие от этих частей т.е. перевод во 2НФ это выделение отношения, в котором от первичного ключа функционально полно зависят атрибуты.
Например, переведем таблицу во 2НФ, для этого отдельную таблицу выделим ключ, а также атрибуты функционально полно зависящие от него. В таблице 2 остаются: фамилия, должность, оклад, стаж, надбавка на стаж и кафедра т.е. мы разделили отношение ЭР на отношение ЭР1 и ЭР2 использую операцию проекции. Далее преобразуем отношение в 3НФ.
3НФ
Отношение находятся в 3НФ если при нахождении его во 2НФ каждый не ключевой атрибут не транзитивно зависит от первичного ключа т.е. чтобы перевести в 3НФ нужно убрать все транзитивные зависимости из отношений. В отношении ЭР1 транзитивной зависимости нет, в отношении ЭР2 они есть т.е. фамилия> стаж> надбавка на стаж, фамилия> должность> оклад. Транзитивные зависимости порождают в данном отношении избыточное дублирование информации, их необходимо устранить с использованием операции проекции на атрибуты, которые являются причиной транзитивной зависимости т.е. отношение ЭР2 мы преобразуем в отношения ЭР3, ЭР4 и ЭР5.
В ЭР3 будут входить атрибуты: фамилия, должность, стаж и кафедра. В ЭР4: должность и оклад. В ЭР5: стаж и надбавка на стаж. Мы получили отношения ЭР1345. Избыточное дублирование устранено, следовательно, проектирование БД закончено.
