- •Глава 9 Физические модели баз данных
- •Файловые структуры, используемые для хранения информации в базах данных
- •Стратегия разрешения коллизий с областью переполнения
- •Организация стратегии свободного замещения
- •Индексные файлы
- •Файлы с плотным индексом, или индексно-прямые файлы
- •Файлы с неплотным индексом, или индексно-последовательные файлы
- •Организация индексов в виде в-tree (в-деревьев)
- •Моделирование отношений «один-ко-многим» на файловых структурах
- •Моделирование отношения 1:м с использованием однонаправленных указателей
- •Алгоритм нахождения нужных записей «подчиненного» файла
- •Алгоритм удаления записи из цепочки «подчиненного» файла
- •Инвертированные списки
- •Модели физической организации данных при бесфайловой организации
- •Структура хранения данных для ms sql 6.5
- •Структуры хранения данных в sql Server 7.0
- •Карты распределения блоков
- •Карты свободного пространства
- •Карты размещения
- •Страницы данных
- •Строки данных
- •Текстовые страницы
- •Страницы журнала транзакций
- •Архитектура разделяемой памяти
- •Глава 10 Распределенная обработка данных
- •Терминология
- •Модели «клиент—сервер» в технологии баз данных
- •Двухуровневые модели
- •Модель удаленного управления данными. Модель файлового сервера
- •Модель удаленного доступа к данным
- •Модель сервера баз данных
- •Модель сервера приложений
- •Модели серверов баз данных
- •Типы параллелизма
- •Глава 11 Модели транзакций
- •Свойства транзакций. Способы завершения транзакций
- •Журнал транзакций
- •Журнализация и буферизация
- •Индивидуальный откат транзакции
- •Восстановление после мягкого сбоя
- •Физическая согласованность базы данных
- •Восстановление после жесткого сбоя
- •Параллельное выполнение транзакций
- •Уровни изолированности пользователей
- •Гранулированные синхронизационные захваты
- •Предикатные синхронизационные захваты
- •Метод временных меток
- •Глава 12 Встроенный sql
- •Операторы, связанные с многострочными запросами
- •Оператор определения курсора
- •Оператор открытия курсора
- •Оператор чтения очередной строки курсора
- •Оператор закрытия курсора
- •Удаление и обновление данных с использованием курсора
- •Хранимые процедуры
- •Триггеры
- •Динамический sql
- •Глава 6. Проектирование реляционных бд на основе
- •Глава 7. Мифологическое моделирование . . .............. 121
- •Глава 8. Принципы поддержки целостности
- •Глава 9. Физические модели баз данных................. 162
Структуры хранения данных в sql Server 7.0
В новой версии сервера баз данных фирма Microsoft реализовала абсолютно новый механизм хранения.
SQL Server 7.0 организует следующую иерархию хранения:
База данных — некоторый объем физического пространства, на котором размещаются данные, принадлежащие одной логической базе данных.
Файл. Каждая база данных содержит не менее двух файлов. Один из них отводится под журнал транзакций. И в отличие от версии 6.5 в новой версии журнал транзакций не может располагаться в одном файле с данными. И еще одно принципиальное отличие — в новой версии каждый файл может принадлежать только одной базе данных, у нас не может быть разделяемых файлов.
Страница. Файлы делятся на страницы размером по 8 Кбайт каждая. Логический номер страницы складывается из внутреннего номера базы данных, номера файла и номера страницы в файле. В рамках БД файлы нумеруются, начиная с 1, и так же нумеруются страницы в рамках файла.
Блоки (экстенты, extents). Пространство под объекты отводится блоками по 8 следующих друг за другом страниц. Блок является основной единицей отведения пространства. Поэтому при создании БД можно указывать размер файла с точностью до 64 Кбайт. Для суперкомпьютеров заложена возможность увеличения размера блоков до 128 страниц.
В отличие от версии 6.5 объекты БД не обязательно занимают целый блок. На начальном этапе заполнения объект может занимать внутри блока несколько страниц. Поэтому существуют два типа блоков:
О Однородные (Uniform). Все страницы однородного блока принадлежат одному объекту БД.
Смешанные (Mixed). Разные страницы в блоке принадлежат разным объектам.
Когда объект создается, то обычно его первые страницы отводятся в смешанном блоке, по мере роста объекта он уже размещается в однородных блоках.
В SQL 7.0 существуют уже 7 типов страниц:
Q страница данных (Data page);
Q индексные страницы (Index page);
О страницы журнала транзакций (Log page);
Q текстовые страницы (Text/image page);
О карты распределения блоков (Global allocation map page);
Q карты свободного пространства (Page free space page);
Q индексные карты размещения (Index allocation map page).
Все страницы имеют заголовок размером 96 байтов. В заголовке хранится общая информация, используемая ядром СУБД для работы со страницами. На странице в отличие от блока хранится однородная информация. Поэтому среди параметров страницы задаются:
О номер страницы в формате <номер файла, номер страницы>;
Q идентификатор объекта, которому принадлежит страница;
О номер индекса, которому принадлежит страница;
Q уровень внутри индексного дерева, которому принадлежит страница;
Q количество отведенных строк на странице, количество заполненных слотов; Q общий объем свободного пространства на странице;
Q указатель на расположение свободного пространства после последней строки на странице;
Q минимальная длина строки на странице; Q объем зарезервированного пространства.
После заголовка следует информация о статусе страницы в картах распределения блоков и карте свободного пространства.
Новыми в архитектуре дисковой памяти являются страницы размещения, В этих страницах хранятся сведения о размещении данных. SQL Server 7.0 использует три типа страниц размещения: карты распределения блоков, карты свободного пространства, индексные карты размещения. SQL Server 7.0 хранит информацию размещения на разных уровнях: на уровне блоков, на уровне страниц, на уровне объектов. Такой разносторонний мониторинг помогает СУБД оптимизировать работу в соответствии с требованиями конкретного запроса.