Функциональная и многозначная зависимости




Функциональная зависимость, по сути, является связью типа «многие к одному» между множествами атрибутов (столбцов) рас­сматриваемого отношения.

Например, в таблице «Учебный план» столбцы Дисциплина, Семестр и Форма отчетности функционально зависят от ключа № (порядковый номер) в учебном плане, а в таблице «Ре­зультаты сессии» столбец Оценка функционально зависит от состав­ного ключа (Студент, Учебный план).

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

Нормальные формы

Таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда в любом допустимом значении этой таблицы ка­ждая ее строка содержит только одно значение для каждого атрибу­та (столбца).

Из таблиц, рассмотренных ранее, не удовлетворяет этим требо­ваниям (т. е. не находится в 1НФ) только таблица на рис.13.

Таблица находится во второй нормальной форме (2НФ), если она удовлетворяет определению 1НФ и все ее атрибуты (столбцы), не входящие в первичный ключ, связаны полной функциональной за­висимостью с первичным ключом.

Не удовлетворяют этим требованиям таблицы, представленные на рис. 13 и на рис. 14. Таблица 14 имеет составной первичный ключ (ФИО студента, Семестр, Дисциплина, Форма отчетности) и содержит множество неключевых атрибутов (Оценка, Количество ча­сов, ФИО преподавателя), зависящих лишь от той или иной части первичного ключа. Так, атрибуты Количество часов и ФИО препода­вателя зависят только от атрибутов Семестр, Дисциплина, Форма от­четности. Следовательно, эти атрибуты не связаны с первичным ключом полной функциональной зависимостью.

Ко второй нормальной форме приведены все таблицы рис. 15.

Таблица находится в третьей нормальной форме (ЗНФ), если она удовлетворяет определению 2НФ и ни один из ее неключевых атри­бутов не связан функциональной зависимостью с любым другим не­ключевым атрибутом.

Таблица «Учебный план» (рис. 15), очевидно, не находилась бы в третьей нормальной форме, если включала бы в себя столбец Должность преподавателя. В этом случае необходимо было бы про­вести декомпозицию таблицы «Учебный план» и в результате полу­чить дополнительную таблицу «Кадровый состав» с атрибутами: №, ФИО преподавателя, Должность преподавателя.

Следует отметить, что в таблице «Учебный план» на самом деле существует функциональная зависимость между атрибутами Количе­ство часов и ФИО преподавателя, с одной стороны, и совокупно­стью атрибутов Семестр, Дисциплина и Форма отчетности — с дру­гой. Однако тройка атрибутов {Семестр, Дисциплина и Форма от­четности) в свою очередь может выступать в качестве первичного ключа, который представлен в таблице атрибутом Порядковый номер. Чтобы избегать в процессе нормализации подобных противоречий, Кодд и Бойс обосновали и предложили более строгое определение для ЗНФ, которое учитывает, что в таблице может быть несколько первичных ключей.

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

В соответствии с этой формулировкой таблица «Учебный план» находится в НФБК или в ЗНФ.

В следующих нормальных формах (4НФ и 5НФ) учитываются не только функциональные, но и многозначные зависимости между атрибутами. Для того чтобы привести определения этих нормальных форм, введем понятие полной декомпозиции таблицы.

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

Таблица находится в пятой нормальной форме (ЗНФ) тогда и только тогда, когда в каждой ее полной декомпозиции все проекции содержат возможный ключ. Таблица, не имеющая ни одной полной декомпозиции, также находится в 5НФ.

Четвертая нормальная форма (4НФ) является частным случаем 5НФ, когда полная декомпозиция должна быть соединением ровно двух проекций. На практике непросто подобрать реальную таблицу, которая находилась бы в 4НФ, но не была бы в 5НФ.

Процедура нормализации

В соответствии с определениями нормальных форм можно дать и другое определение нормализации: нормализация — это процесс по­следовательной замены таблицы ее полными декомпозициями до тех пор, пока все они не будут находиться в 5НФ. Однако оказыва­ется, что достаточно привести таблицы к НФБК и с большой гаран­тией считать, что они находятся в 5НФ (это утверждение нуждается в проверке, но пока не существует эффективного алгоритма такой проверки).

Рассмотрим процедуру приведения таблиц к НФБК.

Такая процедура основывается на том, что единственными функциональными зависимостями в любой таблице должны быть зависимости вида А"К, где К — первичный ключ, а А — некото­рый атрибут. Принцип «один факт в одном месте» говорит о том, что не должно существовать в рамках таблицы никаких других функциональных зависимостей. Цель нормализации и состоит в удалении этих «других» функциональных зависимостей. Рассмотрим два возможных случая.

1. Таблица имеет составной первичный ключ вида, скажем, (К1, К2), и включает также атрибут А, который функционально зависит от части этого ключа (например, от К2), но не от полного ключа. В этом случае рекомендуется сформировать другую таблицу, содер­жащую атрибуты К2 и А (первичный ключ — К2), и удалить атрибут А из первоначальной таблицы:

2. Таблица имеет первичный (возможный) ключ К, атрибут А1, который не является возможным ключом, но функционально зави­сит от К, и другой неключевой атрибут А2, который функционально зависит от А1. Решение здесь, по существу, то же самое, что и преж­де — формируется другая таблица, содержащая атрибуты А1 и А2, с первичным ключом А1, а атрибут А2 удаляется из первоначальной таблицы.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-06-06 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: