Прифайловойорганизацииобменданнымимеждуоперативнойивнешнейпамятью осуществляетсяподуправлениемоперационнойсистемы (ОС).Основуэтогообмена составляютблокизаписей,входящиевсоставфайлов,ибуфераоперативнойпамяти, выделяемые ОС. Ясно, что всю работу по управлению буферами берет на себя ОС. ПричиныпередачиуправленияпространствомвнешнейпамятиотОСкСУБДбыли названы в начале главы; еще раз отметим, что при бесфайловой организации внешней памяти операционная среда не получает непосредственного доступа к этому пространству.
Замечание 1. Физическая организация современных баз данных является наиболее закрытой и является коммерческой тайной для большинства коммерческих СУБД. И здесь не существует никаких стандартов. Однако в своей основе СУБД ориентированы на реализацию реляционных моделей данных, поэтому можно сформулировать какие-то общие подходы к управлению внешней памяти.
Замечание 2. Следует отметить, что некоторые механизмы, описываемые ниже, используются и при файловом управлении.
Структура и типы страниц
Основной единицей хранения и манипулирования данными при бесфайловой организации является страница памяти (или блок данных) - часть пространства памяти среды хранения базы данных, организованного таким образом, что оно состоит из последовательности таких частей (страниц), имеющих одинаковую длину.
Страница является единицей обмена с внешней памятью. Размер страницы фиксирован для базы данных и устанавливается при ее (базы) создании. Страницы памяти имеют уникальные идентификаторы, в качестве которых обычно используются их последовательные номера. Содержимое страницы памяти может быть прочитано в буфер обмена или записано во внешнюю память из буфера за одно обращение к устройству внешней памяти. В некоторых системах страницы памяти могут иметь внутреннюю организацию, например, могут обладать индексом, обеспечивающим прямой доступ к содержащимся на странице хранимым записям. Страницы с простейшей организацией, предусматривающей последовательное размещение в них записей, в некоторых методах доступа называются блоками записей.
Выделяют четыре типа страниц:
- страницы данных,
- страницы индексов,
- страницы blob-объектов,
- битовые страницы.
Страница данных. Основная единица осуществления операций обмена. Структура страницы данных: таблица
заголовок
Содержание
слоты
Заголовок страницы включает внутрисистемную информацию, используемую СУБД в механизме управления страницами.
Данные на странице представляются в виде строк. Каждая строка соответствует некоторому кортежу отображаемого отношения.
Слоты характеризуют размещение строк данных на странице. В базе данных каждый кортеж имеет уникальный внутрисистемный идентификатор, включающий номер страницы и номер строки на странице, в которую отображается данный кортеж. Содержимое слота и составляет идентификатор соответствующей ему (по номеру на странице) строки. При упорядочивании кортежей отношения по значению какого-либо атрибута физического перемещения строк на соответствующих страницах не происходит. Вместо этого производится перестройка содержимого слотов.
Страница индексов. Страницы индексов предназначены для хранения индексных структур, используемых СУБД в реализации методов доступа, и организованы в виде В-деревьев.
Страница blob. Страницы blob (Binary Large Object) предназначены для хранения слабоструктурированной информации, содержащей тексты большого объема, графическую информацию, двоичные коды. Эти данные рассматриваются как потоки байтов произвольного размера, а в страницах данных формируются ссылки на эти страницы. Данные таких типов в ранних СУБД относились к типу MEMO.
Битовая страница. Битовые страницы содержат описатели других типов страниц. Описатель страницы включает две составляющих – тип страницы и ее состояние (свободна/занята).