Нормализация таблиц реляционной базы данных

Содержание

Слайд 2

Понятие нормализации

Нормализация - это формальный аппарат ограничений на формирование таблиц, который позволяет

Понятие нормализации Нормализация - это формальный аппарат ограничений на формирование таблиц, который
устранить дублирование, обеспечивает непротиворечивость хранимых данных и уменьшает трудозатраты на ведение базы данных.

Слайд 3

Обеспечить быстрый доступ к данным
Исключить ненужное повторение данных, которое может являться причиной

Обеспечить быстрый доступ к данным Исключить ненужное повторение данных, которое может являться
ошибок при вводе, а также привести к нерациональному использованию дискового пространства.
Обеспечить целостность данных, т.е. чтобы при изменении одних объектов автоматически происходило соответствующее изменение связанных с ними объектов.

Цели нормализации

Окончательная цель нормализации- получение такого проекта базы данных, в котором каждый факт появляется лишь в одном месте

Слайд 4

Первая нормальная форма (First Normal Form — 1NF)
Вторая нормальная форма (Second Normal

Первая нормальная форма (First Normal Form — 1NF) Вторая нормальная форма (Second
Form — 2NF)
Третья нормальная форма (Third Normal Form — 3NF)
Нормальная форма Бойса-Кодда (Brice-Codd Normal Form – BCNF)
Четвертая нормальная форма (Fourth Normal Form - 4NF)
Пятая нормальная форма -нормальная форма проекции-соединения
(Fifth Normal Form - 5NF, или PJ/NF)

Нормальные формы таблиц

Каждая последующая форма должна отвечать требованиям предыдущей плюс некоторые дополнительные требования

Слайд 5

При описании нормальных форм используются следующие понятия:
функциональная зависимость между полями
полная

При описании нормальных форм используются следующие понятия: функциональная зависимость между полями полная
функциональная зависимость между полями
многозначная функциональная зависимость между полями
транзитивная функциональная зависимость между полями
взаимная независимость между полями

Слайд 6

Функциональной зависимостью между полями А и В называется зависимость, при которой каждому

Функциональной зависимостью между полями А и В называется зависимость, при которой каждому
значению А в любой момент времени соответствует единственное значение В из всех возможных.

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

Многозначная функциональная зависимость между полями определяется следующим образом: поле А многозначно определяет поле В, если для каждого значения поля А существует «хорошо определенное множество» соответствующих значений поля В.

Транзитивная функциональная зависимость между полями А и С существует в том случае, если поле С функционально зависит от поля В, а поле В функционально зависит от поля А, при этом не существует функциональной зависимости поля А от поля В.

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

Слайд 7

Таблица находится в первой нормальной форме тогда и только тогда, когда ни

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

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

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

Слайд 8

Определить поле, которое можно назначить первичным ключом. Если такого поля нет, то

Определить поле, которое можно назначить первичным ключом. Если такого поля нет, то
добавить уникальное ключевое поле
Определить группы повторяющихся полей
Вынести группы повторяющихся полей в отдельные таблицы, в основной таблице остается только одно поле для организации связи между таблицами
Назначить первичные ключи в новых таблицах
Определить тип отношения между таблицами

Приведение таблицы к 1НФ

Слайд 9

Пример приведения таблицы к 1НФ

Пусть дана однотабличная БД «Заказы»:

Дата заказа
ФИО клиента
Телефон клиента
Номер

Пример приведения таблицы к 1НФ Пусть дана однотабличная БД «Заказы»: Дата заказа
счета
Наименование товара
Цена товара
Фирма производитель
Адрес фирмы производителя
Количество товара
Оплата товара

Таблица не удовлетворяет
требованиям 1НФ

Не определён первичный ключ
Содержит повторяющиеся группы полей:
ФИО клиента и Телефон клиента

Слайд 10

Дата заказа
ФИО клиента
Контактный телефон
Номер счета
Наименование товара
Цена
Фирма производитель
Адрес фирмы производителя
Количество товара
Оплата

Таблица «Клиенты»
Код клиента
ФИО

Дата заказа ФИО клиента Контактный телефон Номер счета Наименование товара Цена Фирма
клиента
Контактный телефон
Номер счета

Таблица «Товары»
Код товара
Наименование товара
Цена

Таблица «Производители»
Код производителя
Фирма производитель
Адрес фирмы производителя

Таблица «Заказы»
Код заказа
Дата заказа
Количество товара
Оплата

Приведение БД к 1НФ

Слайд 11

Таблица «Заказы»
Код заказа
Дата заказа
Количество товара
Оплата
Код клиента
Код товара

Таблица «Клиенты»
Код клиента
ФИО клиента
Контактный телефон
Номер счета

Таблица

Таблица «Заказы» Код заказа Дата заказа Количество товара Оплата Код клиента Код
«Товары»
Код товара
Наименование товара
Цена
Код производителя

Таблица «Производители»
Код производителя
Фирма производитель
Адрес фирмы производителя

1

М

1

М

1

М

Определяем связи

Слайд 12

Таблица находится во второй нормальной форме, если она удовлетворяет определению 1НФ и

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

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

Для приведения таблицы к 2НФ необходимо:
Вынести все частично-зависимые поля в отдельную таблицу
Определить ключевое поле
Установить отношения между таблицами

Слайд 13

Код проекта
Название
Основная цель
Продолжительность
Код руководителя проекта
Фамилия руководителя
Телефон руководителя

Пример: таблица «Проекты»

Составной ключ
Код проекта
Код руководителя

Код проекта Название Основная цель Продолжительность Код руководителя проекта Фамилия руководителя Телефон
проекта

Есть ли в таблице частично-зависимые поля?

Название
Основная цель
Продолжительность

Код проекта

Код руководителя

Фамилия руководителя
Телефон руководителя

Слайд 14

Таблица «Проекты»

Таблица «Руководители»

Код проекта
Название
Основная цель
Продолжительность
Код руководителя

Код руководителя
Фамилия руководителя
Телефон руководителя

1

м

Таблица «Проекты» Таблица «Руководители» Код проекта Название Основная цель Продолжительность Код руководителя

Слайд 15

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

Таблица находится в третьей нормальной форме, если она

Третья нормальная форма (3НФ – 3NF) Таблица находится в третьей нормальной форме,
удовлетворяет определению 2НФ и ни один из ее атрибутов функционально независим от любого другого атрибута.

Таблица в 3НФ:
должна отвечать требованиям 2НФ
все не ключевые атрибуты взаимно независимы (нет полей, не зависящих от ключа)

Алгоритм приведения к 3НФ:
Вынести все поля, не зависящие от ключа, в отдельную таблицу
Определить ключевые поля
Установить отношения

Слайд 16

Приведение таблицы к 3НФ

Таблица «Заказы»

Код заказа
Фамилия покупателя
Дата продажи
Код менеджера
Фамилия менеджера

Таблица «Заказы»
Код заказа
Фамилия

Приведение таблицы к 3НФ Таблица «Заказы» Код заказа Фамилия покупателя Дата продажи
покупателя
Дата продажи
Код менеджера

Таблица «Менеджеры»
Код менеджера
Фамилия менеджера

1

м

Таблица не находится в 3НФ:
поле Фамилия менеджера зависит от поля Код менеджера

Имя файла: Нормализация-таблиц-реляционной-базы-данных.pptx
Количество просмотров: 42
Количество скачиваний: 0