Формирование: первая, вторая и третья нормальные формы. Нормальная форма Бойс-кода

Содержание

Слайд 2

Нормальные формы отношений

Нормализация отношений
Первая нормальная форма
Вторая нормальная форма
Третья нормальная форма
Нормальная форма Бойса-Кодда
Четвертая

Нормальные формы отношений Нормализация отношений Первая нормальная форма Вторая нормальная форма Третья
нормальная форма
Пятая нормальная форма

Слайд 3

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

Нормализация отношений информационной модели предметной области является механизмом создания логической модели

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

Слайд 4

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

Перечень наиболее важных требований при нормализации:
Первичные ключи отношений должны быть

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

Слайд 5

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

Данные не должны быть противоречивыми, т.е. при выполнении операций включения,

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

Слайд 6

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

Разброс времени реакции на различные запросы к базе данных не

Нормализация отношений Разброс времени реакции на различные запросы к базе данных не
должен быть большим (требование производительности системы).
Данные должны правильно отражать состояние предметной области базы данных в каждый конкретный момент времени (требование актуальности данных).
Многие из требований находятся в противоречии друг к другу: Требование производительности находится в противоречии к требованию гибкости. Требование минимизировать число отношений в базе данных находится в противоречии к требованию надежности данных.

Слайд 7

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

В процессе эксплуатации реляционной базы данных происходит модификация данных и данные

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

Слайд 8

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

Пример: Аномалии операций над базой данных
ПОСТАВКИ (Поставщик, Адрес, Товар, Количество, Стоимость)
Обновление.

Нормализация отношений Пример: Аномалии операций над базой данных ПОСТАВКИ (Поставщик, Адрес, Товар,
Если Поставщик поставляет несколько видов товара, то значение атрибута Адрес повторяется для каждого кортежа и, следовательно, при изменении адреса поставщика необходимо изменить значение этого атрибута во всех этих кортежах. Иначе будет нарушена целостность данных базы данных.

Слайд 9

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

Удаление. Если Поставщик прекращает поставку товаров на некоторое время, то кортежи

Нормализация отношений Удаление. Если Поставщик прекращает поставку товаров на некоторое время, то
со всеми его поставками удаляются. При этом происходит потеря реквизитов поставщика - Адреса и Наименования.
Вставка. Если договор на поставку уже заключен, а поставка еще не произведена, то невозможно включить в рассматриваемое отношение значения атрибутов Поставщик и Адрес, поскольку нет сведений о поставках (проблема интерпретации нуль-значений).

Слайд 10

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

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

Нормализация отношений Теория функциональных зависимостей позволяет установить определенные требования к схемам отношений
реляционной базе данных.
Эти требования формулируются в терминах свойств отношений и называются нормальными формами схем отношений.
Каждая нормальная форма отношений связана с определенным классом ФЗ, которые представлены в отношениях.

Слайд 11

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

Теория ФЗ утверждает, что существует минимальное покрытие множества ФЗ базы данных,

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

Слайд 12

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

Процесс устранения потенциальной противоречивости и избыточности данных в отношениях реляционной базы

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

Слайд 13

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

Нормализация схем отношений дает наилучший результат при моделировании предметной области с

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

Слайд 14

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

Отношение находится в первой нормальной форме (1НФ), если все атрибуты

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

Слайд 15

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

Пример: Приведение отношения к 1НФ
Отношение SHIPMENT (ОТГРУЗКА) является ненормализованным.

Первая нормальная форма Пример: Приведение отношения к 1НФ Отношение SHIPMENT (ОТГРУЗКА) является
Оно содержит повторяющиеся группы, представляющие массив значений, 1st Consignment, 2st Consignment, 3st Consignment (партии грузов).

Для такого отношения следует ввести бизнес-правило, требующее, чтобы груз состоял не более чем из трех партий!

Слайд 16

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

Использование отношения, представленного не в 1НФ, может породить следующие проблемы:

Первая нормальная форма Использование отношения, представленного не в 1НФ, может породить следующие
если груз аннулируется и строка, связанная с грузом, удаляется из отношения, то вместе с ней удаляются все сведения о партиях груза на борту судна;
если на склад прибывает новая партия груза, и она еще не включена в состав груза, подлежащего отправке, то сведения о партии заносить некуда;
необходимо вводить ограничение: в грузе не может быть более трех партий.

Слайд 17

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

Приведение отношения SHIPMENT к 1НФ заключается в изъятии данных о

Первая нормальная форма Приведение отношения SHIPMENT к 1НФ заключается в изъятии данных
партиях груза из отношения SHIPMENT и создании для них связанного подчиненного отношения CONSIGNMENT (ПАРТИЯ_ГРУЗА).
Результат приведения отношения SHIPMENT к 1НФ :

Слайд 18

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

Атрибут отношения считается ключевым если он является элементом какого-либо ключа

Вторая нормальная форма Атрибут отношения считается ключевым если он является элементом какого-либо
отношения.
В противном случае атрибут будет считаться неключевым атрибутом.
Так в отношении (Город, Адрес, Почтовый_индекс) все атрибуты являются ключевыми, поскольку при заданных ФЗ (город, адрес) → почтовый_индекс и почтовый_индекс → город ключами являются пары (город, адрес) и (адрес, почтовый_индекс).

Слайд 19

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

Отношение находится во второй нормальной форме (2НФ), если оно находится

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

Слайд 20

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

Пример: Приведение отношения ко 2НФ.
Отношение SHIPMENT содержит частичную ФЗ: неключевой

Вторая нормальная форма Пример: Приведение отношения ко 2НФ. Отношение SHIPMENT содержит частичную
атрибут Ship Capacity (грузоподъемность корабля) не зависит от ключевого атрибута Departure Date (даты убытия), а зависит от ключевого атрибута Ship Registration Number (регистрационный номер корабля).

Слайд 21

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

Использование отношения, представленного не во 2НФ, может породить следующие проблемы:

Вторая нормальная форма Использование отношения, представленного не во 2НФ, может породить следующие
невозможно занести в базу данных название и грузоподъемность корабля, который не доставил еще ни одного груза, - можно только ввести для него фиктивный груз;
если удалить кортеж из отношения Shipment после отправки груза, то потеряются все данные о кораблях, для которых в настоящее время нет груза;
невозможно отразить факт переоборудования корабля и получения им новой грузоподъемности; если переписать все предыдущие кортежи об этом корабле, то получится, что он в прошлом плавал недогруженным или перегруженным.

Слайд 22

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

Приведение отношения SHIPMENT ко 2НФ заключается в изъятии атрибутов частичной

Вторая нормальная форма Приведение отношения SHIPMENT ко 2НФ заключается в изъятии атрибутов
ФЗ из отношения SHIPMENT и создании для нее связанного подчиненного отношения SHIP.

Слайд 23

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

Отношение находится в третьей нормальной форме (3НФ), если оно находится

Третья нормальная форма Отношение находится в третьей нормальной форме (3НФ), если оно
во 2НФ, и все неключевые атрибуты отношения зависят только от первичного ключа.
Иными словами, 3НФ требует, чтобы отношение не содержало транзитивных ФЗ неключевых атрибутов от ключа.

Слайд 24

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

Возможна следующая проблема:
Наличие транзитивной зависимости не позволяет связать значения Y

Третья нормальная форма Возможна следующая проблема: Наличие транзитивной зависимости не позволяет связать
и Х, если не существует значения А, связанного со значением Y. Это затрудняет вставку и обновление данных, которые необходимо выполнить сразу для пары связей, а в случае удаления данных приводит к потере связи.

Слайд 25

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

Пример: Приведение отношения к 3НФ
Отношение SHIPMENT содержит транзитивную ФЗ: атрибут

Третья нормальная форма Пример: Приведение отношения к 3НФ Отношение SHIPMENT содержит транзитивную
Customs Declaration (таможенная декларация) является по своей сути свойством атрибутов Origin (пункт отправления) и Destination (пункт назначения).

Слайд 26

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

3НФ упрощает решение проблем контроля избыточности данных, интерпретации нуль-значений, контроля

Нормальная форма Бойса-Кодда 3НФ упрощает решение проблем контроля избыточности данных, интерпретации нуль-значений,
за операциями модификации данных, только если в отношениях отсутствуют какие-либо другие ФЗ, в частности обратные ФЗ неключевого атрибута на один из атрибутов составного первичного ключа или многозначные ФЗ.
В противном случае вышеперечисленные проблемы остаются неразрешенными. Для устранения таких проблем, связанных с существованием обратных ФЗ неключевых атрибутов на часть составного ключа, была предложена усиленная 3НФ или НФ Бойса-Кодда.

Слайд 27

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

Отношение находится в нормальной форме Бойса-Кодда (НФБК), если оно находится

Нормальная форма Бойса-Кодда Отношение находится в нормальной форме Бойса-Кодда (НФБК), если оно
в 3НФ, и в нем отсутствуют зависимости ключевых атрибутов от неключевых атрибутов.
Иными словами, НФБК допускает наличие только таких ФЗ, в которых ключ определяет один или более других атрибутов

Слайд 28

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

Схема отношения в НФБК обладает теми же достоинствами, что и

Нормальная форма Бойса-Кодда Схема отношения в НФБК обладает теми же достоинствами, что
схема в 3НФ, но устраняет некоторые дополнительные аномалии, не устраняемые 3НФ.
Пример: в отношение (Город, Адрес, Почтовый_индекс), находящееся в 3НФ, невозможно записать кортеж для города с известным почтовым индексом, если не известен адрес с этим почтовым индексом.
Данное отношение не находится в НФБК, так как имеет место ФЗ Почтовый_индекс→Город, а атрибут почтовый_индекс не является ключом этого отношения.

Слайд 29

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

Важное замечание: В отличие от 3НФ, исходные отношения не всегда

Нормальная форма Бойса-Кодда Важное замечание: В отличие от 3НФ, исходные отношения не
могут быть приведены в НФБК.
Пример: Приведение отношения к НФБК
Допустим, что экипаж судна разделен на команды, каждая из которых отвечает за разные виды работ. Члены экипажа могут входить в разные команды, но в каждую команду входит только один руководитель. Команда может иметь несколько руководителей. Каждый член экипажа может руководить только одной командой.

Слайд 30

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

Отношение находится в 3НФ, однако содержит аномалию удаления. Если Петрова

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

Слайд 31

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

Приведение отношения к НФБК заключается в создании дополнительного отношения, содержащего

Нормальная форма Бойса-Кодда Приведение отношения к НФБК заключается в создании дополнительного отношения,
сведения о руководителях команд:

Слайд 32

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

Результат приведения отношения КОМАНДА к НФБК:
Следует обратить внимание на возникновение

Нормальная форма Бойса-Кодда Результат приведения отношения КОМАНДА к НФБК: Следует обратить внимание на возникновение избыточности данных
избыточности данных

Слайд 33

Четвертая нормальная форма

Отношение находится в четвертой нормальной форме (4НФ), если оно находится

Четвертая нормальная форма Отношение находится в четвертой нормальной форме (4НФ), если оно
в 3НФ или НФБК и все независимые многозначные ФЗ разнесены в отдельные отношения с одним и тем же ключом.
Иными словами, 4НФ применяется при наличии в отношении более чем одной многозначной ФЗ и требует, чтобы отношение не содержало независимых многозначных ФЗ.

Слайд 34

Четвертая нормальная форма

Пример: Приведение к 4НФ
Рассмотрим отношение, содержащее сведения о кораблях (Ship),

Четвертая нормальная форма Пример: Приведение к 4НФ Рассмотрим отношение, содержащее сведения о
совершаемых ими рейсах (Voyage) и капитанах (Captain)

Слайд 35

Четвертая нормальная форма

Отношение находится в НФБК и содержит только многозначные ФЗ.
Однако

Четвертая нормальная форма Отношение находится в НФБК и содержит только многозначные ФЗ.
имеет место аномалия удаления: если капитан Петров уйдет в отставку и все кортежи о нем будут удалены, то будут потеряны сведения о том, что корабль Жучка совершает рейсы Санкт-Петербург - Марсель. Если добавить новый рейс, то, возможно, придется ввести несколько кортежей в наше отношение.

Слайд 36

Четвертая нормальная форма

Приведение отношения к 4НФ заключается в выделении для каждой многозначной

Четвертая нормальная форма Приведение отношения к 4НФ заключается в выделении для каждой многозначной ФЗ своего отношения:
ФЗ своего отношения:

Слайд 37

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

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

Пятая нормальная форма Нормализация отношений выполнялась путем разложения (декомпозиции) схем отношений. Очевидно,
при таком подходе должен соблюдаться принцип обратимости: соединение проекций должно приводить к исходным отношениям.
Это предполагает отсутствие потери кортежей; появление ранее не существовавших кортежей; сохранение ФЗ (семантика взаимосвязей между данными не должна нарушаться).

Слайд 38

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

Декомпозиция схем отношений не всегда гарантирует обратимость. Это обстоятельство связано

Пятая нормальная форма Декомпозиция схем отношений не всегда гарантирует обратимость. Это обстоятельство
с существованием класса ФЗ по соединению.
Если отношение удовлетворяет ФЗ по соединению, то оно может быть восстановлено по своим проекциям.
Отношения, содержащие более трех МФЗ, требуют особого внимания при построении логической модели реляционной базы данных. Также 4НФ не устраняет избыточность данных полностью, поэтому требуется дальнейшая декомпозиция схем отношений.

Слайд 39

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

Отношение находится в пятой нормальной форме (5НФ), если оно находится

Пятая нормальная форма Отношение находится в пятой нормальной форме (5НФ), если оно
в 4НФ и удовлетворяет зависимости по соединению относительно своих проекций.
5НФ называют также нормальной формой с проецированием соединений. Она используется для разрешения трех и более отношений, которые связаны более чем тремя ФЗ по типу «многие-ко-многим»

Слайд 40

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

Пример: Приведение к 5НФ
Рассмотрим отношение с несколькими многозначными зависимостями:

Пятая нормальная форма Пример: Приведение к 5НФ Рассмотрим отношение с несколькими многозначными зависимостями:

Слайд 41

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

Приведение отношения к 5НФ заключается во введении еще одного отношения,

Пятая нормальная форма Приведение отношения к 5НФ заключается во введении еще одного
связывающего три исходных отношения:
Процедура приведения отношения, содержащего многозначные ФЗ, к 5НФ состоит в построении связывающего отношения, позволяющего исключить появление в соединениях ложных кортежей.