Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование реляционных баз данных.docx
Скачиваний:
56
Добавлен:
16.03.2016
Размер:
189.97 Кб
Скачать

4.4. Вторая нормальная форма

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

Определение. Пусть – множество различных атрибутов R, . Зависимость набора атрибутовВ от набора атрибутов А (R.A R.B) называе- ся полной, если для любого набора атрибутов С, входящего в А и не принадлежа- щего В, функциональная зависимость В от С отсутствует (R.C R.B, ).

В качестве примера представлена таблица “Расписание”. Для простоты понимания здесь используются некодированные значения атрибутов Предмет и Лектор.

Предмет

Лектор

Группа

День

Время

Ауд.

Математика

Иванов И.И.

ПС-143

Понедельник

8.00

415

Физика

Петров П.П.

ПС-143

Понедельник

9.45

708

Физика

Петров П.П.

ПС-145

Понедельник

8.00

708

Математика

Иванов И.И.

ПС-145

Понедельник

9.45

415

Математика

Иванов И.И.

ПС-143

Среда

8.00

415

Физика

Петров П.П.

ПС-143

Среда

9.45

708

Физика

Петров П.П.

ПС-145

Среда

8.00

708

Математика

Иванов И.И.

ПС-145

Среда

9.45

415

Бизнес-правило: принята кабинетная система обучения, когда за предметом жестко закреплена аудитория.

В этой таблице ключевой является совокупность первых трех столбцов (выделены жирным курсивом). Однако столбец “Аудитория” зависит только от первого столбца “Предмет”. Это приводит к избыточности: сведения о том, что математика читается в 415 аудитории, а физика – в 708 присутствуют столько раз, сколько занятий проводится. Если избыточные данные необходимо скорректировать (например, изменить номер аудитории), возникают также неоправданные затраты времени.

Отрицательное влияние неполной функциональной зависимости не исчерпывается затратами ресурсов. Возникают также аномалии удаления и включения, делающие систему нединамичной. Допустим, в некоторый момент времени занятия по математике не проводятся и, следовательно, должны быть исключены из расписания. При этом потеряется информация, о том, какая аудитория закреплена за этим предметом. При отсутствии занятий нельзя также добавить сведения о том, что химия обычно читается в аудитории 322. Это объясняется тем, что значения ключевых полей каждой записи не могут быть неопределенными. Сведения о предмете и аудитории могут присутствовать только вместе со сведениями о лекторе и группе.

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

Предмет

Лектор

Группа

День

Время

Математика

Иванов И.И.

ПС-143

Понедельник

8.00

Физика

Петров П.П.

ПС-143

Понедельник

9.45

Физика

Петров П.П.

ПС-145

Понедельник

8.00

Математика

Иванов И.И.

ПС-145

Понедельник

9.45

Математика

Иванов И.И.

ПС-143

Среда

8.00

Физика

Петров П.П.

ПС-143

Среда

9.45

Физика

Петров П.П.

ПС-145

Среда

8.00

Математика

Иванов И.И.

ПС-145

Среда

9.45

Предмет

Ауд.

Математика

415

Физика

708

Следует отметить, что в данном примере неполная функциональная зависимость возникает только наличии бизнес-правила относительно кабинетной системы обучения.

Возникает вопрос: как распознать неполную функциональную зависимость, если постановщик задачи по какой-то причине не сформулировал соответствующее бизнес-правило, а проектировщик базы данных о нем не знал в силу недостаточного знакомства с предметной областью?

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

Предмет

Лектор

Группа

День

+

+

+

Время

+

+

+

Ауд.

+

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

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

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

Пусть исходное отношение “Звери в неволе” имеет вид:

Зоопарк

Животное

Зона обитания

Эйтон

Кенгуру

Австралия

Эйтон

Верблюд

Аравия

Битон

Эму

Австралия

Битон

Верблюд

Аравия

Ключ отношения не указан, т.к. в данном случае это не существенно.

Проекции на наборы атрибутов “Зоопарк, Животное” и “Животное, Зона обитания” будут иметь вид:

Зоопарк

Животное

Эйтон

Кенгуру

Эйтон

Верблюд

Битон

Эму

Битон

Верблюд

Животное

Зона обитания

Кенгуру

Австралия

Верблюд

Аравия

Эму

Австралия

Верблюд

Аравия

Операция естественного соединения по столбцу “Животное” восстановит исходное отношение.

Проекции на наборы атрибутов “Зоопарк, Зона обитания ” и “Животное, Зона обитания” будут иметь вид:

Зоопарк

Зона обитания

Эйтон

Австралия

Эйтон

Аравия

Битон

Австралия

Битон

Аравия

Животное

Зона обитания

Кенгуру

Австралия

Верблюд

Аравия

Эму

Австралия

Верблюд

Аравия

Естественное соединение проекций по зоне обитания даст следующий результат:

Зоопарк

Животное

Зона обитания

Эйтон

Кенгуру

Австралия

Эйтон

Эму

Австралия

Эйтон

Верблюд

Аравия

Битон

Кенгуру

Австралия

Битон

Эму

Австралия

Битон

Верблюд

Аравия

Налицо появление лишних кортежей, отсутствующих в исходном отношении.

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

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

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

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