- •Реляционные базы данных
- •Табличное представление
- •Реляционные базы данных
- •Первые разработки
- •Повторяющиеся группы
- •Древовидные структуры
- •Добавления в нормализованной схеме
- •Размещение (номер-здания, номер-отдела)
- •Сетевые структуры
- •Процедура конструирования
- •Пути использования данных
- •Каноническая структура записей (сегментов)
- •Комбинированные овал-диаграммы
- •Устранение избыточности
- •Ключи и атрибуты
- •Вторичные ключи
- •Транзитивные зависимости
- •Отношения между ключами
- •Последовательность записей
- •Три уровня автоматизации
- •Недостатки
- •Заключение. Преимущества реляционной базы
Добавления в нормализованной схеме
Обычно реляционные базы данных должны разрабатываться так, чтобы в существующие кортежи можно было добавлять новые элементы сеты данных, если этого требуют новые приложения или изменяется представление пользователя о данных. Могут добавляться и новые связи между существующими отношениями: либо добавлением новых элементов данных, либо (в редких случаях) созданием нового отношения.
Схема
Нормализованная форма схемы:
ОТДЕЛЕНИЕ (НОМЕР-ОТДЕЛЕНИЯ, НАЗВАНИЕ-ОТДЕЛЕНИЯ, ПРЕЗИДЕНТ)
ЗДАНИЕ (НОМЕР-ЗДАНИЯ, НОМЕР ОТДЕЛЕНИЯ, ГОРОД, АДРЕС, КОЛИЧЕСТВО СЛУЖАЩИХ)
ОТДЕЛ (НОМЕР-ОТДЕЛА, НОМЕР-ОТДЕЛЕНИЯ, НАЗВАНИЕ-ОТДЕЛЕНИЯ, РУКОВОДИТЕЛЬ)
СЛУЖАЩИЙ (НОМЕР-СЛУЖАЩЕГО, НОМЕР-ОТДЕЛА, ИМЯ-СЛУЖАЩЕГО, ЗАРПЛАТА, ЗВАНИЕ)
ПРОЕКТ (НОМЕР-ПРОЕКТА, НОМЕР-ОТДЕЛА, НАЗВАНИЕ ПРОЕКТА, ДАТА-ОКОНЧАНИЯ)
БЮДЖЕТ (НОМЕР-БЮДЖЕТА, НОМЕР-ПРОЕКТА, ПЛАНОВЫЙ-ПЕРИОД, ИТОГО)
Рис. 13.3. Древовидная схема.
Для преобразования этой схемы в нормализованную структуру добавлены дополнительные атрибуты, реализующие пути, ведущие вверх по дереву (выделены полужирным шрифтом). В таких базах данных для следования по связям с двойными стрелками необходимы операции над вторичными ключами.
На рис. 13.4 показано добавление новых связей в древовидной структуре, приведенной на рис. 13.3, при ее преобразовании в сетевую структуру.
Схема
Нормализованная форма схемы:
ОТДЕЛЕНИЕ (НОМЕР-ОТДЕЛЕНИЯ, НАЗВАНИЕ-ОТДЕЛЕНИЯ, ПРЕЗИДЕНТ)
ЗДАНИЕ (НОМЕР-ЗДАНИЯ, НОМЕР ОТДЕЛЕНИЯ, ГОРОД, АДРЕС, КОЛИЧЕСТВО СЛУЖАЩИХ)
ОТДЕЛ (НОМЕР-ОТДЕЛА, НОМЕР-ОТДЕЛЕНИЯ, НАЗВАНИЕ-ОТДЕЛЕНИЯ, РУКОВОДИТЕЛЬ)
СЛУЖАЩИЙ (НОМЕР-СЛУЖАЩЕГО, НОМЕР-ОТДЕЛА, ИМЯ-СЛУЖАЩЕГО, ЗАРПЛАТА, ЗВАНИЕ)
ПРОЕКТ (НОМЕР-ПРОЕКТА, НОМЕР-ОТДЕЛА, НАЗВАНИЕ ПРОЕКТА, ДАТА-ОКОНЧАНИЯ)
БЮДЖЕТ (НОМЕР-БЮДЖЕТА, НОМЕР-ПРОЕКТА, ПЛАНОВЫЙ-ПЕРИОД, ИТОГО)
Размещение (номер-здания, номер-отдела)
Рис. 13.4. Добавление дополнительных связей к древовидной структуре, приведенной на рис. 13.3.
Дополнительные связи обрабатываются путем добавления двух новых атрибутов в кортеж и созданием одного нового кортежа.
Связь между элементами СЛУЖАЩИЙ и ЗДАНИЕ может быть добавлена путем включения элемента данных НОМЕР-ЗДАНИЯ в кортеж СЛУЖАЩИЙ. Связь между элементами СЛУЖАЩИЙ и ПРОЕКТ может быть добавлена включением НОМЕР-ПРОЕКТА в кортеж СЛУЖАЩИЙ.
Связь между элементами ЗДАНИЕ и ОТДЕЛ относится к типу М : М (многие ко многим). В одном здании может быть расположено несколько отделов, и один отдел может размещаться в нескольких зданиях. Если бы мы решили добавить элемент данных НОМЕР-ОТДЕЛА в кортеж ЗДАНИЕ, то нам пришлось бы при этом несколько раз повторить кортеж для одного здания. Это расточительно, поэтому мы создаем новый кортеж, состоящий только из элементов данных НОМЕР-ЗДАНИЯ и НОМЕР-ОТДЕЛА, что позволяет находить здания, в которых расположен данный отдел и все отделы, расположенные в данном здании.
В общем случае реляционная база данных должна быть способна накапливать новые данные и новые связи без разрушения старых подсхем.
