К числу наиболее известных и типичных представителей таких систем относятся Datacom/DB
компании Applied Data Research, Inc. (ADR), ориентированная на использование на
машинах основного класса фирмы IBM, и Adabas компании Software AG.
Организация
доступа к данным на основе инвертированных списков используется практически во
всех современных реляционных СУБД, но в этих системах пользователи не имеют непосредственного
доступа к инвертированным спискам (индексам). Кстати, когда мы будем рассматривать
внутренние интерфейсы реляционных СУБД, вы увидите, что они очень близки к пользовательским
интерфейсам систем, основанных на инвертированных списках.
База данных, организованная с помощью инвертированных
списков, похожа на реляционную БД, но с тем отличием, что хранимые таблицы и пути
доступа к ним видны пользователям. При этом:
Строки таблиц упорядочены
системой в некоторой физической последовательности.
Физическая упорядоченность
строк всех таблиц может определяться и для всей БД (так делается, например, в
Datacom/DB).
Для каждой таблицы можно определить произвольное число ключей
поиска, для которых строятся индексы. Эти индексы автоматически поддерживаются
системой, но явно видны пользователям.
Операторы,
устанавливающие адрес записи, среди которых:
прямые
поисковые операторы (например, найти первую запись таблицы по некоторому пути
доступа);
операторы, находящие запись в терминах относительной позиции от
предыдущей записи по некоторому пути доступа.
Операторы
над адресуемыми записями
Типичный набор операторов:
LOCATE FIRST - найти первую запись таблицы T в физическом порядке; возвращает
адрес записи;
LOCATE FIRST WITH SEARCH KEY EQUAL - найти первую запись таблицы
T с заданным значением ключа поиска K; возвращает адрес записи;
LOCATE NEXT
- найти первую запись, следующую за записью с заданным адресом в заданном пути
доступа; возвращает адрес записи;
LOCATE NEXT WITH SEARCH KEY EQUAL - найти
cледующую запись таблицы T в порядке пути поиска с заданным значением K; должно
быть соответствие между используемым способом сканирования и ключом K; возвращает
адрес записи;
LOCATE FIRST WITH SEARCH KEY GREATER - найти первую запись таблицы
T в порядке ключа поиска K cо значением ключевого поля, большим заданного значения
K; возвращает адрес записи;
RETRIVE - выбрать запись с указанным адресом;
UPDATE - обновить запись с указанным адресом;
DELETE - удалить запись
с указанным адресом;
STORE - включить запись в указанную таблицу; операция
генерирует адрес записи.
Общие правила определения целостности БД отсутствуют. В некоторых системах поддерживаются
ограничения уникальности значений некоторых полей, но в основном все возлагается
на прикладную программу.