Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Отношение находится в нормальной форме Бойса-Кодда (BCNF) тогда и только тогда, когда каждый его детерминант является потенциальным ключом



BCNF является более строгой версией 3NF. Иными словами, любое отношение, находящееся в BCNF, находится в 3NF. Обратное неверно.

Оказывается, что любая схема отношения может быть приведена в нормальную форму Бойса-Кодда таким образом, чтобы декомпозиция обладала свойством соединения без потерь. Однако схема отношения может быть неприводимой в BCNF с сохранением зависимостей. В этом случае приходится довольствоваться третьей нормальной формой.

Рассмотрим отношение, моделирующее сдачу студентом текущих экзаменов. Пред­положим, что студент может сдавать экзамен по одной дисциплине несколько раз, если он получил неудовлетворительную оценку. Допустим, что во избежа­ние возможных полных однофамильцев мы можем однозначно идентифициро­вать студента номером его студенческого билета, но, с другой стороны, у нас ведется электронный учет текущей успеваемости студентов, поэтому каждому студен­ту присваивается в период его обучения в вузе уникальный номер-идентифика­тор. Отношение, которое моделирует сдачу текущей сессии, имеет следующую структуру:

R1 (№ студ. билета, Идентификатор_студента, Дисциплина, Дата, Оценка)

Возможны два потенциальных ключа:

№ студ. билета, Дисциплина, Дата и
Идентификатор_студента, Дисциплина, Дата

Какие функциональные зависимости имеются?

№ студ. билета, Дисциплина, Дата à Оценка;

Идентификатор_студента, Дисциплина, Дата à Оценка;

№ студ. билета à Идентификатор_студента;

Идентификатор_студента à № студ. билета.

Рассмотрим две последние функциональные зависимости. Мы предварительно описали, что каждому студенту ставится в соответствие один номер студенческого билета и один Идентификатор_студента, поэтому по значению № студ. билета можно однозначно определить Идентификатор_студента (это третья зависимость) и обратно (это четвертая зависимость). Оценим это отноше­ние. Оно находится в третьей нормальной форме, потому что непол­ных функциональных зависимостей непервичных атрибутов от атрибутов возможного ключа здесь не присутствует, и нет транзитивных зависимостей.

Но вот под нормальную форму Бойса-Кодда наше отноше­ние не подходит, потому что есть два детерминанта № студ. билета и Идентификатор_студента, которые не являются возможными ключами отноше­ния. Для приведения отношения к нормальной форме Бойса–Кодда надо разделить отношение, например, на два со следующими схемами;

(Идентификатор_студента, Дисциплина, Дата, Оценка)

(Идентификатор_студента, № студ. билета)

или наоборот:

(№ студ. билета, Дисциплина, Дата, Оценка)

(№ студ. билета, Идентификатор_студента)

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

В большинстве случаев достижение третьей нормальной формы или даже формы Бойса–Кодда считается достаточным для реальных проектов БД, одна­ко в теории нормализации существуют нормальные формы высших порядков, которые уже связаны не с функциональными зависимостями между атрибутами отношений, а отражают более тонкие вопросы семантики предметной области и связаны с другими видами зависимостей.





Дата публикования: 2015-09-17; Прочитано: 341 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...