
- •Содержание
- •3.1. Физическое проектирование базы данных.
- •3.2. Типы данных субд InterBase.
- •3.2.1. Целочисленные значения.
- •3.2.2. Значение с плавающей запятой.
- •3.2.3. Фиксировано-десятичные значения.
- •3.2.4. Значения типа даты.
- •3.2.5. Символьные типы данных.
- •3.2.6. Значения типа blob.
- •3.2.7. Совместимость типов столбцов.
- •3.3. Физическая модель базы данных «библиотека».
- •3.4. Краткая характеристика языка sql.
- •3.5. Создание базы данных, доменов, таблиц и ключей в InterBase.
- •3.6. Создание и использование Script-файла.
- •Контрольные вопросы:
3.6. Создание и использование Script-файла.
Текст 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;
Контрольные вопросы:
Что такое процесс физического проектирования базы данных?
Сформулируйте основную цель физического проектирования базы данных?
Что подразумевается под способом физической реализации логического проекта базы данных в случае реляционной модели данных?
Почему необходимо отделять фазы концептуального и логического проектирования от фазы физического проектирования СУБД.
Какие возможности должен предоставлять пользователю язык работы с базами данных?
Какие два основных компонента языка SQL Вы знаете? Для чего они предназначены?
Какие типы команд присутствуют в SQL, а какие отсутствуют?
Какие способы использования языка SQL в плане организации вычислительного процесса Вам известны?
Является ли язык SQL процедурным языком? Почему?
Что значит свободный формат записи операторов и поддерживает ли его язык SQL?