Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технологии БД / Методичка Технологии БД (блоки 1-2).doc
Скачиваний:
82
Добавлен:
01.05.2014
Размер:
922.11 Кб
Скачать
      1. Необходимость дальнейшей нормализации

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

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

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

      1. Многозначные зависимости и четвертая нормальная форма

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

Рис. 22. Возможное значение переменной отношения СЛУЖ_ПРО_ЗАДАН (четвертый вариант)

Аномалии обновлений при наличии многозначных зависимостей и возможная декомпозиция

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

IF (<сн, пн1, сз1> ТСПЗ AND <сн, пн2, сз2> ТСПЗ)

THEN (<сн, пн1, сз2> ТСПЗ AND <сн, пн2, сз1> ТСПЗ)

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

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

  • Удаление кортежей.Если сотрудник прекращает участие в проектах, то отсутствует возможность сохранить данные о заданиях, которые он может выполнять.

  • Модификация кортежей.При изменении одного из заданий сотрудника необходимо изменить значение атрибутаСЛУ_ЗАДАНв стольких кортежах, в скольких проектах участвует сотрудник.

Трудности, связанные с обновлением переменной отношения СЛУЖ_ПРО_ЗАДАН, решаются путем его декомпозиции на две переменных отношений:СЛУЖ_ПРО_НОМ {СЛУ_НОМ, ПРО_НОМ}иСЛУЖ_ЗАДАНИЕ {СЛУ_НОМ, СЛУ_ЗАДАН}. Значения этих переменных отношений, соответствующие значению переменной отношенияСЛУЖ_ПРО_ЗАДАНс Рис. 22, показаны на Рис. 23.

Легко видеть, что декомпозиция, представленная на Рис. 23, является декомпозицией без потерь и что эта декомпозиция решает перечисленные выше проблемы с обновлением переменной отношения СЛУЖ_ПРО_ЗАДАН.

Рис. 23. Значения переменных отношений СЛУЖ_ПРО_НОМ и СЛУЖ_ЗАДАНИЕ

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

  • Удаление кортежей.Если сотрудник прекращает участие в проектах, то данные о заданиях, которые он может выполнять, остаются в отношенииСЛУЖ_ЗАДАНИЕ.

  • Модификация кортежей.При изменении одного из заданий сотрудника необходимо изменить значение атрибутаСЛУ_ЗАДАНв одном кортеже отношенияСЛУЖ_ЗАДАНИЕ.