Описание примера и используемого для учебных целей сервера БД

На Рис. 71 приведена модель БД, которая далее будет использоваться в примерах для данного раздела.

Рис. 71. IDEF1X-диаграмма базы данных примера

В дальнейшем, все примеры SQL-операторов будут приводиться для сервера БД Borland InterBase.

InterBase представляет собой очень мощную СУБД. С самого начала InterBase создавался на основе современной и надежной архитектуры. Первоначальный автор, Джим Старки (Jim Starkey), спроектировал архитектуру для обработки параллельности и транзакций, не накладывая физические блокировки на части таблиц, что все еще недоступно многим известным серверам баз данных и сегодня. Архитектура InterBase носит название Multi-Generational Architecture (MGA, архитектура нескольких поколений), она обрабатывает параллельный доступ нескольких пользователей к одним и тем же данным, позволяя им изменять записи, не затрагивая ту часть данных, которая видна в базе данных пользователям, имеющим параллельный доступ.

Этот подход основан на уровне изоляции транзакций Repeatable Read (повторяющееся чтение), который позволяет пользователю в рамках транзакции видеть одни и те же данные, независимо от изменений, сделанных и подтвержденных остальными пользователями. Технически сервер реализует это, поддерживая различные версии каждой записи, к которой было обращение, для всех открытых транзакций.

Хотя такой подход (также носящий название «создание версий», versioning) может потребовать больших затрат памяти, при этом практически не накладываются физические блокировки на таблицы и система в целом становится значительно более надежной в случае сбоя.

Кроме того, архитектура MGA поддерживает очень удобную программную модель, повторяющееся чтение, что во многих других известных SQL-серверах не поддерживается без потери значительной доли производительности.

InterBase был выбран несколькими весьма значительными организациями, например, фирмой Ericsson, министерством обороны США, он также нашел применение на фондовых биржах и в банковских системах удаленного доступа.

Помимо архитектуры нескольких поколений, сердца InterBase, сервер обладает и другими техническими преимуществами:

§ нетребовательность к ресурсам (в минимальной установке для InterBase требуется менее 10 Мбайт дискового пространства, требования к памяти также невелики)

§ хорошая производительность для большого количества данных

§ реализация на многих платформах (среди которых 32‑разрядные версии Windows, Solaris и Linux) с поддержкой полной совместимости, что позволяет без особых изменений масштабировать сервер от небольших до очень объемных систем

§ прекрасный послужной список – InterBase находится в эксплуатации более 15 лет, практически не вызывая проблем

§ внутренний язык сервера очень близок к стандарту SQL

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

§ простая установка и управление с небольшими затратами на администрирование

Создание БД

CREATE { DATABASE | SHEMA } “<имя_файла>”

{ USER “имя_пользователя” [PASSWORD “пароль”] ]

[ PAGE_SIZE [=] целое ]

[ LENGTH [=] целое [PAGE [S] ] ]

[ DEFAULT CHARASTER SET набор_символов ]

[ <вторичный_файл> ];

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

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

[AT [PAGE]] целое <файлов_информ>

----------------------------------------------------------

“<имя_файла>” – спецификация файла, в котором будет храниться создаваемая БД.

USER “имя_пользователя” – имя пользователя

PASSWORD “пароль” – пароль пользователя

PAGE_SIZE [=] целое – размер страницы БД в байтах

DEFAULT CHARASTER SET набор_символов – определяет используемый в БД набор символов

FILE “<имя_файла>” – имя одного или нескольких файлов, в которых располагается БД

STARTING [AT [PAGE]] – если БД занимает несколько файлов, предложение определяет с какой страницы располагается БД в указанном файле

LENGTH [ = ] целое [ PAGE [S] ] – длина файла в страницах. По умолчанию 50. Минимум 50.

 

Пример:

CREATE DATABASE “D:\BD\SKLAD.GDB”

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

LENGTH 500

FILE “D:\BD\SKLAD.GD\2”

Здесь определяется БД D:\BD\SKLAD.GDB, состоящая из 3 файлов: первичного длиной 1000 страниц, второго длиной 500 страниц и третьего неопределенной длины.

Типы данных и домены

Типы данных:

· Символьные (CHAR, VARCHAR)

· Целочисленные (INTEGER, SMALLINT)

· Вещественные (FLOAT, DOUBLE PRECISION)

· Фиксированно-десятичные значения (DECIMAL, NUMERIC)

· Значения типа даты (DATE)

· Двоичные (BLOB)

 

Понятие домена:

CREATE DOMAIN домен [AS] <тип данных>

[DEFAULT {литерал} | NULL | USER]

[NOT NULL] [CHECK (<Ограничение домена>) ]

 

Пример:

CREATE DOMAIN ID_TYPE AS INTEGER

CHECK (VALUE >= 100);

 

< Ограничение домена >= {

VALUE <оператор> <значение>

| VALUE [NOT] BETWEEN <значение1> AND <значение2>

| VALUE [NOT] LIKE <значение1> [ESCAPE <значение2>]

| VALUE [NOT] IN <значение1> [, <значение2> …])

| VALUE IS [NOT] NULL

| VALUE [NOT] CONTAINING <значение>

| < Ограничение домена >

| NOT < Ограничение домена >

| < Ограничение домена > OR | < Ограничение домена >

| < Ограничение домена > AND < Ограничение домена >

};

где

<оператор> = { = | < | > | <= | >= | != | !< | !> | <> }