Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных.doc
Скачиваний:
114
Добавлен:
16.03.2016
Размер:
5.67 Mб
Скачать

8.3.2. Возможная декомпозиция

Для преодоления этих трудностей произведем декомпозицию переменной отношения СЛУЖна две переменных отношений –СЛУЖ1 {СЛУ_НОМ, СЛУ_УРОВ}иУРОВ {СЛУ_УРОВ, СЛУ_ЗАРП}. По теореме Хита, это снова декомпозиция без потерь по причине наличия, например, FDСЛУ_НОМСЛУ_УРОВ. Нарис. 8.5показаны диаграммы FD этих переменных отношений, а нарис. 8.6– их возможные значения.

Рис. 8.5Диаграммы FD в отношениях СЛУЖ1 и УРОВ

Как видно из рис. 8.6, это преобразование обратимо, т. е. любое допустимое значение исходной переменной отношенияСЛУЖявляется естественным соединением значений отношенийСЛУЖ1иУРОВ. Также можно заметить, что мы избавились от трудностей при выполнении операций обновления.

  • Добавление кортежей.Чтобы сохранить данные о новом разряде, достаточно добавить соответствующий кортеж к отношениюУРОВ.

  • Удаление кортежей.При увольнении последнего служащего, обладающего данным разрядом, удаляется соответствующий кортеж из отношенияСЛУЖ1, и данные о разряде сохраняются в отношенииУРОВ.

  • Модификация кортежей.При изменении размера зарплаты, соответствующей некоторому разряду, изменяется значение атрибутаСЛУ_ЗАРПровно в одном кортеже отношенияУРОВ.

8.3.3. Третья нормальная форма

Рис. 8.6.Тела отношений СЛУЖ1 и УРОВ

Трудности, которые мы испытывали, были связаны с наличием транзитивной FD СЛУ_НОМСЛУ_ЗАРП. Наличие этой FD на самом деле означало, что атрибутСЛУ_ЗАРПхарактеризовал не сущностьслужащий, а сущностьразряд.

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

Отношения СЛУЖ1иУРОВоба находятся в 3NF (все неключевые атрибуты нетранзитивно зависят от первичных ключейСЛУ_НОМиСЛУ_УРОВ). ОтношениеСЛУЖне находится в 3NF (FDСЛУ_НОМСЛУ_ЗАРПявляется транзитивной). Любое отношение, находящееся в 2NF, но не находящееся в 3NF, может быть приведено к набору отношений, находящихся в 3NF. Мы получаем набор проекций исходного отношения, естественное соединение которых воспроизводит исходное отношение (т. е. это декомпозиция без потерь). Для отношенийСЛУЖ1иУРОВисходное отношениеСЛУЖвоспроизводится их естественным соединением по общему атрибутуСЛУ_УРОВ.

Заметим, что допустимые значения отношения УРОВмогут содержать кортежи, информационное наполнение которых выходит за пределы тела отношенияСЛУЖ. Например, в теле отношенияУРОВможет находиться кортеж с данными о разряде 4, который еще не присвоен ни одному служащему. Наличие такого кортежа не влияет на результат естественного соединения, который все равно будет являться допустимым значением отношенияСЛУЖ.

8.3.4. Независимые проекции отношений. Теорема Риссанена

Обратите внимание, что для переменной отношения СЛУЖ {СЛУ_НОМ, СЛУ_УРОВ, СЛУ_ЗАРП}, кроме декомпозиции на отношенияСЛУЖ1 {СЛУ_НОМ, СЛУ_УРОВ}иУРОВ {СЛУ_УРОВ, СЛУ_ЗАРП}, возможна и декомпозиция на отношенияСЛУЖ1 {СЛУ_НОМ,

34 Очевидно, что FD называется нетранзитивной тогда и только тогда, когда она не является транзитивной.

35 В этом определении опять предполагается, что у отношения имеется только один возможный ключ.

СЛУ_УРОВ}иСЛУЖ_ЗАРП {СЛУ_НОМ, СЛУ_ЗАРП}36). Оба отношения, полученные путем второй декомпозиции, находятся в 3NF, и эта декомпозиция также является декомпозицией без потерь. Тем не менее вторая декомпозиция, в отличие от первой, не устраняет проблемы, связанные с обновлением отношенияСЛУЖ. Например, по-прежнему невозможно сохранить данные о разряде, которым не обладает ни один служащий. Посмотрим, с чем это связано.

Отношения СЛУЖ1иУРОВмогут обновляться независимо (являются независимыми проекциями), и при этом результат их естественного соединения всегда будет таким, как если бы обновлялось исходное отношениеСЛУЖ. Это происходит потому, что FD отношенияСЛУЖтрансформировались в индивидуальные ограничения первичного ключа отношенийСЛУЖ1иУРОВ. При второй декомпозиции FDСЛУ_УРОВСЛУ_ЗАРПтрансформируется в ограничение целостности сразу для двух отношений (такого рода ограничения целостности называются ограничениями базы данных, и их поддержка гораздо более накладна с технической точки зрения). Понятно, что в процессе нормализации декомпозиция отношения на независимые проекции является предпочтительной. Необходимые и достаточные условия независимости проекций отношения обеспечивает теорема Риссанена.

Теорема Риссанена

Проекции r1иr2отношенияrявляютсянезависимымитогда и только тогда, когда:

  • каждая FD в отношенииrлогически следует37)из FD вr1иr2;

  • общие атрибуты r1иr2образуют возможный ключ хотя бы для одного из этих отношений.

Мы не будем приводить доказательство этой теоремы, но продемонстрируем ее верность на примере двух показанных выше декомпозиций отношения СЛУЖ. В первой декомпозиции (на проекцииСЛУЖ1иУРОВ) общий атрибутСЛУ_УРОВявляется возможным (и первичным) ключом отношенияУРОВ, а единственная дополнительная FD отношенияСЛУЖ (СЛУ_НОМСЛУ_ЗАРП)логически следует из FDСЛУ_НОМСЛУ_УРОВиСЛУ_УРОВСЛУ_ЗАРП, выполняемых для отношенийСЛУЖ1иУРОВсоответственно. Вторая декомпозиция удовлетворяет второму условию теоремы Риссанена (СЛУ_НОМявляется первичным ключом в каждом из отношенийСЛУЖ1иСЛУ_ЗАРП), но FDСЛУ_УРОВСЛУ_ЗАРПне выводится из FDСЛУ_НОМСЛУ_УРОВиСЛУ_НОМСЛУ_ЗАРП.

Атомарным отношениемназывается отношение, которое невозможно декомпозировать на независимые проекции. Далеко не всегда для неатомарных (не являющихся атомарными) отношений требуется декомпозиция на атомарные проекции. Например, отношениеСЛУЖ2 {СЛУ_НОМ, СЛУ_ЗАРП, ПРО_НОМ}с множеством FD{СЛУ_НОМСЛУ_ЗАРП, СЛУ_НОМПРО_НОМ}не является атомарным (возможна декомпозиция на независимые проекцииСЛУЖ3 {СЛУ_НОМ, СЛУ_ЗАРП}иСЛУЖ4 {СЛУ_НОМ, ПРО_НОМ}). Но эта декомпозиция не улучшает свойства отношенияСЛУЖ2и поэтому не является осмысленной. Другими словами, при выборе способа декомпозиции нужно стремиться к получению независимых проекций, но не обязательно атомарных.

36 Теоретически возможная третья декомпозиция отношения СЛУЖ на отношения СЛУЖ2 {СЛУ_НОМ, СЛУ_ЗАРП} и УРОВ {СЛУ_УРОВ, СЛУ_ЗАРП} не является декомпозицией без потерь. Чтобы убедиться в этом, рассмотрите случай, когда для двух разных разрядов сотрудников назначен один и тот же размер зарплаты. Покажите также, что для этой декомпозиции не выполняются условия теоремы Хита.

37 Т.е. выводится на основе аксиом Армстронга.