Системы, основанные на инвертированных списках



 

К числу наиболее известных и типичных представителей таких систем относятся Datacom/DB компании Applied Data Research, Inc. (ADR), ориентированная на использование на машинах основного класса фирмы IBM, и Adabas компании Software AG.

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

Структуры данных

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

1. Строки таблиц упорядочены системой в некоторой физической последовательности.

2. Физическая упорядоченность строк всех таблиц может определяться и для всей БД (так делается, например, в Datacom/DB).

3. Для каждой таблицы можно определить произвольное число ключей поиска, для которых строятся индексы. Эти индексы автоматически поддерживаются системой, но явно видны пользователям.

 

Манипулирование данными

Поддерживаются два класса операторов:

1. Операторы, устанавливающие адрес записи, среди которых:

1.1. прямые поисковые операторы (например, найти первую запись таблицы по некоторому пути доступа);

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

2. Операторы над адресуемыми записями

Типичный набор операторов:

1. Найти первую запись таблицы T в физическом порядке;

2. Найти первую запись таблицы T с заданным значением ключа поиска K;

3. Найти запись, следующую за записью с заданным адресом в заданном пути доступа;

4. Найти следующую запись таблицы T в порядке пути поиска с заданным значением K;

5. Найти первую запись таблицы T в порядке ключа поиска K cо значением ключевого поля, большим заданного значения K;

6. Выбрать запись с указанным адресом;

7. Обновить запись с указанным адресом;

8. Удалить запись с указанным адресом;

9. Включить запись в указанную таблицу; операция генерирует адрес записи.

 

Ограничения целостности

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

 

Иерархическая модель

 

Типичным представителем (наиболее известным и распространенным) является Information Management System (IMS) фирмы IBM. Первая версия появилась в 1968 г. До сих пор поддерживается много баз данных, что создает существенные проблемы с переходом как на новую технологию БД, так и на новую технику.

 

Иерархические структуры данных

Иерархическая БД состоит из упорядоченного набора деревьев; более точно, из упорядоченного набора нескольких экземпляров одного типа дерева.

Тип дерева (рис. 2.1) состоит из одного "корневого" типа записи и упорядоченного набора из нуля или более типов поддеревьев (каждое из которых является некоторым типом дерева). Тип дерева в целом представляет собой иерархически организованный набор типов записи.

 

 

рис. 2.1  Пример типа дерева (схемы иерархической БД)

 

Здесь (рис. 2.1) Группа является предком для Куратора и Студенты, а Куратор и Студенты – потомки Группа. Между типами записи поддерживаются связи.

База данных с такой схемой могла бы выглядеть следующим образом (рис. 2.2):

 

рис. 2.2 Один экземпляр дерева.

 

Все экземпляры данного типа потомка с общим экземпляром типа предка называются близнецами. Для БД определен полный порядок обхода – сверху-вниз, слева-направо.

В IMS использовалась оригинальная и нестандартная терминология: "сегмент" вместо "запись", а под "записью БД" понималось все дерево сегментов.

 

Манипулирование данными

Примерами типичных операторов манипулирования иерархически организованными данными могут быть следующие:

1. Найти указанное дерево БД (например, отдел 310);

2. Перейти от одного дерева к другому;

3. Перейти от одной записи к другой внутри дерева (например, от отдела - к первому сотруднику);

4. Перейти от одной записи к другой в порядке обхода иерархии;

5. Вставить новую запись в указанную позицию;

6. Удалить текущую запись.

 

Ограничения целостности

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

В иерархических системах поддерживалась некоторая форма представлений БД на основе ограничения иерархии. Примером представления приведенной выше БД может быть иерархия, изображенная на рис. 2.3.

 

рис. 2.3 Пример представления иерархической БД.

 

Сетевая модель

 

Типичным представителем является Integrated Database Management System (IDMS) компании Cullinet Software, Inc., предназначенная для использования на машинах основного класса фирмы IBM под управлением большинства операционных систем. Архитектура системы основана на предложениях Data Base Task Group (DBTG) Комитета по языкам программирования Conference on Data Systems Languages (CODASYL), организации, ответственной за определение языка программирования Кобол. Отчет DBTG был опубликован в 1971г., а в 70-х годах появилось несколько систем, среди которых IDMS.

 

Сетевые структуры данных

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

Сетевая БД состоит из набора экземпляров каждого типа записи и набора экземпляров каждого типа связи (рис. 2.4).

Тип связи определяется для двух типов записи: предка и потомка. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка. Для данного типа связи L с типом записи предка P и типом записи потомка C должны выполняться следующие два условия:

1. Каждый экземпляр типа P является предком только в одном экземпляре L;

2. Каждый экземпляр C является потомком не более, чем в одном экземпляре L.

На формирование типов связи не накладываются особые ограничения; возможны, например, следующие ситуации:

1. Тип записи потомка в одном типе связи L1 может быть типом записи предка в другом типе связи L2 (как в иерархии).

2. Данный тип записи P может быть типом записи предка в любом числе типов связи.

3. Данный тип записи P может быть типом записи потомка в любом числе типов связи.

4. Может существовать любое число типов связи с одним и тем же типом записи предка и одним и тем же типом записи потомка; и если L1 и L2 – два типа связи с одним и тем же типом записи предка P и одним и тем же типом записи потомка C, то правила, по которым образуется родство, в разных связях могут различаться.

5. Типы записи X и Y могут быть предком и потомком в одной связи и потомком и предком – в другой.

6. Предок и потомок могут быть одного типа записи.

 

 

рис. 2.4 Простой пример сетевой схемы БД.

 

Манипулирование данными

Примерный набор операций может быть следующим:

1. Найти конкретную запись в наборе однотипных записей (инженера Сидорова);

2. Перейти от предка к первому потомку по некоторой связи (к первому сотруднику отдела 310);

3. Перейти к следующему потомку в некоторой связи (от Сидорова к Иванову);

4. Перейти от потомка к предку по некоторой связи (найти отдел Сидорова);

5. Создать новую запись;

6. Уничтожить запись;

7. Модифицировать запись;

8. Включить в связь;

9. Исключить из связи;

10. Переставить в другую связь и т.д.

Ограничения целостности

В принципе их поддержание не требуется, но иногда требуется целостности по ссылкам (как в иерархической модели).

 


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

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






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