Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка БД.doc
Скачиваний:
19
Добавлен:
16.11.2019
Размер:
842.75 Кб
Скачать

Задание на лабораторную работу № 6

Разработать приложение для выполнения SQL-запросов, описанных в индивидуальном задании. Все запросы должны быть параметризированными.

2. Создание приложений, работающих с базами данных interbase

2.1. Лабораторная работа № 1: создание схемы базы данных

Задание: Для своего варианта индивидуального задания создать схему базы данных, используя средства InterBase. Реализовать для каждой таблицы автогенерацию первичных ключей. Задать ссылочную целостность, в сложных случаях реализовать с помощью триггеров. Определить ограничения (Constraints) для всех таблиц.

Выполнение.

Откройте приложение IBConsole из пакета InterBase: Пуск | Программы | InterBase | IBConsole. Выберите пункт меню Tools/Interactive SQL и в верхней части появившегося окна введите команду:

CREATE DATABASE "D:\STUDENTS\V-312\TEST.GDB" USER "SYSDBA" PASSWORD "masterkey"

Первый параметр команды определяет путь к файлу D:\STUDENTS\V-312\ и имя файла новой БД TEST.GDB (при указании убедитесь, что путь действительно существует). Два следующих параметра — это стандартные имя и пароль системного администратора. Чтобы выполнить команду, нажмите Ctrl-Enter.

Далее вернитесь в главное окно IBConsole. Раскройте пункт Local Server списка в левой части окна и на запрос имени пользователя и пароля введите, соответственно, SYSDBA и masterkey. В меню Database выберите Register и зарегистрируйте вашу БД. Для этого укажите файл БД и имя псевдонима (Alias Name). После этого все объекты новой БД можно найти, раскрыв элемент списка, название которого соответствует введенному псевдониму.

Теперь можно продолжить создание БД. Откройте уже знакомое окно ввода SQL-запросов (Tools/Interactive SQL) и для создания таблицы выполните код:

CREATE TABLE FIRSTABLE

(

ID INTEGER NOT NULL,

FNAME VARCHAR(15),

MNAME VARCHAR(15),

LNAME VARCHAR(15),

ADDR VARCHAR(30),

PHONE VARCHAR(15),

BIRTH TIMESTAMP,

PRIMARY KEY (ID)

)

Здесь FIRSTABLE — имя новой таблицы, а в скобках перечислены определения ее полей. В последнюю очередь указываются ограничения (Constraints). В данном случае с помощью оператора PRIMARY KEY определен первичный ключ таблицы: это поле ID.

Для создания автоинкрементных полей в InterBase используют элементы схемы, называемые генераторами (аналог объектов Sequence в СУБД Oracle). Генератор создается следующей командой:

CREATE GENERATOR GEN_CLIENT;

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

SET TERM !!;

CREATE TRIGGER INC_CLIENT FOR CLIENTS

ACTIVE BEFORE INSERT POSITION 0

as

begin

new.ID_CLIENT = gen_id(GEN_CLIENT,1);

end !!

Рассмотрим этот код.

Команда SET TERM определяет символы терминатора, который нужен для указания окончания кода триггера и используется только в реализации SQL InterBase. Команда CREATE TRIGGER имеет следующие параметры:

  • имя триггера (INC_CLIENT);

  • имя таблицы, для которой создается триггер (CLIENTS);

  • параметр ACTIVE (необязателен);

  • параметр BEFORE или AFTER указывает, что триггер сработает до или после связанной с ним операции;

  • параметр INSERT, DELETE или UPDATE определяет производимую над таблицей операцию, с которой связан триггер (соответственно, вставка, удаление или изменение данных);

  • POSITION 0 — указывает, что триггер сработает первым среди всех триггеров, связанных с данной операцией.

Внутри составного оператора begin … end находится код операций, производимых триггером. В нашем случае новое значение поля ID_CLIENT создается генератором GEN_CLIENT. Эта процедура автоматически увеличивает значение генератора с шагом, в нашем примере равным 1.