Теория баз данных


         

Оба эти поля имеют размер



неопределенные значения NULL). Оба эти поля имеют размер по одному байту, следовательно, количество строк на странице не превышает 256, а на количество полей также существует внешнее ограничение 250 полей в одной таблице. Структура строки таблицы приведена на рис. 9.15.



Рис. 9.15. Структура строки данных для MS SQL Server 6.5

Вторая часть — это необязательная область, она существует только тогда, когда имеются в записи поля переменной длины.

Таблица смещений (Column offset table) состоит из:

  • таблицы подстройки смещений (Offset table adjust bytes) — но 1 дополнительному байту на каждое поле, смещение которого превышает 256 плюс 1 байт;

  • указателя на местоположение таблицы смещений;

  • указателя на местоположение полей переменной длины (1 байт на каждое поле).

    Указатели занимают два последних байта в каждой структуре и поэтому они доступны для анализа.

    Таблица смещения строк

    Местоположение строки на странице определяется таблицей смешения строк (Row offset table). Таблица располагается в самом конце страницы и забирает дополнительно по 2 байта па каждую строку данных (см. рис. 9.16). Чтобы найти строку с заданным номером, SQL Server считывает из соответствующей ячейки смещение, которое и является адресом требуемой строки. Ячейка таблицы однозначно связана с определенным номером строки.

    Удаленные строки имеют нулевое смещение. Поэтому из примера на рис. 9.16 видно, что строки 1 и 4 удалены.

    У этой модели есть недостаток. После удаления строки в таблице смещения все равно остается ссылка на нее, которая занимает 1 байт. Однако при добавлении новой строки SQL Server проверяет таблицу смещений и ищет нулевое смещение, и новой строке присваивается номер удаленной, а в соответствующую ячейку таблицы смещений заносится адрес новой строки.

    В SQL Server 6.5 используется понятие кластерного индекса. В таблице, для которой создается кластерный индекс, данные хранятся строго упорядочение) по полю, для которого создан этот кластерный индекс. Это поле (или набор полей) является первичным ключом таблицы или обладает свойством уникальности.

    Содержание  Назад  Вперед