Подтема: Манипулирование данными
Лекция: Ранние подходы к организации БД. Системы, основанные на инвертированных списках, иерархические и сетевые СУБД. Примеры. Сильные места и недостатки ранних систем.
Наиболее общие характеристики ранних систем:
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 – включить запись в указанную таблицу ; операция генерирует адрес записи.