Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Цель : Научиться переносить таблицы из одной базы данных в другую (из локальной в серверную), научиться создавать генераторы и триггеры в таблицах Interbase.



Лабораторная работа №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 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
Тема: Контекстна реклама | Міністерство освіти і науки України

mybiblioteka.su - 2015-2024 год. (0.013 сек.)