Шрифт:
Приложение 9. Системные таблицы и просмотры
Когда вы создаете базу данных, Firebird начинает с создания своих собственных таблиц, в которых он сохраняет метаданные всех объектов базы данных - не только определенных вами объектов, но также и своих собственных внутренних объектов. Эти таблицы называются системными таблицами. Просматривая определения метаданных для системных таблиц, вы найдете листинги DDL для множества просмотров для системных таблиц, которые могут оказаться вам полезными.
Системные таблицы
Описания в этом разделе помогут вам в проектировании запросов для понимания и администрирования ваших баз данных. Для изменения метаданных существуют операторы DDL. Вообще не рекомендуется использовать операторы SQL для изменения таблиц метаданных. Риск разрушения базы данных при выполнении таких действий весьма высок.
В таблицах применяются следующие аббревиатуры:
* 1DX-индексировано;
* UQ - уникальное.
Где существуют составные индексы, приведены цифры для указания последовательности индексных сегментов.
RDB$CHARACTER_SETS хранит ключи для наборов символов, доступных базе данных.
Идентификатор столбца | Тип | IDX | UN | Описание |
RDB$CHARACTER_SET_NAME | CHAR(31) | Y | Y | Имя набора символов, известного в Firebird |
RDB$FORM_OF_USE | CHAR(31) | Не используется | ||
RDB$NUMBER_OF_CHARACTERS | INTEGER | Количество символов в наборе (не используется для доступных наборов символов) | ||
RDB $ DEFAULT COLLATE_NAME | CHAR(31) | Название двоичной последовательности сортировки для этого набора символов. Это название всегда совпадает с названием набора символов | ||
RDB $ CHARACT ER_SET_I D1 | SMALLINT | Y | Y | Уникальный идентификатор для этого набора символов, если он используется |
RDB$SYSTEM_FIAG | SMALLINT | Будет 1, если набор символов был определен в системе при создании базы данных; 0 для набора символов, определенного пользователем | ||
RDB$DESCRIPTION | BLOB TEXT | Для хранения документации | ||
RDB$FUNCTION_NAME . | CHAR(31) | Не используется, но может стать доступным для наборов символов, определенных пользователем, доступ к которым осуществляется через внешнюю функцию | ||
RDB$BYTES_PER_CHARACTER | SMALLINT | Размер символов в наборе, указанный в байтах. Например, UNICODE_FSS использует 3 байта на символ |
KDB$CHECK_CONSTKAXNTS содержит перекрестные ссылки имен и триггеров для ограничений CHECK и NOT NULL.
Идентификатор столбца | Тип | IDX | UN | Описание |
RDB$CONSTRAINT_NAME | CHAR(31) | Y | Имя ограничения | |
RDB$TRIGGER_NAME | CHAR(31) | Для ограничения CHECK это имя триггера, который поддерживает данное ограничение. Для ограничения NOT NULL это имя столбца, к которому применяется ограничение - имя таблицы может быть найдено через имя ограничения |
RDB$COLLATIONS хранит определения последовательностей сортировки.
Идентификатор столбца | Тип | IDX | UN | Описание |
RDB$COLLATION_NAME | VARCHAR(31) | Y | Y | Имя последовательности сортировки |
RDB $ COLLATI ON_I D | SMALLINT | Y(1) | Y(1) | Вместе с идентификатором набора символов является уникальным идентификатором последовательности сортировки |
RDB$CHARACTER_SET_IB | SMALLINT | Y(2) | Y(2) | Вместе с идентификатором последовательности сортировки является уникальным идентификатором |
RDB$COLLATI ON_ATTRIBOTES | CHAR(31) | Не используется | ||
RDB$SYSTEM_FLAG | SMALLINT | Определенное пользователем = 0; определенное в системе = 1 или выше | ||
RDB$DESCRIPTION | BLOB TEXT | Для хранения документации | ||
RDB$FONCTION_NAME | CHAR(31) | В настоящий момент не используется |
RDB$DATABASE является файлом из одной записи, содержащей основную информацию о базе данных.
Идентификатор столбца | Тип | IDX | UN | Описание |
RDB$DESCRIPTION | BLOB TEXT | Текст комментария, включенный в оператор CREATE DATABASE/CREATE SCHEMA, предназначен для того, чтобы быть записанным здесь. Этого не происходит. Однако вы можете сюда добавить любое количество текста с целью документирования. Он сохранится после резервного копирования и восстановления | ||
RDB$RELATION_ID | SMALLINT | Число, которое каждый раз увеличивается на единицу, когда к базе данных добавляется новая таблица или просмотр | ||
RDB$SECORITY_CLASS | CHAR(31) | Может ссылаться на класс безопасности, определенный в RDB$SECORITY_CLASSES, для обращения к общим для базы данных ограничениям доступа | ||
RDB$CHARACTER_SET_NAME | CHAR(31) | Набор символов по умолчанию для базы данных. NULL - набор символов NONE |
RDB$DEPENDENCIES хранит зависимости между объектами базы данных.
Идентификатор столбца | Тип | IDX | UN | Описание |
RDB$DEPENDENT_NAME | CHAR(31) | Y | Имена просмотра, процедуры, триггера или вычисляемого столбца, на которые происходит ссылка в этой записи | |
RDB $ DEPENDED_ON_NAME | CHAR(31) | Y | Таблица, на которую ссылается просмотр, процедура, триггер или вычисляемый столбец | |
RDB$FIELD NAME | VARCHAR (31) | Имя столбца в таблице зависимости, на который ссылается просмотр, процедура, триггер или вычисляемый столбец | ||
RDB$DEPENDENT_TYPE | SMALLINT | Идентифицирует тип объекта (просмотр, процедура, триггер, вычисляемый столбец). Номер приходит из таблицы RDB$TYPES - объекты нумеруются в соответствии RDB$FIELD_NAME = 'RDB$OBJECT_TYPE' | ||
RDB$DEPENDED_ON_TYPE | SMALLINT | Идентифицирует тип зависимого объекта (тот же принцип, что и в RDB$DEPENDENT_TYPE) |
RDB$EXCEPTIONS хранит пользовательские исключения.
Идентификатор столбца | Тип | IDX | UN | Описание |
RDB $ EXC EPTION _NAME | CHAR(31) | Y | Y | Имя пользовательского исключения |
RDB$EXCEPTION_NUMBER | INTEGER | Y | Y | Назначенный системой уникальный номер исключения |
RDB$MESSAGE | VARCHAR(78) | Текст пользовательского сообщения | ||
RDB$DESCRIPTION | BLOB TEXT | Может быть использовано для документации | ||
RDB$SYSTEM_FLAG | SMALLINT | Определенное пользователем = 0; определенное системой = 1 или выше |