17230

НОРМАЛЬНЫЕ ФОРМЫ БОЛЕЕ ВЫСОКИХ ПОРЯДКОВ

Лекция

Информатика, кибернетика и программирование

Лекция № 9 Нормальные формы более высоких порядков Для большинства практических задач вполне достаточно 3НФ чтобы проектировать вполне работоспособные БД. При приведении БД к 3НФ неявно предполагалось что все отношения содержат один потенциальный ключ. Это не

Русский

2013-06-30

69.5 KB

2 чел.

Лекция № 9

Нормальные формы более высоких порядков

Для большинства практических задач вполне достаточно 3НФ, чтобы проектировать вполне работоспособные БД.

При приведении БД к 3НФ неявно предполагалось, что все отношения содержат один потенциальный ключ. Это не всегда верно. Рассмотрим следующий пример отношения, содержащего два ключа.

Пример. Пусть требуется хранить данные о поставках деталей некоторыми поставщиками. Предположим, что наименования поставщиков являются уникальными. Кроме того, каждый поставщик имеет свой уникальный номер. Данные о поставках можно хранить в следующем отношении:

Таблица 1 Отношение "Успеваемость"

№_зк

ФИО

Предмет

Оценка

1

Иванов

Математика

4

1

Иванов

Физика

4

1

Иванов

БД

5

2

Петров

Математика

3

2

Петров

Физика

4

3

Сидоров

Математика

5

Данное отношение содержит два потенциальных ключа - {№_зк, Предмет} и {ФИО, Предмет}. Видно, что данные хранятся в отношении с избыточностью - при изменении наименования поставщика, это наименование нужно изменить во всех кортежах, где оно встречается.

Можно ли эту аномалию устранить при помощи алгоритма нормализации, описанного в предыдущей главе?

Для этого нужно выявить имеющиеся функциональные зависимости (курсивом выделим ключевые атрибуты):

№_зк  ФИО – фамилия студента зависит от номера зачетной книжки.

ФИО  №_зк - номер зачетной книжки зависит от фамилии студента.

{№_зк, Предмет}  Оценка - оценка зависит от первого потенциального ключа отношения.

{№_зк, Предмет }  ФИО – фамилия студента зависит от первого потенциального ключа отношения.

{ФИО, Предмет}  Оценка - оценка зависит от второго потенциального ключа отношения.

{ФИО, Предмет}  №_зк - номер зачетной книжки зависит от второго потенциального ключа отношения.

Данное отношение не содержит неключевых атрибутов, зависящих от части сложного ключа (см. определение 2НФ). Действительно, от части сложного ключа зависят атрибуты ФИО и №_зк, но они сами являются ключевыми. Таким образом, отношение находится в 2НФ.

Кроме того, отношение не содержит зависимых друг от друга неключевых атрибутов, так как неключевой атрибут всего один - Оценка (см. определение 3НФ). Таким образом, показано, что отношение "Успеваемость" находится в 3НФ.

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

Таблица 2 Отношение "Список" 

№_зк

ФИО

1

Иванов

2

Петров

3

Сидоров

Таблица 3 Отношение "Успеваемость-2"

№_зк

Предмет

Оценка

1

Математика

4

1

Физика

4

1

БД

5

2

Математика

3

2

Физика

4

3

Математика

5

Определение. Отношение  находится в нормальной форме Бойса-Кодда (НФБК) тогда и только тогда, когда детерминанты всех функциональных зависимостей являются потенциальными ключами.

Замечание. Если отношение находится в НФБК, то оно автоматически находится и в 3НФ. Действительно, это сразу следует из определения 3НФ.

Отношение "Успеваемость" не находится в НФБК, так как имеются зависимости (№_зк  ФИО и ФИО  №_зк), детерминанты которых не являются потенциальными ключами.

Для того чтобы устранить зависимость от детерминантов, не являющихся потенциальными ключами, необходимо провести декомпозицию, вынеся эти детерминанты и зависимые от них части в отдельное отношение. Отношения "Список" и "Успеваемость-2", полученные в результате декомпозиции находятся в НФБК.

Замечание. Приведенная декомпозиция отношения "Успеваемость" на отношения "Список" и " Успеваемость-2" не является единственно возможной. Альтернативной декомпозицией является декомпозиция на следующие отношения:

Таблица 4 Отношение "Список"

№_зк

ФИО

1

Иванов

2

Петров

3

Сидоров

Таблица 5 Отношение "Успеваемость-3"

ФИО

Предмет

Оценка

Иванов

Математика

4

Иванов

Физика

4

Иванов

БД

5

Петров

Математика

3

Петров

Физика

4

Сидоров

Математика

5

Устно. На первый взгляд, такая декомпозиция хуже, чем первая. Действительно, ФИО студентов по-прежнему повторяются, и при изменении фамилии, его придется менять одновременно в нескольких местах (тем более, сразу в двух отношениях!). Кажется, что ситуация стала еще хуже, чем была до декомпозиции. Однако такое ощущение возникает, так как интуитивно считается, что ФИО студентов могут меняться, а номера зачетных книжек - нет. Если же предположить, что номера зачетных книжек тоже могут меняться, то первая декомпозиция получается такой же "плохой" как и вторая - повторяющиеся номера придется менять одновременно в нескольких местах и также сразу в двух отношениях.

На самом деле никакого противоречия тут нет. В отношении "Успеваемость-3" атрибут "ФИО" является внешним ключом, служащим для связи с отношением "Список". Поэтому, при изменении наименования поставщика, это изменение производится в отношении "Список" и каскадно (см. методы поддержания ссылочной целостности) распространяется на отношение "Успеваемость-3" совершенно так, как изменение номера зачетной книжки каскадно распространяется на отношение "Успеваемость-2". Поэтому, формально обе декомпозиции совершенно равноправны. В реальной работе разработчик выберет, конечно, первую декомпозицию, но тут важно подчеркнуть, что его выбор основан совсем на других соображениях, не имеющих отношения к формальной теории нормальных форм.

Таким образом, эта нормальная форма вводит дополнительное ограничение по сравнению с 3НФ.

Альтернативное определение нормальной формы Бойса-Кодда:

Отношение находится в БКНФ, если оно находится в 3НФ, и в ней отсутствуют зависимости атрибутов первичного ключа от неключевых атрибутов.

Ситуация, когда отношение будет находится в 3НФ, но не в БКНФ, возникает при условии, что отношение имеет два (или более) потенциальных ключа, которые являются составными и имеют общий атрибут. Заметим, что на практике такая ситуация встречается достаточно редко, для всех прочих отношений 3НФ и БКНФ эквивалентны.


 

А также другие работы, которые могут Вас заинтересовать

21619. Организация данных на листе 433 KB
  Даны рекомендации по размещению таблиц на листах. Описаны возможные действия с листами книги и особенности их выполнения. Согласно определению список это набор строк листа содержащий однородные данные; первая строка в этом списке содержит заголовки столбцов остальные строки содержат однотипные данные в каждом столбце.
21620. Оформление таблиц в Excel 345 KB
  Для ячеек в которых установлено выравнивание по левому краю отступы задаются от левого края ячейки. Для ячеек в которых установлено выравнивание по правому краю и отступы задаются от правого края. Для выравнивания по ширине необходимо выполнить команду Формат Ячейки или щелкнуть по выделенной области правой кнопкой мыши и выполнить команду контекстного меню Формат ячеек. Во вкладке Выравнивание диалогового окна Формат ячеек рис.
21621. Печать документов Предварительный просмотр листа 442.5 KB
  К сожалению не дает достаточного представления и режим просмотра Разметка страницы. Если выделено несколько рабочих листов то при нажатии кнопки Далее по достижении последней страницы текущего листа отображается первая страница следующего выделенного листа. Если выделено несколько рабочих листов то при нажатии кнопки Назад по достижении первой страницы текущего листа отображается последняя страница предыдущего выделенного листа. Перейти из полностраничного режима просмотра в режим увеличения и обратно можно также щелкнув мышью в любой...
21622. Просмотр документов в MS Excel 487 KB
  Показаны приемы перемещения по ячейкам листа и между листами книги. Показаны возможности скрытия и отображения столбцов и строк листа одновременного просмотра различных частей листа. Указаны способы выделения фрагментов листа. Просмотр документа Изменение режима просмотра листа Для изменения режима просмотра листа используют команды меню Вид.
21623. Редактирование документов в MS Word 612.5 KB
  Показаны возможности поиска и замены текста использования синонимов. Работа с текстом Выбор языка Выбор языка текста определяет возможность автоматической проверки правописания и расстановку переносов. При вводе текста в русской раскладке устанавливается русский язык при вводе текста в английской раскладке английский США.
21624. Оформление текста документа Word 606 KB
  Описаны основные характеристики шрифта размер гарнитура цвет начертание подчеркивание и способы их установки. Основы оформления текста документа Для оформления документа используют панель инструментов Форматирование и команды меню Формат рис. Рис. Панель инструментов и меню используемые для оформления документа Установка основных параметров шрифта Шрифт Шрифт определяет внешний вид символов текста рис.
21625. Расширенные возможности оформления текста документов Word 715.5 KB
  Для оформления документа используют панели инструментов Форматирование Таблицы и границы и команды меню Формат рис. контур отображение внутренней и внешней границы каждого знака. Использование смещения символов Установка границ Обрамление абзацев и текста Для выделения частей документа оформления заголовков и в некоторых других случаях применяются различные рамки границы. При обрамлении удобно воспользоваться панелью инструментов Таблицы и границы рис.
21626. Создание списка в Word 538 KB
  Оформление нумерованных списков При оформлении нумерованных списков следует иметь в виду что элементом списка может быть только абзац. Для создания простейшего нумерованного списка надо выделить нумеруемые абзацы и нажать кнопку Нумерованный список по умолчанию панели инструментов Форматирование рис. Создание простейшего нумерованного списка Для оформления нумерованного списка выполните команду Формат Список или команду Список контекстного меню.
21627. Создание и оформление таблиц в Word 1.13 MB
  Представлены способы создания таблиц добавления и удаления столбцов и строк таблицы. Общие сведения о таблицах Таблицы в документах Microsoft Word используют большей частью для упорядочивания и представления данных. В таблицах можно производить вычисления таблицы можно использовать для создания бланков документов. Для работы с таблицами используют команды меню Таблица элементы панелей инструментов Стандартная Форматирование Таблицы и границы и Базы данных рис.