
К9-12В. Вопросы и ответы к ГОСам 2013 / Базы данных / 03. Проектирование баз данных с использованием теории нормализации. 1НФ и 2НФ. Примеры аномалий возникающих при нарушени
.docx3. Проектирование баз данных с использованием теории нормализации. 1НФ и 2НФ. Примеры аномалий возникающих при нарушении. Примеры приведения схем к 1НФ и 2НФ.
Нормальная форма — свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, потенциально приводящей к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.
Процесс преобразования отношений базы данных (БД) к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных. В одних случая нормализация увеличивает производительность, в других — уменьшает; объём же базы данных при нормализации как правило уменьшается. Улучшение целостности БД.
Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации. Как отмечает К. Дейт, общее назначение процесса нормализации заключается в следующем:
- исключение некоторых типов избыточности;
- устранение некоторых аномалий обновления;
- разработка проекта базы данных, который является достаточно «качественным» представлением реального мира, интуитивно понятен и может служить хорошей основой для последующего расширения;
- упрощение процедуры применения необходимых ограничений целостности.
Устранение избыточности производится, как правило, за счёт декомпозиции отношений таким образом, чтобы в каждом отношении хранились только первичные факты (то есть факты, не выводимые из других хранимых фактов).
Первая нормальная форма
E. Codd:
Отношение находится в первой нормальной форме если все его атрибуты являются семантически атомарными (простыми, неделимыми). Атрибут атомарен, если его значение теряет смысл при любом разбиении на части или переупорядочивании. Следовательно, если какой-либо способ разбиения на части не лишает атрибут смысла, то атрибут неатомарен.
C. Date:
Отношение находится в первой нормальной форме если оно соответствует следующим условиям:
1) Строки отношения неупорядоченны.
2) Столбцы отношения неупорядочены.
3) Все строки уникальны.
4) Каждая ячейка содержит одно семантически атомарное значение из заданого домена.
Основное различие: Определение Дейта запрещает ячейки с NULL значениями.
Пример №1
Например, было составлено следующее отношение:
Сотрудник (Фамилия, Должность, Домашний адрес)
Однако в постановке задачи было задано требование: домашний адрес сотрудника должен быть представлен в виде следующих информационных единиц: город, улица, дом, квартира. Исходя из этого, приведенное отношение не находится в 1НФ, так как его атрибут "Домашний адрес" не является атомарным. Преобразуем исходное отношение к виду:
Сотрудник1 (Фамилия, Должность, Город, Улица, Дом, Квартира)
Теперь в соответствии с семантикой выполняется условие первой нормальной формы. Следовательно, новое отношение находится в 1НФ.
Пример №2: два телефона в одной ячейке – надо разбить на две записи.
Вторая нормальная форма
Отношение находится во второй нормальной форме если оно находится в первой нормальной форме и отсутствуют функциональные зависимости не ключевых атрибутов от части составного потенциального ключа.
Отношение находится в 2НФ тогда и только тогда, когда оно находится в 1НФ, и каждый его не ключевой атрибут функционально полно зависит от любого возможного ключа этого отношения (в составе потенциального ключа отсутствует меньшее подмножество атрибутов, от которого можно также вывести данную функциональную зависимость).
Если потенциальный ключ является простым, то есть состоит из единственного атрибута, то любая функциональная зависимость от него является неприводимой (полной). Если потенциальный ключ является составным, то согласно определению второй нормальной формы в отношении не должно быть не ключевых атрибутов, зависящих от части составного потенциального ключа.
Вторая нормальная форма по определению запрещает наличие не ключевых атрибутов, которые вообще не зависят от потенциального ключа. Таким образом, вторая нормальная форма запрещает создавать отношения как несвязанные (хаотические, случайные) наборы атрибутов.
Пример №1
Сотрудник Должность Зарплата Наличие компьютера
Наличие компьютера зависит только от должности, то есть зависимость от первичного ключа неполная.
В результате приведения к 2NF получаются два отношения:
Сотрудник Должность Зарплата
Должность Наличие компьютера
Пример №2
№ сотрудника ФИО № отдела Телефон № проекта Название проекта Функции
Функциональные зависимости, нарушающие вторую нормальную форму :
№ Сотрудника → ФИО, № Проекта→ Название
Проблемы, возникающие при работе с текущим отношением:
Дублирование информации о сотрудника, отделах и проектах.
Аномалии вставки (INSERT):
Нельзя вставить нового сотрудника, пока он не назначен на проект.
Аномалии обновления (UPDATE):
При необходимости изменить название проекта, необходимо изменить его во всех местах где он встречается.
Аномалии удаления (DELETE):
При удалении информации о проекте удалится информация о сотрудниках участвующих только в этом проекте. Аналогичная проблема возникает при удалении сотрудников, выполняющих определенный проект целиком.
Преобразуем в:
№ проекта Название
№ сотрудника ФИО № отдела Телефон
№ сотрудника № проекта Должность