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