Нормальная форма бойса-кодда

Нормальная форма Бойса-Кодда требует, чтобы в таблице был только один потенциальный первичный ключ. Чаще всего у таблиц, находящихся в третьей нормальной форме, так и бывает, но не всегда. Если обнаружился второй столбец (комбинация столбцов), позволяющий однозначно идентифицировать строку, то для приведения к нормальной форме Бойса-Кодда такие данные надо вынести в отдельную таблицу.

Четвертая нормальная форма

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

Пятая нормальная форма

Таблицу, находящуюся в четвертой нормальной форме и, казалось бы, уже нормализованную до предела, в некоторых случаях еще можно бывает разбить на три или более (но не на две!) таблиц, соединив которые, мы получим исходную таблицу. Получившиеся в результате такой, как правило, весьма искусственной, декомпозиции таблицы и называют находящимися в пятой нормальная форме. Формальное определение пятой нормальной формы таково: это форма, в которой устранены зависимости соединения. В большинстве случаев практической пользы от нормализации таблиц до пятой нормальной формы не наблюдается.

Такая вот теория... Разработаны специальные формальные математические методы нормализации таблиц реляционных баз данных. На практике же толковый проектировщик баз данных, детально познакомившись с предметной областью, как правило, достаточно быстро набросает структуру, в которой большинство таблиц находятся в четвертой нормальной форме:).

ФУНКЦИОНАЛЬНАЯ ЗАВИСИМОСТЬ

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

Реляционная база данных содержит как структурную, так и семантическую информацию.

Структура базы данных определяется числом и видом включенных в нее отношений, и связями типа "один ко многим", существующими между кортежами этих отношений.

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

Если даны два атрибута X и Y некоторого отношения, то говорят, что Y функционально зависит от X, если в любой момент времени каждому значению X соответствует ровно одно значение Y. Функциональная зависимость обозначается X -> Y.

Отметим, что X и Y могут представлять собой не только единичные атрибуты, но и группы, составленные из нескольких атрибутов одного отношения. Можно сказать, что функциональные зависимости представляют собой связи типа "один ко многим", существующие внутри отношения.

Детерминантом функциональной зависимости X -> Y называется X (атрибут или группа атрибутов в левой части зависимости).

Некоторые функциональные зависимости могут быть нежелательны.

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

Функциональная зависимость описывает связь между атрибутами отношения: если в отношении R, содержащем атрибуты А и В, атрибут В функционально зависит от атрибута А, то каждое отдельное значение атрибута А связано только с одним значением атрибута В (причем в качестве А и В могут выступать группы атрибутов).
Атрибут или группа атрибутов А называются при этом детерминантом функциональной зависимости.
Т.о., при наличии функциональной зависимости А→В кортежи, имеющие одинаковое значение атрибута А, совпадают и по значению атрибута В. Однако обратное не верно: одно и то же значение атрибута В может соответствовать разным значениям атрибута А.
Функциональная зависимость А→В является полной функциональной зависимостью, если удаление какого-либо атрибута из группы атрибутов А приводит к потере этой зависимости. Функциональная зависимость А→В является частичной функциональной зависимостью, если в группе атрибутов А есть один или несколько атрибутов, при удалении которых эта зависимость сохраняется.

Пример: Учебный план (№*, дисциплина, семестр, кол-во часов, форма отчетности, препод.)
Дисциплина, семестр и форма отчетности функционально зависят от №

МНОГОЗНАЧАНЯ Зависимость

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

В отношении R(A,B,C) атрибут B многозначно зависит от атрибута A (имеет место многозначная зависимость атрибута B от атрибута A) тогда и только тогда, когда множество значений B для каждой пары значений (A, C) зависит только от A (не зависит от B). Обозначение: A=>B.

Другими словами, в отношении R для фиксированного значения A должны быть приведены все возможные комбинации значений (B,C), поскольку отсутствие значения B хотя бы с одним значением C будет означать зависимость B от С.

Видно, что данное определение подразумевает также независимость C от B (так как должны быть все возможные комбинации B,C), что означает многозначную зависимость C от A в рассматриваемом отношении R.

Таким образом, многозначные зависимости всегда встречаются парами (формально C может быть пустым атрибутом), и для записи таких пар используется обозначение: A=>B | С.

Многозначная зависимость является обобщением функциональной зависимости, то есть любая функциональная зависимость является многозначной (где под множеством значений зависимого атрибута понимается ровно одно значение), но не наоборот - многозначная зависимость с мощностью множества значений зависимого атрибута больше одного, не является функциональной по определению ФЗ.

В качестве примера многозначной зависимости можно рассмотреть многозначную зависимость в отношении учебная нагрузка студентов академических групп Нагрузка(Группа, Студент, День). Подразумевается, что группа содержит множество студентов, и для группы определены учебные дни и дни самостоятельной подготовки.

Группа->Студент | День
Очевидно, что множество студентов и множество учебных дней никак между собой не связаны, а определяются только значением Группы.

В отношении R многозначная зависимость A=>B называется тривиальной, если B входит в состав A или R = (А,B). Иначе зависимость называется нетривиальной.

Так, тривиальной являются многозначные зависимости:
а) Группа=>Студент в отношении Список (Студент, Группа) : Список=(Студент, Группа);
б) Группа, Студент => Студент (Студент входит в [Группа, Студент])

27.09.11

Что такое нормализация

НОРМАЛИЗАЦИЯ

КАКИЕ ЗАВИСИМОСТИ БЫВАЮТ

Виды зависимости, определения

Функциональная зависимость

Функционально зависит

Многозначная зависимость

06.10.11

Медицинское учреждение

4НФ

5НФ

{A} для начала нужна быть функциональная зависимость и они атомарно, к 1й нормальной форме, выявить к функ зависимости и провести нормализацию.

P = {A.B.C}

A=>B

B=>C

A=>C

Следует

R1={A,B}

R2={B,C}

Привести в атомарный вид,

11.10.11

Критериый тривиальности MV-зависимости

*опр в учебнике

Тривиальная MV зависимость – для которой выполняется:

*Y<=X

*XY=R

Зная Х, можем сказать {}-во знач y.

4НФ – схема отношений находится в 4НФ. Если:

Для каждой многозначной зависимости, либо зависимости тривиальной, либо детерминант является супер ключом для схемы отношений, БД находится в 4НФ, если..

5НФ- схема отношений находится в 5НФ. Если:

Для каждой зависимости соединения, либо зависимости тривиальной, либо детерминант является супер ключом для схемы отношений, БД находится в 5НФ, если..

Нормализация путем декомпозиции

Декомпозиция – последовательное деление на части

Шаг 0 – определить атрибуты бд.

Шаг 1 – привидение к 1НФ, все атрибуты в одной схеме отношений, но при этом атомарны.

Шаг 2 – к БКНФ, схему отношений разбить на проекции, исключив все функциональные зависимости, в которых детерминанты не являются ключами, декомпозиция должна проводиться без потерь!

Шаг 3 – приведение к 4НФ, разбить на проекции, позволяющие исключить многозначные зависимости, не являющиеся тривиальными, в которых детерминант не является супер ключом, декомпозиция должна проводиться без потерь!

Шаг 4 – приведение к 5НФ, разбить на проекции, исключая зависимости соединения, не подразумеваемые ключами, декомпозиция проводится без потерь!

Проекция – разрезание по столбикам.

Аномалия – бред :D

1НФ-> БКНФ-> 4НФ-> 5НФ

Ортогональное проектирование – как альтернатива нормализации путем декомпозиции.

Обороноспособность

Суть – декомпозиция на классы объекта, выделение свойств классов объектов, выделение связей между классами объектов

Сложность – необходимость выделения абстрактных понятий, важных для предметной области

Важно – при отсутствии ошибок проектирования результат не будет отличаться, независимо от метода проектирования – при ортогональном проектировании, при проектировании с помощью нормализации путем декомпозиции.

Последовательность – выделить классы объектов предметной области выделитть свойства классов выделить отношение между классами, если кратность отношений «М:М», то следует ввести дополнительную сущность и заменить «М:М» на два «1:М».

Наши рекомендации