Создание БД
Примечание
Создать БД с меньшей детализацией параметров можно с помощью утилиты linadm (см. документ «Сетевой администратор», подраздел «Создание БД»).
Синтаксис
< создание БД >::= [< пароль защиты БД >] [< путь к БД >] CREATE DATABASE ["< имя БД >"] [USERNAME "< имя создателя БД >"] [PASSWORD "< пароль создателя БД >"] [MESSAGE OUTPUT "< спецификация файла сообщений >"] [NO MESSAGE] [NO QUERY] [ON < переменная окружения >] [MAXTAB < количество таблиц >] [MAXCOL < количество столбцов >] [MAXUSR < количество пользователей >] [MAXROWSIZE < максимальный размер записи >] [CERTIFIED | ORDINARY] ;
Каталог, в котором будет создаваться БД, зависит от ряда условий (наличие переменной окружения
SY00
, использование глобальной или локальной установки для указания местоположения БД).
Алгоритм выбора каталога создаваемой БД приведен
в приложении 2
(см. также команду SET данной утилиты). О выбранном местоположении создаваемой БД
на консоль выдается информационное сообщение вида:
Путь к БД 'd:\Program Files\Softool2003608rust\db1
'. (переменная окружения
SY01
)
-
< пароль защиты БД >
-
См. пункт Пароль защищенной БД.
-
< путь к БД >
-
См. пункт Путь к БД.
-
DATABASE "< имя БД >"
-
Имя создаваемой БД (не более 18-ти символов). По умолчанию заполняется пробелами. Если строка содержит более 18-ти символов, она усекается до допустимой длины без предупреждения.
В качестве "< имя БД >" допустимо использовать символы из таблицы ASCII.
-
USERNAME "< имя создателя БД >"
-
< Имя создателя БД > – регистрозависимая строка, содержащая не более 66-ти символов. По умолчанию используется имя
SYSTEM
.Примеры
USERNAME ADMIN USERNAME "Admin" USERNAME "Создатель БД"
-
PASSWORD "< пароль создателя БД >"
-
< Пароль создателя БД > – регистрозависимая строка, содержащая не более 18-ти символов. По умолчанию создатель БД имеет пароль
MANAGER8
.Примеры
PASSWORD 12345 PASSWORD 15.07.1995 PASSWORD "67F223$$щгл"
-
MESSAGE OUTPUT "< спецификация файла сообщений >"
-
Местоположение выходного файла для записи протокола информационных сообщений, выдаваемых утилитой в процессе работы. Если ключ не задан, информационные сообщения будут выводиться на экран терминала.
-
NO MESSAGE
-
Подавляет выдачу информационных сообщений.
-
NO QUERY
-
Подавляет вопросы на подтверждение создания БД.
-
ON < переменная окружения >
-
Задает имя < переменной окружения >, указывающей местоположение (логическое имя устройства/каталога), где должны создаваться файлы БД (см. приложение 1). В случае, когда модификатор ON задаёт устройство, для которого не определена переменная среды окружения и это устройство не совпадает SY00, то выдаётся предупреждение.
Например:
SET DATABASE DIRECTORY "D:\linter\db\TEST_DB\"; CREATE DATABASE "Database Name" ON "SY01";
БД будет создана в каталоге, путь к которому задан в переменной окружения
SY01
, так какON
имеет более высокий приоритет, чемSET DATABASE DIRECTORY
.В случае некорректного ввода имени переменной окружения в команде
ON
SET DATABASE DIRECTORY "D:\linter\db\TEST_DB\"; CREATE DATABASE "Database Name" ON "D:\TEST_DB1";
будет выдана ошибка
%GENDB-E-UNDVAR,неопределенная переменная : D:\T -
MAXTAB < количество таблиц >
-
Предполагаемое максимальное количество таблиц в создаваемой БД (по умолчанию 8176). Заданное значение выравнивается с избытком до кратного 1022. Максимально допустимое значение равно 65398.
Примечания
-
Значение данного параметра в существующей БД можно получить, выполнив команду
show $$$SYSRL
утилитыinl
. Предельный ROWID есть значениеMAXTAB
. -
Максимальное число таблиц в создаваемой БД определяется как (
< заданное пользователем значение MAXTAB >
+ 10), округлённое в большую сторону до числа, делящегося без остатка на 1022. -
После достижения БД указанного значения
MAXTAB
создание новых таблиц прекращается. При необходимости расширения БД можно воспользоваться утилитой testdb и увеличить установленные лимиты. Подробное описание и команды приведены в пункте «Расширение системных таблиц» документа «Тестирование базы данных».
-
-
MAXCOL < количество столбцов >
-
Суммарное число всех столбцов во всех таблицах создаваемой БД (по умолчанию 32704). Заданное значение выравнивается с избытком до кратного 1022. Максимально допустимое значение данного параметра равно 65408. После достижения БД этого значения создание новых таблиц прекращается (см. примечание к параметру MAXTAB).
Примечание
Значение данного параметра в существующей БД можно получить, выполнив команду
show $$$ATTRI
утилитыinl
. Предельный ROWID есть значениеMAXCOL
. -
MAXUSR < количество пользователей >
-
Максимальное число записей по правам доступа к таблицам (по умолчанию 1022).
Системная таблица
$$$USR
автоматически расширяется по мере необходимости. -
MAXROWSIZE < максимальный размер записи >
-
Максимальный размер записи в таблице (значение от 1 до 65535). Реальная длина записи (в байтах) вычисляется путем округления заданного размера до значения, кратного 4096 в большую сторону. Если размер записи получается равным 65536, то он усекается до 65535. Значение по умолчанию 65535.
Если значение < максимального размера записи > больше 65535, то выдается предупреждающее сообщение, а размер записи берется равным 65535.
Примечание
Изменение максимального размера записей в БД после её создания осуществляется с помощью команды
ALTER DATABASE SET RECORD SIZE LIMIT
(см. документ «Справочник по SQL», пункт «Ограничение длины записи»). -
CERTIFIED | ORDINARY
-
При указании опции CERTIFIED - будет создана сертифицированная БД. Будут активированы следующие проверки: контроль целостности файлов БД, контроль длины пароля пользователя 8 символов, максимальное количество неудачных вводов пароля 4 раза. Опция применяется по умолчанию.
При указании опции ORDINARY - БД будет создана без дополнительных проверок.
Примечание
Опции поддерживаются со сборки 6.0.20.1.
В процессе выполнения команды CREATE
в БД создаются следующие таблицы словаря БД и рабочие файлы:
-
1.01 и 1.11 – таблица таблиц (
$$$SYSRL
); -
2.01 и 2.11 – таблица атрибутов (
$$$ATTRI
); -
3.01 и 3.11 – таблица пользователей (
$$$USR
); -
1.31 – файл бит-векторов (мнемоника
SYSWBV
); -
1.41 – рабочий файл (мнемоника
SYSWRK
); -
1.51 – файл сортировки (мнемоника
SYSSRT
); -
1.61 – специальный файл системного журнала, содержащий информацию о контрольных точках, горячем резервировании и т.д.
Примечание
Если при создании БД размер системного журнала не задается, то по умолчанию создается файл размером 8К.
Параметры запуска ядра созданной БД являются стандартными (принятыми по умолчанию). Для их просмотра/изменения предназначены команды GET, SET данной утилиты.
Процесс создания БД протоколируется на терминале (или в файле, если задан параметр
MESSAGE OUTPUT
). Если указано NO MESSAGE
, протоколирование не выполняется.
В зависимости от планируемого использования функциональных возможностей СУБД ЛИНТЕР должны быть выполнены конфигурационные sql-файлы, которые создают системные таблицы для поддержки этих возможностей. Список файлов SQL и их функциональных возможностей в таблице 1.
Имя файла | Обеспечение функциональных возможностей |
---|---|
|
Асинхронная репликация (тиражирование) данных |
|
Поддержка ODBC-драйвера |
|
Поддержка OLEDB |
|
Создание пустой таблицы кодов завершения ядра СУБД ЛИНТЕР. Загрузка в таблицу собственно кодов завершения и соответствующих им текстов выполняется ядром СУБД ЛИНТЕР из файла |
|
Однобайтовые кодировки |
|
Словарь кодировок (версии 6.x и выше) |
|
Распределенная обработка данных |
|
Доступ работы станциям с БД DEMO и права на тестовые таблицы БД DEMO |
|
Управление событиями |
|
Поддержка OpenGIS |
|
Для работы системы резервирования данных |
|
Многобайтовые кодировки |
|
Поддержка совместимости с СУБД Oracle |
|
Поддержка PowerBuilder |
|
Полнотекстовый поиск |
|
Средства расширенной защиты информации |
|
Триггеры, хранимые процедуры и последовательности |
Примечание
Если в/на каталоге/устройстве, предназначенном для новой БД, уже содержится некоторая БД, то утилита выдаст запрос-предупреждение о возникновении подобной ситуации. При этом будет выдано имя уже существующей БД и запрос на продолжение операции. В случае отмены операции утилита не будет выполнять процедуру создания БД. В противном случае поверх рабочих файлов старой БД будут переписаны файлы новой. Это разрушит старую БД, т.к. при этой операции не все файлы старой БД будут удалены – все файлы пользовательских таблиц останутся (если они были расположены в данном каталоге), что может привести в дальнейшем к некорректной работе новой БД. Во избежание подобных ситуаций не рекомендуется проводить создание новой БД поверх старой.
Если в команде создания БД указан параметр NO QUERY
, то запрос на перезапись файлов выдан не будет, что может привести к последствиям, описанным выше.
Чтобы разрешить удаленный доступ клиентских приложений к данной БД, необходимо выполнить команду:
grant access on unlisted station to all;
(разрешить доступ к этой БД со всех компьютеров)
либо команду на создание станции (разрешить доступ к этой БД только с конкретных компьютеров) (см. документ «Администрирование комплекса средств защиты данных», пункт «Создание/удаление сетевой станции»).
Примеры
1) Создание БД, местоположение которой задает переменная окружения по умолчанию SY00.
Шаг 1. Установка средствами ОС переменной окружения SY00:
SY00=d:\linter\db
Шаг 2. Создание БД:
gendb > gendb >create database;
2) Создание БД, местоположение которой задается непосредственно в утилите путем указания полного пути к каталогу:
gendb >set database dir "d:\linter\db"; gendb >create database;
3) Создание нескольких БД, местоположение которых задается непосредственно в утилите путем указания переменной окружения.
Шаг 1. Создать и инициализировать средствами ОС переменные окружения DB01, DB02:
set DB01=d:\linter\db\order set DB02=d:\linter\db\sale
Шаг 2. Создание БД:
gendb >set database path DB01; gendb >create database "Orders"; gendb >set da pat DB02; gendb >create database "Sales";
4) Создание БД, местоположение которой задается локально переменной окружения.
Шаг 1. Создать и инициализировать средствами ОС переменную окружения TMP0:
set tmp0=d:\tempdb
Шаг 2. Создание БД:
gendb >create database "TestDB" on "TMP0";
5) Создание защищенной БД:
создать каталог C:\Linter\db\TESTDB Установить значение переменной SY00: SET SY00=C:\Linter\db\TESTDB Запустить gendb: gendb Установить пароль для защищенной БД: gendb > SET PROTECTED DATABASE PASSWORD "$des$12345"; Создать БД: gendb > CREATE DATABASE "TESTDB"; Завершить утилиту gendb: gendb > exit Запустить ядро СУБД: linter64 /pass=$des$12345