|
Лабораторная работа №6
Тема: Работа с Interbase.
Цель: Научиться переносить таблицы из одной базы данных в другую (из локальной в серверную), научиться создавать генераторы и триггеры в таблицах Interbase.
Оборудование: ЭВМ, инструкции.
Порядок выполнения
1. Пользуясь приведенной инструкцией выполните пункты 1-8.
2. Создайте альяс для БД employee.gdb типа InterBase, лежащей в папке C:\Program Files\Common Files\Borland Shared\Data\. Ответьте на вопросы:
Какие таблицы входят в БД? Сколько генераторов в БД и для каких они таблиц? Приведите несколько триггеров и объясните их назначение.
3. Оформите отчет и сдайте его преподавателю.
Содержание отчета
1. Тема, цель, оборудование.
2. Задание.
3. Окно формы и тексты главного файла проекта и модуля.
4. Вывод.
Перенос таблиц из локальной в серверную БД (и вообще – перенос таблиц из одной БД в другую независимо от типа любой из них) реализуются утилитой Data Pump. Ниже приведен пример переноса таблиц типа Paradox в новую БД типа Interbase.
Запустите утилиту DatabaseDesktop и перед началом работы задайте рабочую директорию C:\Books:
1. Создайте таблицу Books типа Paradox со следующей структурой:
BookID - уникальный идентификатор (первичный ключ)
Bname – название книги (индексное поле)
Bauthor – автор(ы)
Bpublish – издательство
Bprice – цена покупки книги
Bopt – цена оптовой продажи
Brozn – цена розничной продажи
Bquan – остаток книг на складе
Раскройте список Table Property, выберите Secondary Indexes, нажмите кнопку Define и задайте полю Bname вторичный индекс:
Поместите ее в папку C:\Books.
2. Создайте таблицу Movebook типа Paradox со следующей структурой:
MoveID – уникальный идентификатор (первичный ключ)
MBook – код книги из поля BookID таблицы Books
Mquan – количество экземпляров книги
Mprice – цена одного экземпляра
Раскройте список Table Property, выберите Referential Integrity, нажмите кнопку Define и установите ссылочную целостность между данной таблицей и таблицей Books:
Поместите ее в папку C:\Books.
3. Заполните данные таблицы 2-3 записями.
4. Используя сведения, полученные в предыдущей лабораторной работе, создайте новую БД типа InterBase воспользовавшись утилитой IBConsole (путь к главному файлу С:\BooksInterBase\Books.gdb). Создайте для этой БД альяс, назовите его BooksINTRBASE.
Примечание. Если локальный сервер уже зарегистрирован, т.е. в левой части окна имеется строка Local Server, то щелкните на ней два раза, введите пароль masterkey, и после этого создавайте новую БД (DataBase-Create DataBase).
5. Перенос таблиц из локальной в серверную базу данных. Запустите утилиту Data Pump (Пуск-Программы-Borland Delphi7-Data Pump)
Выберите папку C:\Books, в которой хранятся исходные файлы типа Paradox, нажмите Next.
Выберите альяс БД, в которую следует перенести данные, а именно BooksINTRBASE, дважды щелкните по нему. Нажмите Next.
С помощью кнопки >> перенесите все таблицы в правую часть. Нажмите Next. Программа проанализирует структуру каждой таблице и покажет окно, в котором сообщается о том, будут ли в процессе переноса изменены поля, индексы и ссылочные ценности каждой переносимой таблицы.
В ходе переноса программа информирует о том, что она делает в данный момент, нажимая на кнопку Next и перемещаясь по интересующим вас полям можно просмотреть следующую информацию:
Если нажать на кнопку Upsize, можно увидеть итоги переноса:
Просмотрите любым способом созданную БД нового типа (через IBConsole, через SQL Explorer, через DatabaseDesktop).
6. Создание генераторов. Так как в таблицах типа InterBase нет автоинкрементного типа, то при переносе таблицы Paradox в InterBase автоинкрементный тип заменяется длинным целым типом Long. Чтобы помещать в такой столбец уникальные значения, в InterBase предусмотрен специальный механизм генераторов. Генератор – это хранящаяся в БД программа, выдающая при каждом обращении к ней уникальное число. Для каждого автоинкементного столбца создается свой генератор.
Создадим генератор с именем Gen_Books для поля BookID таблицы Books:
· Вызовите SQL Explorer и откройте БД BooksINTRBASE:
Выполните запросы (откройте вкладку Enter SQL, введите текст запроса и нажмите ):
Приведенный ниже запрос возвращает очередное значение поля BookID:
Приведенный ниже запрос устанавливает начальное значение оператора (если этот запрос не выполнить, то начальное значение будет нулевым):
После выполнения данных запросов генератор будет создан. Если в левой части раскрыть Generators, то появится новый генератор Gen_Books.
Самостоятельно создайте генератор с именем Gen_Movebook для поля MoveID таблицы Movebook.
7. Создание триггеров. Триггер определяет программный отклик на изменение данных. Он создается таким SQL оператором:
CREATE TRIGGER <имя триггера> FOR <имя таблицы>
[ACTIVE | INACTIVE]
{BEFORE| AFTER}
{DELETE| INSERT| UPDATE}
[POSITION <номер>]
AS
[<объявление локальных переменных>]
BEGIN
<операторы>
END
ACTIVE | INACTIVE – указывает будет ли триггер активным (по умолчанию используется значение ACTIVE
BEFORE| AFTER – определяет будет ли триггер срабатывать до (BEFORE) или после (AFTER) изменения данных
DELETE| INSERT| UPDATE – указывает тип изменения данных
POSITION – необязательный параметр, определяющий очередность срабатывания триггера, если для одной и той же таблицы создано несколько однотипных триггеров (по умолчанию используется значение POSITION 0)
· С помощью триггера можно установить в автоинкрементное поле значение, полученное от генератора. Например, для поля BookID:
Строка
new.BookID=gen_id(gen_books,1);
означает, что новому значению (предикат New) поля BookID присваивается значение, полученное от встроенной функции gen_id. Параметрами этой функции указываются имя генератора и то значение, на которое должно увеличится текущее значение генератора (шаг генератора).
Примечание. В триггерах INSERT и UPDATE можно обращаться к новому значению поля, если его имени предшествует предикат NEW, а в триггерах DELETE и UPDATE – к старому значению (предикат OLD).
· Самостоятельно создайте триггер для поля MoveID.
Просмотреть тексты триггеров, генераторов можно в SQL-Explorer, открыв вкладку Text и выделив нужную сущность БД.
· Создадим еще один триггер.
Так как таблицы у нас связаны, то перед удалением данных о книге из таблицы Books необходимо удалить из Movebook все строки, соответствующие этой книге. Это реализуется таким простым триггером:
8. Работа с таблицами. Запустите Delphi, отобразите таблицы Books и Movebook на форме (используйте сведения из предыдущей лабораторной).
Добавьте записи в таблицы, проверьте работу генераторов. Удалите запись из таблицы Books, обновите БД, и проверьте удалились ли соответствующие записи из таблицы Movebook.
Дата добавления: 2015-09-29; просмотров: 64 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Тема: Контекстна реклама | | | Міністерство освіти і науки України |