Модели физической организации данных при бесфайловой

реклама
Модели физической
организации
данных при бесфайловой
организации
Распределение дискового
пространства



При распределении дискового
пространства рассматриваются две схемы
структуризации:
физическая, которая определяет хранимые
данные,
и логическая, которая определяет
некоторые логические структуры,
связанные с концептуальной моделью
данных
Классификация объектов
Определения





Чанк (chank) — представляет собой часть диска, физическое
пространство на диске, которое ассоциировано одному
процессу (on line процессу обработки данных).
Чацком может быть назначено неструктурированное
устройство, часть этого устройства, блочноориентированное устройство пли просто файл UNIX,
Чанк характеризуется маршрутным именем, смещением (от
физического начала устройства до начальной точки на
устройстве, которая используется как чанк), размером,
заданным в Кбайтах пли Мбайтах.
Логические единицы образуются совокупностью экстентов,
то есть таблица моделируется совокупностью экстентов.
Экстент — то непрерывная область дисковой памяти.
экстенты






Для моделирования каждой таблицы используется 2 типа
экстентов; первый и последующие.
Первый экстент задается при создании нового объекта типа
таблица, его размер задается при создании.
EXTENTSIZE — размер первого экстента, NEXT SIZE - размер
каждого следующего экстента.
Минимальный размер экстента в каждой системе свой, но в
большинстве случаев он равен 4 страницам, максимальный
— 2 Гбайтам.
Новый экстент создастся после заполнения предыдущего и
связывается с ним специальной ссылкой, которая
располагается на последней странице экстента.
В ряде систем экстенты называются сегментами, но
фактически эти понятия эквиваленты.


Внутри экстента идет учет свободных
станиц.
Между экстентами, которые располагаются
друг за другом без промежутков,
производится своеобразная операция
конкатенации, которая просто увеличивает размер первого экстента.



Механизм удвоения размера экстента: если число
выделяемых экстентов для процесса растет в
пропорции, кратной 16, то размер экстента
удваивается каждые 16 экстентов.
Например, если размер текущего экстента 16
Кбайт, то после заполнения 1G экстентов данного
размера размер следующего будет увеличен до 32
Кбайт.
Совокупность экстентов моделирует логическую
единицу — таблицу-отношение (tblspace).





Экстенты состоят из четырех типов
страниц:
страницы данных,
страницы индексов,
битовые страницы и
страницы blob-объектов.
Страницы данных



Основной единицей осуществления операций обмена
(ввода-вывода) является страница данных.
Все данные хранятся постранично.
При табличном хранении данные на одной странице
являются однородными, то есть станица может хранить
только данные или только индексы.







Слот — это 4-6aйтовое слово, 2 байта соответствуют
смещению строки на странице и 2 байта - длина строки.
Слоты характеризуют размещение строк данных
на странице.
На одной странице хранится не более 255 строк.
В базе данных каждая строка имеет уникальный
идентификаторо в рамках всей базы данных, часто
называемый RowID - номер строки,
RowID имеет размер 4 байта и состоит из номера страницы
и номера строки на странице.
Под номер страницы отводится 3 байта, поэтому при такой
идентификации возможна адресация к 16 777 215
страницам.
переполнение страниц



При переполнении страниц создается
специальный вид страниц, называемых
страницами остатка.
Строки, не уместившиеся на основной
странице, связываются (линкуются) со
своим продолжением на страницах остатка
с помощью ссылок-указателей «вперед»
(то есть на продолжение),
которые содержат номер страницы и номер
слота на странице.
Другие страницы



Страницы индексов организованы в виде
В-деревьев.
Страницы blob предназначены для
хранения слабо структурированной
информации, содержащей тексты
большого объема, графическую
информацию, двоичные коды.
Эти данные рассматриваются как потоки
байтов произвольного размера, в
страницах данных делаются ссылки на эти
страницы.
Битовые страницы




Битовые страницы служат для трассировки других
типов страниц. В зависимости от трассируемых
страниц битовые страницы строятся по 2-битовой
или 4-битовой схеме.
4-битовые страницы служат для хранения
сведений о столбцах типа Varchar, Byte, Text, для
остальных типов данных используются 2-битовые
страницы.
Битовая структура трассирует 32 страницы.
Каждая битовая структура представлена двумя 4байтными словами.
Каждая i-я позиция описывает одну i-тую
страницу. Сочетание разрядов в 1-х позициях двух
слов обозначает состояние данной страницы: ее
тип и занятость.
специальные структуры



При обработке данных СУБД организует
специальные структуры в оперативной памяти,
называемые разделяемой памятью, и
специальные структуры во внешней памяти,
называемые журналами транзакций.
Разделяемая память служит для кэширования
данных при работе с внешней памятью с целью
сокращения времени доступа, кроме того,
разделяемая память служит для аффективной
поддержки режимов одновременной
параллельной работы пользователей с базой
данных.
Журнал транзакций служит для управления
корректным выполнением транзакций.
Структура хранения
данных для MS SQL






Файлы операционной системы представляются
как устройства для хранения БД (Device),
устройства нумеруются.
Сервер может управлять 256 устройствами.
Главное устройство называется MASTER: на нем
хранятся системные базы данных: Master, Model,
Pubs, TempDb.
Устройство Master имеет номер 0 — ноль.
Каждое устройство разбивается не более чем на
16 777 216 виртуальных страниц по 2 Кбайта
(Virtual page),
максимальный размер устройства 32 Гбайт
единицы хранения данных




Физически используются 3 единицы
хранения данных:
страница;
блок (extent) — 16Кб из 8 следующих
друг за другом страниц;
единица размещения (Allocation Unit)
— 512 Кб из 32 последовательных
блоков (256 страниц).
Страницы






Страницы бывают пяти типов:
страницы размещения (Allocation page);
страницы данных (Data page);
индексные страницы (Index page);
текстовые страницы (Text/image page);
статистические страницы (Distribution
page).
Заголовок страницы



Любая страница имеет заголовок,
занимающий 32 байта.
Заголовок содержит номер страницы,
номера предыдущей и следующей страниц,
идентификатор объекта-владельца
страницы и сведения о свободном
пространстве на странице
Как видно из заголовка, страницы связаны
в двунаправленный список.
страницы размещения.




Первая страница каждой единицы размещения
является страницей размещения.
Таким образом, все страницы, кратные 256,
начиная с 0 являются страницами размещения.
Они хранят информацию, необходимую для
управления размещением страниц внутри
единицы размещения.
Страница размещения содержит 32 16-байтовых
структуры, по одной на каждый блок.
Структура








Каждая структура содержит следующую
информацию;
идентификатор объекта-владельца блока;
номер следующего блока в цепи;
номер предыдущего блока в цепи;
битовую карту распределения блока (Allocation
bitmap);
битовую карту перераспределения блока
(Deallocation bitmap);
идентификатор индекса (если таковой есть),
размещенного на блоке;
статус.
Битовая карта


Битовая карта распределения блока
хранится в единственном байте,
каждый бит которого соответствует
одной странице блока.
Если бит равен 1, то страница в
данный момент содержит данные,
если 0 — то страница свободна.
Страницы данных





Страницы данных используются для
хранения собственно данных.
Структурно страницу данных можно
подразделить на три зоны:
заголовок,
строки данных и
таблицу смещения
Структура страницы данных
Страницы данных



Страницы данных, относящиеся к одной
таблице, объединяются в
двунаправленный список и организуют
цепочки.
Данные хранятся на страницах в виде
строк (кортежей).
Каждая строка данных кроме собственно
данных хранит дополнительную
форматирующую информацию.
Структура строки данных
Таблица смещений




Таблица смещений (Column offset table)
состоит из:
таблицы подстройки смещений (Offset table
adjust bytes) - по 1 дополнительному байту
на каждое поле, смешение которого
превышает 256 плюс 1 байт;
указателя на местоположение таблицы
смещений;
указателя на местоположение полей
переменной длины (1 байт на каждое
поле).
Таблица смещения строк




Местоположение строки на странице
определяется таблицей смещения строк (Row
offset table).
Таблица располагается в самом конце страницы и
забирает дополнительно по 2 байта па каждую
строку данных
Чтобы найти строку с заданным номером, MS SQL
Server считывает из соответствующей ячейки
смещение, которое и является адресом требуемой
строки,
Ячейка таблицы однозначно связана с
определенным номером строки.
Пример таблицы смещения
Хранение длинных
текстовых данных
Скачать