Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание и использование Script-файла




Создание базы данных, доменов, таблиц и ключей в InterBase.

 

Используя утилиту InterBase Windows ISQL (interactive SQL), далее называемый WISQL, можно создать БД. Для этого запустим утилиту WISQL и в главном меню выберем режим File\Create Database. Далее, в окне диалога укажем имя БД, имя пользователя SYSDBA, пароль masterkey (имя и пароль системного администратора для локального сервера InterBase), а также в окне DataBase Options – параметры БД. В нашем случае в качестве единственного параметра будет введена установка по умолчанию набора символов WIN1251 (рис. 3.2).

 

 

Рис. 3.2. Утилита WISQL – окно создания базы данных.

 

Другой путь создания базы данных является выполнение оператора SQL в командной части окна утилиты WISQL (рис. 3.3).

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

 

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

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

[PAGE_SIZE [=] целое]

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

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

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

 

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

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

 

Таблица 3.13.

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

Аргумент Описание
"<имя_файла>" Указывает спецификации файла, в котором будет храниться создаваемая БД. Эти спецификации зависят от платформы.
USER "имя_пользователя " Имя пользователя, которое вместе с паролем, определяемым PASSWORD,проверяется при соединении пользователя с сервером, на котором расположена БД.
PASSWORD "пароль" Пароль, который вместе с именем пользователя проверяется при соединении пользователя с сервером.
PAGE_SIZE [=] целое Размер страницы БД в байтах. Допустимые размеры: 1024 (по умолчанию), 2048, 4096 или 8192.
DEFAULT CHARACTER SET набор_символов Определяет набор символов, применимый в БД. Если не указан, по умолчанию берется NONE.
FILE "<имя_файла>" Имя одного или нескольких файлов, в которых будет располагаться БД.
STARTING [AT [PAGE]] Если БД располагается в нескольких файлах, это предложение позволяет определить, с какой страницы БД располагается в указанном файле.
LENGTH [=] целое [PAGE[S]] Длина файла в страницах. По умолчанию 75 страниц. Минимум 50 страниц. Максимум ограничен фактически имеющимся дисковым пространством.

 

 

Рис. 3.3. Вид окна утилиты WISQL.

Если в таблице БД или нескольких таблицах БД присутствуют столбцы, обладающие одними и теми же характеристиками, можно предварительно описать тип такого столбца и его поведение через домен, а затем поставить в соответствие каждому из одинаковых столбцов имя домена. Домен определяется оператором CREATE DOMAIN следующего формата:

 

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

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

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

[COLLATE collation]

 

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

 

CREATE DOMAIN POL_TYPE AS CHAR(3)

COLLATE PXW_CYRL;

 

Остальные предложения будут рассмотрены ниже.

После создания общей структуры базы данных и определения доменов модно приступить к созданию таблиц, представляющих отношения, входящие в состав проекта базы данных. Для этой цели используется оператор CREATE TABLE, имеющий следующий общий формат:

 

CREATE TABLE имя_таблицы

(Имя_солонки тип_данных [NULL | NOT NULL] [UNIQUE] [,... ])

[DEFAULT значение по умолчанию ] [CHEC(условие_поиска)] {,…]}

[PRIMARY KEY (список_колонок),]

{[UNIQUE (список_солонок),] [,…]}

{[FOREIGN KEY (список_солонок)

REFERENCER имя_родительской_таблицы [(список_колонок_потенциального_ключа ],

[ON UPDATE действие ]

[ON DELETE действие ] ] [,…]}

{[CHECK (условие поиска)] [,…] })

 

В результате выполнения этого оператора будет создана таблица, имя которой определяется параметром имя_таблицы, состоящая из одного или более столбцов с именами, задаваемыми параметрами название_колонки, содержащие данные с типом, указанным параметрами тип_данных. Набор доступных типов данных был описан ранее. В качестве типов данных могут выступать домены, определенные ранее. Остальные предложения оператора будут описаны далее при рассмотрении вопросов целостности данных.

 

 

Текст SQL-запросов может быть оформлен в виде файла и затем выполнен (элемент меню File \ Run an ISQL Script). Преимущество такого подхода очевидно в тех случаях, когда необходимо периодически выполнять повторяющиеся последовательности операторов. Операторы создания БД, таблиц, процедур, триггеров и т.д. также могут выполняться из отдельного Script-файла.

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

 

SET TERM НовыйРазделитель;

 

Необходимость его применения связана с тем, что стандартным разделителем SQL-операторов является точка с запятой ';'. В WISQL этот разделитель можно опускать, а вот в SQL-скрипте разделитель обязателен. Как известно, в теле хранимых процедур и триггеров операторы разделяются таким же разделителем:

 

CREATE PROCEDURE FIND_MAX_KOLVO (IN_TOVAR VARCHAR(20))

RETURNS(MAX_KOLVO INTEGER) AS

BEGIN

SELECT MAX(KOLVO)

FROM RASHOD

WHERE TOVAR =: IN_TOVAR

INTO: MAX_KOLVO;

SUSPEND;

END;

 

Поэтому перед выполнением оператора CREATE PROCEDURE или CREATE TRIGGER устанавливают новый разделитель, завершают им одно или несколько идущих подряд определений процедур и триггеров, а затем восстанавливают старый разделитель. Например:

 

SET TERM ###;

 

CREATE PROCEDURE FIND_MAX_KOLVO (IN_TOVAR VARCHAR(20))

RETURNS(MAX_KOLVO INTEGER) AS

BEGIN

SELECT MAX(KOLVO)

FROM RASHOD

WHERE TOVAR =: IN_TOVAR

INTO: MAX_KOLVO;

SUSPEND;

END ###

 

SET TERM; ###

 

При вводе и выполнении SQL-операторов непосредственно в окне WISQL, автоматически формируется последовательность операторов

 

SET TERM ^;

 

SET TERM;^.

 

Пример Script-файла.

 

set names WIN1251;

connect "d:\book\ib_sklad\ib_sklad.gdb" USER "SYSDBA"

PASSWORD "masterkey";

drop database;

create database "d:\book\ib sklad\ib_sklad.gdb" USER "SYSDBA"

 

PASSWORD "masterkey"

default character set WIN1251;

connect "d:\book\ib_sklad\ib_sklad.gdb" USER "SYSDBA" PASSWORD "masterkey";

 

*/Идут операторы, предназначенные для создания доменов*/

 

*/ Далее идут операторы, которые создают таблицы базы данных ib_sklad.gdb.*/

 

SET TERM ###;

 

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

 

SET TERM; ###

 

*/ Идут операторы, которые заносят информацию в базу данных*/

 

COMMIT;

 

КОНТРОЛЬНЫЕ ВОПРОСЫ:

1. Что такое процесс физического проектирования базы данных?

2. Сформулируйте основную цель физического проектирования базы данных?

3. Что подразумевается под способом физической реализации логического проекта базы данных в случае реляционной модели данных?

4. Почему необходимо отделять фазы концептуального и логического проектирования от фазы физического проектирования СУБД.

5. Какие возможности должен предоставлять пользователю язык работы с базами данных?

6. Какие два основных компонента языка SQL Вы знаете? Для чего они предназначены?

7. Какие типы команд присутствуют в SQL, а какие отсутствуют?

8. Какие способы использования языка SQL в плане организации вычислительного процесса Вам известны?

9. Является ли язык SQL процедурным языком? Почему?

10. Что значит свободный формат записи операторов и поддерживает ли его язык SQL?

 




Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 397; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.