
2.5.1. Сетевая модель данных ргбд кодасил
Схема сетевой базы данных модели РГБД состоит из множества типов записей, которые могут быть владельцами или членами типов наборов, определяемых в схеме. Тип набора определяет связь между типами записи-члена и записи-владельца следующим образом:
а) Тип набора определяет отображение 1 : N между типом записи-владельца и типами записей-членов набора.
б) Экземпляр типа записи-члена может участвовать только в одном экземпляре данного типа набора.
в) Тип записи-владельца в типе набора не может совпадать с типом записи-члена.
В п. а) имеется одно отличие от строго иерархической системы. Оно состоит в том, что допускаются записи-члены, не участвующие в наборах. Это соответствует порожденным узлам дерева, не имеющим исходных. Таким образом, вместо полной функциональной зависимости «члены — владелец» допускается частичная функциональная зависимость. Кроме того, в сетевой модели РГБД можно определить несколько типов наборов между двумя типами записей, так что между ними могут быть заданы различные отношения в отличие от единственного отношения исходный — порожденный, допустимого в иерархических структурах.
Существуют различные способы преобразования общих сетевых структур в структуры РГБД с учетом ограничений а) — в).
Для преобразования общей сетевой структуры, показанной на рис. 3,а, можно ввести запись-связку. Таким образом, связь М : N, примером которой является связь между поставщиками и деталями, преобразуется в совокупность связей 1 : N (т. е. иерархий), удовлетворяющих ограничению а). Экземпляры записи-связки можно выбирать так, чтобы удовлетворялось ограничение б). Кроме того, записи-связки могут содержать дополнительную информацию (например, в записи-связке может храниться величина поставки). Эти преобразования показаны на рис. 4.
Рис.4
Из рис. 4 видно, что для преобразования общей структуры в структуру с ограничениями необходимо ввести несколько типов наборов и типов записей. Это еще один пример, показывающий необходимость дублирования для представления сложных и мощных структур с помощью примитивных и/или ограниченных структур.
Что касается ограничения в), то рассмотрим связь «руководит», показанную на рис. 4,а и 5,в. В терминах предложений РГБД тип записи-члена здесь должен совпадать с типом записи-владельца, что недопустимо. В этом случае по аналогии с решением для ограничений а) и б), рассматриваемую связь можно отобразить либо вводя различные типы записей для разных ролей одного и того же типа записи, либо добавляя запись-связку и два типа наборов. Оба случая представлены на рис.6.
Рис.5. Рис.6
РЕЛЯЦИОННЫЕ СИСТЕМЫ
Реляционные СУБД используют реляционную модель данных. С помощью уже введенных понятий можно рассматривать отношение как набор связей между п атрибутами, т. е. как n-арную атрибутную связь. В соответствующее представление данных включаются только имеющие смысл и/или допустимые комбинации связей атрибутов. Ниже приведен ряд формальных определений:
а) Доменом называется совокупность однотипных значений данных. Примерами являются домен денежных сумм, домен имен, домен целых чисел и т. д.
б) Термин атрибут был введен выше для представления свойств объекта. Несколько атрибутов могут получать значения из одного домена. Таким образом, значения домена по-разному интерпретируются в разных атрибутах, используемых при описании информационной структуры. Например, атрибуты «зарплата» и «комиссионные» объекта (отношения) «служащие» получают значения из домена денежных сумм.
в) Пусть имеется п доменов D1, D2, ..., Dn (необязательно различных). Отношение R определяется как множество упорядоченных п-ок (кортежей), являющееся подмножеством декартова произведения доменов. Домен (множество) Di представлен в кортежах i-м элементом. Требование упорядоченности элементов кортежа можно устранить, идентифицируя в кортеже каждое вхождение домена уникальным именем атрибута.
Приведенный ниже простой пример иллюстрирует тот факт, что отношение представляет подмножество декартова произведения доменов. Пусть необходимо построить бинарное отношение (т. е. отношение с двумя атрибутами), содержащее атрибуты «имя» и «возраст». Предположим, что в соответствующих доменах определены следующие значения:
Домен имен |
Возраст (из домена целых чисел) |
Доу |
25 |
Кларк |
37 |
Джонсон |
43 |
Отношение R (ИМЯ, ВОЗРАСТ) — имена атрибутов могут перечисляться в любом порядке — представляет подмножество декартова произведения доменов ИМЯ и ВОЗРАСТ, состоящего из девяти кортежей, R ИМЯ ВОЗРАСТ ( обозначает операцию декартова произведения):
ИМЯ ВОЗРАСТ = (Доу,25),(Кларк,25),(Джонсон,25),
(Доу,37),(Кларк,37),(Джонсон,37),
(Доу,43),(Кларк,43),(Джонсон,43).
Поскольку возраст человека определен однозначно, смысл имеют лишь три варианта сочетания возраста и имени. Например, отношение
R (ИМЯ, ВОЗРАСТ) = (Доу,43),(Кларк,25),(Джонсон,37) представляет модель реальной ситуации, являясь подмножеством рассмотренного декартова произведения.
СВОЙСТВА ОТНОШЕНИЙ
а) Отношение называется нормализованным, если каждая компонента n-ки (кортежа) является простым, атомарным значением, не состоящим из группы значений. Это не позволяет заменять значение атрибута другим отношением (что привело бы к сетевому или иерархическому отношению).
б) Нормализованное отношение представляется в виде табличной структуры. Имя таблицы соответствует имени отношения, имена столбцов — именам атрибутов, а строки таблицы — кортежам.
в) Упорядочение кортежей теоретически несущественно, однако оно может влиять на эффективность доступа к кортежам.
г) Все строки (кортежи) отношения должны быть различными.
д) В отношении могут существовать несколько одиночных или составных атрибутов, которые однозначно идентифицируют кортеж отношения. Такие атрибуты называются возможными ключами. Один из них выбирается в качестве первичного ключа для обеспечения доступа к кортежам.
е) Реляционная база данных является совокупностью изменяющихся во времени нормализованных отношений различных степеней, которые могут быть связаны друг с другом через общие домены.
Сделаем несколько замечаний по поводу свойства е). Различие между математическим отношением и отношением базы данных состоит в том, что состояние последнего может меняться со временем при добавлении и/или удалении отдельных кортежей. Число атрибутов, входящих в отношение, называется степенью отношения, а число кортежей отношения — кардинальным числом или мощностью отношения. Навигация по отношениям базы данных осуществляется путем их соединения с помощью атрибутов, определенных над общими или сравнимыми доменами. Операция соединения включает сравнение значении «атрибутов соединения» кортежей одного отношения (исходного) с кортежами другого отношения (целевого) и выборку пар кортежей, удовлетворяющих сравнению. Эта операция подробно рассмотрена ниже.
РЕЛЯЦИОННАЯ АЛГЕБРА
В этом разделе на ряде примеров рассматриваются операции реляционной алгебры. Для представления каждой операции будем использовать терминологию как алгебры, так и исчисления. Последняя базируется на системе понятий, использованной Коддом [53]. Пять операций являются основными: проекция, объединение, разность, декартово произведение и селекция. Другие часто используемые операции пересечения, соединения и деления можно выразить через пять основных операции. Ниже представлены отношения, используемые в примерах:
Р (D1, D2, D3) Q (D4, D5,) R (М, Р, Q, Т) S (A, В)
1 11 х х 1 х 101 5 a 5 а
2 11 у x 2 у 105 3 а 10 b
3 11 z у 1 z 500 9 а 15 с
4 12 х w 50 1 b 2 d
w 10 2 b 6 а
w 300 4 b 1 b
Описание каждого отношения состоит из имени отношения, за которым в круглых скобках следует список атрибутов (это описание называется также интенсионалом или схемой отношения). Под описанием приведено некоторое заполнение кортежей отношения (экстенсионал отношения). В последующих примерах буквы R и S используются для обозначения отношений, а буквы А и В — для обозначения списка атрибутов (для простоты можно считать, что список состоит из единственного атрибута).
Проекция
Алгебра Исчисление
R [A] {r [А] : r R}
Операция проекции представляет собой выборку из каждого кортежа отношения значений атрибутов, входящих в A, и удаление из полученного отношения повторяющихся строк, В исчислении r обозначает «кортежную» переменную, значениями которой являются кортежи исходного отношения R, а r [А] — часть кортежа R с атрибутами из А. В соответствии с определением отношения неявно предполагается удаление дубликатов кортежей результирующего отношения.
Объединение
Алгебра Исчисление
R S {t : t R t S}
Для того чтобы было возможным, отношения-операнды (R, S) должны быть совместимы по объединению, т. е. Их атрибуты должны быть определены над совместимыми доменами.
Разность
Алгебра Исчисление
R - S {t : t R t S}
Декартово произведение
Алгебра Исчисление
R S {(r || s) : r R s S}
Из обозначений видно, что операция декартова произведения осуществляется между кортежами отношений-аргументов, а результатом является конкатенация (обозначаемая ||) соответствующих кортежей. При этом
Степень (R S) = Степень (R) + Степень (S),
Мощность (R S) = Мощность (R) Мощность (S).
Отсюда следует, что результирующее отношение может иметь очень большие размеры. (На практике используется ограниченный вариант этой операции, называемый соединением).
Селекция (Ограничение)
Алгебра Исчисление
(а) R[A] {r : r R (r[A]}
(б) R[AB] {r : r R (r[A]r[B])}
В приведенном определении обозначает константу, а B — атрибут отношения R, отличный от А. Символ используется для обозначения одной из операций сравнения (<, , , , ,>).
Пересечение
Алгебра Исчисление
R S {t : t R t S}
Пересечение R S = R — (R — S), что соответствует области, отмеченной звездочкой на диаграмме Венна для операции разности.
Соединение
Алгебра Исчисление
R S {(r || s) : r R s S (r[A] s [B])}
Как видно из определения, операция соединения имеет сходство с декартовым произведением. Однако здесь добавлено условие, согласно которому вместо полного произведения всех строк в результирующее отношение включаются только строки, удовлетворяющие определенному соотношению между атрибутами соединения (A, В) соответствующих отношений. Имеется несколько вариантов операции соединения:
а) Тета- и эквисоединение. При этой операции А и В являются совместимыми атрибутами соединения, а степень результирующего отношения равна сумме степеней отношений-операндов. Такое соединение называется -соединением (тета-соединением). В случае сравнения на равенство соединение называется эквисоединением,
б) Естественное соединение. В этом случае атрибуты соединения имеют общие (одинаковые) домены, и после соединения один из этих атрибутов отбрасывается. Степень результирующего отношения на единицу меньше суммы степеней отношений-операндов.
в) Композиция. Это соединение отличается от естественного тем, что из результирующего отношения удаляются оба атрибута соединения. Поэтому степень результирующего отношения на две единицы меньше суммы степеней отношений-операндов.
ТЕОРИЯ НОРМАЛЬНЫХ ФОРМ
В реляционных базах данных схема содержит как структурную, так и семантическую информацию. Структурная информация связана с объявлением отношений, а семантическая выражается множеством известных функциональных зависимостей между атрибутами отношений, объявленных в схеме. Однако некоторые функциональные зависимости могут быть нежелательными из-за побочных эффектов или аномалий, которые они вызывают при модификации базы данных. В связи с этим возникает вопрос о корректности представленной схемы. Корректной считается схема, в которой отсутствуют нежелательные функциональные зависимости. В противном случае приходится прибегать к процедуре, называемой декомпозицией (разложением), при которой данное множество отношений заменяется другим множеством отношений (число их возрастает), являющихся проекциями первых. Цель этой процедуры—устранить нежелательные функциональные зависимости (а следовательно, и аномалии), что составляет суть процесса нормализации. Другими словами, нормализация — это пошаговый обратимый процесс замены данной схемы (или совокупности отношений) другой схемой, в которой отношения имеют более простую и регулярную структуру.
В теории нормальных форм определяются различные нормальные формы, которые ограничивают типы допустимых функциональных зависимостей отношения. Как уже было сказано, для приведения отношения к какой-либо нормальной форме прибегают к декомпозиции. При этом мы сталкиваемся с проблемой обратимости, т. е. возможности восстановления исходной схемы. Это означает, что декомпозиция должна сохранять эквивалентность схем при замене одной схемы на другую. Для обеспечения эквивалентности схем необходима декомпозиция, гарантирующая отсутствие потерь и сохраняющая зависимости. Декомпозиция без потерь гарантирует обратимость, т. е. получение исходного множества отношений путем применения последовательности естественных соединений над их проекциями. При этом в результирующем отношении не должны появляться ранее отсутствовавшие кортежи, являющиеся следствием ошибочного соединения. Сохранение зависимостей подразумевает выполнение исходного множества функциональных зависимостей на отношениях новой схемы.
Обеспечение отсутствия потерь и сохранения зависимостей при декомпозиции требует знания всех возможных функциональных зависимостей, имеющихся в данной схеме. Вначале известно лишь их подмножество, но можно получить все остальные, пользуясь рассмотренными выше правилами вывода функциональных зависимостей.
Атрибут, входящий в ключ, называется первичным; в противном случае он называется непервичным. Функциональная зависимость А В называется полной функциональной зависимостью, если В зависит от всей группы атрибутов А, а не от ее части (подмножества). Например, если А = А1, А2, ..., Аk и А1, А2 В, то функциональная зависимость В от A неполная.
Ниже мы рассмотрим нормальные формы от первой до пятой, включая нормальную форму Бойса — Кодда. Для обозначения нормальных форм используются сокращения 1НФ, 2НФ, 3НФ, НФБК, 4НФ, 5НФ. Первая (1НФ), вторая (2НФ) и третья (3НФ) нормальные формы ограничивают зависимость непервичных атрибутов от ключей. Нормальная форма Бойса — Кодда (НФБК) ограничивает также зависимость первичных атрибутов. Четвертая нормальная форма (4НФ) формулирует ограничения па виды многозначных зависимостей, обсуждаемых ниже. Пятая нормальная форма (5НФ) вводит другие типы зависимостей, называемых зависимостями соединения.
Уровень нормализации отношения зависит от его семантики и не может быть однозначно определен из данных, содержащихся в текущий момент в базе данных. Это означает, что семантика должна быть задана с помощью функциональных зависимостей.
Первая нормальная форма (1НФ). Отношение находится в первой нормальной форме, если значения всех его атрибутов простые (атомарные), т. е. значение атрибута не должно быть множеством или повторяющейся группой. Ненормализованному отношению соответствует многоуровневая таблица (иерархия) в отличие от однородной табличной структуры нормализованного отношения.
Пример
РЕЙСЫ (НОМЕР, ПУНКТ-ОТПРАВЛЕНИЯ, ПУНКТ-НАЗНАЧЕНИЯ, РАСПИСАНИЕ)
РАСПИСАНИЕ (ДЕНЬ, ВРЕМЯ-ВЫЛЕТА)
Пусть имеются следующие данные о рейсах:
ТW101 Чикаго Финикс пон 9.40
вт 9.40
пят 10.30
ТW800 Финикс Нью-Йорк пон 7.30
чет 7.30
пят 7.30
Для преобразования этого ненормализованного отношения в 1НФ необходимо в составном отношении РЕЙСЫ заменить отношение РАСПИСАНИЕ соответствующими атрибутами:
РЕЙС (НОМЕР, ПУНКТ„-ОТПРАВЛЕНИЯ,
ПУНКТ_НАЗНАЧЕНИЯ, ДЕНЬ,ВРЕМЯ-ВЫЛЕТА)
ТW101 Чикаго Финикс пон 9.40
ТW101 Чикаго Финикс вт 9.40
ТW101 Чикаго Финикс пят 10.30
ГW800 Финикс Нью-Йорк пон 7.30
ТW800 Финикс Нью-Йорк чет 7.30
ТW800 Финикс Нью-Йорк пят 7.30
Вторая нормальная форма (2НФ). Пусть имеется отношение ПОСТАВКИ, содержащее данные о поставщиках (идентифицируемых номером П#), поставляемых ими товарах и их ценах:
ПОСТАВКИ(П#, ТОВАР, ЦЕНА)
Предположим, что поставщик может поставлять различные товары, а один и тот же товар могут поставлять разные поставщики. Таким образом, ключ отношения (выделенный полужирным шрифтом) будет состоять из атрибутов П# и ТОВАР. Известно, что цена любого товара зафиксирована (т. е. все поставщики поставляют товар по одной и той же цене). Семантика отношения включает следующие зависимости:
П #, ТОВАР ЦЕНА (по определению ключа)
ТОВАР ЦЕНА
Можно отметить неполную функциональную зависимость атрибута ЦЕНА от ключа. Это приводит к следующим аномалиям:
Аномалия включения. Если у поставщика появляется новый товар, информация о товаре и его цене не сможет храниться, в базе данных до тех пор, пока поставщик не начнет поставлять его.
Аномалия удаления. Если поставки некоторого товара прекращаются, из базы данных придется удалить сведения о товаре и его цене, даже если он имеется в наличии у поставщиков.
Аномалия обновления. При изменении цены товара необходим полный просмотр отношения с целью найти все поставки товара, чтобы изменение цены было отражено для всех поставщиков. Таким образом, изменение значения атрибута одного объекта влечет необходимость изменений в нескольких кортежах отношения: в противном случае база данных окажется несогласованной.
Причиной этих аномалий является неполная функциональная зависимость атрибута ЦЕНА от ключа, что обусловлено объединением в отношении ПОСТАВКИ двух семантических фактов в одной структуре. Разложение отношения ПОСТАВКИ на два отношения устраняет неполную функциональную зависимость. Отношение находится во второй нормальной форме, если оно находится в 1НФ и каждый непервичный атрибут функционально полно зависит от ключа (ключей). Следующее разложение приводит к отношению в 2НФ:
ПОСТАВКИ (П#,ТОВАР)
ЦЕНА_ТОВАРА (ТОВАР, ЦЕНА)
Цену товара конкретной поставки можно определить путем соединения двух отношений по атрибуту ТОВАР. Изменение цены товара вызовет модификацию лишь одного кортежа второго отношения.
Третья нормальная форма. Рассмотрим транзитивную зависимость следующего типа:
Если A В, В A (B не является ключом) и В С, то
A С.
Пусть имеется отношение ХРАНЕНИЕ (ФИРМА, СКЛАД, ОБЪЕМ), которое содержит информацию о фирмах, получающих товары со складов, и объемах этих складов. В отношении имеются функциональные зависимости:
ФИРМА СКЛАД (фирма получает товары только с одного
склада)
СКЛАД ОБЪЕМ
Аномалии. Если на данный момент отсутствует фирма, получающая товар со склада, то в базу данных нельзя ввести информацию об объеме склада (аномалия включения). Если последняя фирма перестает получать товар со склада, данные о складе и его объеме нельзя сохранить в базе данных (аномалия удаления). Если объем склада изменяется, необходимы просмотр всего отношения и изменение кортежей для фирм, связанных со складом (аномалия обновления). Транзитивная зависимость (аналогично неполной функциональной зависимости в предыдущем примере) вызвана наличием в отношении двух семантических различных фактов.
Преобразование отношения в 3НФ устраняет рассмотренные аномалии. Отношение находится в 3НФ, если оно находится в 2НФ и в нем отсутствуют транзитивные зависимости непервичных атрибутов от ключа (ключей). Следующее разложение приводит к отношениям в 3НФ:
ХРАНЕНИЕ (ФИРМА,СКЛАД)
С_ОБЪЕМ (СКЛАД,ОБЪЕМ)
Нормальная форма Бойса — Кодда (НФБК). Пусть имеется отношение ПРОЕКТ (Д# ПР#, П#), отражающее использование в проектах деталей, поставляемых поставщиками. В проекте используется несколько деталей, но каждая деталь проекта поставляется только одним поставщиком. Каждый поставщик обслуживает только один проект, но проекты могут обеспечиваться несколькими поставщиками (разных деталей). Детали, проекты, поставщики идентифицируются соответствующими номерами Д#, ПР#, П#. В отношении присутствуют следующие функциональные зависимости:
Д#, ПР# П# по определению ключа)
П# ПР#
Рассматриваемое отношение находится в 3НФ, так как в нем отсутствуют неполные функциональные зависимости и транзитивные зависимости непервичных атрибутов от ключей; при этом, однако, наблюдаются следующие аномалии:
Аномалии, факт поставки поставщиком деталей для проекта не может быть занесен в базу данных до тех пор, пока в проекте действительно не начнут использоваться эти детали (аномалия включения). Если последний из типов деталей, поставляемых поставщиком для проекта, использован, данные о поставщике будут также удалены из базы данных (аномалия удаления). Если меняется поставщик некоторого типа деталей для проекта, необходим просмотр отношения для изменения всех кортежей, содержащих эти детали (аномалия обновления).
Разложение исходного отношения на отношения в НФБК устраняет перечисленные аномалии. Отношение находится в НФБК, если оно находится в 3НФ и в нем отсутствуют зависимости первичных атрибутов от непервичных. Эквивалентное определение требует, чтобы все детерминанты (т. е. домены функциональных зависимостей) были возможными ключами. Для этого необходимо устранить в данном отношении зависимость П# ПР#. Следующее разложение приводит к отношениям в НФБК:
ПРОЕКТ_ДЕТАЛЬ (Д#,ПР#)
ПОСТАВКИ (П#,ПР=#)
Многозначные зависимости. До сих пор речь шла лишь о функциональных зависимостях. В отношениях существуют и другие зависимости. Одним из видов зависимостей являются многозначные зависимости данного атрибута В от другого атрибута А в отношении R, содержащем и другие атрибуты. Говорят, что А многозначно определяет В в R (или что В многозначно зависит от А), обозначая указанную зависимость АВ, если каждому значению А соответствует множество (возможно, пустое) значений B, никак не связанных с другими атрибутами R. Это можно проиллюстрировать на примере отношения ПРОФЕССОР (ИД#, ДЕТИ, КУРСЫ, ДОЛЖНОСТЬ), содержащего данные о детях профессора, читаемых им курсах и его должности. Между профессором и детьми имеется связь типа 1 : М, а между профессором и курсами связь М : N, если предположить, что некоторые курсы могут читать несколько преподавателей. Пусть экстенсионал отношения имеет следующий вид:
ид# |
ДЕТИ |
курсы |
должноСТЬ |
525-111 |
Джон |
К410 |
Адьюнкт |
625-111 |
Кэт |
К412 |
Адьюнкт |
525-111 |
Джон |
К412 |
Адьюнкт |
525-111 |
Кэт |
К410 |
Адьюнкт |
340-055 |
Джек |
К410 |
Ассистент |
Если объявляется многозначная зависимость атрибутов ДЕТИ или КУРСЫ от атрибута ИД#, каждому значению атрибута ИД# должно соответствовать фиксированное множество значений атрибутов ДЕТИ или КУРСЫ соответственно. Другими словами, возможно изменение значения этих атрибутов в любой строке отношения. Замена значения атрибута КУРСЫ в кортеже <525-111 Кэт К412 Адъюнкт) даст кортеж <525-11 Кэт К410 Адъюнкт). Замена значения атрибута ДЕТИ на Джон даст кортеж <525-111 Джон К412 Адъюнкт). (Порядок замены следует порядку предшествующего утверждения.) Оба полученных кортежа уже имеются в отношении. Таким образом, другие значения кортежей никак не связаны со значениями многозначных атрибутов. Следовательно, имеет место ИД#ДЕТИ и ИД#КУРСЫ. Для наличия в отношении многозначной зависимости необходимо иметь минимум три атрибута: ключ и независимые атрибуты, которых не может быть меньше двух (чтобы быть независимыми друг от друга!).
Аксиомы (правила вывода) для многозначных зависимостей. Введение многозначных зависимостей приводит к расширению рассмотренного выше множества правил вывода. Предположим, что X, Y и Z являются атрибутами отношения R, а U обозначает множество всех атрибутов R. Двумя наиболее важными правилами для многозначных зависимостей являются следующие:
1. Дополнение. Если ХY, то ХU—Х—Y. Это правило не имеет аналога для функциональных зависимостей.
2. Транзитивность. Если ХY и YZ, то ХZ—Y. Это более ограниченный вариант транзитивности по сравнению с правилом для функциональных зависимостей.
Более полный перечень дополнительных аксиом и других форм многозначных зависимостей можно найти в работе [228]. Читатель может проверить правило дополнения на рассмотренном нами примере. Если учесть, что функциональная зависимость является многозначной, можно вывести связь между атрибутами ИД# и ДОЛЖНОСТЬ.
Четвертая нормальная форма (4НФ). Отношение находится в 4НФ, если оно находится в НФБК, но в нем отсутствуют многозначные зависимости, которые не являются функциональными. По другому определению 4НФ требуется, чтобы в отношении для любой нетривиальной многозначной зависимости, т.е. ХУ (X0 или ХU—Х—Y являются тривиальными), Х обязательно содержал ключ отношения. Следующие отношения находятся в 4НФ:
R1 (ИД#, ДЕТИ)
R2 (ИД#, КУРСЫ)
R3 (ИД#, ДОЛЖНОСТЬ)
Четвертая нормальная форма показывает, что отношение может находиться в НФБК и тем не менее могут существовать некоторые аномалии, особенно при обновлениях. Например, если у профессора появится еще один ребенок, в отношение необходимо добавить не один кортеж, а столько, сколько профессор читает курсов. (Аналогичная ситуация возникает при появлении нового курса, читаемого профессором.) Эти многочисленные модификации необходимы для сохранения независимости между всеми возможными значениями атрибутов.
Пятая нормальная форма 5НФ (проекция/соединение). Тот факт, что отношение может быть восстановлено без потерь соединением некоторых его проекций, известен как зависимость по соединению. Говорят, что отношение находится в 5НФ тогда и только тогда, когда любая зависимость по соединению в R определяется возможными ключами R (81). Другими словами, каждая проекция R содержит не менее одного возможного ключа и по крайней мере один непервичный атрибут. Различие 5НФ и 4НФ можно показать на примере. Пусть имеются отношения:
R1(П#, |
Д#, |
ОТД) |
R2(П#, |
Д#) |
R3(Д#, |
ОТД |
R4(П#, |
ОТД |
П1 |
Д1 |
А |
П1 |
Д1 |
Д1 |
А |
П1 |
А |
П1 |
Д1 |
В |
П2 |
Д1 |
Д1 |
В |
П1 |
В |
П2 |
Д1 |
А |
П2 |
Д2 |
Д2 |
А |
П2 |
А |
П2 |
Д2 |
В |
П3 |
Д1 |
Д2 |
В |
П2 |
В |
П3 |
Д1 |
А |
П3 |
Д2 |
|
|
ПЗ |
А |
П3 |
Д1 |
В |
|
|
|
|
П3 |
В |
П3 |
Д2 |
А |
|
|||||
П3 |
Д2 |
В |
|
В отношении R1 отсутствуют независимые многозначные зависимости, и оно состоит только из первичных атрибутов (является «полностью ключевым»); следовательно, оно находится в 4НФ. Отношения R2, R3 и R4 находятся в 5НФ, так как R1 удовлетворяет зависимости по соединению R2, R3 и R4. Преимущество схемы с R2, R3 и R4 над R1) состоит в том, что она устраняет избыточность, а вместе с ней аномалии обновления.