- •Введение
- •1Нф (Первая Нормальная Форма)
- •Аномалии обновления
- •Аномалии вставки (insert)
- •Аномалии обновления (update)
- •Аномалии удаления (delete)
- •Функциональные зависимости
- •Определение функциональной зависимости
- •Функциональные зависимости отношений и математическое понятие функциональной зависимости
- •2Нф (Вторая Нормальная Форма)
- •Определение
- •Анализ декомпозированных отношений
- •Оставшиеся аномалии вставки (insert)
- •Оставшиеся аномалии обновления (update)
- •Оставшиеся аномалии удаления (delete)
- •3Нф (Третья Нормальная Форма)
- •Алгоритм нормализации (приведение к 3нф)
- •Сравнение нормализованных и ненормализованных моделей
- •Список литературы
Лекция 4. Нормализация
1.Введение 1
2.1НФ (Первая Нормальная Форма) 2
2.1Аномалии обновления 2
2.1.1.Аномалии вставки (INSERT) 3
2.1.2.Аномалии обновления (UPDATE) 3
2.1.3.Аномалии удаления (DELETE) 4
3.Функциональные зависимости 4
3.1Определение функциональной зависимости 4
3.2Функциональные зависимости отношений и математическое понятие функциональной зависимости 5
4.2НФ (Вторая Нормальная Форма) 7
4.1Определение 7
4.2Анализ декомпозированных отношений 8
4.2.1.Оставшиеся аномалии вставки (INSERT) 8
4.2.2.Оставшиеся аномалии обновления (UPDATE) 9
4.2.3.Оставшиеся аномалии удаления (DELETE) 9
5.3НФ (Третья Нормальная Форма) 9
5.1Алгоритм нормализации (приведение к 3НФ) 10
6.Сравнение нормализованных и ненормализованных моделей 12
Список литературы 12
Введение
Нормализация – это разбиение таблицы на две или более, обладающих лучшими свойствами при добавлении, изменении и удалении данных.
Окончательная цель нормализациисводится к получению такого проекта базы данных, в которомкаждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.
Пример
Рассмотрим в качестве предметной области некоторую организацию, выполняющую некоторые проекты. Модель предметной области опишем следующим неформальным текстом:
Сотрудники организации выполняют проекты.
Проекты состоят из нескольких заданий.
Каждый сотрудник может участвовать в одном или нескольких проектах, или временно не участвовать ни в каких проектах.
Над каждым проектом может работать несколько сотрудников, или временно проект может быть приостановлен, тогда над ним не работает ни один сотрудник.
Над каждым заданием в проекте работает ровно один сотрудник.
Каждый сотрудник числится в одном отделе.
Каждый сотрудник имеет телефон, находящийся в отделе сотрудника.
В ходе дополнительного уточнения того, какие данные необходимо учитывать, выяснилось следующее:
О каждом сотруднике необходимо хранить табельный номер и фамилию. Табельный номер является уникальным для каждого сотрудника.
Каждый отдел имеет уникальный номер.
Каждый проект имеет номер и наименование. Номер проекта является уникальным.
Каждая работа из проекта имеет номер, уникальный в пределах проекта. Работы в разных проектах могут иметь одинаковые номера.
1Нф (Первая Нормальная Форма)
Первая нормальная форма (1НФ) - это обычное отношение. Свойства отношений (это и будут свойства 1НФ):
В отношении нет одинаковых кортежей.
Кортежи не упорядочены.
Атрибуты не упорядочены и различаются по наименованию.
Все значения атрибутов атомарны.
В ходе логического моделирования на первом шаге предложено хранить данные в одном отношении, имеющем следующие атрибуты:
СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ (Н_СОТР, ФАМ, Н_ОТД, ТЕЛ, Н_ПРО, ПРОЕКТ, Н_ЗАДАН)
где
Н_СОТР- табельный номер сотрудника,
ФАМ - фамилия сотрудника,
Н_ОТД - номер отдела, в котором числится сотрудник,
ТЕЛ - телефон сотрудника,
Н_ПРО- номер проекта, над которым работает сотрудник,
ПРОЕКТ - наименование проекта, над которым работает сотрудник,
Н_ЗАДАН - номер задания, над которым работает сотрудник.
Т.к. каждый сотрудник в каждом проекте выполняет ровно одно задание, то в качестве потенциального ключа отношения необходимо взять пару атрибутов (Н_СОТР, Н_ПРО).
В текущий момент состояние предметной области отражается следующими фактами:
Сотрудник Иванов, работающий в 1 отделе, выполняет в первом проекте "Космос" задание 1 и во втором проекте "Климат" задание 1.
Сотрудник Петров, работающий в 1 отделе, выполняет в первом проекте "Космос" задание 2.
Сотрудник Сидоров, работающий во 2 отделе, выполняет в первом проекте "Космос" задание 3 и во втором проекте "Климат" задание 2.
Это состояние отражается в таблице 1 (курсивом выделены ключевые атрибуты):
Таблица 1. Отношение СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ
Н_СОТР |
ФАМ |
Н_ОТД |
ТЕЛ |
Н_ПРО |
ПРОЕКТ |
Н_ЗАДАН |
1 |
Иванов |
1 |
11-22-33 |
1 |
Космос |
1 |
1 |
Иванов |
1 |
11-22-33 |
2 |
Климат |
1 |
2 |
Петров |
1 |
11-22-33 |
1 |
Космос |
2 |
3 |
Сидоров |
2 |
33-22-11 |
1 |
Космос |
3 |
3 |
Сидоров |
2 |
33-22-11 |
2 |
Климат |
2 |