Топ-100
 

Базы программы CerebroSQL

Локальные базы

При первом запуске программа создает 4 шифрованные базы SQLite для хранения всей информации:

  • CoreDB - Основное хранилище,  содержит информацию необходимую для работы модулей программы

  • ASHDB - Хранилище для истории активных сессий в БД. Данные собираются каждую секунду. 

  • ConDB - Хранилище таблиц с информацией для подключения к базам данных как для ядра программы, так и для редактора запросов

  • ExistDB - Хранилище для информации собираемой встроенной системой мониторинга (устарело, в текущей версии не используется) 

Все базы создаются шифрованными. Алгоритм и мастер пароль указываются пользователем при первом запуске программы.

 

Смена мастер пароля выполняется в настройках программы.

Для подключения к любой из баз без ввода пароля можно использовать "Редактор запросов для баз SQLite"

Структура базы ConDB 

 

В базе хранится информация необходимая для подключения к базам данных модулями программы.

POSTGRES_LIST

В таблице хранится информация необходимая для подключения к базам PostgreSQL.

CREATE TABLE POSTGRES_LIST (
   [id]         INTEGER PRIMARY KEY AUTOINCREMENT,
   [alias]      TEXT,
   [groupname]  TEXT,
   [servername] TEXT,
   [serverport] TEXT,
   [dbname]     TEXT,
   [username]   TEXT,
   [userpasswd] TEXT,
   [charset]    TEXT,
   unique ([alias])
)

  • ID - номер записи в таблице

  • alias - синоним соединения. Отображается в формах выбора соединения. Уникальное значение.

  • groupname - имя группы для сортировки и группировки данных. Используется в мастере соединений.

  • servername - DNS имя сервера или его IP адрес.

  • serverport - порт на котором работает инстанс СУБД PostgresSQL. По умолчанию 5432.

  • dbname - имя базы к которой необходимо подключится.

  • username - имя пользователя в СУБД PostgreSQL под которым выполняется подключение.

  • userpasswd - пароль пользователя. Хранится в ASCII коде из за особенностей хранения данным в некоторых кодировках в базах SQLite.

  • charset - кодировка

MSSQL_LIST

 

В таблице хранится информация необходимая для подключения к базам MS SQL Server.

CREATE TABLE MSSQL_LIST (
     [id]          INTEGER PRIMARY KEY AUTOINCREMENT,
     [alias]       TEXT,
     [groupname]   TEXT,
     [servername]  TEXT,   

     [serverport]  TEXT,

     [dbname]      TEXT,
     [auth]        INTEGER default 0,
     [username]    TEXT,
     [userpasswd]  TEXT,
     [color_page]  TEXT,
     UNIQUE ([alias])

)

  • id - номер записи в таблице

  • alias - синоним соединения. Отображается в формах выбора соединения. Уникальное значение.

  • groupname - имя системы к которой относится сервер MS SQL Server. Значение в поле используется для группировки данных в списках.

  • servername DNS имя сервера или его IP адрес.

  • serverport - порт на котором работает инстанс СУБД MS SQL Server.

  • auth - способ аутентификации, 0 - доменная, 1 - логин/пароль.

  • username - имя пользователя в СУБД MS SQL Server под которым выполняется подключение.

  • userpasswd - пароль пользователя. Хранится в ASCII коде из за особенностей хранения данным в некоторых кодировках в базах SQLite.

  • color_page - устарело.

SQLITEDB_LIST

В таблице хранится информация необходимая для подключения к базам SQLite.

CREATE TABLE SQLITEDB_LIST (
     [id]         INTEGER PRIMARY KEY AUTOINCREMENT,
     [attach]     TEXT,
     [file]       TEXT,
     [mode]       TEXT,
     [passwd]     TEXT,
     [bkp_file]   TEXT,
     [bkp_mode]   TEXT,
     [bkp_passwd] TEXT,
     [comment]    TEXT,
     UNIQUE ([attach])

)

  • id - номер записи в таблице

  • attach - алиас под которым подключается БД в  редакторе. Уникальное значение.

  • file - полный путь до файла базы SQLite.

  • mode - протокол шифрования базы данных

  • passwd - пароль к базе. Хранится в ASCII коде из за особенностей хранения данным в некоторых кодировках в базах SQLite.

  • bkp_file - полный путь к файлу резервной копии БД. Резервное копирование выполняется из интерфейса редактора запросов.

  • bkp_mode - протокол шифрования резервной бд

  • bkp_passwd - пароль к базе. Хранится в ASCII коде из за особенностей хранения данным в некоторых кодировках в базах SQLite.

  • comment - комментарий

MYSQL_LIST

В таблице хранится информация необходимая для подключения к базам MySQL.

CREATE TABLE MYSQL_LIST (
       [id]         INTEGER PRIMARY KEY AUTOINCREMENT,
       [alias]      TEXT,
       [groupname]  TEXT,
       [servername] TEXT,
       [serverport] TEXT,
       [dbname]     TEXT,
       [username]   TEXT,
       [userpasswd] TEXT,
       [charset]    TEXT,
       [compress]   INTEGER DEFAULT 0,
       [ssl]        INTEGER DEFAULT 0,
       [timedout]   TEXT,
       [readtime]   TEXT,
       [writetime]  TEXT,
       [resmode]    TEXT,
       [tiny]       TEXT,
       [meta]       TEXT,
       [ssl_use]    TEXT,
       [ssl_ca]     TEXT,
       [ssl_cert]   TEXT,
       [ssl_key]    TEXT,
       UNIQUE (alias, groupname)
)

  • id - номер записи в таблице

  • alias - алиас соединения

  • groupname - имя группы (используется для группировки записей в менеджере соединений)

  • servername - DNS имя сервера или его IP адрес

  • serverport - порт листенера MySQL на сервере

  • dbname - имя базы данных к которой следует подключится

  • username - имя пользователя

  • userpasswd - пароль пользователя (хранится в ASCII коде с разделителем |)

  • charset - кодировка соединения

  • compress - сжимать траффик

  • ssl_use - подключатся используя сертификат SSL

  • ssl_ca - путь к файлу центра сертификации.

  • ssl_cert - путь к файлу сертификата.

  • ssl_key - путь к файлу ключа.

Поля  ssl, timedout, readtime, writetime, resmode, tiny не используются

ORACLE_LIST

В таблице хранится информация необходимая для подключения к базам Oracle.

CREATE TABLE ORACLE_LIST (
    [id]        INTEGER PRIMARY KEY AUTOINCREMENT,
    [alias]     TEXT,
    [groupname] TEXT DEFAULT 'DEFAULT',
    [db_alias]  TEXT,
    [username]  TEXT,
    [passwd]    TEXT,
    [tns_block] TEXT,
    [ocipath]   TEXT,
    [tns_admin] TEXT,
    [nls_lang]  TEXT,
    [comment]   TEXT,
    [osauth]    INTEGER DEFAULT 0,
    [mode]      TEXT,
    [odbcuse]   INTEGER,
    [odbcname]  TEXT,
    [current]   INTEGER DEFAULT 0,
    UNIQUE (alias, groupname)
)

  • id - порядковый номер записи

  • alias - алиас соединения

  • groupname - имя группы (используется для группировки записей в менеджере соединений)

  • db_alias - алиас соединения из файла tnsnames или строка подключения в формате server:port/service_name

  • username - имя пользователя

  • passwd - пароль пользователя (хранится в ASCII коде с разделителем |)

  • tns_block - блок подключения к БД (информационно)

  • ocipath - путь к файлу oci.dll 

  • tns_admin - путь к директории в которой располагается файл tnsnames.ora

  • nls_lang - кодировка соединения

  • comment - коментарий

  • osauth - аутентификация под учетной запись ОС

  • mode - режим подключения (Normal, sysdba, ...)

  • odbcuse - флаг указывающий на тип используемого драйвера, 0 - Oralce, 1 - ODBC

  • odbcname - имя ODBC соединения

  • current - флаг указывающий на соединение по умолчанию для подключения к БД основным ядром мониторинга при старте программы

 

​Структура  базы CoreDB

Основное хранилище программы.

Таблица C$CATALOG - хранилище информации по узлам деревьев, меню, спискам для разных модулей программы. 

CREATE TABLE C$CATALOG (
      [id]  INTEGER PRIMARY KEY AUTOINCREMENT,
      [name] Text,
      [value] Text,
      [type] Text,
      [updated] Timestamp default current_timestamp,
      [modify] Text,
      [comment] Text,
      UNIQUE (name,value)

)

  • id - номер записи в таблице

  • name - имя записи

  • value - значение

  • type - код модуля

  • updated - дата и время создания/обновления записи

  • modify - кто создал/обновил запись

  • comment - комментарий

Таблицы "Project manager"

Таблица PJ$LIST - список проектов

CREATE TABLE PJ$LIST (
      [id] INTEGER PRIMARY KEY AUTOINCREMENT,
      [create_dttm] timestamp default current_timestamp,
      [update_dttm] timestamp,
      [name] Text,
      [owner] Text,
      [caption] Text,
      [status] integer default 1,
      [creator] Text,
      [defrdbms] integer,
      unique ([name])
)

  • id - номер записи в таблице

  • create_dttm - дата и время создания записи

  • update_dttm - дата и время обновления записи в таблице

  • name - имя проекта

  • owner - владелец проекта, по умолчанию Program owner из настроек программы

  • caption - заголовок, краткое описание 

  • status - статус проекта, 1 - активный, 2 - завершен

  • creator - кто создал проект, всегда Program owner из настроек программы

  • defrdbms - флаг указывающий на то, что проект является проектом по умолчанию для листов редактора запросов. Флаг используется для предварительного заполнения полей формы сохранения кода

    • 1 - Oracle

    • 2 - PostgreSQL

    • 3 - MySQL

    • 4 - SQLite

    • 5 - MS SQL Server

Таблицы "Master-data (MDM)"

Структурированное хранилище любой информации которую можно представить в виде карточек. Карточки создаются отдельно в дизайнере

Таблица NS$REFERENCEBOOK - список зарегистрированных пользовательских справочников

CREATE TABLE NS$REFERENCEBOOK (
       [id] INTEGER PRIMARY KEY AUTOINCREMENT,
       [tablename] Text,
       [comment] Text,
       [created_dttm] timestamp default current_timestamp
)

  • id - номер записи в таблице

  • tablename - имя таблицы-справочника

  • comment - пользовательский комментарий к таблице

  • created_dttm - дата и время создания таблицы

Таблица NS$PAGEELEMENTS - элементы страницы

CREATE TABLE NS$PAGEELEMENTS (
    [id] INTEGER PRIMARY KEY AUTOINCREMENT,
    [oid] integer,
    [name] Text,
    [ename] Text,
    [eid] integer,
    [position] integer,
    [pid]   integer

  • id - номер записи в таблице

  • oid - id записи из C$CATALOG (имя страницы)

  • name - имя элемента

  • ename - имя элемента, формируется случайным образом при создании элемента

  • eid - внутренний номер элемента

  • position - позиция элемента на текущем уровне, используется как ключ сортировки при построении страницы

  • pid - id родительской записи из текущей таблицы 

Таблица NS$PAGEELEMENTPARAM - параметры элемента

CREATE TABLE NS$PAGEELEMENTPARAM (
    [ename] text,
    [name] Text,
    [value] Text
)

  • ename - имя элемента (NS$PAGEELEMENTS.ename)

  • name - имя параметра

  • value - значение

Таблица NS$PAGEELEMENTDEF - значения по умолчанию для элементов

CREATE TABLE NS$PAGEELEMENTDEF (
     [ename] Text,
     [value] Text,
     [is_sql] integer default 0,
     [sql] Text
)

  • ename - имя элемента (NS$PAGEELEMENTS.ename)

  • value - значение 

  • is_sql - флаг указывающий на получения списка значений по умолчанию с помощью SQL запроса (0  - значение, 1 - SQL запрос)

  • sql - текст SQL запроса для получения списка значений по умолчанию для элемента

Таблица NS$TREE - дерево объектов каталога

CREATE TABLE NS$TREE (
    [id] INTEGER PRIMARY KEY AUTOINCREMENT,
    [oid] integer,
    [pid] integer,
    [page_name] Text,
    [pageid] integer,
    [flg] integer
)

id - порядковый номер записи

oid - id записи из C$CATALOG (имя узла), -1 если страница

pid - id родительского узла из NS$TREE

page_name - имя страницы

pageid - ID страницы из NS$PAGEELEMENTS

flg - флаг указывающий на тип записи (1 - узел, 2 - страница)

Таблица NS$LISTDATA - значения элементов сохраненных страниц

CREATE TABLE NS$LISTDATA (
    [oid] integer,
    [pageid] integer,
    [ename] Text,
    [eid] integer,
    [evalue] Text

oid - id записи из NS$TREE

pageid - ID страницы из NS$PAGEELEMENTS

ename - имя элемента (NS$PAGEELEMENTS.ename)

eid - код элемента

evalue - значение поля

EID - значения

 
 
eid
value
11
RICHEDIT
10
COMBOBOX
9
PANEL
8
BUTTON
7
RADIOGROUP
6
PAGE
5
PAGECONTROL
4
EDIT
3
LABEL
2
GROUPBOX
1
SPLITTER
 
Таблицы "User manual"

Хранилище документов пользователя

Таблица U$MANUAL - дерево документов

CREATE TABLE U$MANUAL (
       [ID]        INTEGER PRIMARY KEY AUTOINCREMENT, 
       [OID]       Integer,
       [Parent]    integer,  
       [PFlg]      integer default 0, 
       [EFlg]      integer default 0, 
       [Caption]   TEXT,  
       [Body]      BLOB, 
       [ListKey]   Text,
       [Info]      Text,
       [Locked]    integer default 0,
       [Version]   integer default 0,
       [Updated] Timestamp default current_timestamp, 
       [Creator] Text, 
       [Key_find] Text,
       [Type] Text default 'USER', 
       constraint pk_usr_name UNIQUE ([OID], [Parent], [Caption],[Version]),
       FOREIGN KEY ([OID]) REFERENCES C$CATALOG(id)) 

  • ID - порядковый номер записи

  • OID - ID записи в системном каталоге C$CATALOG

  • Parent - ID родительской записи

  • PFlg - указатель на тип записи. 0 - узел, 1 - документ

  • EFlg - флаг разрешения экспорта документа

  • Caption - заголовок документа

  • Body - тело документа

  • ListKey - список пар имя=значение  

  • Info - информация о документе

  • Locked - флаг запрета редактирования документа. 0 - редактирование разрешено, 1 - редактирование запрещено

  • Version - версия документа

  • Updated - дата и время изменения документа

  • Creator - автор документа

  • Key_find - ключ для внутренних ссылок на документы

  • Type - тип документа. пользовательский  или системный

Таблица U$MANUAL_TEMPLATE - шаблоны документов

CREATE TABLE U$MANUAL_TEMPLATE (
    [Owner] Text,
    [Caption] Text,
    [Body] BLOB,
    unique ([Owner],[Caption])
)

  • Owner - родительская запись

  • Caption - заголовок документа

  • Body - тело шаблона документа

Центральная база данных (PostgreSQL)

Схемы центральной базы данных

audit - таблицы аудита действий пользователей

core - таблицы конфигурации

manual - схема для хранения таблиц модуля "Документация"

proj - схема для хранения таблиц модуля "Project manager"

transfer - схема для хранения данных модуля "Transfer data"

mdm - схема для хранения таблиц модуля "Master-data"