Важность нормализации состоит в том, что она позволяет разбить большие отношения, как правило, содержащие большую избыточность информации, на более мелкие логические единицы, группирующие только данные, объединенные "по природе".
Относительно таблиц нормализация - это разбиение таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта БД, в котором каждый факт появляется лишь в одном месте, т. е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.
После применения правил нормализации логические группы данных располагаются не более чем в одной таблице. Это дает следующие преимущества:
- данные легко обновлять или удалять;
- исключается возможность рассогласования копий данных;
- уменьшается возможность введения некорректных данных.
2. Функциональная и многозначная зависимости
Теория нормализации основывается на наличии той или иной зависимости между столбцами таблицы. Зависимости бывают функциональные и многозначные.
Функциональная зависимость (functional dependency) является связью типа «многие – к – одному» между множествами атрибутов рассматриваемого отношения. Функциональная зависимость является смысловым (или семантическим) свойством атрибутов отношения. Семантика отношения указывает, как его атрибуты могут быть связаны друг с другом, а также определяет функциональные зависимости между атрибутами в виде ограничений, наложенных на некоторые атрибуты.
Например, в таблице «УЧЕБНЫЙ ПЛАН» столбцы ДИСЦИПЛИНА, СЕМЕСТР и ФОРМА ОТЧЕТНОСТИ функционально зависят от ключа № (порядковый номер) в учебном плане, а в таблице «РЕЗУЛЬТАТЫ СЕССИИ» столбец ОЦЕНКА функционально зависит от составного ключа (СТУДЕНТ, УЧЕБНЫЙ ПЛАН).
Многозначная зависимость. Один атрибут таблицы многозначно определяет другой атрибут той же таблицы, если для каждого значения первого атрибута существует хорошо определенное множество соответствующих значений второго атрибута.
Рассмотрим таблицу «ПРИЕМ ЭКЗАМЕНОВ»:
Дисциплина | Преподаватель | Форма отчетности |
Математический анализ | экзамен | |
Математический анализ | экзамен | |
Математический анализ | экзамен | |
Математический анализ | зачет | |
Математический анализ | зачет | |
Математический анализ | зачет |
Таблица отражает связь ДИСЦИПЛИНЫ и ФОРМЫ ОТЧЕТНОСТИ с ФАМИЛИЕЙ ПРЕПОДАВАТЕЛЯ. В этой таблице существует многозначная зависимость «ДИСЦИПЛИНА – ПРЕПОДАВАТЕЛЬ»: дисциплину МАТЕМАТИЧЕСКИЙ АНАЛИЗ ведут несколько преподавателей, и все они могут участвовать в приеме экзаменов и зачетов. Вторая многозначная зависимость «ДИСЦИПЛИНА – ФОРМА ОТЧЕТНОСТИ»: по одной и той же дисциплине могут проводиться и экзамен, и зачет. При этом ФОРМА ОТЧЕТНОСТИ и ПРЕПОДАВАТЕЛЬ не связаны функциональной зависимостью, что приводит к появлению избыточности.
3. Процесс нормализации
Процесс нормализации заключается в приведении таблиц в нормальные формы. Нормальными формами называются теоретические правила, которым отвечает структура отношения. С возрастанием порядкового номера нормальной формы набор правил постоянно усложняется. В теории, чем выше номер нормальной формы, тем лучше структура отношения. Если отношение соответствует одной из высоких нормальных форм, оно также соответствует всем более низким нормальным формам. Существует 5 видов нормальных форм:
- первая нормальная форма (1НФ) - удаление повторяющихся групп данных;
- вторая нормальная форма (2НФ) - удаление атрибутов, зависящих от части первичного ключа;
- третья нормальная форма (3НФ) - удаление атрибутов, не зависящих от первичного ключа;
- четвертая нормальная форма (4НФ) - изоляция независимых множественных отношений;
- пятая нормальная форма (5НФ) - изоляция семантически связанных множественных отношений.
С практической точки зрения, достаточно трех первых форм - следует учитывать время, необходимое системе для "соединения" таблиц при отображении их на экране. 3НФ является окончательной, если имеют место зависимости 1:1 и 1:М. Для отношений М:М процедура продолжается путем построения 4НФ и 5НФ. Поэтому мы ограничимся изучением процесса приведения отношений к первым трем формам.
Приведение к первой нормальной форме
Когда поле в данной записи содержит более одного значения для каждого вхождения первичного ключа, такие группы данных называются повторяющимися группами. 1НФ не допускает наличия таких многозначных полей.
Иными словами, таблица находится в 1НФ тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пусто.
Не находится в 1НФ таблица «Сессия». Мы ее привели к 1НФ с помощью процесса вставки и получили универсальное отношение «Сессия». Для этого универсального отношения в качестве первичного ключа можно выбрать совокупность полей: ФИО Студента, Дисциплина, Семестр, Форма отчетности, т. е. первичный ключ является составным.
Приведение ко второй нормальной форме
2НФ применяется к отношениям с составными ключами.
Таблица находится во 2НФ, если она удовлетворяет определению 1НФ и все ее поля, не входящие в первичный ключ, связаны полной функциональной зависимостью с первичным ключом.
Таким образом, следующий важный шаг в процессе нормализации состоит в удалении всех неключевых атрибутов, которые зависят только от части первичного ключа. Такие атрибуты называются частично зависимыми. Неключевые атрибуты заключают в себе информацию о данной сущности предметной области, но не идентифицируют ее уникальным образом.
Универсальное отношение «Сессия» не удовлетворяет требованиям 2НФ. Эта таблица имеет составной первичный ключ (ФИО СТУДЕНТА, СЕМЕСТР, ДИСЦИПЛИНА, ФОРМА ОТЧЕТНОСТИ) и содержит множество неключевых атрибутов (ОЦЕНКА, КОЛИЧЕСТВО ЧАСОВ, ФИО ПРЕПОДАВАТЕЛЯ), зависящих лишь от той или иной части первичного ключа. Например, атрибуты КОЛИЧЕСТВО ЧАСОВ и ФИО ПРЕПОДАВАТЕЛЯ зависят только от атрибутов СЕМЕСТР, ДИСЦИПЛИНА, ФОРМА ОТЧЕТНОСТИ. Следовательно, эти атрибуты не связаны с первичным ключом полной функциональной зависимостью.
Ко 2НФ приведены все разделенные таблицы.
Приведение к третьей нормальной форме
Таблица находится в третьей нормальной форме (3НФ), если она удовлетворяет определению 2НФ и не одно из ее неключевых полей не зависит функционально от любого другого неключевого поля.
Таким образом, третий этап процесса приведения таблиц к нормальной форме состоит в удалении всех неключевых атрибутов, которые зависят от других неключевых атрибутов. Каждый неключевой атрибут должен быть логически связан с атрибутом (атрибутами), являющимся первичным ключом.
Таблица «УЧЕБНЫЙ ПЛАН» не находится в 3НФ. Для приведения ее к 3НФ необходимо разбить таблицу на две: «УЧЕБНЫЙ ПЛАН» и «КАДРОВЫЙ СОСТАВ»:
Учебный план | |||||
№ | Дисциплина | Семестр | Количество часов | Форма отчетности | Преподаватель |
1 | 2 | 1 | 60 | зачет | 8 |
1 | 3 | 1 | 24 | зачет | 1 |
1 | 3 | 1 | 28 | экзамен | 1 |
1 | 4 | 1 | 28 | зачет | 6 |
1 | 4 | 1 | 32 | экзамен | 5 |
1 | 6 | 1 | 36 | зачет | 4 |
1 | 6 | 1 | 32 | экзамен | 2 |
1 | 2 | 3 | 60 | зачет | 8 |
1 | 4 | 3 | 20 | зачет | 3 |
1 | 4 | 3 | 28 | экзамен | 5 |
1 | 1 | 3 | 32 | экзамен | 2 |
1 | 7 | 3 | 32 | экзамен | 7 |
1 | 5 | 3 | 36 | зачет | 4 |
1 | 5 | 3 | 32 | экзамен | 4 |
Кадровый состав |
| |
| ||
№ | ФИО преподавателя | Должность |
1. | Ст. преп. | |
2. | Ассистент | |
3. | Преп. | |
4. | Профессор | |
5. | Ст. преп. | |
6. | Преп. | |
7. | Доцент | |
8. | Доцент |
В таблице «УЧЕБНЫЙ ПЛАН» существует функциональная зависимость между атрибутами КОЛИЧЕСТВО ЧАСОВ и ФИО ПРЕПОДАВАТЕЛЯ, с одной стороны, и совокупностью атрибутов СЕМЕСТР, ДИСЦИПЛИНА и ФОРМА ОТЧЕТНОСТИ – с другой. Эта тройка атрибутов может выступать в качестве первичного ключа, который представлен в таблице атрибутом ПОРЯДКОВЫЙ НОМЕР.
Нормальная форма Бойса – Кодда (НФБК)
Теоретики реляционных систем Кодд и Бойс обосновали и предложили более строгое определение для 3НФ, которое учитывает, что в таблице может быть несколько потенциальных первичных ключей.
Таблица находится в нормальной форме Бойса-Кодда (НФБК), если любая функциональная зависимость между его полями сводится к полной функциональной зависимости от потенциального первичного ключа.
В соответствии с этой формулировкой таблица «УЧЕБНЫЙ ПЛАН» находится в НФКБ или в 3НФ.
Вопросы для самоконтроля
1. Дайте определение нормализации. Для чего ее необходимо проводить?
2. Что такое универсальное отношение? Расскажите о проблемах использования универсального отношения.
3. Дайте определения функциональной и многозначной зависимостей.
4. Сколько существует видов нормальных форм? К какой нормальной форме мы стремимся на практике при проектировании базы данных?
5. Дайте определения первой, второй и третьей нормальных форм. Приведите примеры таблиц, находящихся в первой, второй и третьей нормальных формах.
6. Дайте определение нормальной формы Бойса-Кодда. Для чего она нужна?
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 |



