Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_Infa.doc
Скачиваний:
169
Добавлен:
20.03.2016
Размер:
2.75 Mб
Скачать

7.2.4. Инвертированные списки

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

При организации инвертированного списка можно выделить три уровня (рис. 7.9).

Самый нижний уровень представлен собственно основным файлом.

Над этим уровнем строится еще два уровня, которые и представляют собой непосредственно инвертированный список.

  • На первом уровне этой структуры находится файл, в который помешаются значения вторичных индексов основного файла, причем в упорядоченном состоянии. В этом файле предусмотрено поле, куда помешается ссылка на второй уровень.

  • На втором уровне для каждого значения вторичного индекса строится цепочка блоков, содержащих номера записей основного файла с этим значением вторичного индекса. Адрес первого блока такой цепочки и помещается в поле ссылки первого уровня. При этом блоки второго уровня также упорядочены по значениям вторичного индекса.

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

  • найти в области первого уровня заданное значение вторичного индекса;

  • по ссылке считать блоки второго уровня, содержащие номера записей с заданным значением вторичного индекса;

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

Рис.7.9. Уровни инвертированного списка

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

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

Действительно, модификация основного файла в такой ситуации требует:

  • изменить запись основного файла;

  • исключить старую ссылку на предыдущее значение вторичного индекса;

  • добавить новую ссылку на новое значение вторичного индекса.

8. Управление реляционной базой данных

Для управления реляционной базой данных Э. Ф. Кодд ввел реляционные языки обработки данных — реляционную алгебру и реляционное исчисление.

Реляционная алгебра — это процедурный язык обработки реляционных таблиц. Это означает, что в реляционной алгебре используется пошаговый подход к созданию реляционных таблиц, содержащих ответы на запросы.

Реляционное исчисление — непроцедурный язык. В реляционном исчислении запрос создается путем определения таблицы запроса за один шаг.

Кодд показал логическую эквивалентность реляционной алгебры и реляционного исчисления. Это означает, что любой запрос, который можно сформулировать при помощи реляционного исчисления, также можно сформулировать, пользуясь реляционной алгеброй, и наоборот.

И реляционная алгебра, и реляционное исчисление в том виде, как они были сформулированы Коддом, являются теоретическими языками.

8.1. Реляционная алгебра

Ранее были определены основные операции по обновлению информации в реляционной базе данных. Данные операции обновления — это операции не над отношениями, а над кортежами отношения. Операторы реляционной алгебры используют одно или два из существующих отношений для создания нового отношения. Реляционная алгебра (или алгебра отношений) представляет собой совокупность операций высокого уровня над отношениями. Реляционная алгебра определяет следующие операции:

  • объединение;

  • разность;

  • произведение;

  • пересечение;

  • проекция;

  • выбор;

  • соединение;

  • деление.

Первые четыре операции взяты Коддом из математической теории множеств и практически совпадают с операциями теории множеств. Следующие четыре — новые операции, относящиеся только к реляционной модели данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]