Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по базам данных / Лекция 4. Нормализация.doc
Скачиваний:
101
Добавлен:
02.05.2014
Размер:
218.62 Кб
Скачать

Лекция 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. Сотрудники организации выполняют проекты.

  2. Проекты состоят из нескольких заданий.

  3. Каждый сотрудник может участвовать в одном или нескольких проектах, или временно не участвовать ни в каких проектах.

  4. Над каждым проектом может работать несколько сотрудников, или временно проект может быть приостановлен, тогда над ним не работает ни один сотрудник.

  5. Над каждым заданием в проекте работает ровно один сотрудник.

  6. Каждый сотрудник числится в одном отделе.

  7. Каждый сотрудник имеет телефон, находящийся в отделе сотрудника.

В ходе дополнительного уточнения того, какие данные необходимо учитывать, выяснилось следующее:

  1. О каждом сотруднике необходимо хранить табельный номер и фамилию. Табельный номер является уникальным для каждого сотрудника.

  2. Каждый отдел имеет уникальный номер.

  3. Каждый проект имеет номер и наименование. Номер проекта является уникальным.

  4. Каждая работа из проекта имеет номер, уникальный в пределах проекта. Работы в разных проектах могут иметь одинаковые номера.

  1. 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