Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_раб_04.doc
Скачиваний:
5
Добавлен:
12.11.2019
Размер:
166.4 Кб
Скачать

Оператор create database.

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

CREATE {DATABASE | SCHEMA}"<имя_файла>"

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

[PAGE_SIZE [=] целое]

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

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

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

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

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

В таблице 3.2. приведено описание оператора CREATE DATABASE.

Таблица 3.2.

Описание оператора CREATE DATABASE.

Аргумент

Описание

"<имя_файла>"

Указывает спецификации файла, в котором будет храниться создаваемая БД. Эти спецификации зависят от платформы.

USER "имя_пользователя "

Имя пользователя, которое вместе с паролем, определяемым PASSWORD, проверяется при соединении пользователя с сервером, на котором расположена БД.

PASSWORD "пароль"

Пароль, который вместе с именем пользователя проверяется при соединении пользователя с сервером.

PAGE_SIZE [=] целое

Размер страницы БД в байтах. Допустимые размеры: 1024 (по умолчанию), 2048, 4096 или 8192.

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

Определяет набор символов, применимый в БД. Если не указан, по умолчанию берется NONE.

FILE "<имя_файла>"

Имя одного или нескольких файлов, в которых будет располагаться БД.

STARTING [AT [PAGE]]

Если БД располагается в нескольких файлах, это предложение позволяет определить, с какой страницы БД располагается в указанном файле.

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

Длина файла в страницах. По умолчанию 75 страниц. Минимум 50 страниц. Максимум ограничен фактически имеющимся дисковым пространством.

Например, для создания базы данных LIBRARY.GDB в каталоге C:/DB/ в SCRIPT-файл необходимо ввести следующий оператор:

CREATE DATABASE C:/DB/LIBRARY.GDB

USER ‘S’

PASSWORD ‘s’

DEFAULT CHARACTER SET WIN1251

Определение доменов.

Домены представляют собой чрезвычайно мощный компонент реляционной модели. Каждый атрибут реляционной базы данных определяется на некотором домене. Домены могут отличаться для каждого из атрибутов, но два и более атрибутов могут определяться на одном и том же домене. В табл. 3.3. представлены домены для некоторых атрибутов отношений BookAuthors и Books. Хотя в отношении BookAuthors – восемь атрибутов, здесь показаны только шесть, потому что три атрибута, FamilyName (Фамилия), Name (Имя) и Patronymic (Отчество), определены на одном и том же домене. Обратите внимание, что в любой момент времени в доменах могут существовать значения, которые не будут реально представлены значениями соответствующего атрибута.

Таблица 3.3.

Домены атрибутов отношений BookAuthors и Books БД «Библиотека».

Атрибут

Имя домена

Содержимое домена

Определение домена

Code

AllCode

Уникальные номера строк для всех отношений БД «Библиотека»

Целочисленное значение

FamilyName

FIO

Множество всех фамилий людей

Символьный: размер 30

Name

FIO

Множество всех имен людей

Символьный: размер 30

Patronymic

FIO

Множество всех отчеств людей

Символьный: размер 30

Birthday

-

Множество всех дней рождений авторов

Дата

Deatheday

-

Множество всех дней смерти людей

Дата, диапазон от даты рождения

ShortBiography

AllNote

Множество всех автобиографий людей

Большой двоичный объект: ASCII-текст

Note

AllNote

Множество всех дополнительных сведений

Большой двоичный объект: ASCII-текст

Name

BookName

Множество всех названий книг

Символьный: длина 200

AuthorCode

AllCode

Множество всех кодов авторов книг

Целочисленное значение

IssueYear

-

Множество всех годов издания книг

Дата

Drawing

AllDrawing

Множество всех тиражей книг

Целочисленное значение, диапазон от 10

UDK

AllUDK

Множество всех УДК книг

Символьный: длина 20

Cipher

AllCipher

Множество всех шифров книг

Символьный: длина 10

Note

AllNote

Множество всех дополнительных сведений

Большой двоичный объект: ASCII-текст

Домен определяется оператором CREATE DOMAIN следующего формата:

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

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

[NOT NULL] [CHECK (<условие_поиска>)]

[COLLATE collation]

Предложение COLLATE позволяет указать порядок сортировки символов.

CREATE DOMAIN POL_TYPE AS CHAR(3)

COLLATE PXW_CYRL;

Предложение CHECK определяет требования к значениям каждого столбца, ассоциированного с доменом. Столбцу не могут быть присвоены значения, не удовлетворяющие ограничениям, наложенным в предложении CHECK. Формат ограничения, накладываемого на значения полей, ассоциированных с доменом:

<огранич_домена> = { VALUE <оператор> <значение> | VALUE [NOT] BETWEEN <значение1> AND <значение2>

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

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

VALUE IS [NOT] NULL

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

VALUE [NOT] STARTING [WITH] <значение>

(<огранич_домена>)

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

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

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

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

Ключевое слово VALUE далее означает все правильные значения, которые могут быть присвоены столбцу, ассоциированному с доменом.

  • VALUE <оператор> <значение> определяет, что значение домена находится с параметром значение во взаимоотношениях, определяемых параметром оператор. Например, значение, которое может быть записано в столбец, ассоциированный с доменом ID_TYPE, должно быть больше или равно 100:

CREATE DOMAIN ID_TYPE AS INTEGER

CHECK(VALUE >= 100);

  • BETWEEN <значение1> AND <значение2> определяет, что значение домена должно находиться в промежутке между значение] и значение2, включая их;

  • LIKE <значение1> [ESCAPE <значение2>| определяет, что значение домена должно "походить" на параметр значение 1. При этом употребляется символ '%' для указания любого значения любой длины и символ '_' (подчеркивания) для указания любого единичного символа. Например,

LIKE "%USD" - вводимое значение должно оканчиваться символами 'USD', независимо от того, какие символы и сколько расположены перед ними;

LIKE "__94" – вводимое значение может содержать 4 символа, из которых первые два – любые и последние два - '94'.

ESCAPE <значение2> используется, если в операторе LIKE символы '%' или '_' должны использоваться в шаблоне подобия. В этом случае выбирается некоторый символ, например "!", после которого символы '%','_' входят в поисковую строку как непосредственно символы. Символ '!' указывается после слова ESCAPE, например:

CREATE DOMAIN SUMMA AS CHAR(10)

CHECK(LIKE "%!%" ESCAPE "!");

Значения столбца SUMMA должны заканчиваться символом "%".

  • IN (<значение1> [, <значение2>...]) определяет, что значение домена должно совпадать с одним из приведенных в списке параметров значение Х,, например:

CREATE DOMAIN SEX AS CHAR(1)

CHECK(VALUE IN ("М","Ж"));

  • CONTAINING <значение> определяет, что значение домена должно содержать вхождение параметра значение, неважно в каком месте. Например, в наименовании отдела вхождение "041" может встретиться где угодно ("Отдел-041002", "003404192", и т.д.):

CREATE DOMAIN OTDEL_TYPE AS VARCHAR(10)

CHECK(VALUE CONTAINING "041")

COLLATE PXW_CYRL;

  • STARTING [WITH] <значение> требует, чтобы значение домена начиналось параметром значение. Например, название отдела должно начинаться с "041":

CREATE DOMAIN OTDEL_TYPE AS VARCHAR(10)

CHECK(VALUE STARTING WITH "041")

COLLATE PXW_CYRL;

  • Может быть задана комбинация условий, которым должно соответствовать значение домена. В этом случае отдельные условия соединяются операторами AND или OR. Например:

CREATE DOMAIN OTDEL_TYPE AS VARCHAR(10)

CHECK(VALUE STARTING WITH "041" AND

VALUE CONTAINING "-12")

COLLATE PXW_CYRL;

Для большинства условий можно указать слово NOT, которое изменит условие с точностью до наоборот. Например:

CHECK(VALUE NOT BETWEEN 1 AND 100);