Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

10.9 Итоговая схема процедуры нормализации - Проектирование базы данных, функциональная

Лекция



Это окончание невероятной информации про проектирование базы данных.

...

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

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

Рассмотрим в качестве примера отношение, имеющее следующий набор атрибутов {СТУДЕНТ,ДИСЦИПЛИНА, ПРЕПОДАВАТЕЛЬ}. В этом отношении представлена информация о студентах, изучающих конкретные дисциплины у конкретных преподавателей. При этом каждый студент изучает несколько дисциплин, каждый преподаватель может преподавать несколько дисциплин и студент может обучаться у нескольких преподавателей. Ключом такого отношения является составной атрибут {СТУДЕНТ,ДИСЦИПЛИНА, ПРЕПОДАВАТЕЛЬ}, то есть весь кортеж отношения. Это отношение не содержит нетривиальных функциональных и многозначных зависимостей и поэтому полностью удовлетворяет требованиям четвертой нормальной формы.

Теперь допустим, что в отношении имеются следующие кортежи: кортеж, в котором представлена информация о том, что студент Иванов изучает Физику, другой кортеж, в котором указано, что преподаватель Степанов преподает Физику, и третий кортеж, в котором указано, что преподаватель Степанов обучает студента Иванова. Пример фрагмента такого отношения представлен на рис. 10.25.

СТУД_ДИСЦ_ПРЕП
СТУДЕНТ ДИСЦИПЛИНА ПРЕПОДАВАТЕЛЬ
Иванов
Петров
Иванов
...
Физика
Физика
Математика
...
Кузнецов
Степанов
Степанов
...

Рис.10.25. Отношение СТУД_ДИСЦ_ПРЕП

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

Это ограничение целостности формально можно сформулировать следующим образом.

Если в каких-либо кортежах отношения R имеются пары значений атрибутов (С1, Д1), (Д1, П1) и (П1, С1), или, что эквивалентно, если в отношении присутствуют кортежи {С1, Д1, П2}, {С2, Д1, П1} и {С1, Д2, П1},то в этом отношении обязательно также должен быть кортеж вида {С1, Д1, П1}.

Такого вида ограничение называют циклическим, или -ограничением.

Пример отношения, удовлетворяющего такому ограничению целостности, приведен на рис. 10.26.

СТУД_ДИСЦ_ПРЕП
СТУДЕНТ ДИСЦИПЛИНА ПРЕПОДАВАТЕЛЬ
Иванов
Петров
Иванов
Иванов
Физика
Физика
Математика
Физика
Кузнецов
Степанов
Степанов
Степанов

Рис.10.26. Отношение СТУД_ДИСЦ_ПРЕП

Можно заметить, что следствием рассматриваемого циклического или -ограничения является то, что каждая пара значений атрибутов обязательно должна встречаться в двух экземплярах в разных кортежах. Из-за этого в данном отношении появляются проблемы при выполнении в нем операций обновления данных в кортеже – INSERT, DELETE и UPDATE, так как каждая из этих операций, может затрагивать не один, а большее число кортежей.

Например, если в отношение

СТУД_ДИСЦ_ПРЕП
СТУДЕНТ ДИСЦИПЛИНА ПРЕПОДАВАТЕЛЬ
Иванов
Иванов
Физика
Математика
Кузнецов
Степанов

вставить кортеж {Петров, Физика, Степанов}, то для выполнения -ограничения также должен быть вставлен и кортеж {Иванов, Физика, Степанов}, так как к уже имеющимся в отношении парам (Иванов, Физика) и (Иванов, Степанов) добавляется третья пара (Физика, Степанов).

Еще пример.

Пусть из отношения

СТУД_ДИСЦ_ПРЕП
СТУДЕНТ ДИСЦИПЛИНА ПРЕПОДАВАТЕЛЬ
Иванов
Иванов
Петров
Иванов
Физика
Математика
Физика
Физика
Кузнецов
Степанов
Степанов
Степанов

требуется удалить кортеж {Петров, Физика, Степанов}. Этот кортеж содержит пары значений (Петров, Физика), (Физика, Степанов) и (Петров, Степанов). В оставшихся после удаления кортежах отсутствует дубликат пары (Петров, Физика), следовательно, удаляемый кортеж не выводится из остающихся, и следовательно, его удаление не нарушит требования -ограничения.

Если же требуется удалить кортеж {Иванов, Физика, Степанов}, то для каждой его пары (Иванов, Физика), (Физика, Степанов) и (Иванов, Степанов) имеются двойники в других кортежах. Следовательно, для того чтобы требования -ограничения не нарушились, вместе с кортежем {Иванов, Физика, Степанов} должен быть удален и какой-либо из кортежей с парой-двойником. Возникает только вопрос, какой из трех кортежей должен быть также удален.

Указанные проблемы операций обновления, обусловленные наличием -ограничения, могут быть решены путем замены рассматриваемого отношения СТУД_ДИСЦ_ПРЕП (рис.10.25, 10.26) тремя его бинарными проекциями СТУД_ДИСЦ, ДИСЦ_ПРЕП и СТУД_ПРЕП, как это показано на рис. 10.27

СТУД_ДИСЦ
СТУДЕНТ ДИСЦИПЛИНА
Иванов
Иванов
Петров
Физика
Математика
Физика
ДИСЦ_ПРЕП
ДИСЦИПЛИНА ПРЕПОДАВАТЕЛЬ
Физика
Математика
Физика
Кузнецов
Степанов
Степанов
СТУД_ПРЕП
СТУДЕНТ ПРЕПОДАВАТЕЛЬ
Иванов
Иванов
Петров
Кузнецов
Степанов
Степанов

Рис.10.27. Декомпозиция отношения СТУД_ДИСЦ_ПРЕП

Возникает вопрос, почему необходима декомпозиция на три, а не на два отношения. Можно, однако, увидеть, что соединение любых двух из этих отношений не обеспечивает восстановления исходного отношения. Например, результатом соединения отношений СТУД_ДИСЦ и ДИСЦ_ПРЕП по атрибуту ДИСЦИПЛИНА будет отношение, представленное на рис. 10.28.

СТУД_ДИСЦ - ДИСЦ_ПРЕП
СТУДЕНТ ДИСЦИПЛИНА ПРЕПОДАВАТЕЛЬ
Иванов
Иванов
Иванов
Петров
Петров
Физика
Физика
Математика
Физика
Физика
Кузнецов
Степанов
Степанов
Кузнецов
Степанов

Рис.10.28. Соединение отношений СТУД_ДИСЦ и ДИСЦ_ПРЕП

Видно, что это отношение не совпадает с исходным отношением СТУД_ДИСЦ_ПРЕП (рис. 10.26). В нем имеется лишний кортеж {Петров, Физика, Кузнецов}, которого не было в отношении СТУД_ДИСЦ_ПРЕП. Если же еще выполнить соединение этого отношения (рис.10.28) с третьим отношением СТУД_ПРЕП (рис.10.27) по атрибутам Студент и Преподаватель, то нетрудно увидеть, что лишний кортеж будет исключен и исходное отношение СТУД_ДИСЦ_ПРЕП будет полностью восстановлено.

Поскольку рассматриваемое -ограничение удовлетворяется тогда и только тогда, когда отношение равносильно соединению трех его проекций, такое ограничение еще называют зависимостью соединения(или зависимостью проекции-соединения).

Зависимость соединения (join dependency) является таким же семантическим ограничением данного отношения, как многозначная и функциональная зависимости. Определение зависимости соединения имеет следующий вид.

Пусть R является отношением, а А, В, …, Z – произвольным подмножеством множества атрибутов отношения R. Отношение R удовлетворяет зависимости соединения *(А, В, …, Z) тогда и только тогда, когда оно равносильно соединению своих проекций с подмножествами атрибутов А, В, …, Z.

Таким образом, для рассматриваемого в этом разделе отношения СТУД_ДИСЦ_ПРЕП (рис. 10.26) можно записать, что оно удовлетворяет зависимости соединения *(СТУД_ДИСЦ, ДИСЦ_ПРЕП, СТУД_ПРЕП) и для устранения аномалий операций обновления может быть представлено своими тремя проекциями {СТУДЕНТ, ДИСЦИПЛИНА}, {ДИСЦИПЛИНА, ПРЕПОДАВАТЕЛЬ} и {СТУДЕНТ, ПРЕПОДАВАТЕЛЬ}.

Сравним приведенные определения зависимости соединения с рассмотренной выше теоремой Фейгина.

Отношение R{А, В, С} может быть декомпозировано без потерь на проекции с атрибутами {А, В} и {А, С}тогда и только тогда, когда для отношения R выполняются многозначные зависимости А →→ В (и А →→С).

Можно видеть, что фактически многозначная зависимость А →→ В эквивалентна (является частным случаем) зависимости соединения *(АВ, АС).

Другими словами, зависимость соединения является обобщением многозначной зависимости, так же, как ранее многозначная зависимость оказалась обобщением функциональной зависимости. И наоборот,многозначная зависимость является частным случаем зависимости соединения, а функциональная зависимость – частным случаем многозначной зависимости.

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

Определение пятой нормальной формы.

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

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

Пятая нормальная форма является окончательной нормальной формой по отношению к операциямпроекции и соединения.

10.9 Итоговая схема процедуры нормализации

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

Эти этапы формулируются следующим образом.

  1. Отношение в первой нормальной форме разбивается на две проекции для исключения всех функциональных зависимостей, ключевых атрибутов от первичного ключа, которые не являются неприводимыми. В результате получаются отношения во второй нормальной форме.
  2. Отношение во второй нормальной форме разбивается на две проекции для исключения всехтранзитивных функциональных зависимостей. Этот этап приводит к отношениям в третьей нормальной форме.
  3. Отношение в третьей нормальной форме разбивается на две проекции для исключениядетерминантов, не являющихся первичными ключами. Получаем отношения в нормальной форме Бойса – Кодда.
  4. Отношение в нормальной форме Бойса – Кодда разбивается на две проекции для исключениямногозначных зависимостей для приведения в четвертую нормальную форму.
  5. Отношение в четвертой нормальной форме разбивается на n проекций для исключения любыхзависимостей проекции-соединения, которые не являются функциональными зависимостями от потенциальных ключей.

Таким образом

Первая нормальная форма (1NF)

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

Вторая нормальная форма (2NF)

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

Третья нормальная форма (3NF)

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

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

Переменная отношения находится в нормальной форме Бойса — Кодда (иначе — в усиленной третьей нормальной форме) тогда и только тогда, когда каждая ее нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ.

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

Четвертая нормальная форма (4NF)

Переменная отношения находится в четвертой нормальной форме, если она находится в нормальной форме Бойса — Кодда и не содержит нетривиальных многозначных зависимостей.

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

Пятая нормальная форма (5NF)

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

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

Вау!! 😲 Ты еще не читал? Это зря!

  • денормализация
  • отношения
  • индекс
  • Хранилище данных
  • Витрина данных

В заключение, эта статья об проектирование базы данных подчеркивает важность того что вы тут, расширяете ваше сознание, знания, навыки и умения. Надеюсь, что теперь ты понял что такое проектирование базы данных, функциональная зависимость, нормализация, нормальные формы 1нф, 2нф, 3нф, 4нф, 5нф, bcnf, теорема фейгина, теорема хеза и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL

Продолжение:


Часть 1 Проектирование базы данных, функциональная зависимость, нормализация, нормальные формы 1НФ, 2НФ, 3НФ, 4НФ, 5НФ
Часть 2 10.6 Нормальная форма Бойса–Кодда (BCNF) - Проектирование базы данных, функциональная
Часть 3 10.9 Итоговая схема процедуры нормализации - Проектирование базы данных, функциональная

создано: 2016-02-19
обновлено: 2023-07-11
132475



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL

Термины: Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL