Дополнительные словари данных

Кроме главного словаря данных, БД может содержать еще и дополнительные словари, которые добавляются в БД администратором БД исходя из функциональных требований клиентских приложений. Отсутствие объектов дополнительного словаря не критично для работоспособности СУБД и поэтому они не добавляются в БД при её первоначальном создании.

Создать объекты дополнительного словаря можно при помощи стандартных SQL-скриптов, входящих в дистрибутив СУБД ЛИНТЕР (расположены в подкаталоге \dict установочного каталога СУБД ЛИНТЕР).

SQL-скрипты могут быть выполнены утилитой inl или утилитой «Рабочий стол СУБД ЛИНТЕР».

Ниже приведен потенциально возможный состав объектов дополнительного словаря СУБД ЛИНТЕР.

Скрипт systab.sql создаёт следующие таблицы:

  • $$$GLBVARS – словарь глобальных переменных хранимых процедур. Содержит информацию об именах, типах данных и текущих значениях глобальных переменных хранимых процедур. Если эта таблица не создана, то работа с глобальными переменными не поддерживается;

  • $$$PRCD и $$$PROC – словари хранимых процедур. Содержат информацию об именах, типах параметров и о типе возвращаемого значения для каждой хранимой процедуры. Если эти таблицы не созданы, то хранимые процедуры в БД работать не будут;

  • $$$TRIG – словарь триггеров. Содержит имена таблиц, для которых созданы триггеры, идентификатор владельца триггера, информацию о параметрах триггера. СУБД ЛИНТЕР поддерживает работу с триггерами, только если таблица $$$TRIG существует в БД;

  • $$$SEQ – словарь последовательностей. Содержит информацию о создателе последовательности, начальном, максимальном и текущем значении последовательности, а также шаг последовательности. Без этой таблицы работа с последовательностями невозможна.

Для работы с расширенной подсистемой защиты данных (в частности, дискретный и мандатный контроль доступа к данным), которая включает в себя создание групп и уровней пользователей, контроль доступа с сетевых станций и ввода-вывода на внешние устройства, а также средств аудита в БД, необходимо создать специальные служебные таблицы.

Скрипты security.sql, extsec.sql и enaacc.sql создают следующие таблицы:

  • $$$LEVEL – таблица уровней доступа. Уровни доступа вводятся для проверки на уровне ядра СУБД ЛИНТЕР прав на чтение/запись информации по мандатному принципу контроля доступа. Таблица содержит номер и имя групп доступа;

  • $$$GROUP – таблица групп пользователей. Содержит информацию о пользователях, включенных в группу; о правах, назначенных непосредственно группе, и переданных ей от других групп;

  • $$$STATION – содержит сведения о сетевых станциях (имя, протокол доступа, сетевой адрес, допустимый уровень доступа);

  • $$$RELATION – содержит описание отношений между сетевыми станциями и пользователями БД;

  • $$$DEVICE – таблица внешних устройств. Содержит описание (имя, путь, допустимый уровень доступа для чтения и для записи) всех внешних устройств, на которых располагаются файлы БД. Без этой таблицы также невозможно запустить внутреннее резервное сохранение БД средствами ядра СУБД ЛИНТЕР;

  • $$$AUDIT – протокол работы с БД. Если включено протоколирование, то в эту таблицу будут занесены все действия клиентских приложений, связанные с идентификацией и аутентификацией, запросами на доступ к объектам защиты, созданием/уничтожением объектов защиты, c изменением прав доступа и т.п. Т.е. регистрации подлежат время и тип события, имя инициировавшего событие субъекта, сетевой адрес клиентской станции, статус завершения операции и т.д.

    Таблица $$AUDIT имеет довольно сложную структуру и для удобства просмотра протокола аудита имеется стандартное представление AUDIT_EVENTS.

Скрипты distr.sql, arepl.sql создают таблицы, необходимые для распределенной обработки данных и репликации:

  • SERVERS – содержит имена удаленных серверов, на которые могут реплицироваться данные;

  • $$$REPL – содержит описание правил репликации таблиц;

  • $$$EXTREPL – содержит описание правил репликации столбцов.

Для хранения информации о кодовых страницах на физическом уровне необходимо создать системные словари для работы с кодировками.

Скрипты cstables.sql, charsets.sql, mbcps.sql и descmb.sql создают необходимые таблицы и заполняют их наиболее распространенными кодовыми страницами:

  • $$$CHARSET – таблица кодовых страниц. Содержит информацию о коде страницы в ОС Windows, имя и информацию о свойствах страницы, о «весе» символов кодовой страницы, о верхнем/нижнем регистре и о преобразовании в UNICODE. Эта таблица позволяет хранить как информацию об однобайтовых кодовых страницах, так и о многобайтовых;

  • $$$TRANSL – таблица трансляций. Содержит информацию о трансляции однобайтовых кодовых страниц друг в друга: порядковый номер трансляции, номер кодовой страницы, из которой осуществляется трансляция, номер кодовой страницы, в которую осуществляется трансляция, имя трансляции, и собственно саму таблицу трансляции (информация о соответствии символов).

Для работы с СУБД через ODBC-драйвер необходимо исполнить SQL-скрипт catalog.sql. Он содержит таблицы ODBC-каталога. Без исполнения этого файла ODBC-приложения не смогут работать с БД. Перед исполнением catalog.sql необходимо выполнить systab.sql и security.sql, иначе не все возможности СУБД будут доступны через ODBC-драйвер.

Для поддержки .NET-интерфейса необходимо выполнить SQL-скрипты catalog.sql и extsec.sql.

Для работы подсистемы фразового поиска необходимо создать системные словари при помощи скриптов search.sql и default.sql.

Для поддержки оперативного резервирования данных необходимо создать системную таблицу при помощи скрипта inkernel.sql.

Для создания таблицы диагностических сообщений в соответствии с выбранным языком интерфейса СУБД ЛИНТЕР необходимо выполнить SQL-скрипт cerrors.sql. Тексты сообщений должны быть загружены из файла errors.lod.