3.3.2. Неустойчивость нормальных форм отношений

Известно, что в каждом отношении можно выделить один или несколько атрибутов (доменов), называемых ключом. При этом добиваются того, чтобы значения всех остальных атрибутов зависели от ключа функционально полно [3, 13, 18].

Поиск элементов отношения, т.е. кортежей, осуществляется по ключу. Для того, чтобы можно было выбирать по ключу любой кортеж отношения, должно соблюдаться требование сюрьективности, т.е. каждый кортеж должен содержать какое-либо значение ключа.
Для того, чтобы выбор кортежа однозначно зависел от значения ключа, должно соблюдаться требование однозначности: различным кортежам отношения должны соответствовать различные значения ключа. Не вдаваясь пока в характер и особенности этих требований, а также в обоснованность самого понятия ключа, рассмотрим некоторое следствие этих требований.
Сочетание требований сюръективности и однозначности определяет постоянную зависимость атрибутов от ключа.
Обычно ключи и функциональные зависимости от них догматически постулируются при создании инфологической модели базы данных. При этом стараются избавиться от других, неключевых функциональных зависимостей. Как доказано в [1, 6], наличие таких побочных функциональных зависимостей может привести к потере информации или к несовместимости модели.
Кроме основных реляционных операций, реляционная модель снабжается операциями добавления, удаления и замены кортежа в отношении.
Эти-то операции (добавления, удаления и замены) и реализуют зависимость отношений от времени. Покажем, теперь, недостаток побочных (неполных) функциональных зависимостей.
Такое утверждение впервые сформулировано в [31] и показано на примере с доказательством следующей леммы [6].

ЛЕММА 1. Наличие неключевых функциональных зависимостей может привести к потере информации в реляционной модели базы данных или к нарушению целостности модели.

Основным следствием приведенной леммы является требование поддержания нормализованности модели минимум в БКНФ.

Там же было доказано, что третья нормальная форма вовсе не является "панацеей" для обеспечения целостности модели, как и функциональная зависимость не является инвариантом реляционной модели. Следствием этого будет разрушение третьей нормальной формы (или любой другой) и невозможность предотвращения ловушки λ-соединения, если не предпринимать меры, запрещающие нарушать нормализованность модели.

Здесь не дается доказательство приведенных утверждений, а лишь рассматриваются примеры, поясняющие их суть.

Пример 1. Рассмотрим отношение R19, представленное на рис. 74. В этом отношении имеется функциональная зависимость атрибута Страна от атрибута Фирма. В самом деле, одинаковым названиям фирм изготовителей соответствует одна страна.

Однако в современной практике частой является ситуация, когда одна и та же фирма имеет несколько производственных баз (филиалов), расположенных как в той стране, где она зарегистрирована в качестве юридического лица, так и в других странах.
Поэтому может случиться, что у фирмы-изготовителя, с именем "S1", появится филиал в стране с условным именем "Т4", где изготавливается деталь "В1".
Тогда, в таблицу R15 (рис. 70) будет добавлен соответствующий кортеж. В ней одинаковым значениям атрибута Фирма соответствуют различные значения атрибута Страна.
В этом случае в отношении R19 будет утеряна функциональная зависимость ФирмаСтрана.

Пример 2. В отношении R15, представленном на рис. 70, функциональная зависимость между атрибутами Фирма и Название детали отсутствует. Если же удалить кортеж <S1, D2, T1, B1>, то, как показано в отношении R19 (рис. 74), подобная зависимость появится.

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

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

Пример 3. В отношении R15 ключом, очевидно, является сочетание атрибутов Фирма и Филиал. Если, как в примере 1, удалить кортеж <S1, D2, T1, B1>, то появится побочная функциональная зависимость ФирмаНазвание детали. Тем самым отношение больше не находится во второй нормальной форме, а следовательно, и в третьей нормальной норме. Это отношение приведено на рис. 74.

Пример 4. Как указывалось, в таблице R15 (рис. 70) атрибуты Фирма и Филиал составляют ключ.

Если теперь, как в примере 1, добавить кортеж <S1, D2, T4, B1>, то комбинации <S1, D2> будут соответствовать два значения атрибута Страна. Полученное отношение (R17) изображено на рис. 72.

Приведенный пример показывает, что если два отношения R и S, находившееся в третьей нормальной форме, в результате λ-соединения давали истинное отношение Т, то после изменения структуры зависимостей отношения S или отношения R результат их λ-соединения может содержать ложную информацию, т.е. возникает семантическая несовместимость модели.

Пример 5. Отношения R15 и R23, представленные на рис. 70 и 76, находятся в третьей нормальной форме. В частности, в таблице R23 атрибут Название детали является ключом. Если теперь в это отношение ПОТРЕБИТЕЛЬ добавить кортеж < P2, T2, A1>, то будет получено отношение R25 (рис. 78). Но в определении ловушки соединения эта таблица была использована в качестве примера.

Действительно, отношение R15 (рис. 70) и отношение R23 (рис. 76) в результате эквисоединения порождали отношение R24 (рис. 77), а отношение R15 (рис. 70) и отношение R25 (рис. 78) в результате эквисоединения порождают отношение R26 (рис. 79). В отношении R26 кортежи: < S2, D1, T2, A1, A1, T2, P1 >,< S2, D1, T2, A1, A1, T2, P2 >,< S1, D1, T1, A1, A1, T2, P1 >,< S1, D1, T1, A1, A1, T2, P2 >

требуют дополнительной проверки на истинность.

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

В любом отношении R любой ключ K, определенный на синтаксических правилах теории нормализации, вследствие изменения правил, выраженных с помощью функциональных зависимостей, может потерять свойство однозначности, что потенциально привносит семантическую несовместимость модели.
Можно, отметить, что любое изменение в базе данных определяет переход от одной структуры функциональных зависимостей к другой структуре. Если воспользоваться этой новой структурой для нормализации базы данных, то некоторые из перечисленных проблем будут устранены.
Использование же еще более сильных нормальных форм (например, построенных на многозначных зависимостях) только усугубляет проблему. Более подробно мы остановимся на этом в следующем параграфе. Сейчас же, приведем простой пример с многозначной зависимостью, для отношения ИЗУЧАЕТ (Студент, Предмет, Преподаватель). Семантика взаимоотношений между преподавателем и дисциплиной может быть разнообразной.
Если за каждой дисциплиной закреплен только один преподаватель, то отношение ИЗУЧАЕТ разбивается на два: R1 (Студент, Предмет) и R2 (Предмет, Преподаватель).
Если каждый преподаватель преподает одну определенную дисциплину, и эта же дисциплина может обслуживаться одновременно другими преподавателями, то комбинация атрибутов {Студент, Преподаватель} является первичным ключом отношения ИЗУЧАЕТ и его следует разбить на два: R1 (Студент, Преподаватель) и R2 (Преподаватель, Предмет).
Если каждый преподаватель преподает одну определенную дисциплину, и эта же дисциплина может обслуживаться одновременно другими преподавателями, но студент изучает каждую дисциплину только у одного из возможных преподавателей этой дисциплины, то комбинация атрибутов {Студент, Предмет} также является возможным ключом отношения ИЗУЧАЕТ. В этом случае два отношения: R1 (Студент, Преподаватель) и R2 (Преподаватель, Предмет) не являются в действительности независимыми: их нельзя обновлять независмо друг от друга, иначе может нарушаться правило (зависимость) что студент изучал конкретную дисциплину только у одного преподавателя.
В этом случае теоретики реляционных баз [3, 9] рекомендуют не разлагать исходное отношение на проекции, указывая при этом, что некоторые функциональные зависимости со временем могут измениться. Например, если в настоящее время преподаватель должен обслуживать только одну дисциплину, то возникающие экономические трудности или какие-либо другие причины могут изменить эту ситуацию и по известному преподавателю уже нельзя будет однозначно определить дисциплину.

В настоящее время серьезное внимание уделяется дальнейшим преобразованиям реляционной модели [3, 6, 9, 16, 20] с целью устранения нежелательных побочных эффектов при корректировке базы данных и, следовательно, обеспечения более адекватного (без потерь и противоречий) отображения предметной области в случае ее динамического изменения.

[ Назад  Начало раздела  Далее  Содержание]