- •Реляционные базы данных
- •Цели проектирования баз данных
- •Универсальные отношения
- •Проблемы, связанные с использованием единственного отношения
- •Проблема вставки.
- •Проблема обновления.
- •Проблема удаления.
- •Функциональные зависимости
- •Нормальные формы отношений Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Третья усиленная форма или нормальная форма Бойса–Кодда (нфбк)
- •Декомпозиция отношений
- •Избыточные функциональные зависимости. Правила вывода
- •Правило 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
- •Пример проектирования с использованием ролей
Проблемы, связанные с использованием единственного отношения
На первый взгляд, полученное универсальное отношение можно использовать в качестве единственного отношения проектируемой БД. Существует несколько причин, по которым не следует данное отношение использовать в качестве единственного. Различают три проблемы, связанные с использованием отношений и с выполнением определенных операций.
проблема вставки;
проблема обновления;
проблема удаления.
Проблема вставки.
Если в отделе появляется новый сотрудник, то информацию о нем необходимо внести в БД. При этом значение атрибутов Проект, Квартал, Вклад будут пустыми, а Вклад фактически равен нулю.
684 |
Сорокин |
5-17 |
- |
- |
- |
0 |
Как отмечалось ранее, пустых значений следует всячески избегать. Предположим, что в отношение включена новая запись о сотруднике Сорокине с пустыми полями и делается следующий запрос: “Напечатать список номеров и фамилий сотрудников, вклад которых не более 2”. В результате мы получим так называемый «черный список», в который попал и только что принятый на работу Сорокин.
289 |
Иванов |
429 |
Андреев |
687 |
Сорокин |
В данном случае на ясный и простой вопрос мы получаем неверный ответ.
Проблема обновления.
В данном отношении большое количество избыточных данных, что чревато тем, что при исправлении данных исправлению подвергнется только одна часть данных. Рассматриваемое отношение характеризуется явной и неявной избыточностью. Явная избыточность: фамилия сотрудника, телефон лаборатории, номер лаборатории могут появляться в отношении многократно. Если какой-либо сотрудник, на пример Иванов, перейдет на работу в другую лабораторию, соответствующие изменения необходимо сделать во всех записях, где хранится информация о данном сотруднике. Неявная избыточность это (для нашего примера) когда один номер телефона имеют несколько сотрудников лаборатории. Например, номер 5-17 появляется в записях с фамилиями Иванов и Андреев.
Проблема удаления.
В рассматриваемом отношении имеется только один кортеж с номером сотрудника 559 (это сотрудник Зайцев). Предположим, что финансирование проекта 0В77 прекратилось и начальник удаляет все соответствующие записи, при этом произойдет удаление и записи о сотруднике Зайцеве. Рассмотренная проблема называется аномалией.
Таким образом, можно сказать, что универсальные отношения обладают аномальными свойствами и подлежат разбиению с целью ликвидации аномалий. Процесс разбиения с целью уменьшения вероятности возникновения аномалий называется декомпозицией.
Функциональные зависимости
Пусть А и В набор атрибутов. Говорят, что В функционально зависит от А, если для каждого значения А существует только одно связанное с ним значение В.
|
Для конкретного отношения функциональные зависимости определяются путем анализа свойств всех атрибутов в отношении и заключения о том, как атрибуты соотносятся между собой.
Пример:
Номер сотрудника является уникальным. С ним в отношении может появиться только определенная фамилия. Отсюда получаем функциональную зависимость:
СномСфам
Каждый сотрудник является работником только одной лаборатории. Тогда если в отношении появляется комбинация 315-4КТ, то вместе с 315 никакого другого значения Лном появиться не может. Или в каждой лаборатории только один телефон. Отсюда получаем следующие функциональные зависимости:
СномЛном |
ТномЛном |
СномТном |
ЛномТном |
Поскольку значение атрибута Вклад однозначно может быть определено, если заданы атрибуты Сном, Проект и Квартал, то
Сном, Проект, КварталВклад
Полученные функциональные зависимости изображены на рис. 6.1 с помощью диаграммы функциональных зависимостей
|
Рис. 6.1 Диаграмма функциональных зависимостей. |