Главная Программы Учебное пособие Практикум Дополнительно
    Терминология
  Глава 1
  Глава 2
  Глава 3
  Глава 4
  Глава 5
  Глава 6
  Глава 7
  Глава 8
  Глава 9
  Глава 10
  Литература

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

2. Дореляционные СУБД

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

Все ранние системы не основывались на каких-либо абстрактных моделях. Понятие модели данных фактически вошло в обиход специалистов в области БД только вместе с реляционным подходом. Абстрактные представления ранних систем появились позже на основе анализа и выявления общих признаков у различных конкретных систем.

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

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

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

 

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

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

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

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

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

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

Операторы над адресуемыми записями. Типичный набор операторов:

  • LOCATE FIRST – найти первую запись таблицы T в физическом порядке. Возвращает адрес записи.
  • LOCATE FIRST WITH SEARCH KEY EQUAL – найти первую запись таблицы T с заданным значением ключа поиска K. Возвращает адрес записи.
  • LOCATE NEXT – найти первую запись, следующую за записью с заданным адресом в заданном пути доступа. Возвращает адрес записи.
  • LOCATE NEXT WITH SEARCH KEY EQUAL – найти следующую запись таблицы T в порядке пути поиска с заданным значением K. Должно быть соответствие между используемым способом сканирования и ключом K. Возвращает адрес записи.
  • LOCATE FIRST WITH SEARCH KEY GREATER – найти первую запись таблицы T в порядке ключа поиска K cо значением ключевого поля, большим заданного значения K. Возвращает адрес записи.
  • RETRIVE – выбрать запись с указанным адресом.
  • UPDATE – обновить запись с указанным адресом.
  • DELETE – удалить запись с указанным адресом.
  • STORE – включить запись в указанную таблицу; операция генерирует адрес записи.

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

 

2.2. Иерархические БД

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

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

 

Рисунок 2Пример иерархии

 

Здесь «Группа» является предком для «Альбомы» и «Участники группы», а «Альбомы» и «Участники группы» – потомки «Группа». Между типами записи поддерживаются связи.

 

Рисунок 3 Пример одного экземпляра дерева

 

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

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

  • Найти указанное дерево БД (например, группу с номером 310);
  • Перейти от одного дерева к другому;
  • Перейти от одной записи к другой внутри дерева (например, от группы к первому участнику группы);
  • Перейти от одной записи к другой в порядке обхода иерархии;
  • Вставить новую запись в указанную позицию;
  • Удалить текущую запись.

Ограничения целостности иерархических систем:

  • Автоматически поддерживается целостность ссылок между предками и потомками.
  • Основное правило: никакой потомок не может существовать без своего родителя.

Аналогичное поддержание целостности по ссылкам между записями, не входящими в одну иерархию, не поддерживается.

 

 2.3. Сетевые системы

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

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

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

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

 

Рисунок  4.  Пример сетевой схемы БД:

 

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

  • Найти конкретную запись в наборе однотипных записей (участника группы Джени);
  • Перейти от предка к первому потомку по некоторой связи (к первому участнику группы 310);
  • Перейти к следующему потомку в некоторой связи (от участника группы Джени к участнику группы Джонас);
  • Перейти от потомка к предку по некоторой связи (найти группу по участнику Джени);
  • Создать новую запись;
  • Уничтожить запись;
  • Модифицировать запись;
  • Включить в связь;
  • Исключить из связи;
  • Переставить в другую связь и т.д.

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

 Достоинства дореляционных СУБД:

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

Недостатки дореляционных СУБД:

  • Сложны в использовании.
  • Необходимы знания о физической организации.
  • Прикладные системы зависят от этой организации.
  • Логика перегружена деталями организации доступа к БД.