Delphi 3 и создание приложений баз данных


в котором будет храниться создаваемая


19. Создание базы данных

19.1. Оператор CREATE DATABASE

Для создания БД используется оператор

CREATE {DATABASE SCHEMA} "<имя_файла>" [USER "имя_пользователя" [PASSWORD "пароль"]]

[PAGE_SIZE [=] целое] [LENGTH [=] целое [PAGE[S]]] [DEFAULT CHARACTER SET набор_символов]

[<вторичный_файл>]; <вторичный_файл> = FILE "<имя_файла>" [<файлов_информ>] [<вторичный_файл>]

<файлов_информ> = LENGTH [=] целое [PAGE[S]] | STARTING [AT [PAGE]] целое [<файлов_информ>]



Аргумент Описание
"<имя_фаила > " Указывает спецификации файла, в котором будет храниться создаваемая БД Эти спецификации зависят от платформы
USER "имя_пользователя" Имя пользователя, которое вместе с паролем, определяемым PASSWORD, проверяется при соединении пользователя с сервером, на котором расположена БД
PASSWORD "пароль" Пароль, который вместе с именем пользователя проверяется при соединении пользователя с сервером
PAGESIZE [=] целoe Размер страницы БД в байтах Допустимые размеры" 1024 (по умолчанию), 2048, 4096 или 8192
DEFAULТ СНАRACTER SET

набор_символов
Определяет набор символов, применимый в БД Если не указан, по умолчанию берется NONE.
FILE "<имя_файла>" Имя одного или нескольких файлов, в которых будет располагаться БД
STARTING [AT [PAGE]] Если БД располагается в нескольких файлах, это предложение позволяет определить, с какой страницы БД располагается в указанном файле.
LENGTH [=] целое [PAGE[S]] Длина файла в страницах По умолчанию 75 страниц Минимум 50 страниц Максимум ограничен фактически имеющимся дисковым пространством
19.2. Многофайловая БД

При добавлении в БД записей, она увеличивается в объеме. Если нет никаких ограничений на размер БД, с теоретической точки зрения размер файла, в котором БД хранится, ограничен лишь объемом диска. Однако бывает необходимо, чтобы физический размер файла БД был фиксирован. Подобная необходимость может возникать в условиях ограничений на доступное дисковое пространство. В этом случае БД хранится не в одном файле, а в нескольких, а сами файлы могут располагаться на физически разных носителях. Самый первый файл БД называется первичньш, остальные - вторичными. Предложение STARTING AT [PAGE] указывает, с какой страницы начинается тот или иной вторичный файл. Предложение "LENGTH = целое" указывает длину того или иного файла. Например:

CREATE DATABASE "D:\BD\SKLAD.GDB"

FILE "D:\BD\SKLAD.GD1" STARTING AT PAGE 1001

LENGTH 500

FILE "D:\BD\SKLAD.GD2"

Здесь определяется БД "D:\BD\SKLAD.GDB", состоящая из 3 файлов: первичного "D:\BD\SKLAD.GDB" (длиной 1000 страниц), "D:\BD\SKLAD.GD1" длиной 500 страниц и "D:\BD\SKLAD.GD2" неопределенной длины.Если для вторичного файла не объявлена длина,следует указывать, с какой страницы он должен начинаться.

19.3. Определение пароля

Пароль при создании БД указывается для того, чтобы сервер смог идентифицировать пользователя по паре значений "имя пользователя -пароль": CREATE DATABASE "D:\BD\SKLAD.GDB" USER "XXX" PASSWORD "YYY" Эти имя и пароль принадлежат пользователю, создающему БД, и служат именно для идентификации пользователя. Не следует путать указываемые здесь имя пользователя и пароль с правами доступа к самой БД.

19.4. Указание размера страницы БД

Размер страницы указывается в байтах и может быть 1024, 2048,4096 или 8192 байт, например:

CREATE DATABASE "BAZA.GDB" PAGE_SIZE 4096;

Увеличение размера страницы может привести к ускорению работы с БД, поскольку:

уменьшается глубина индексов (depth, число шагов, за которое при помощи индекса будут найдены требуемые записи);

уменьшается число операций чтения при считывании длинных записей, поскольку за одну операцию чтения всегда считывается одна страница, запись, расположенная на одной странице, будет считана за один раз;

при малом объеме страницы запись располагается на нескольких страницах и соответственно считывается за несколько операций чтения.

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

19.5. Указание национальной кодировки символов, принимаемой по умолчанию

Для символьных столбцов в составе таблиц БД используются различные национальные кодировки. При создании БД национальный набор символов устанавливается предложением

DEFAULT CHARACTER SET набор_символов

Например, CREATE DATABASE "BAZA.GDB" ... DEFAULT CHARACTER SET WIN1251;

В дальнейшем всем создаваемым символьным столбцам таблиц БД (типы CHAR, VARCHAR) ставится в соответствие указанный набор_символов, например объявление в одной из таблиц базы данных BAZA.GDB столбца FAMILIA VARCHAR(25); интерпретируется как объявление FAMILIA VARCHAR(25) CHARACTER SET WIN1251; Изменить кодировку, принятую для БД по умолчанию, можно при определении конкретных доменов и столбцов.

Для БД, в которых столбцы будут хранить русские слова, рекомендуется кодировка WIN1251. К сожалению, на уровне создания БД невозможно установить по умолчанию порядок сортировки символов (collation order). Его определяют при объявлении доменов и отдельных столбцов (см. соответствующие разделы). Для получения списка доступных кодировок обратитесь к встроенной системе помощи InterBase.


Содержание раздела