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