Создание БД
Примечание
Создать БД с меньшей детализацией параметров можно с помощью утилиты 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.В случае некорректного ввода имени переменной окружения в команде
ONSET 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