Этапы доступа к БД

 

Опишем последовательность действий при доступе к БД (см. рис. 2.7):

  1. Сначала в СУБД определяется искомая запись, а затем для ее извлечения запрашивается диспетчер файлов (ДФ).
  2. Диспетчер файлов одним из рассмотренных способов адресации определяет страницу, на которой находится искомая запись, а затем для ее извлечения запрашивается диспетчер дисков (ДД).
  3. Диспетчер дисков определяет физическое положение искомой страницы на диске и посылает запрос на ввод – вывод данных (страница уже может находиться в ОЗУ).

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

ДД часто бывает компонентом ОС, с помощью которого выполняются все операции ввода/вывода, используя физические адреса записей. Однако ДФ не обязательно знать физические адреса записей, достаточно рассматривать диск как набор страниц фиксированного размера с уникальным идентификатором набора страниц.

 

 

запрос хранимых записей

запрос хранимых страниц

дисковые операции ввода/

вывода

 

Рисунок 2.7 Схема доступа к БД

 

Страница внутри набора обладает уникальным идентификационным номером страницы. Соответствие физических адресов на диске и номера станиц достигается с помощью ДД.

Преимущества страничной организации - все компоненты высокого уровня не зависят от конкретного диска.

Диск – это набор хранимых файлов. Файл – хранимый набор однотипных записей. В общем случае хранимый файл может храниться в памяти различными способами:

· на одном томе памяти (диске);

· на нескольких томах;

· физически упорядоченным в соответствии со значением некоторого хранимого поля;

· упорядоченным с помощью одного или нескольких индексов;

· упорядоченным с помощью цепочек указателей;

· к нему может быть обеспечен доступ методом хэш-адресации;

· хранимые записи могут быть объединены в блоки (несколько логических записей в одной физической записи).

Набор страниц может содержать несколько хранимых файлов. Каждый хранимый файл имеет имя или идентификационный номер (file ID), уникальный в данном наборе страниц. А каждая хранимая (логическая) запись обладает идентификационным номером (record ID).

ДФ выполняет следующие операции с файлами:

1. извлечь хранимую запись r из хранимого файла f;

2. заменить хранимую запись r в хранимом файле f;

3. удалить хранимую запись r из хранимого файла f;

4. добавить новую хранимую запись r в хранимый файл f;

5. создать новый хранимый файл f;

6. удалить хранимый файл f.

В одних СУБД ДФ – компонент ОС, а в других – СУБД.

Все страницы диска делятся на несвязанные наборы. Один из наборов, набор пустых страниц, - свободное пространство на диске.

Операции, выполняемые ДД с наборами страниц:

1. извлечь страницу P из набора S;

2. заменить страницу P из набора S;

3. добавить новую страницу в набор S (извлечь ее из набора пустых страниц и добавить в набор S);

4. удалить страницу P из набора S (поместить ее в набор пустых страниц).

Пример 2.1 Рассмотрим БД «Заказы деталей», которая содержит таблицы ПОСТАВЩИКИ (Р1, Р2, Р3, Р4, Р5); ДЕТАЛИ (Д1, Д2, Д3, Д4, Д5, Д6); ПОСТАВКИ (РД1, РД2, РД3, РД4, РД5, РД6). Для размещения БД будет создан набор страниц:

1Р1 2Р2 3Р3 4Р4 5Р5
6Д1 7Д2 8Д3 9Д4 10Д5 11Д6
12РД1 РД2 14РД3 15РД4 16РД5 17РД6
19пустые станицы на диске

 

На странице с номером 0 хранится информация о структуре БД: количестве записей в таблице; их распределении по страницам; о номерах и количестве пустых страниц.Выполним действия по модификации БД.

Добавить запись о поставщике Р6. Для этого ДФ вставляет новую хранимую запись, а ДД ищет первую пустую страницу (18), а затем добавляет ее к набору страниц поставщиков.

Удалить запись о поставщике Р2. ДФ удаляет запись, а ДД возвращает страницу 2 в набор пустых страниц.

Добавить новую запись о детали Д7. Для этого ДФ вставляет новую хранимую запись, а ДД ищет первую пустую страницу (2), а затем добавляет ее к набору страниц о деталях.

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

Для некоторого хранимого файла всегда можно осуществить последовательный доступ ко всем хранимым записям обычно в порядке возрастания RID (под термином «последовательный» понимаем доступ согласно последовательности записей внутри страницы и последовательности страниц внутри набора страниц). Такая последовательность называется физической, хотя она не всегда соответствует физическому расположению данных на диске. Это наиболее простой способ доступа к данным - последовательное сканирование.

Для ускорения поиска используются технологии хеширования, индексирования, поиска с использованием В-деревьев.