Книга: Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil
Файлы *.GDB изнутри
Файлы *.GDB изнутри
GOB - зю расширение, которое рекомендуют использовав для файлов баз данных InterBase. Первое, что нужно сказать о строении GDB-файла, - это то, что он представляет собой набор страниц жестко определенного размера. Размер файла базы данных кратен размеру страницы, который неизменен для всех файлов данной базы данных. Разные версии InterBase поддерживают различные размеры страниц, что отражено в таблице 4.21. Размер страницы задается при создании базы данных и не может быть изменен в течение ее жизненного цикла, т. е. изменить размер страницы возможно только при создании базы из резервной копии (restore).
Табл 4.21. Размер страницы, поддерживаемый различными версиями
Версия InterBase |
Размер стр |
аницы, байт |
|||
1024 |
2048 |
4096 |
8192 |
16384 |
|
InterBase 4 0 |
* |
* |
* |
* |
|
InterBase 5.x |
* |
* |
* |
4 |
|
InterBase 6 Ox |
* |
* |
* |
* |
|
Firebird Ix/Yaffl 1.x /InterBase 6.5 и выше |
* |
* |
* |
* |
* |
Чтение и запись данных в базе данных осуществляется постранично, и многие важные характеристики базы данных и сервера, такие, например, как размер буфера базы данных (Database cache), зависят от размера страницы и исчисляются в "страницах".
Давайте откроем какую-нибудь базу данных InterBase с помощью IBSurgeon. Для этого достаточно дважды щелкнуть по файлу базы данных. На рисунке 4.2 изображен список страниц, который показывается после того, как IBSurgeon открыл базу данных.
Рис 4.2. Список страниц базы данных
Страницы бывают различных типов, каждый из которых служит определенной цели. Взаимозависимости различных типов страниц условно представлены на рис. 4.3. Он схематично изображает расположение страниц в файле базы данных - слева направо, сверху вниз, если считать от начала файла. Страницы одного типа не идут строго одна за другой - они могут быть перемешаны свободно, располагаясь в файле в том порядке, в котором они создавались сервером при расширении или создании базы данных.
Некоторые типы страниц выглядят "болтающимися без дела", т. е. не имеющими ссылок на другие типы страниц. Однако здесь нет никакого противоречия, просто эти типы страниц связаны и используются на другом структурном уровне, они могут связываться с помощью таблицы RDBSPAGES и других системных таблиц (эта таблица и другие системные объекты будут рассмотрены ниже, в разделе "Логическая структура базы данных"). На рис. 4.3 изображены только явные ссылки между страницами на физическом уровне.
Рассмотрим подробнее, какие бывают типы страниц в базе данных InterBase. В файле ods.h из набора исходных кодов InterBase находится информация обо всех возможных типах страниц. К этому файлу мы будем часто обращаться, чтобы из первоисточника получить данные не только об ODS, но и о многих других основополагающих вещах ядра InterBase.
Pис 4.3. Взаимозависимости ме/KCjv разимными типами страниц в базе данных InterBase
Всего задекларировано 11 типов страниц, однако достойны объяснения лишь 9 из них, что ясно видно из табл. 4.22. Типы страниц с идентификаторами 0 и 10 не определены или не используются
Табл 4.22. Типы страниц
Определение в ods.h |
Идентификатор страницы |
Английское название страницы |
Русская интерпретации английского названия |
pag_undefmed |
0 |
Undefined - If a page has this page type it is probably free |
Неопределенный тип страницы - возможно, страница свободна |
pag_header |
1 |
Database header page |
Страница заголовка базы данных |
P°g_pages |
2 |
Page inventory page (or Space inventory page - SIP) |
Страница, хранящая информацию о распределении страниц |
pag_transactions |
3 |
Transaction inventory page (TIP) |
Страница учета транзакций |
pag_pomter |
4 |
Pointer page |
Страница указателей |
pag_data |
5 |
Data page |
Страница данных |
pag_root |
6 |
Index root page |
Страница вершины индекса |
pagjndex |
7 |
Index (B-tree) page |
Страница индексов |
pag_blob |
8 |
Blob data page |
Страница для хранения ВЮВ-данных |
pagjds |
9 |
Gen-ids |
Страница генераторов |
pagjog |
10 |
Write ahead log information |
Не используется |
Каждая из страниц имеет затловок, содержащий информацию о типе страницы и номер следующей страницы такого же типа. Полный список параметров, содержащихся в заголовке каждой страницы, можно получить, рассмотрев стру ктуру pag в файле определений ods.h Желающие досконально разобраться в работе со страницами могут обратиться к этому и другим определениям в этом фай ie
- Файлы базы данных InterBase
- 12.2. Файлы конфигураци исервера
- Как вернуть случайно удаленные файлы?
- Как записать файлы на компакт-диск?
- Как сделать, чтобы в папке сначала отображались самые новые файлы?
- Перемещать файлы удобнее, если запустить два экземпляра Проводника и разместить их окна бок о бок. Можно ли это делать а...
- Файлы без расширения, как правило, текстовые. Как сделать, чтобы при двойном щелчке кнопкой мыши они открывались в Блокн...
- На установочном диске Windows много файлов с расширением CAB. Что это за файлы?
- Как сохранить все файлы при переустановке?
- При попытке войти в систему Пользователю1 выдается предупреждение, что загрузился временный профиль и все сделанные изме...
- Не могу открыть файлы ISO. Что и где мне надо скачать?
- Не отображаются скрытые файлы. При установке переключателя в положение Показывать скрытые файлы и папки ничего не происх...