Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
54
Добавлен:
10.02.2015
Размер:
2.04 Mб
Скачать

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

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

Рассмотрим, например, отношение

СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ (СОТР_НОМЕР, ОТД_НОМЕР, ПРО_НОМЕР)

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

СОТР_НОМЕР

ОТД_НОМЕР

ПРО_НОМЕР

1

1

1

1

1

2

2

2

1

2

2

2

Поэтому отношение находится в 4NF. Однако в нем могут существовать аномалии, которые можно устранить путем декомпозиции в три отношения.

До сих пор мы предполагали, что единственной операцией, необходимой для устранения избыточности в отношении, была декомпозиция его на две проекции. Однако, существуют отношения, для которых нельзя выполнить декомпозицию без потерь на две проекции, но которые можно подвергнуть декомпозиции без потерь на три (или более) проекций. Этот факт получил название зависимости по соединению, а такие отношения называют 3-декомпозируемые отношения (ясно, что любое отношение можно назвать "n-декомпозируемым", где n >= 2).

Определение 12. Зависимость соединения

Отношение R (X, Y, ..., Z) удовлетворяет зависимости соединения * (X, Y, ..., Z) в том и только в том случае, когда R восстанавливается без потерь путем соединения своих проекций на X, Y, ..., Z.

Определение 13. Пятая нормальная форма

Отношение R находится в пятой нормальной форме (нормальной форме проекции-соединения - PJ/NF) в том и только в том случае, когда любая зависимость соединения в R следует из существования некоторого возможного ключа в R.

Введем следующие имена составных атрибутов:

СО = {СОТР_НОМЕР, ОТД_НОМЕР}

СП = {СОТР_НОМЕР, ПРО_НОМЕР}

ОП = {ОТД_НОМЕР, ПРО_НОМЕР}

Предположим, что в отношении СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ существует зависимость соединения:

* (СО, СП, ОП)

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

СОТРУДНИКИ-ОТДЕЛЫ (СОТР_НОМЕР, ОТД_НОМЕР)

СОТРУДНИКИ-ПРОЕКТЫ (СОТР_НОМЕР, ПРО_НОМЕР)

ОТДЕЛЫ-ПРОЕКТЫ (ОТД_НОМЕР, ПРО_НОМЕР)

Пятая нормальная форма - это последняя нормальная форма, которую можно получить путем декомпозиции. Ее условия достаточно нетривиальны, и на практике 5NF не используется. Заметим, что зависимость соединения является обобщением как многозначной зависимости, так и функциональной зависимости.

7.2.6. Функциональные зависимости и проектирование базы данных.

  • Пусть имеется некий предварительный проект БД. Сначала сведем многотабличную БД к универсальной таблице. Определение FD -зависимостей дано для одной таблицы, но зависимости имеются и межтабличные.

  • Пусть зафиксировано множество F функциональных зависимостей. Построим его замыкание F. В явном виде F может и не содержать «плохих» зависимостей. Но аномалии могут быть, если «плохие» зависимости выводимы из F.

  • Устраняем

  • зависимости от части возможных ключей, т.е. приводим БД ко 2-й нормальной форме,

  • транзитивные зависимости, т.е. приводим БД к 3-й нормальной форме.

  • Приведение 3-й нормальной форме не гарантирует устранения всех аномалий.

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

  • Известны и изучены зависимости более общего вида, нефункциональные.

  • Аномалии не следует трактовать как ошибки или парадоксы. Скорее это проявление объективно существующих проблем представления предметной области. Устранение аномалий тоже не следует понимать как полное устранение проблем. Скорее это перегруппировка проблем, «перевод их в другую плоскость».

В целом, принято считать хорошим правилом проектирования базы данных:

  • Сначала проанализировать имеющиеся проблемы, для этого привести БД к достаточно сильной нормальной форме.

На сегодняшний день имеются CASE-средства, которые по заданному описанию БД и базовому набору зависимостей автоматически строят описание соответствующей БД, приведенной к затребованной нормальной форме.

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

Поэтому вполне возможно, что будет принято решение о частичной денормализации ранее полученного представления базы данных.

Как было отмечено выше, зависимости между атрибутами фиксируют семантику предметной области.

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

ОСНОВНАЯ ЛИТЕРАТУРА

  1. Гарсиа-Молина Г., Ульман Д., Уидом Д. Системы баз данных. - М.:Вильямс,2003. - 1088 с.

  2. Дейт К.. Введение в системы баз данных. - М.: Вильямс, 2001. - 1072 с.

  3. Грабер М. М. SQL. Справочное руководство. - М.: Лори, 1998. - 292 с.; 2001. - 354 с.

  4. Ульман Д.Д. Введение в системы баз данных. - М.: «Лори», 2000. - 374 с.

  5. Гpей П. Логика, алгебpа и базы данных. - М.: Машиностpоение, 1989. - 368 с.

  6. Цикpитзис Д. и дp. Модели данных. - М.: Финансы и статистика, 1985. - 344 с.

  7. Дейт К. Руководство по pеляционной СУБД DB2. - М.:Финансы и статистика,1988. - 320с.

  8. Маpка Д. и дp. Методология стpуктуpного анализа и пpоектиpования. -М.: МетаТехнология, 1993. - 240 с.

  9. Калянов Г.H. CASE: стpуктуpный системный анализ. - М.: ЛОРИ, 1996. - 242 с.

  10. Цаленко М.Ш. Моделиpование семантики в базах данных. - М.: Hаука. Гл. pед. физ.-мат. лит., 1989. - 288 с.

  11. Мейер Д. Теория реляционных баз данных. - М.:Мир, 1987. - 608 с.

  12. Ребекка Райордан Основы реляционных баз данных MicroSoft Press, Москва, 2001. - 390с.

Соседние файлы в папке Bazy_dannykh_1_kurs_2_semestr_2011-2012