- •Реляционные базы данных
- •Цели проектирования баз данных
- •Универсальные отношения
- •Проблемы, связанные с использованием единственного отношения
- •Проблема вставки.
- •Проблема обновления.
- •Проблема удаления.
- •Функциональные зависимости
- •Нормальные формы отношений Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Третья усиленная форма или нормальная форма Бойса–Кодда (нфбк)
- •Декомпозиция отношений
- •Избыточные функциональные зависимости. Правила вывода
- •Правило 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
- •Пример проектирования с использованием ролей
Общая схема проектирования баз данных методом декомпозиции
Построение универсального отношения.
Определение всех функциональных зависимостей, существующих между атрибутами универсального отношения.
Удаление всех избыточных функциональных зависимостей.
Определяем, находится ли отношение в НФБК, если да - проектирование закончить, если нет – отношение разбивается на два.
Шаги 4 и 5 повторяются для всех отношений, полученных в результате декомпозиции, до тех пор пока все отношения не будут находиться в НФБК.
Построение отношений для базы данных “Начальник отдела”.
Возвратимся снова к примеру базы данных “Начальник отдела”.
|
Рис. 6.26 Универсально отношение R (Сном, Сфам, Тном, Лном, Проект, Квартал, Вклад) |
Детерминанты не являющиеся возможными ключами:
Сном |
Лном |
Тном |
Возможным ключом является Сфам, Проект, Квартал.
Универсальное отношенияе R (Сном, Сфам, Тном, Лном, Проект, Квартал, Вклад)
и не находится в НФБК и нуждается в декомпозиции.
Выявление функциональных зависимостей
В данном отношение содержаться следующие цепочки функциональных зависимостей:
Сном Лном Тном
Сном Тном Лном
Сном, Проект, КварталВклад
Декомпозиция универсального отношения
На рисунках 6.3-6.5 изображены диаграммы функциональных зависимостей отношений, полученых из универсального отношения в процессе его декомпозиции.
Производим декомпозицию отношения R (Сном, Сфам, Тном, Лном, Проект, Квартал, Вклад) на
R 1 (Лном, Тном) и R2 (Сном, Сфам, Лном, Проект, Квартал, Вклад).
|
Возможные ключи: Лном, Тном Детерминанты: Лном, Тном Отнонение находится в НФБК |
Рис. 6.27 Отношение R 1 (Лном, Тном) |
|
Возможные ключи: Проект, Квартал, Вклад Детерминанты: Проект, Квартал, Вклад Сном Отнонение не находится в НФБК |
Рис. 6.28 Универсально отношение R2 (Сном, Сфам, Лном, Проект, Квартал, Вклад) |
Произведем декомпозицию отношения R2 (Сном, Сфам, Лном, Проект, Квартал, Вклад) на
R3 (Сном, Сфам, Лном) и R4 (Сном, Проект, Квартал, Вклад).
В отношении R3 (Сном, Сфам, Лном) объединим зависимости Сном Сфам и Сном Лном в зависимость Сном Сфам, Лном.
|
Возможные ключи: Сном Детерминанты: Сном Отнонение находится в НФБК |
Рис. 6.29 Отношение R3 (Сном, Сфам, Лном). |
|
Возможные ключи: Проект, Квартал, Вклад Детерминанты: Проект, Квартал, Вклад Отнонение находится в НФБК |
Рис. 6.30 Отношение R4 (Сном, Проект, Квартал, Вклад). |
Таким образом, в результате декомпозиции мы получили следующие отношения:
R2 (Лном, Тном) – находится в НФБК
R3 (Сном, Сфам, Лном) – находится в НФБК
R4 (Сном, Проект, Квартал, Вклад) – находится в НФБК
Таблицы 6.21- 6.23 демонстрируют отношения полученные в результате декомпозиции универсального отношения R.
Таблица 6.21 R2. |
Таблица 6.22 R3. |
|
Таблица 6.23 R4. |
||||||||
Лном |
Тном |
|
Сном |
Сфам |
Лном |
|
Сном |
Проект |
Квартал |
Вклад |
|
25АП |
5-17 |
|
289 |
Иванов |
25АП |
|
289 |
РКТ14 |
1990,3 |
3 |
|
4КТ |
8-29 |
|
315 |
Николаев |
4КТ |
|
289 |
Зенит |
1990,3 |
5 |
|
14ММ |
4-85 |
|
429 |
Андреев |
25АМ |
|
289 |
ВКТ14 |
1990,4 |
2 |
|
|
|
|
559 |
Зайцев |
14ММ |
|
289 |
ВТА2 |
1990,4 |
4 |
|
|
|
|
|
|
|
|
315 |
ВКТ14 |
1990,3 |
6 |
|
|
|
|
|
|
|
|
315 |
ВТА8 |
1990,4 |
7 |
|
|
|
|
|
|
|
|
315 |
ВКТ14 |
1990,4 |
8 |
|
|
|
|
|
|
|
|
429 |
Зенит |
1990,3 |
2 |
|
|
|
|
|
|
|
|
429 |
ОТР6 |
1990,4 |
7 |
|
|
|
|
|
|
|
|
429 |
ВКТ14 |
1990,4 |
4 |
|
|
|
|
|
|
|
|
559 |
ОВ77 |
1990,3 |
6 |
Присутствуют ли в этой БД аномалии вставки, удаления и обновления ?
Вставка. На работу в лабораторию 25АР приняли Сорокина, его номер 687. Эта информация помещается в отношение R2 <687,Сорокин, 25АР>. Если теперь сделать запрос составить список сотрудников, вклад которых хотя бы в один проект равен или меньше 2, мы получим ответ: Иванов, Андреев. Сорокина здесь нет таким образом аномалия вставки, присутствующая в исходном отношении, устроена в результате декомпозиции.
Обновление. В исходном отношении возникла проблема при изменении телефона у Иванова на 9-17 если мы сгенерируем запрос: напечатать телефон лаборатории 25АР, то получим ответ: 9-17
Аномалия обновления, исходного отношения устранена в результате декомпозиции.
Удаление. Финансирование проекта ОВ77 прекращено. Информация о проекте должна быть удалена из БД. В отношении R3 нужно удалить все записи со значением Проект=ОВ77
В исходном отношении это правило к удалению из базы информации о сотруднике 559 Зайцев. В нашем случае информация о сотрудниках храниться в R2 и не будет потеряна при удалении кортежей со значением Проект=ОВ77 из отношения R3 , таким образом, в результате декомпозиции устранена аномалия удаления. Цена за устранение аномалии – увеличение количества отношений. Теперь запросы к БД будут реализовываться более сложно, т.к. возможно понадобится прохождение цепочки из двух или трех отношений при поиске требуемых данных.