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

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

Реляционная база данных (SQL DB) - представляет собой набор связанных между собой, двумерных таблиц. Это определение указывает нам на то, что нам необходимо связывать таблицы своей базы данных между собой. Возникает следующий вопрос: "А как же связывать таблицы, по каким признакам?". Ответ на данных вопрос довольно таки прост, нам необходимо привести основную (не связанную таблицу) к третьей нормальной форме.

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

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

Нормальные формы

Первая нормальная форма

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

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

Вторая нормальная форма

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

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

Третья нормальная форма

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

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

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

Есть не нормализованное отношение, которое необходимо привести к третьей нормальной форме. Отношение не содержит кортежей.

Атрибут

Описание

1

Seller

Фирма — продавец товара

2

InnSeller

ИНН продавца

3

Country

Страна продавца

4

Chief

Руководитель фирмы

5

Address

Юридический адрес фирмы

6

Phone

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

7

Manager

Главный менеджер фирмы

8

PhonePlus

Телефон отдела продаж

9

Bank

Банк продавца

10

Account

Номер счета в банке

11

GoodsID

Штрих-код товара

12

Goods

Название товара

13

Picture

Фото товара

14

Category

Категория товара (кофе, печенье)

15

DateStart

Дата изготовления товара

16

Period

Срок хранения товара, дней

17

Manufacturer

Изготовитель товара

18

Unit

Единица измерения

19

CostUnit

Цена за единицу

20

Count

Количество товара

21

Client

Покупатель товара

22

InnClient

ИНН покупателя

23

Director

Руководитель фирмы-покупателя

24

PhoneDir

Телефон директора

25

Address Client

Юридический адрес фирмы

26

BankClient

Банк покупателя

27

Account Client

Номер счета в банке

28

Volume

Количество купленного товара

29

CostUnitVol

Цена за единицу

30

DateVolume

Дата покупки товара

31

Comment

Примечания

Результат

Диаграмма нормализованной таблицы

Last updated