![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
BCNF является более строгой версией 3NF. Иными словами, любое отношение, находящееся в BCNF, находится в 3NF. Обратное неверно.
Оказывается, что любая схема отношения может быть приведена в нормальную форму Бойса-Кодда таким образом, чтобы декомпозиция обладала свойством соединения без потерь. Однако схема отношения может быть неприводимой в BCNF с сохранением зависимостей. В этом случае приходится довольствоваться третьей нормальной формой.
Рассмотрим отношение, моделирующее сдачу студентом текущих экзаменов. Предположим, что студент может сдавать экзамен по одной дисциплине несколько раз, если он получил неудовлетворительную оценку. Допустим, что во избежание возможных полных однофамильцев мы можем однозначно идентифицировать студента номером его студенческого билета, но, с другой стороны, у нас ведется электронный учет текущей успеваемости студентов, поэтому каждому студенту присваивается в период его обучения в вузе уникальный номер-идентификатор. Отношение, которое моделирует сдачу текущей сессии, имеет следующую структуру:
R1 (№ студ. билета, Идентификатор_студента, Дисциплина, Дата, Оценка)
Возможны два потенциальных ключа:
№ студ. билета, Дисциплина, Дата и
Идентификатор_студента, Дисциплина, Дата
Какие функциональные зависимости имеются?
№ студ. билета, Дисциплина, Дата à Оценка;
Идентификатор_студента, Дисциплина, Дата à Оценка;
№ студ. билета à Идентификатор_студента;
Идентификатор_студента à № студ. билета.
Рассмотрим две последние функциональные зависимости. Мы предварительно описали, что каждому студенту ставится в соответствие один номер студенческого билета и один Идентификатор_студента, поэтому по значению № студ. билета можно однозначно определить Идентификатор_студента (это третья зависимость) и обратно (это четвертая зависимость). Оценим это отношение. Оно находится в третьей нормальной форме, потому что неполных функциональных зависимостей непервичных атрибутов от атрибутов возможного ключа здесь не присутствует, и нет транзитивных зависимостей.
Но вот под нормальную форму Бойса-Кодда наше отношение не подходит, потому что есть два детерминанта № студ. билета и Идентификатор_студента, которые не являются возможными ключами отношения. Для приведения отношения к нормальной форме Бойса–Кодда надо разделить отношение, например, на два со следующими схемами;
(Идентификатор_студента, Дисциплина, Дата, Оценка)
(Идентификатор_студента, № студ. билета)
или наоборот:
(№ студ. билета, Дисциплина, Дата, Оценка)
(№ студ. билета, Идентификатор_студента)
Эти схемы равнозначны с точки зрения теории нормализации, поэтому выбирать проектировщикам следует исходя из некоторых дополнительных рассуждений. Ну, например, если учесть, что студенческие билеты могут теряться, то, как они будут восстанавливаться: если с тем же самым номером, то нет разницы, но если с новым номером, то тогда первая схема предпочтительней.
В большинстве случаев достижение третьей нормальной формы или даже формы Бойса–Кодда считается достаточным для реальных проектов БД, однако в теории нормализации существуют нормальные формы высших порядков, которые уже связаны не с функциональными зависимостями между атрибутами отношений, а отражают более тонкие вопросы семантики предметной области и связаны с другими видами зависимостей.
Дата публикования: 2015-09-17; Прочитано: 379 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!