
- •Нормализация баз данных
- •Происхождение и назначение нормальных форм
- •Типы нормальных форм
- •Первая нормальная форма (1nf)
- •Вторая нормальная форма (2nf)
- •Третья нормальная форма (3nf)
- •Нормальная форма Бойса—Кодда (bcnf)
- •Четвёртая нормальная форма (4nf)
- •Пятая нормальная форма (5nf)
- •Доменно-ключевая нормальная форма (dknf)
- •Шестая нормальная форма (6nf)
- •] Определение
- •Атомарность атрибутов
- •Исходное назначение 1nf
- •Определение
- •Определение
- •Определение
- •Пример 1
- •Пример 2
- •Определение
- •Определение
- •Определение
- •Определение
Атомарность атрибутов
Вопрос об атомарности атрибутов решается на основе семантики данных, то есть их смыслового значения. Атрибут атомарен, если его значение теряет смысл при любом разбиении на части или переупорядочивании. И наоборот, если какой-либо способ разбиения на части не лишает атрибут смысла, то атрибут неатомарен.
Одно и то же значение может быть атомарным или неатомарным в зависимости от смысла этого значения. Например, значение «4286» является
атомарным, если его смысл — «пин-код кредитной карты» (при разбиении на части или переупорядочивании смысл теряется)
неатомарным, если его смысл — «четные цифры» (при разбиении на части или переупорядочивании смысл не теряется)
Хорошим способом принятия решения о необходимости разбиения атрибута на части является вопрос: «будут ли части атрибута использоваться по отдельности?». Если да, то атрибут следует разделить (но так, чтобы сохранились осмысленные части атрибута). Далее необходимо снова задаться тем же вопросом для новой структуры и так до тех пор, пока не останется атрибутов, допускающих разбиение.
Примеры неатомарного атрибута, часто встречающиеся на практике: составные поля в виде строки идентификаторов, разделённых, скажем, запятыми: 100,32,168,1045
Исходное назначение 1nf
Исходное назначение 1NF, которую предложил Кодд в статье "A Relational Model of Data for Large Shared Data Banks", вообще не было связано с борьбой с аномалиями или избыточностью. Кодд предложил использовать "простые домены" (simple domains) только для облегчения будущей программной реализации, а именно:
для облегчения хранения отношений в виде двумерных массивов;
для облегчения передачи данных в гетерогенных системах
Вторая нормальная форма (2NF) — одна из возможных нормальных форм таблицы реляционной базы данных.
Определение
Таблица находится во второй нормальной форме, если она находится в первой нормальной форме, и при этом любой её атрибут, не входящий в состав первичного ключа, функционально полно зависит от первичного ключа. Функционально полная зависимость означает, что атрибут функционально зависит от всего первичного составного ключа, но при этом не находится в функциональной зависимости от какой-либо из входящих в него атрибутов (частей). Или другими словами: в 2NF нет неключевых атрибутов, зависящих от части составного ключа (+ выполняются условия 1NF).
Пример
Пример приведения таблицы ко второй нормальной форме
Пусть Начальник и Должность вместе образуют первичный ключ в такой таблице:
Начальник |
Должность |
Зарплата |
Наличие компьютера |
Гришин |
Кладовщик |
20000 |
Нет |
Васильев |
Программист |
40000 |
Есть |
Васильев |
Кладовщик |
25000 |
Нет |
Зарплату сотруднику каждый начальник устанавливает сам, но её границы зависят от должности. Наличие же компьютера у сотрудника зависит только от должности, то есть зависимость от первичного ключа неполная.
В результате приведения к 2NF получаются две таблицы:
Начальник |
Должность |
Зарплата |
Гришин |
Кладовщик |
20000 |
Васильев |
Программист |
40000 |
Васильев |
Кладовщик |
25000 |
Здесь первичный ключ, как и в исходной таблице, составной, но единственный не входящий в него атрибут Зарплата зависит теперь от всего ключа, то есть полно.
Должность |
Наличие компьютера |
Кладовщик |
Нет |
Программист |
Есть |
Третья нормальная форма (3NF) — одна из возможных нормальных форм таблицы реляционной базы данных. Третья нормальная форма является достаточной при решении большинства практических задач, и процесс проектирования реляционной базы данных, как правило, заканчивается приведением к ней.