Третья нормальная форма. Нормальная форма Бойса-Кодда. Четвертая нормальная форма. Пятая нормальная форма

Содержание

Слайд 2

3NF Требования третьей нормальной формы (3NF) Требование третьей нормальной формы (3NF)

3NF

Требования третьей нормальной формы (3NF)
Требование третьей нормальной формы (3NF) заключается в

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

Главное правило третьей нормальной формы (3NF): Таблица должна содержать правильные неключевые столбцы

Главное правило третьей нормальной формы (3NF):

Таблица должна содержать правильные неключевые столбцы

Слайд 4

Пример Таблица сотрудников во второй нормальной форме.

Пример

Таблица сотрудников во второй нормальной форме.

Слайд 5

Таблица сотрудников в третьей нормальной форме.

Таблица сотрудников в третьей нормальной форме.

Слайд 6

Нормальная форма Бойса-Кодда (BCNF) Между 3 и 4 нормальной формой есть

Нормальная форма Бойса-Кодда (BCNF)

Между 3 и 4 нормальной формой есть еще

и промежуточная нормальная форма, она называется – Нормальная форма Бойса-Кодда (BCNF). Иногда ее еще называют «Усиленная третья нормальная форма». 
Почему ее так называют?
Перед тем как переходить к процессу приведения таблиц базы данных до нормальной формы Бойса-Кодда, необходимо, чтобы эти таблицы уже находились в третьей нормальной форме. Только после этого мы можем начинать приводить базу данных к нормальной форме Бойса-Кодда и рассматривать соответствующие требования.
Слайд 7

Требования нормальной формы Бойса-Кодда Требования нормальной формы Бойса-Кодда следующие: Таблица должна

Требования нормальной формы Бойса-Кодда
Требования нормальной формы Бойса-Кодда следующие:
Таблица должна находиться в

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

Главное правило нормальной формы Бойса-Кодда (BCNF) : Часть составного первичного ключа

Главное правило нормальной формы Бойса-Кодда (BCNF) :

Часть составного первичного ключа не должна

зависеть от неключевого столбца.
Слайд 9

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

Пример 

Таблица проектов и кураторов.

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

у нас есть первичный ключ, а неключевой столбец зависит от всего ключа, а не от какой-то его части.
Слайд 10

Слайд 11

Четвертая нормальная форма (4NF) базы данных Перед тем как переходить к

Четвертая нормальная форма (4NF) базы данных

Перед тем как переходить к процессу

приведения таблиц базы данных до четвертой нормальной формы, необходимо чтобы эти таблицы уже находились в третьей нормальной форме или, если первичный ключ составной, в нормальной форме Бойса-Кодда.
После того как таблицы базы данных находятся в третьей нормальной форме или, если первичный ключ составной, в нормальной форме Бойса-Кодда, мы можем начинать приводить базу данных к четвертой нормальной форме и рассматривать соответствующие требования.
Слайд 12

Требования четвертой нормальной формы (4NF) Требование четвертой нормальной формы (4NF) заключается

Требования четвертой нормальной формы (4NF)

Требование четвертой нормальной формы (4NF) заключается в

том, чтобы в таблицах отсутствовали нетривиальные многозначные зависимости.
В таблицах многозначная зависимость выглядит следующим образом.
Начнем с того, что таблица должна иметь как минимум три столбца, допустим A, B и C, при этом B и C между собой никак не связаны и не зависят друг от друга, но по отдельности зависят от A, и для каждого значения A есть множество значений B, а также множество значений C.
В данном случае многозначная зависимость обозначается вот так:
A —> B
A —> C
Если подобная многозначная зависимость есть в таблице, то она не соответствует четвертой нормальной форме.
Слайд 13

Пример

Пример 

Слайд 14

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

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

поэтому эта таблица автоматически находится в третьей нормальной форме и нормальной форме Бойса-Кодда. Однако она не находится в четвертой нормальной форме, так как здесь есть многозначная зависимость:
Курс ->-> Преподаватель
Курс ->-> Аудитория
Слайд 15

Главное правило четвертой нормальной формы (4NF) В таблице не должно быть многозначных зависимостей

Главное правило четвертой нормальной формы (4NF) 

В таблице не должно быть многозначных

зависимостей
Слайд 16

Решение в данном случае как всегда – декомпозиция. Мы должны вынести

Решение в данном случае как всегда – декомпозиция.
Мы должны вынести каждую многозначную

зависимость в отдельную таблицу, т.е. разнести независимые друг от друга атрибуты, в нашем случае «Преподаватель» и «Аудитория», по разным таблицам.
Слайд 17

Классический пример приведения таблиц базы данных к четвертой нормальной форме Студент ->-> Курс Студент ->-> Хобби

Классический пример приведения таблиц базы данных к четвертой нормальной форме

Студент ->->

Курс
Студент ->-> Хобби
Слайд 18

Однако, если мы заглянем в исходную таблицу, то мы четко увидим,

Однако, если мы заглянем в исходную таблицу, то мы четко увидим,

что «Иванов И.И.» посещает курс по SQL и имеет хобби «Хоккей», но в нашей выборке этого хобби нет.
Слайд 19

Чтобы нормализовать эту таблицу, мы должны точно так же, как и

Чтобы нормализовать эту таблицу, мы должны точно так же, как и

в предыдущем примере, разбить ее на две.
Слайд 20

Нормализация для: Устранение аномалий Повышение производительности

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

Устранение аномалий
Повышение производительности

Слайд 21

Полностью нормализованная база данных – это плохая база данных. Хорошая база

Полностью нормализованная база данных – это плохая база данных.
Хорошая база данных – это

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

Пятая нормальная форма (5NF) базы данных После того как таблицы базы

Пятая нормальная форма (5NF) базы данных

После того как таблицы базы данных

находятся в четвертой нормальной форме, мы можем начинать приводить базу данных к пятой нормальной форме и рассматривать соответствующие требования.
Требования пятой нормальной формы (5NF)
Переменная отношения находится в пятой нормальной форме (иначе – в проекционно-соединительной нормальной форме) тогда и только тогда, когда каждая нетривиальная зависимость соединения в ней определяется потенциальным ключом (ключами) этого отношения.
Слайд 23

Это стандартное определение для пятой нормальной формы. К сожалению, более простыми

Это стандартное определение для пятой нормальной формы.
К сожалению, более простыми словами

сформулировать определение для пятой нормальной формы достаточно сложно.
Однако на основе этого определения мы можем сделать следующий вывод:
Требование пятой нормальной формы (5NF) заключается в том, чтобы в таблице каждая нетривиальная зависимость соединения определялась потенциальным ключом этой таблицы.
Слайд 24

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

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

содержать зависимости соединения.
Слайд 25

И здесь вводится еще одно новое понятие «Декомпозиция без потерь». Декомпозиция

И здесь вводится еще одно новое понятие «Декомпозиция без потерь».
Декомпозиция без потерь –

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

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

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

таблицы без потери данных.
Схематично это выглядит примерно следующим образом.
Допустим, существует таблица T (C1, C2, C3) где C1, C2, C3 – столбцы и вместе они являются составным первичным ключом. Таблица находится в четвертой нормальной форме. В соответствии с требованиями предметной области у нас проявляется зависимость соединения:
{C1, C2}, {C1, C3}, {C2, C3}
Чтобы привести данную таблицу к пятой нормальной форме, необходимо декомпозировать ее на следующие три таблицы:
T1 (C1, C2)
T2 (C1, C3)
T3 (C2, C3)
При этом, если мы соединим (JOIN) эти три новые таблицы (T1, T2, T3) и получим исходную таблицу (T), то это будет означать, что декомпозицию мы выполнили без потерь.
Слайд 27

Пример

Пример 

Слайд 28

Поработав с предметной областью, мы выясняем, что: Иванов И.И. может работать

Поработав с предметной областью, мы выясняем, что:
Иванов И.И. может работать только

в направлении «Разработка»
Сергеев С.С. может работать в любом направлении, за исключением «Разработка»
Иванов И.И. может участвовать в большом количестве проектов
John Smith может участвовать только в одном проекте
Слайд 29

Чтобы выполнить декомпозицию без потерь, нам нужно разбить данную таблицу на

Чтобы выполнить декомпозицию без потерь, нам нужно разбить данную таблицу на

три проекции
{Сотрудник, Проект}, {Сотрудник, Направление}, {Проект, Направление}
с условием, что в случае обратного соединения, мы получим те же самые данные, что у нас были и до декомпозиции.
Если это нам удастся сделать, то мы устраним нетривиальные зависимости соединения и нормализуем наши таблицы до пятой нормальной формы.
Слайд 30

Слайд 31

Таблицы созданы, теперь если мы выполним следующий запрос, который соединяет эти

Таблицы созданы, теперь если мы выполним следующий запрос, который соединяет эти

три таблицы, и он вернет нам точно такие же данные, что и в исходной таблице, то зависимости соединения у нас нет, и наши таблицы находятся в 5NF.

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