Системный каталог


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

Внутри самого файла БД есть область, некая часть файла, которая описывает саму БД, что в ней есть. Т.е. каталог БД хранится внутри нее.

Замечание. Файл-запись — файл без самоописания.

Чтобы считывать запись, надо чтобы структура хранилась вне файла. Если структуру записать в самом файле по всем правилам, чтобы любой менеджер мог ее вскрыть и сказать, что там есть. Это и есть файл с самоописанием. Такого рода файлы и есть файлы БД. Даже desktop СУБД имеют файлы с самоописанием, правда, упрощенным. Там есть только одна таблица — нужно писать только колонки.

В SQL-серверах таблиц может быть много, ограничений, триггеров, представлений много. Это должно где-то хранится. Для этого есть системные таблицы.

Системный каталог — эта область таблицы, обеспечивающая самоописание файла БД. Системные таблицы обычно как-то называются. InterBase. SQL-сервер – sys –(домены, таблицы, индексы и т.д.) Этих системных таблиц 15-40, в которых все хранится. Для чего используется системный каталог? Каждый раз, обращаясь с запросом к БД, сервер проверяет наличие указанных объектов. Если обращаемся к таблице, домену и т.д. сервер обращается в системный каталог и проверяет, есть ли там то, за чем мы туда обращаемся. После это он проверяет в системной таблице, есть ли записанные права для нас на пользование этим объектом. Если есть – то есть и указанные там колонки. Прежде чем что-то сделать, она многократно обращается в системный каталог для проверки. Хранятся сведения о таблицах, о столбцах, о пользователях, о привилегиях, о представлениях и т.д. В Desktop СУБД, особенно DOS версиях, системных таблиц нет. Там есть, условно говоря, «шапка», где переписывают имена колонок и их типы, дальше идут наборы записи. Обратиться к такой «шапке» несложно.


Комментарии запрещены.




Статистика