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

Лекция: Ранние подходы к организации БД. Системы, основанные на инвертированных списках, иерархические и сетевые СУБД. Примеры. Сильные места и недостатки ранних систем.

Наиболее общие характеристики ранних систем:

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

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

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

4. Можно считать, что уровень средств в ранних СУБД соотносится с уровнем файловых систем примерно так же, как уровень языка Кобол соотносится с уровнем языка Ассемблера. При таком взгляде уровень реляционных систем соответствует уровню языков Ада Или APL.

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

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

Подтема: Основные особенности систем, основанных на инвертированных списках

К числу наиболее известных и типичных представителей таких систем относятся: Datacom DB и др., ориентированные на использование машин IBM.

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

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

Подтема: Структуры данных

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

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

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

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

Подтема: Манипулирование данными.

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

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

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

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

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

Locate First – Найти первую запись таблицы Т в физическом порядке возвращает адрес записи;

Locate First with search key equal – найти первую запись таблицы с заданным значением ключа поиска К; возвращает адрес записи;

Locate next – найти первую запись, следующую за записью с заданным адресом пути доступа; возвращает адрес записи;

Locate next with search key equal – найти следующую с ключом равным К. Найти следующую запись таблицы в порядке пути поиска с заданным значением К; возвращает адрес записи;

Locate first with search key greater – найти первую запись таблицы Т в порядке ключа поиска К со значением ключевого поля, большим заданного значения К; возвращает адрес записи;

Retrive - выбрать запись с указанным адресом;

Update – обновить запись с указанным адресом;

Delete – удалить запись с указанным адресом;

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