
- •Тема 4. Базы и хранилища данных
- •Каждый атрибут хранит информацию об определенном свойстве сущности, а каждый экземпляр сущности должен быть уникальным.
- •Пример:
- •4. Манипулирование данными в реляционной модели, операции реляционной алгебры.
- •Специальные операции реляционной алгебры
- •5. Оптимизация схем отношений, нормальные формы, построение рациональной схемы отношений путем нормализации.
- •Критерии для оценки влияние логического моделирования данных на качество физических моделей данных и производительность бд:
5. Оптимизация схем отношений, нормальные формы, построение рациональной схемы отношений путем нормализации.
Понятию схема отношения соответствует описание структуры двумерной таблицы (имена столбцов).
При представлении концептуальной схемы в виде реляционной модели возможны различные варианты выбора схем отношений - одну и ту же информацию можно задать разным набором таблиц.
В теории РБД есть формальные методы построения реляционной модели БД, в которой нет:
- избыточности;
- потенциальной противоречивости (аномалии обновления);
- потенциальной возможности потери сведений (аномалии удаления).
- потенциальной возможности не включения информации в базу данных (аномалии включения).
Построение рационального варианта схем отношений - это построение схем, обладающих лучшими свойствами при операциях включения, модификации и удаления данных, чем все остальные наборы схем. Оно осуществляется путем нормализации схем отношений.
В теории РБД обычно выделяется следующая последовательность нормальных форм:
1 нормальная форма (1NF) - на пересечении каждого столбца и каждой строки находятся только элементарные значения атрибутов. Называется структурной или синтаксической нормализацией;
2 нормальная форма (2NF) - находится в 1НФ и не содержит неполных функциональных зависимостей неключевых атрибутов от атрибутов первичного ключа (каждый неключевой атрибут зависит от первичного ключа (не зависит от части ключа)). Или когда любое неключевое поле однозначно идентифицируется полным набором ключевых полей. Применяется к таблицам с составными ключами;
3 нормальная форма (3NF) - находится во 2НФ и все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа. То есть в таблице нет полей, которые не зависят от ключа. Исключает избыточность и аномалии включения и удаления, но не предотвращает все возможные аномалии;
нормальная форма Бойса-Кодда (BCNF) - (НФБК) учитывает функциональные зависимости, в которых участвуют все потенциальные ключи отношения (уникальные комбинации), а не только его первичный ключ. Для отношения с единственным потенциальным ключом его ЗНФ и НФБК являются эквивалентными;
4 нормальная форма (4NF) - отношение, которое находится в нормальной форме Бойса-Кодда и не содержит нетривиальных многозначных зависимостей;
5 нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF) - связана с анализом нового вида зависимостей, зависимостей "проекции соединения" (project-join зависимости, обозначаемые как PJ-зависимости). Этот вид зависимостей является в некотором роде обобщением многозначных зависимостей.
Каждая следующая НФ обладает свойствами лучшими, чем предыдущая и каждой соответствует определенный набор ограничений. При переходе к следующей НФ свойства предыдущих сохраняются.
Одной из основных концепций нормализации является функциональная зависимость, которая описывает связь между атрибутами отношения.
Все НФ предназначены для устранения различных видов нежелательных ФЗ между атрибутами отношения. В большинстве случаев достижение 3NF считается достаточным для реальных проектов БД.
Последовательный переход от одной НФ к другой при нормализации схем отношений осуществляется с помощью декомпозиции. Основная операция декомпозиции - проекция.
Декомпозиция схемы отношения R = {А1, А2, …Аn} - замена ее подмножествами Ri, объединение которых дает R. Подмножества могут пересекаться. Декомпозиция обеспечивает выполнение запросов к R и Ri с одинаковым результатом. Это выполнимо, если каждый кортеж отношения R может быть представлен как естественное соединение его проекций на каждое из подмножеств. Тогда декомпозиция обладает свойством соединения без потерь. Второе важнейшее свойство декомпозиции - сохранение функциональных зависимостей.
Функциональные зависимости (зависимость между атрибутами отношения) имеется, если два кортежа R совпадают по значению X, они совпадают и по значению Y. Такая функциональная зависимость (ФЗ) обозначается как F:X Y.
Детерминантом называется любой атрибут, от которого полностью функционально зависит какой-то другой атрибут. Если в отношении существует несколько ФЗ, то каждый атрибут или набор атрибутов, от которого зависит другой атрибут, называется детерминантом отношения.
Функциональная зависимость - семантическое понятие. Она возникает, когда по значениям одних данных в предметной области можно определить значения других данных. Например: по табельному номеру сотрудника, можно определить номер его отдела.
Функциональная
зависимость
R.A
R.B
называется
полной,
если набор атрибутов B функционально
зависит от A и не зависит функционально
от любого подмножества A.
Функциональная зависимость R.A R.B называется транзитивной, если существует набор атрибутов С такой, что:
С не является подмножеством А.
С не включает в себя B.
Существует функциональная зависимость R.A R.C.
Не существует функциональной зависимости R.C R.A.
Существует функциональная зависимость R.C R.B.
Например: Номер Сотрудника® Зарплата Сотрудника транзитивна: она следствие ФЗ
Номер Сотрудника ® Номер Отдела и Номер Отдела ® Зарплата Сотрудника
и при этом Номер Сотрудника не определяется атрибутом Номер Отдела.
ЗП сотрудника на является характеристикой не сотрудника, а отдела, в котором он работает.
Детерминантом функциональной зависимости называется минимальная группа атрибутов, от которой зависит некоторый другой атрибут или группа атрибутов, причем эта зависимость нетривиальная.
«-» транзитивной ФЗ:
- проблемы при заполнении связанных таблиц (первичный ключ не может содержать неопределённое значение);
- аномалии удаления;
- аномалии согласованности.
Транзитивные ФЗ в отношении порождают аномалии, которые нужно устранять.
Полное множество ФЗ - для каждого отношения существует определенное множество ФЗ между атрибутами данного отношения. Причем из одной или более ФЗ, присущих отношению, можно вывести другие ФЗ, присущие этому отношению.
Полной ФЗ называется зависимость неключевого атрибута от всего составного ключа.
Частичной ФЗ называется зависимость неключевого атрибута от части составного ключа.
Алгоритм 1НФ: Определение или добавление первичного ключа. Поиск групп повторяющихся полей. Вынос их в отдельные таблицы (оставить в главной поле для связи). Назначение первичных ключей в новых таблицах. Связывание таблиц отношениями
Алгоритм 2НФ: Вынести все частичнозависимые поля в отдельную таблицу. Определить ключевые поля. Установить отношения между таблицами.
Алгоритм 3НФ: Рассмотреть исходные документы предметной области. Выписать все атрибуты. Свести в одну таблицу и применить процедуру нормализации, основываясь на ФЗ. Полученное множество отношений будет являться структурой создаваемой БД. Основной недостаток - большая трудоемкость при выписывании всех функциональных зависимостей.
Нормализация от первой нормальной формы до нормальной формы Бойса-Кодда (НФБК):
- приведение к атомарному виду
- устранение частичных зависимостей от первичного ключа. Создать новые отношения так, чтобы атрибуты, которые не полностью функционально зависят от первичного ключа, были связаны только с соответствующей частью ключа.
- устранение транзитивных зависимостей. При наличии транзитивных зависимостей следует удалить транзитивно зависимые атрибуты из этого отношения так, чтобы ни один атрибут, не входящий в первичный ключ, не зависел полностью от другого атрибута, не входящего в первичный ключ.
- выделение всех детерминантов отношения . Убедиться в том, что они являются потенциальными ключами.
Если в отношении R для каждой функциональной зависимости XA, где А не принадлежит X, X включает в себя некоторый ключ, то говорят, что данное отношение находится в нормальной форме Бойса-Кодда.
НФБК является более строгой версией 3НФ. Иными словами любое отношение, находящееся в НФБК, находится в 3НФ. Обратное неверно.
В нормальной форме Бойса-Кодда не существует избыточности и аномалий включения, удаления и модификации. Любая схема отношения может быть приведена в нормальную форму Бойса-Кодда, так, чтобы декомпозиция обладала свойством соединения без потерь. Однако схема отношения может быть неприводимой в НФБК с сохранением зависимостей. В этом случае приходится довольствоваться третьей нормальной формой.
Многозначная зависимость - зависимость между атрибутами А, В и С некоторого отношения, при которой для каждого значения атрибута А существуют соответствующие наборы значений атрибутов В и С, причем оба этих набора не зависят друг от друга.
Многозначная зависимость А —>В некоторого отношения R определяется как тривиальная, если атрибут В является подмножеством атрибута А или А В = R.
Многозначная зависимость определяется как нетривиальная, если ни одно, ни другое условие не выполняется.
Пятая нормальная форма редко используется на практике. В большей степени она является теоретическим исследованием.