Нормализация
Нормализация реляционной базы данных
Реляционная база данных (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