Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt.rtf
Скачиваний:
283
Добавлен:
19.08.2013
Размер:
4.05 Mб
Скачать

Лекция 20 (db_l20.Ppt). Примеры моделей хранения и организации доступа к бд (dBase, ms sql Server, Oracle)

20.1. Физическая структура данных в dBase

Dbase-подобная база данных физически может состоять из специализированных файлов следующего назначения (слайд 2):

  • основного файла базы данных;

  • memo-файла для хранения длинных полей;

  • индексного файла.

20.1.1. Структура основного файла базы данных (типа .Dbf)

Файл базы данных состоит из записи заголовка и записей с данными. В записи заголовка, начинающейся с нулевой позиции, определяется структура базы данных (слайд 3).

Количество полей определяет число подзаписей полей. В базе данных для каждого поля существует одна подзапись поля (слайд 4).

Записи с данными следуют за заголовком и включают в себя фактическое содержимое полей. Длина записи (в байтах) определяется суммированием длин полей, указанных в заголовке.

Записи данных (значений полей) в файле начинаются с позиции, указываемой в записи заголовка в байтах 08-09. Записи начинаются с байта, содержащего признак удаления. Если в этот байт занесен пробел, то запись не удалялась; если же в первом байте – звездочка, то запись удалена. За признаком удаления следуют данные из полей, названия которых находятся в подзаписях полей.

20.1.2. Структура memo-файла (тип .Fpt)

Файл типа memo содержит одну запись заголовка файла и произвольное число блоков данных (слайд 5).

В записи заголовка располагается указатель на следующий свободный блок и размер блока в байтах, который устанавливается командой SET BLOCKSIZE (или фиксированная длина 512 байт для файлов типа .DBT) при создании файла. Запись заголовка начинается с нулевой позиции файла и занимает 512 байтов.

За записью заголовка следуют блоки, в которых содержатся заголовок блока и текст memo. В файл базы данных включены номера блоков, которые используются для ссылки на блоки memo. Расположение блока в memo-файле определяется умножением номера блока на размер блока (находящийся в записи заголовка). Все memo-блоки начинаются с четных адресов границ блоков.

20.1.3. Структура индексного файла (тип .Idx)

В индексных файлах располагается одна запись заголовка и одна или больше записей вершин. В записи заголовка находится информация о корневой вершине, текущем размере файла, длине ключа, особенностях индекса и сигнатура, а также представление ключа в коде ASCII, которое можно вывести на печать, и выражения FOR. Запись заголовка начинается с нулевой позиции файла (слайд 6).

Во всех других записях вершин содержится атрибут, количество существующих ключей и указатели на вершины, располагающиеся слева и справа (на том же уровне) от данной вершины (слайд 7, 8). Помимо этого, в них находится группа символов, представляющая значение ключа, и либо указатель на вершину нижнего уровня, либо подлинный номер записи в базе данных. Размер каждой записи равен 512 байтам.

20.2. Физическая структура данных в ms sql Server

Здесь приводится схематичное описание структур данных, характерных для MS SQL Server 7.0. Файлы операционной системы в MS SQL Server представляются как нумерованные устройства для хранения БД. Каждое устройство разбивается на виртуальные страницы по 8 Кбайт.

MS SQL Server используется следующая иерархия понятий (слайд 9):

База данных — некоторый объем файлового физического пространства для размещения данных, принадлежащих одной логической базе.

Файлы БД. Каждая база данных состоит не менее чем из двух файлов. Один из них отводится под журнал транзакций. Отдельный файл данных может принадлежать только одной базе данных.

Экстент. Пространство для хранения объектов выделяется блоками (экстентами) по 8 следующих друг за другом страниц размером 8К. Экстент является единицей выделения пространства. Поэтому при создании БД нужно указывать размер файла с точностью до 64Кбайт.

Страница. Файлы делятся на страницы размером по 8 Кбайт каждая. Логический номер страницы складывается из внутреннего номера базы данных, номера файла и номера страницы в файле. В рамках БД файлы нумеруются, начиная с 1, и так же нумеруются страницы в рамках файла.

Используется два типа экстентов: однородные и смешанные. Однородные экстенты всегда принадлежат только одному объекту. Смешанный экстент может использоваться несколькими объектами.

В SQL Server существуют несколько типов страниц (слайд 10).

Следующие типы страниц относятся к хранению и поиску информации:

  • страницы данных;

  • индексные страницы;

  • текстовые страницы;

  • страницы журнала транзакций;

Кроме этого используются также страницы размещения:

  • карты распределения блоков (основная и вторичная);

  • карты свободного пространства;

  • индексные карты размещения.

На странице всегда (в отличие от экстента) хранится однородная информация. Все страницы имеют заголовок, в котором хранится общая информация, используемая ядром СУБД для работы со страницами (слайд 11):

  • номер страницы в формате <номер файла, номер страницы>;

  • идентификатор объекта, которому принадлежит страница;

  • индекс и уровень внутри индексного дерева, которому принадлежит страница;

  • количество строк на странице;

  • общий объем свободного пространства на странице;

  • указатель на свободное пространство после последней строки на странице;

  • минимальная длина строки на странице;

  • объем зарезервированного пространства.

После заголовка следует информация о статусе страницы в картах распределения блоков и карте свободного пространства.

Соседние файлы в предмете Базы данных