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НФ и БКНФ эквивалентны.


 

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

1174. Предприятие – основное звено экономики 27.5 KB
  Коммерческие и некоммерческие предприятия. Полная совместная субсидиарная имущественная ответственность всех участников предприятия.
1175. Характеристика основного капитала 90.5 KB
  Отличительной особенностью основных фондов является их многократное использование в производственном процессе, где они подолгу не изменяют своего внешнего вида.
1176. Характеристика оборотного капитала 53.5 KB
  Оборотные производственные фонды, состоящие из производственных запасов (материалы, комплектующие, тара, запчасти), незавершенного производства, расходов будущих периодов и готовой продукции. Оборотные фонды, участвующие в сфере обращения. Они называются фондами обращения (денежные средства).
1177. Организация фонда оплаты труда на предприятии 33.5 KB
  Тарифная система, которая помогает качественно измерить труд работника различной квалификации и соответственно регулировать его зарплату. Нормирование труда, которое позволяет определить норму времени на выполнение определенной работы в конкретных организационно-технических условиях. Формы и системы оплаты труда, позволяющие рассчитать з/п работников предприятия.
1178. Нормирование труда 34.5 KB
  Экологическое обоснование, под которым понимается рациональное использование фонда рабочего времени. Физиологическое обоснование, под которым понимается обоснование норм времени с точки зрения напряженности, монотонности, температуры, освещения и т.д. выполняемой работы. Социальное обоснование, под которым понимается поддержание в рабочем творческого начала с помощью материальных и моральных символов.
1179. Формы и системы оплаты труда 81 KB
  Сдельная форма оплаты труда. Сдельно-премиальная система. Повременная форма оплаты труда. Бестарифная форма заработка сотрудников предприятия.
1180. Понятие о себестоимости продукции 48 KB
  Выявление и рациональное использование внутрипроизводственных резервов предприятия. Расчет затрат на выпуск производственной программы. Расчет (калькуляция) по всей номенклатуре выпускаемой продукции.
1181. Понятие о ценообразовании 63.5 KB
  Дифференциация по структуре ценообразования. Учет всех затрат, связанных с производством и сбытом продукции. Возмещение этих затрат. Гибкость цен. Основные принципы ценообразования.
1182. Производительность труда 50 KB
  Производительность труда характеризует эффективность и результативность затрат труда. Выработка и трудоемкость продукции.