Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник EXCEL БД SQL.doc
Скачиваний:
2
Добавлен:
26.11.2018
Размер:
2.62 Mб
Скачать

Нормализация таблиц

Нормализация таблиц – это набор правил по составлению таблиц в целях устранения избыточности данных и приведения таблицы к третьей нормальной форме (3НФ). При практической разработке БД рассматривают 3 основные формы 1НФ, 2НФ, 3НФ.

Первая нормальная форма (1НФ)

Первая нормальная форма требует, чтобы каждое поле таблицы БД отвечало следующим требованиям:

  • неделимость,

  • не содержало повторяющихся групп.

Неделимость - означает, что содержимое поля не должно делиться на более мелкие значения. Например. Рис.14, Рис.15

ФИО

Фамилия

Имя

Смирнов Петр

Смирнов

Петр

Михайлов Сергей

Михайлов

Сергей

Никольский Вадим

Никольский

Вадим

Шадрин Николай

Шадрин

Николай

Рис.14

Факультет_Кафедра

Факультет

Кафедра

ВМК Программирование

ВМК

Программирование

ММ Дискретная математика

ММ

Дискретная математика

Рис.15

Повторяющимися называются поля, содержащие одинаковые по смыслу значения. Например. Таблица – «Экзаменационная ведомость» Рис.16

Экзаменационная ведомость Экзаменационная ведомость

Фамилия

Физика

История

Фамилия

Предмет

Оценка

Смирнов

3

4

Смирнов

Физика

3

Смирнов

История

4

Рис.16.

Причиной, по которой устраняют повторяющиеся группы, является ситуация когда, например, число экзаменов изменяется: стало не два как было, а пять. Для этого необходимо менять структуру таблицы, что не всегда возможно. Поэтому поле для экзамена создают одно (Предмет), но увеличивают число записей в соответствии с количеством предметов.

Вторая нормальная форма (2НФ)

Вторая нормальная форма требует, чтобы все поля таблицы зависели от первичного ключа. Т.е первичный ключ (pk) должен однозначно определяет запись и не должен быть избыточным. Те поля, которые зависят от части первичного ключа должны быть выделены в отдельную таблицу.

Пример приведения ко второй НФ таблицы Университет Рис.17.

Факультет

Код_Фак

Факультет

Университет

ММ

МехМат

Код_Фак

Код_Каф

Факультет

Кафедра

ФФ

Физический

ММ

МА

МехМат

Мат.анализ

ВМК

Вычисл. мат

ММ

ДУ

МехМат

Диф.уравн.

ЭК

Экономический

ФФ

М

Физический

Магнетизма

ФФ

КТ

Физический

Квант.теории

Кафедра

ВМК

МА

Вычисл. Мат.

Мат.анализ

Код_Каф

Кафедра

ВМК

ДУ

Вычисл. Мат.

Диф.уравн

МА

Мат.анализ

ЭК

ЭП

Экономический

Экон.промыш.

ДУ

Диф.уравн.

ЭК

БУ

Экономический

Бух.учета

М

Магнетизма

ЭК

Н

Экономический

Народонаселения

КТ

Квант.теории

ЭП

Экон.промыш.

Рис. 17.

БУ

Бух.учета

Н

Народонаселения

Структура БД

Для того чтобы связать таблицы Факультет и Кафедра необходимо ввести дочернею (связующую) таблицу Т1 Рис.18.

Факультет Т1

Код_Фак

Факультет

Код_Фак

Код_Каф

ММ

МехМат

ММ

МА

ФФ

Физический

ММ

ДУ

ВМК

Вычисл. мат

ФФ

М

ЭК

Экономический

ФФ

КТ

Кафедра

ВМК

МА

Код_Каф

Кафедра

ВМК

ДУ

МА

Мат.анализ

ЭК

ЭП

ДУ

Диф.уравн.

ЭК

БУ

М

Магнетизма

ЭК

Н

КТ

Квант.теории

ЭП

Экон.промыш.

БУ

Бух.учета

Н

Народонаселения

Рис. 18

Внимание

Если таблица находиться в 1НФ и первичным ключом является одно поле, то таблица уже находиться во 2НФ.

Третья нормальная форма (3НФ)

Третья нормальная форма требует, чтобы в таблице не имелось зависимостей между не ключевыми полями, т.е. чтобы значение одного поля не зависело от значения другого поля.

Пример: Имеется таблица склад, в которой учитывается вид товара, количество каждого товаров, цена единицы товара, и стоимость каждого вида товара как произведения количества на цену единицы товара. Рис. 19

Поле «Стоимость» является лишним информационным звеном в таблице, так как зависит от поля «Колич.» и может быть всегда рассчитано. Поэтому устраним зависимость приведя таблицу к 3НФ Рис. 20.

Склад

Товар

Колич.

Цена за ед.

Стоимость

Товар

Колич.

Цена за ед.

Сахар

154

20

3080

Сахар

154

20

Рис

36

26

936

Рис

36

26

Масло

28

25

700

Масло

28

25

Сыр

78

34

2652

Сыр

78

34

Рис. 19. Рис. 20.

Нормализация базы данных выгодна со многих точек зрения. Далее перечислены некоторые из основных преимуществ, которые она дает:

  • Лучшая общая организация базы данных

  • Сокращение избыточности информации

  • Непротиворечивость информации внутри базы данных

  • Более гибкий проект базы данных

Примечание:

На практике не всегда возможно получить полностью нормализованную БД. Иногда к этому даже и не стремятся с силу различных особенностей построения БД: например когда число таблиц велико, то удержать в памяти всю структуру БД не позволяет возможность человеческого восприятия. Или если число повторяющихся групп известно заранее и никогда меняться не будет, по приведение таблицы к 1НФ по повторяющимся группам необязательно.