5. Нормальная форма Бойса – Кодда (NFBC)
5. Нормальная форма Бойса – Кодда (NFBC)
Нормальная форма Бойса – Кодда следует по «сложности» сразу после третьей нормальной формы. Поэтому нормальную форму Бойса – Кодда еще иногда называют просто усиленной третьей нормальной формой (или усиленной 3 NF). Почему же она именно усиленная? Сформулируем определение нормальной формы Бойса – Кодда:
Определение. Базовое отношение находится в нормальной форме Бойса – Кодда тогда и только тогда, когда она находится в третьей нормальной форме, и при этом не только любой неключевой атрибут полностью функционально зависит от любого ключа, но и любой ключевой атрибут должен полностью функционально зависеть от любого ключа.
Таким образом, требование о фактической зависимости неключевых атрибутов от всего ключа целиком и ни от чего другого, кроме как от ключа, распространяется и на ключевые атрибуты.
В отношении, находящемся в нормальной форме Бойса – Кодда, все функциональные зависимости в пределах отношения навязаны объявлением ключей. Однако при приведении отношений баз данных к форме Бойса – Кодда, возможны ситуации, при которых не навязанными функциональными зависимостями оказываются зависимости между атрибутами различных отношений. Поддержка таких функциональных зависимостей при помощи триггеров, оперирующих кортежами различных отношений, сложнее, чем в случае третьей нормальной формы, когда триггеры оперируют кортежами единственного отношения.
Кроме всего прочего, практика проектирования систем управления базами данных показала, что не всегда удается привести базовое отношение к нормальной форме Бойса – Кодда.
Причиной отмеченных аномалий является то, что в требованиях второй нормальной формы и третьей нормальной формы не требовалась минимальная функциональная зависимость от первичного ключа атрибутов, являющихся компонентами других возможных ключей. Эту проблему и решает нормальная форма, которую исторически принято называть нормальной формой Бойса – Кодда и которая является уточнением третьей нормальной формы в случае наличия нескольких перекрывающихся возможных ключей.
Вообще нормализация схемы базы данных способствует более эффективному выполнению системой управления базами данных операций обновления базы данных, поскольку сокращается число проверок и вспомогательных действий, поддерживающих целостность базы данных. При проектировании реляционной базы данных почти всегда добиваются второй нормальной формы всех входящих в базу данных отношений. В часто обновляемых базах данных обычно стараются обеспечить третью нормальную форму отношений. На нормальную форму Бойса – Кодда внимание обращают гораздо реже, поскольку на практике ситуации, в которых у отношения имеется несколько составных перекрывающихся возможных ключей, встречаются нечасто.
Все вышеназванное делает нормальную форму Бойса – Кодда не слишком удобной в использовании при разработке программного кода, поэтому, как уже было сказано ранее, на практике разработчики обычно ограничиваются приведением своих баз данных к третьей нормальной форме. Однако здесь тоже есть своя довольно любопытная особенность. Дело в том, что ситуации, когда отношение находится в третьей нормальной форме, но не находится в нормальной форме Бойса – Кодда крайне редки на практике, т. е. после приведения к третьей нормальной форме обычно все функциональные зависимости оказываются навязанными объявлениями первичных, кандидатных и внешних ключей, так что необходимость в триггерах для поддержки функциональных зависимостей отпадает.
Однако необходимость в триггерах остается для поддержки ограничения целостности, не связанных функциональными зависимостями.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Основная форма If...Then
Основная форма If...Then Оператор If ... Then выполняет некоторый блок программного кода, если условие, которое вы предложили этому оператору, принимает значение True, и не делает ничего, если условие принимает значение False. Синтаксис оператора следующий:If условие Then( операторы,
2. Первая нормальная форма (1NF)
2. Первая нормальная форма (1NF) На ранних стадиях проектирования баз данных и разработки схем их управления использовались простые и однозначные атрибуты как наиболее продуктивные и рациональные единицы кода. Тогда применяли наряду с простыми и составные атрибуты, а
3. Вторая нормальная форма (2NF)
3. Вторая нормальная форма (2NF) Более сильные требования накладывает на отношения вторая нормальная форма, или 2NF.Это происходит потому, что определение второй нормальной формы отношений предполагает, в отличие от первой нормальной формы, наличие системы ограничений
4. Третья нормальная форма (3NF)
4. Третья нормальная форма (3NF) Следующей нормальной формой, которую мы подвергнем рассмотрению, является третья нормальная форма (или 3NF). В отличие от первой нормальной формы, так же как и вторая нормальная форма, третья – подразумевает задание вместе с отношением системы
Форма как графический объект
Форма как графический объект Каким образом можно скопировать форму в буфер обмена в виде графического изображения?uses clipbrd;procedure TShowVRML.Kopieren1Click(Sender: TObject);var bitmap:tbitmap;begin bitmap:=tbitmap.create; bitmap.width:=clientwidth; bitmap.height:=clientheight; try with bitmap.Canvas do CopyRect (clientrect,canvas,clientrect); clipboard.assign(bitmap); finally
Форма проекта
Форма проекта Нам понадобится форма с тремя страничками и тремя компонентами TMemo. В первом будет показываться исходный текст преобразуемого документа, во втором — XSLT-преобразование и в третьем — результат преобразования.Приблизительный внешний вид формы показан на
Форма букв
Форма букв Есть буквы (например, «п», «ш», «щ», «ч», «т», «и»), которые можно писать округленно или угловато. Восходящие и нисходящие штрихи этих букв некоторые соединяют полукруглыми линиями, такой почерк называется круглым. У других людей штрихи пересекаются между собой
Форма слов
Форма слов В процессе общения некоторые люди много и откровенно говорят о своих делах, планах и желаниях, другие же проявляют определенную сдержанность и даже скрытность. По почерку можно выявить степень откровенности, для этого необходимо обратить внимание на форму
Форма заглавных букв
Форма заглавных букв В написании заглавных букв наблюдается такое же разнообразие, как и в написании прописных букв. Они могут быть большими и маленькими, простыми и вычурными. По стилю написания заглавные буквы часто заметно отличаются от прописных и поэтому
9. Форма
9. Форма Признаки слева направо (рис. 189): Рис. 189• форма почерка угловатая;• форма почерка округлая;• форма почерка школьная;• форма почерка с печатными буквами;• форма почерка каллиграфическая;• форма почерка
Форма объявлений
Форма объявлений Отточим наши критические навыки вначале на чем-либо не столь существенном. Поэтому начнем с синтаксиса. Рассмотрим нотацию, используемую при объявлении компонентов. В отличие от многих языков мы не использовали для подпрограмм ключевых слов procedure или
Базовая форма
Базовая форма Программный объект довольно простое существо, если известен класс, которому он принадлежит. Пусть O - объект. По определению он является экземпляром некоторого класса. Точнее, он является прямым экземпляром (direct instance) только одного класса, например C. С
Плоская форма класса
Плоская форма класса Наследование - это скорее инструмент поставщика класса, чем клиента; это прежде всего внутренний механизм эффективного построения классов. И действительно, клиенту нужно знать о наследовании и структуре семейства классов ровно столько, чтобы он мог
Краткая плоская форма
Краткая плоская форма Плоская форма класса дает корректное описание класса. Помимо роли, которую она играет в интересах документации, она представляет интерес для разработчиков, имеющих дело с самим классом или его потомками. Клиентам же класса нужна более абстрактная