Основная единица хранения данных на уровне файла базы данных – это страница, которая участвует в операциях ввода-вывода как единое целое даже тогда, когда требуется всего одна строка. Каждая страница файла базы данных имеет объем 8192 байт. Страницы объединяются в экстенты. Экстент состоит из 8 страниц (64 Кбайт).
Первые 96 байт страницы отводятся под заголовок, в котором хранится системная информация:
· тип страницы;
· объем свободного места на странице;
· идентификационный номер таблицы или индекса – владельца страниц.
Имеется шесть типов страниц:
· Data - в страницах этого типа хранятся собственно данные, исключая данные типа text, ntext и image;
· Index - страницы этого типа используются для хранения информации об
индексированных таблицах;
· Text/Image - в страницах этого типа хранятся данные типа text, ntext и
image;
· Global Allocation Map - в страницах данного типа хранится информация об использовании экстентов (групп страниц);
· Page Free Space - в страницах этого типа хранится информация о свободном пространстве на страницах;
|
|
· Index Allocation Map - страницы этого типа хранят информацию об экстентах, используемых таблицами или индексами.
В страницах типа Data строки записываются последовательно сразу после заголовка страницы, а их смещения записываются в обратном порядке в конце страницы.
Каждый файл данных базы имеет приблизительно одинаковую структуру. Все страницы в файле нумеруются последовательно, начиная с 0. Каждый файл имеет уникальный идентификационный номер. Комбинация этого номера и номера страницы позволяет однозначно идентифицировать любую страницу в базе данных.
На нулевой странице располагается заголовок страницы, в которых хранятся атрибуты файла. Следующая страница содержит PFC, в которой хранится информация об использовании страниц экстента. Затем располагаются битовые поля GAM и дополнительной таблицы SGAM (Shared GAM). Остальные страницы заняты данными или являются свободными. Страницы IAM могут быть созданы в любом месте файла. Для многофайловой базы данных экстенты выделяются на всех файлах в равных пропорциях. Все это обеспечивает высокую скорость создания, поиска и удаления строк данных [8].
Файл журнала транзакций не имеет страниц и экстентов. Он содержит только последовательность записей транзакций, выполняемых в базе данных.
Логическая архитектура базы данных SQL Server 2000
Если на физическом уровне рассматриваются структуры, используемые для хранения различной информации, то на логическом уровне необходимо рассматривать объекты, которые можно создавать в базе данных, а также различные свойства, которые влияют на работу сервера с базой данных. Под объектами здесь понимается не только собственно объект, каким является таблица, представление, хранимая процедура, но также и пользователи, роли, полнотекстовые каталоги. К логическому уровню относятся и права доступа пользователей и ролей базы данных к созданным в ней объектам. В список объектов базы данных, которые служат для хранения и обработки информации, входят:
|
|
· таблицы (tables) - единственный объект базы данных, предназначенный для хранения пользовательских данных;
· представления (views) - виртуальные таблицы (virtual tables), которые отображают данные, хранящиеся в других таблицах, и для пользователя во многом напоминают таблицы;
· индексы (indexes) - не могут существовать сами по себе и предназначены для повышения производительности работы сервера при поиске нужных данных в таблицах и представлениях, что достигается путем хранения в упорядоченном состоянии данных одного или более столбцов таблицы или представления;
· ключи (keys) - один из типов ограничения целостности, реализуются так же, как и другие ограничения целостности, которые связываются с таблицами, но играют достаточно важную роль в базе данных и поэтому рассматриваются как отдельные объекты;
· умолчания (defaults) - описывают значения, которые присваиваются столбцам таблицы, если при добавлении строки явно не было указано значение для соответствующего столбца;
· правила (rules) - логические условия, ограничивающие диапазон возможных значений для столбца таблицы или определяемого пользователем типа данных;
· ограничения целостности (constraints) - специальные управляющие конструкции, связанными с таблицами и ограничивающие диапазон возможных значений в столбце таблицы;
· хранимые процедуры (stored procedures) – поименованные наборы команд на языке Transact-SQL, сохраненные специальным образом и вызываемые на выполнение пользователями;
· триггеры (triggers) - специальный тип хранимых процедур, связываемых с таблицами и автоматически запускаемых сервером при выполнении удаления, вставки или изменения данных в конкретной таблице;
· определяемые пользователем типы данных (UDDT) - типы данных, создаваемые пользователями;
· определяемые пользователем функции (user-defined function) – набор команд Transact-SQL, сохраненных пользователем в виде функции.