Алгоритм получения структуры иерархической БД



 1. Для каждой функциональной зависимости вида А -» В создается отношение Si(A,B). Каждый блок взаимно-однозначных соответствий также порождает отношение с ключом, равным старшему по объему понятия атрибуту.

В нашем примере будут созданы следующие отношения (ключи помечены знаком #):

S1(HИИ #, Директор, Адрес),

82(Отдел #, НИИ, Ксотр),

БЗ(Тема #, Датанач, Датакон, Приор),

Б4(ФИО #, Отдел),

S5(TeMa #, Работа #, ФИО #, Прод),

S6(TeMa #, Заказ #, Обфин).

2. Разделить отношения на группы по признаку: два отношения находятся в общей группе, если их ключи функционально определяют хотя бы один общий атрибут.

Для отношений SI - S6 получаем две группы:

• SI, S2, S4, S5 (все ключи функционально определяют атрибут НИИ);

• S3, S6, S5 (все ключи функционально определяют атрибут ТЕМА).

Далее шаги 3,4,5 выполняются раздельно для каждой группы. Количество групп определяет количество иерархических БД.

3. У всех пар отношений группы проверяется условие для ключей Kj -» Ki. Если оно соблюдается, то из соответствующих отношений создается веерное отношение Wij(Si.Sj).

4. Найти в группе цепи веерных отношений и сцепить их в дерево. Элемент цепи образуется по условию Wij - Wjk.

В нашем примере получим:

группа 1: цепь W12(S1,S2), W24(S2,S4), W45(S4,S5) образует дерево;

группа 2: цепей нет, но W35(S3,S5) и W36(S3,S6) образуют дерево.

5. Атрибуты, оставшиеся вне цепей на шаге 4, добавить в структуру тех отношений, где они будут неключевыми, либо в структуру отношений, соответствующих висячим вершинам дерева.

6. Если группы, полученные на шаге 2, содержат общие отношения, то решить вопрос о целесообразности установления логических связей между иерархическими БД.

7. Сократить список атрибутов в сегментах за счет удаления атрибутов зависимого отношения, общих в паре "основной -зависимый".

и выборки.

МИНИМАЛЬНОЕ МНОЖЕСТВО ВАРИАНТОВ ВЫБОРКИ СООТВЕТСТВУЕТ ТРЕМ ОПЕРАЦИЯМ.

1. GU - получить уникальную запись по известным значениям первичного ключа на каждом уровне дерева иерархической базы данных.

2. GN - получить следующую запись на том уровне дерева, где находится текущая запись после выполнения оператора GU.

3. GNP - получить следующую запись на расположенном непосредственно ниже уровня дерева относительно позиции, где находится текущая запись после выполнения оператора GU или GN.

ПРИМЕР:

для запроса - получить информацию о преподавателе с кодом 1103 кафедры 11 факультета 01 - потребуется оператор

GU Факультет (Факультет="01")

Кафедра (Кафедра=и11")

Преподаватель (Преподаватель="1103")

print Преподаватель

В этом примере названия отношений совпадают с названиями соответствующих первичных ключей.

Запрос - получить список всех студентов группы 102 - реализуется следующей последовательностью операторов .

GU Факультет (Факультет="01")

Группа (Группа="Ю2")

Студент

М1: GN Студент

print Студент

goto Ml

Поскольку в операторе GU не указано условие выборки в отношении Студент, текущей записью станет первая запись этого отношения, и далее циклическое повторение оператора GN обеспечит требуемое извлечение всех записей о студентах группы 102. Выход из цикла произойдет в результате получения кода возврата "конец отношения".

Сравнение моделей данных

При сравнении моделей данных очень трудно отделить факторы, характеризующие принципиальные особенности модели, от факторов, связанных с реализацией этих моделей данных средствами конкретных СУБД.

Рассматривая преимущества и недостатки известных моделей данных, следует отметить ряд несомненных достоинств реляционного подхода:

 • Простота. В реляционной модели всего одна информационная конструкция, которая формализует табличное представление данных, привычное для пользователей-экономистов.

• Теоретическое обоснование. Наличие теоретически обоснованных методов нормализации отношений и проверки ацикличности структуры позволяет получать базы данных с заданными характеристиками.

• Независимость данных. Когда необходимо изменить структуру реляционной БД, это, как правило, приводит к минимальным изменениям в прикладных программах.


Дата добавления: 2018-05-12; просмотров: 243; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!