Московский государственный университет печати

Чертовской В.Д.


         

Базы и банки данных

Учебное пособие


Чертовской В.Д.
Базы и банки данных
Начало
Печатный оригинал
Об электронном издании
Оглавление

Введение

Часть 1. ОСНОВНЫЕ ПОЛОЖЕНИЯ

Раздел 1. Основные понятия

1.

Глава 1. Общие сведения

1.1.

Данные, информация, знания

1.2.

Основные понятия и определения

1.3.

Классификация БД и СУБД

1.4.

Состав СУБД и работа БД

2.

Глава 2. Концепция баз данных

2.1.

Требования, предъявляемые к базам данных

2.2.

Концепция построения БД

2.3.

Методология проектирования баз данных

2.4.

Методология использования баз данных

Раздел 2. Теория баз данных

3.

Глава 3. Общая теория

3.1.

Модели представления данных

3.2.

CASE-технология

3.3.

CASE-средства

4.

Глава 4. Теория реляционных баз данных

4.1.

Математические основы теории

4.2.

Построение БД

4.3.

Использование БД

4.3.1.

Запросы к данным

4.3.2.

Синхронизация процессов доступа

Часть 2. Централизованные базы данных

Раздел 3. Реализация бд (модели БД)

5.

Глава 5. Реляционные БД SQL

5.1.

Логическая структура

5.2.

Создание БД

5.3.

Использование БД

5.3.1.

Язык SQL

5.3.2.

Язык QBE

6.

Глава 6. Сетевые БД

6.1.

Логическая структура

6.2.

Программная реализация

6.2.1.

Создание БД (ЯОД)

6.2.2.

Использование БД (ЯМД)

7.

Глава 7. Иерархические БД

7.1.

Логическая структура

7.2.

Программная реализация

7.2.1.

Создание БД (ЯОД)

7.2.2.

Использование БД (ЯМД)

8.

Глава 8. Взаимосвязь МД

8.1.

Сравнительная характеристика моделей данных

8.2.

Преобразование моделей данных

8.3.

Выбор моделей данных

9.

Глава 9. Физическая БД

9.1.

Вопросы программной реализации БД

9.2.

Организация хранения и доступ

9.3.

Доступ к данным и их обновление

Раздел 4. Современные направления развития БД

10.

Глава 10. Автоматизация проектирования

10.1.

Классический подход к проектированию

10.1.1.

Однопользовательский режим

10.1.2.

Многопользовательский режим

10.2.

Современный подход к проектированию

10.3.

Автоматизация проектирования

11.

Глава 11. Объектно-ориентированные базы данных

11.1.

Недостатки реляционных баз данных

11.2.

Состояние развития ООБД

11.3.

Сущность ООБД

11.4.

Недостатки и перспективы развития ООБД

Часть 3. Распределенные базы данных (РБД)

Раздел 5. Основы теории РБД

12.

Глава 12. Общая характеристика РБД

12.1.

Новые требования, предъявляемые к БД

12.2.

Состав и работа РБД

12.3.

Система клиент/сервер

Раздел 6. Основы теории РБД

13.

Глава 13. Создание РБД

13.1.

Обеспечение целостности

13.2.

Фрагментация и локализация

13.3.

Процесс интеграции

13.4.

Преобразование структуры и данных

13.5.

Однородные и неоднородные РБД

14.

Глава 14. Использование РБД

14.1.

Одновременный доступ

14.2.

Защита

14.3.

Восстановление РБД

14.4.

Запросы

Заключение

Контрольные вопросы

Литература

Указатели
11  именной указатель
360  предметный указатель
163  указатель иллюстраций
25  указатель компаний

7.
Глава 7. Иерархические БД

7.1.
Логическая структура

База данных иерархическаяИерархическая модель данных (МД) была исторически первой структурой БД, видимо, из-за того, что древовидные иерархические структуры широко используются в повседневной человеческой деятельности. Это всевозможные классификаторы, ускоряющие поиск требуемой информации, иерархические функциональные структуры управления. Наиболее известной иерархической СУБД до сих пор остается IMS ссылка на источники литературы.

Элементами иерархической модели ссылка на источники литературы являются поле и сегмент. Структурные связи определяются подчиненностью, в силу чего сегмент более низкого уровня называют порожденным, а более высокого уровня - исходным. Сегмент самого верхнего уровня носит название «корневой». Именно через него осуществляется доступ к иерархической БД (точка входа). Экземпляр порожденного сегмента не может существовать в отсутствие экземпляра исходного сегмента. В силу этого положения при удалении экземпляра исходного сегмента удаляются и все экземпляры порожденных сегментов.

Если структура Запросзапроса совпадает со структурой иерархической БД, то такая модель данных обладает самым высоким быстродействием и потому чаще всего применяется в суперЭВМ. В противном случае быстродействие может резко снизиться или данные совсем могут быть не получены. Чтобы избежать последнего неприятного случая, в иерархическую МД вводят еще один тип связи - логическую, о которой поговорим позднее. Иерархические МД, как и сетевые могут быть представлены в виде графов: сегмент отражается в виде узла.

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

В иерархической модели данных действуют более жесткие внутренние ограничения на представление связей между сущностями, чем в сетевой модели. Основные внутренние ограничения иерархической модели данных:

    1) все типы связей функциональные (1:1, 1:М, М:1);

    2) структура связей древовидная.

Результатом действия этих ограничений является ряд особенностей процесса структуризации данных в иерархической модели.

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

    1) имеется единственная особая вершина, называемая корнем, в которую не заходит ни одно ребро;

    2) во все остальные вершины заходит только одно ребро, а исходит произвольное (0, 1, 2, ..., n) количество ребер;

    3) не имеется циклов.

В программировании используется другое определение дерева, позволяющее при решении задач рассматривать дерево как структуру, состоящую из меньших деревьев (или поддеревьев), т.е. как рекурсивную структуру.

Рекурсивно дерево определяется как конечное множество T, состоящее из одного или более узлов (вершин), таких, что:

    1) существует один специально выделенный узел, называемый корнем дерева;

    2) остальные узлы разбиты на m ≥ 0 непересекающихся подмножеств Т1 , Т2 , ..., Тm , каждое из которых в свою очередь является деревом.

Деревья Т1 , Т2 , ..., Тm называются поддеревьями корня.

Из определения следует, что любой узел дерева является корнем некоторого поддерева, содержащегося в полном дереве. Число поддеревьев узла называют степенью узла. Узел называется концевым, если он имеет нулевую степень. Иногда концевые узлы называют листьями, а ребра - ветвями. Узел, не являющийся ни корнем, ни концевым узлом, называется узлом ветвления.

Таким образом, иерархическая древовидная структура, ориентированная от корня, удовлетворяет следующим условиям:

  • узел состоит из одного или нескольких атрибутов;

  • иерархия всегда начинается с корневого узла;

  • на верхнем уровне может находиться только один узел - корневой;

  • на нижних уровнях находятся порожденные (зависимые) узлы: они могут добавляться в вертикальном и горизонтальном направлениях без ограничения;

  • каждый порожденный узел, находящийся на уровне i, связан только с одним непосредственно исходным узлом (непосредственным родительским узлом), находящимся на верхнем уровне (i-1) иерархии дерева;

  • каждый исходный узел может иметь один или несколько непосредственно порожденных узлов, которые называются подобными (связи 1:M);

  • доступ к каждому порожденному узлу выполняется через его непосредственно исходный узел;

  • существует единственный иерархический путь доступа к любому узлу начиная от корня дерева (рис. 7.1),Рис. 07.01. Структура иерархической БД например путь ABEI.

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

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

Вершины дерева определения БД соответствуют введенным типам групп записей, с помощью которых выполнена интерпретация типов сущностей. Обычно допускают только простые типы групп, т.е. группа, представляющая вершину дерева определения, не должна включать составные и повторяющиеся группы, но их можно представить как самостоятельные вершины дерева определения. Корневой вершине дерева определения соответствует тип корневой группы, остальным вершинам - типы зависимых групп. Дуга дерева определения, соответствующая групповому отношению, представляет некоторый тип связи между рассматриваемыми типами сущностей (которые представлены соответствующими типами групп). Дуга исходит из типа родительской (исходной) группы и заходит в тип порожденной группы. Дуги обычно называют связью исходный - порожденный. Поскольку между двумя типами групп может быть не более одной такой связи, то на графической диаграмме схемы иерархической базы данных связи могут специально не помечаться. Тип зависимой группы можно идентифицировать соответствующей последовательностью связей исходный - порожденный. Иерархический путь в дереве определения представляется последовательностью групп, начинающейся типом корневой группы и заканчивающейся типом заданной группы.

Следствием внутренних ограничений иерархической модели является то, что каждому экземпляру зависимой группы в иерархической БД соответствует уникальное множество экземпляров родительских групп (по одному экземпляру каждого типа родительской группы).

ИерархияИерархия - это разновидность сети, являющаяся совокупностью деревьев (лесом), в которой все связи направлены от отца к сыну. Рассматривая этот тип моделей, будем использовать терминологию сетевых моделей, введя дополнительное понятие - «тип виртуальной логической записи» (необходим, когда надо поместить какой-либо тип записи в два или более деревьев иерархии или в нескольких местах в одном дереве). Такая логическая запись представляет собой указатель на логическую запись некоторого типа и устраняет избыточность.

Снова обратимся к рис. 3.4, в.Рис. 03.04. Модель БД 'Учебный процесс' Теперь придется переместить некоторые поля в другие таблицы. На рис. 7.2, а Рис. 07.02. а) Структура иерархической БД показана прямая связь ряда таблиц, на рис. 7.2, б Рис. 07.02. б) Структура иерархической БД - полная иерархическая МД, на которой логические (виртуальные) связи показаны штриховыми линиями.

7.2.
Программная реализация

В База данных иерархическаяиерархической МД имеется сильная зависимость логической структуры от физической, что хорошо видно из программы на языке СУБД IMS (табл. 7.1) и рис. 7.2.Рис. 07.02. Структура иерархической БД

На внутреннем уровне древовидные структуры могут быть представлены различными способами. Например, отдельный экземпляр структуры, соответствующий схеме базы данных, можно определить как экземпляр записи файла. В этом случае иерархическая база данных на внутреннем уровне будет представлена одним экземпляром этого файла. Многие иерархические СУБД могут поддерживать несколько различных баз данных. В этом случае каждая БД на внутреннем уровне представляется одним файлом, который объединяет экземпляры записей одного типа со структурой, соответствующей схеме этой базы данных. На рис. 7.2Рис. 07.02. Структура иерархической БД приведен пример схемы иерархической базы данных и ее возможной реализации на внутреннем уровне.

Программа на языке иерархической СУБД IMS

DBD NAME=DB3, ACCESS=HISAM

DATASET DO1=DEPTDO1, DEVICE=3380, OWFLW=DEPTOVF

SEGM NAME=PART, BYTES=32

LCHILD NAME=(COMP_ASSEMB, DB3), PAIR=ASSEMB_COMP

FIELD NAME=(PS, SEQ), BYTES=5, START=1

FIELD NAME=PD, BYTES=25, START=6

FIELD NAME=CL, BYTES=2, START=31

SEGM NAME=ASSEMB_COMP, BYTES=10

POINTER=(LPART, TWIN, LTWIN)

PARENT=(PART), (PART, PHYSICAL, DB3)

FIELD NAME=(PS, SEQ), BYTES=5, START=1

FIELD NAME=OTY, BYTES=5, START=6

SEGM NAME=COMP_ASSEMB, BYTES=10

POINTER=PAIRED

PARENT=PART, SOURCE=(ASSEMB_COMP, DB3)

FIELD NAME=(PS, SEQ), BYTES=5, START=1

FIELD NAME=OTY, BYTES=5, START=6

7.2.1.
Создание БД (ЯОД)

Базовыми языками иерархической БД по-прежнему могут быть COBOL, PL/I, Assembler.

Иллюстрацию Язык описания данныхЯОД удобно вести на основе программы на языке иерархической СУБД IMS. Объявляются имена БД, сегмента и полей. Для одного из полей, по которому идет упорядочение, указывается метка SEQ и количество порожденных сегментов: один (U) или много (M). Отмечается исходный (PARENT) сегмент. Может присутствовать поле указателя (POINTER), метод доступа (HISAM).

Введение логических связей обозначается командой LCHILD, в которой указываются имена порожденного логического сегмента и сегмента БД, а в команде PARENT - исходные физический и логический сегменты, БД.

7.2.2.
Использование БД (ЯМД)

Обновление осуществляется командами REPLACE (заменить) и DELETE (удалить текущий сегмент и порожденные). Вставка (INSERT) может быть по отношению к текущему исходному сегменту (INSERT S) или по указанию (INSERT клиенты WHERE ГОРОД=»СПб» ИМЯ АГЕНТА «Святослав»).

Помещение сегмента в область ввода-вывода осуществляется командой GET:

GET UNIQUE <имя сегмента>

WHERE <условие>,

GET NEXT,

GET NEXT WITHIN PARENT.

Рис. 7.3.Рис. 07.03. Реализация иерархической МД

© Центр дистанционного образования МГУП