Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kolokvium / MARTIN3.DOC
Скачиваний:
29
Добавлен:
19.04.2013
Размер:
92.67 Кб
Скачать

Древовидные структуры

Аналогичным образом может быть нормализована и древовидная структура. На рис. 13.2 показано четырехуровневое дерево, представ­ленное затем в виде шести отношений.

Схема базы данных древовидной структуры:

Нормализованная форма схемы:

ОТДЕЛ (НОМЕР-ОТДЕЛА, НАЗВАНИЕ-ОТДЕЛА, ОТЧЕТНОСТЬ, РУКОВОДИТЕЛЬ, БЮДЖЕТ)

РАБОТА (НОМЕР-ОТДЕЛА, НОМЕР-РАБОТЫ, ОПИСАНИЕ РАБОТЫ)

СЛУЖАЩИЙ (НОМЕР СЛУЖАЩЕГО, ИМЯ СЛУЖАЩЕГО, НОМЕР-ОТДЕЛА, ЗАРПЛАТА, ЗВАНИЕ, АДРЕС)

ИЗМЕНЕНИЕ - ОКЛАДА (НОМЕР СЛУЖАЩЕГО, ДАТА-УСТАНОВЛЕНИЯ -ЗАРПЛАТЫ, РАЗМЕР-ЗАРПЛАТЫ)

ДЕТИ(НОМЕР СЛУЖАЩЕГО, ИМЯ-РЕБЕНКА, ВОЗРАСТ-РЕБЕНКА, ПОЛ-РЕБЕНКА)

ТРУДОВАЯ - ДЕЯТЕЛЬНОСТЬ (НОМЕР СЛУЖАЩЕГО, ДАТА-НАЗНАЧЕНИЯ, ДОЛЖНОСТЬ)

Рис. 13.2. Четырехуровневое дерево.

Для преобразования этой древовидной структуры в нормализованную форму были устранены зависимости от путей доступа с помощью добавления новых ключевых элементов данных (выделены полужирным шрифтом).

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

Отметим, что сцепленные ключи - это те же самые ключи, которые мы использовали в ненормализованной структуре при устранении зависимости от пути.

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

При нормализации структуры дополнительные элементы данных могут добавляться по двум причинам. Во-первых, могут быть добавле­ны элементы первичного ключа (как об этом говорилось выше) для того, чтобы сделать слепленный ключ однозначным идентификатором кор­тежа. Кортеж должен быть замкнутым. Во-вторых, могут добавляться атрибутивные элементы данных для представления путей, которые на традиционных схемах изображались линиями со стрелками. Линии с двойными стрелками могут потребовать выполнения операций обра­ботки вторичных ключей. Эти операции могут варьироваться в диапа­зоне от простого упорядочивания до использования вторичных индек­сов (часть 11).

Схема на рис. 13.3 не нуждается в добавлении каких-либо элементов данных первичного ключа при ее нормализации. Каждый ключ одно­значно идентифицирует кортеж. В то же время добавлены дополни­тельные атрибуты для того, чтобы пользователь имел возможность следовать по путям, ведущим вверх по дереву.

Соседние файлы в папке Kolokvium