- •Реляционные базы данных
- •Цели проектирования баз данных
- •Универсальные отношения
- •Проблемы, связанные с использованием единственного отношения
- •Проблема вставки.
- •Проблема обновления.
- •Проблема удаления.
- •Функциональные зависимости
- •Нормальные формы отношений Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Третья усиленная форма или нормальная форма Бойса–Кодда (нфбк)
- •Декомпозиция отношений
- •Избыточные функциональные зависимости. Правила вывода
- •Правило 1. Транзитивные зависимости
- •Пример удаления избыточных зависимостей с помощью правил вывода
- •Общая схема проектирования баз данных методом декомпозиции
- •Построение отношений для базы данных “Начальник отдела”.
- •Выявление функциональных зависимостей
- •Декомпозиция универсального отношения
- •Семантическое моделирование или проектирования баз данных методом “Сущность-связь”
- •Сущности и связи
- •Диаграмма еr–экземпляров:
- •Диаграмма er–типа:
- •Терминология метода “Сущность-связь”
- •Степень связи
- •Класс принадлежности сущности
- •Примеры диаграмм er-типа связей степени 1:1.
- •Примеры диаграмм er-типа связей степени 1:n и n:1
- •Примеры диаграмм er-типа связей степени m:n
- •Порядок или мерность связи
- •Бинарные связи со степенью связи 1: 1
- •Правило 1.
- •Правило 2.
- •Правило 3.
- •Бинарные связи со степенью связи 1: n
- •Правило 4.
- •Правило 5.
- •Бинарные связи степени m:n.
- •Правило 6.
- •Пример проектирования с использованием связей степенью м:n
- •Связи более высокого порядка
- •Правило 7
- •Пример проектирования с использованием связей более высокого порядка
- •Использование ролей
- •Правило 8
- •Пример проектирования с использованием ролей
Нормальные формы отношений Первая нормальная форма
Атрибут называется простым, если значение его атомарно, т.е. неделимо (пример простых атрибутов: табельный номер сотрудника, фамилия сотрудника, оклад). Атрибут называется сложным, если его значение представляет собой объединение значений различных атрибутов (на Пример: атрибут Адрес [индекс, город, улица, дом, квартира]). Отношение называется отношением в первой нормальной форме, если все его атрибуты простые. Отношение “начальник отдела” находится в первой нормальной форме.
Вторая нормальная форма
П олная функциональная зависимость. Пусть А – это некоторый атрибут, Х – это набор атрибутов. Говорят, что А функционально полно зависит от Х, если Х А, Y А, где Y любое подмножество Х. Набор атрибутов Х называют детерминантом отношения. Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме, и каждый неключевой атрибут функционально полно зависит от возможного ключа. Так, отношение с зависимостью Сном, Лном, ТномСном не находится во второй нормальной форме.
Третья нормальная форма
Т ранзитивная зависимость. Пусть X, Y, Z – наборы атрибутов некоторого отношения.
Если XY, YZ но Y Х то XZ , тогда говорят что Z транзитивно зависит от X
Пример: транзитивной зависимости СномТном, ТномЛном СномЛном.
Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и каждый неключевой атрибут нетранзитивно зависит от ключа.
Если в отношении, находящемся в третьей нормальной форме, только один ключ и имеются зависимости только от ключа, оно будет свободно от аномалий.
Если отношение в третьей нормальной форме имеет несколько ключей или в нем существуют зависимости отличные от зависимостей от ключей, отношение будет иметь аномалии.
Третья усиленная форма или нормальная форма Бойса–Кодда (нфбк)
Отношение находится в НФБК тогда и только тогда, когда каждый детерминант отношения является возможным ключом. Отношение, создаваемое для начальника отдела имеет четыре детерминанта:
Сном |
Лном |
Тном |
Сфам, Проект, Квартал |
Кодд доказал, что отношение в НФБК практически не содержит аномалий, поэтому на практике придерживаются приведения отношения в НФБК.
Декомпозиция отношений
Декомпозиция получается приведением к получению двух отношений из одного.
Например, было R(X,Y,Z), а в результате декомпозиции получили два R1(X,Y), R2(Y,Z).
Декомпозиция аномального отношения выполняется следующим образом.
Пусть R – отношение, не находящееся в НФБК. Пусть aj зависит от ai (ai aj). Эта зависимость препятствует нахождению отношения в НФБК. Пусть ai – некоторый атрибут, детерминант, но не являющийся возможным ключем . Отношение R(a1,…,ai,…,aj) разбивают на два
R1 (a1,…,ai,…,aj-1) и R2(ai,aj)
Отношение R2 называется проекцией отношения R.
Декомпозиция считается выполненной правильно, если любой один и тот же запрос, примененный к исходному отношению и к полученным в результате декомпозиции отношениям, дает один и тот же результат.
Теория реляционных баз данных говорит, что результаты запроса будут совпадать, если декомпозиция выполнена способом, при котором соединение R1 и R2 дает в точности исходное соотношение R – это декомпозиция без потерь.
Если естественное соединение R1 и R2 в итоге дает больше кортежей, чем в R – то это декомпозиция с потерями.
Отсутствие потерь при декомпозиции отношения R(X,Y,Z) в R1(X,Y), R2(Y,Z) гарантируется при условии, что от общего атрибута (Y) функционально зависит хотя бы один атрибут из двух оставшихся.
Пример 1: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Таблица 6.13 R (X,Y,Z). |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
X |
Y |
|
|
|
Y |
X |
|
Y |
Z |
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
1 |
2 |
3 |
|
2 |
1 |
|
2 |
3 |
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
3 |
2 |
6 |
|
2 |
3 |
|
2 |
6 |
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
5 |
4 |
2 |
Y Х Y Z |
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
Декомпозиция |
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Таблица 6.14 R1 (X,Y). |
Таблица 6.15 R2 (X,Z). |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
X |
Y |
|
Y |
Z |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
1 |
2 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
3 |
2 |
2 |
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
5 |
4 |
4 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Соединение |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Таблица 6.16 R3 (X,Y,Z). |
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
X |
Y |
Z |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
1 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
1 |
2 |
6 |
лишний кортеж |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
3 |
2 |
3 |
лишний кортеж |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
3 |
2 |
6 |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
5 |
4 |
2 |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Так как Y |
|
X, Y |
|
Z, то R ≠ R3. |
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Пример 2: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Если Y → Z, то разбивая отношение R, получим, что R = R3. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Таблица 6.17 R (X,Y,Z). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
X |
Y |
Z |
|
Y |
Z |
Изменим строчку мешающую |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
1 |
2 |
3 |
|
2 |
3 |
зависимости Y → Z |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
3 |
2 |
3 |
|
2 |
6 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
5 |
4 |
2 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Декомпозиция |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Таблица 6.18 R1 (X,Y). |
Таблица 6.19 R2 (Y,Z). |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
X |
Y |
|
Y |
Z |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
1 |
2 |
|
2 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
3 |
2 |
|
4 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
5 |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Соединение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Таблица 6.20 R3 (X,Y,Z). |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
X |
Y |
Z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
1 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
3 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
5 |
4 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|