Тема: «Организация контроля данных на сервере InterBase»




Задание: подключить базу данных Dekanat.gdb на сервере FireBird в локальном режиме и организовать контроль вводимых данных при помощи следующих объектов:

Ход работы:

1. папку PR_1(для сохранения всех файлов работы) разместите На Рабочем столе, скопировав ее с личного диска.

2. Подключите и откройте базу данных через IB Expert

3. Создайте новое исключение:

§ имя – Er_nom1,

§ текст – «Значение числа должно быть положительным»,

§ Описание – «Проверка на положительность»

4. Просмотрите текст SQL для создания исключения (вкладка DDL) и сохраните его описание в файл Список исключений.txt ( через буфер обмена )

5. Создайте новый триггер:

§ имя – Tr_add_student

§ Таблица – Db_ student

§ Тип - перед вставкой

§ Режим - Активная

§ текст – IF new.tab<0 then exception Er_nom1

6. Просмотрите текст SQL для создания триггера и сохраните его описание (, Preview, ) в файл Список триггеров.rtf С русским заголовком Интерактивно добавить нового студента с табельным номером -8 и остальными правильными данными. Сохраните данные. Определите, в какой момент срабатывает триггер и вызывается исключение? Исправьте номер на 0. Какое появилось сообщение? Исправьте номер на правильный (108). Сохраните транзакцию. Измените значение номера у другой существующей записи на -8. Почему не срабатывает триггер? Отмените транзакцию

7. Самостоятельно создайте следующие исключения для дальнейшего использования и сохраните их описание в конец файла Список исключений.txt: Имя Текст Описание
Er_nom2 Значение кода обязательное Проверка на пустоту
Er_str1 Не введен описательный текст Проверка на пустоту

8. Самостоятельно измените текст тела триггера Tr_add_student, добавив проверку Номера, Фамилии и Даты на пустоту (is null). Для каждой проверки активизируйте нужное исключение и сохраните описание в конец файла Список триггеров.rtf

9. Создайте новую хранимую процедуру:

  Имя Тип Описание
Первый New_nom Smallint Значение кода группы
Второй New_name Char(50) Значение название группы

§ имя – SP_ins_gruop

§ Входные параметры: см. таблицу
(!!! ВАЖЕН порядок переменных):

§ Комментарии – хранимая процедура для добавления новой группы

§ Тело процедуры: insert into Группа (номер, называние) values (: New_nom,: new_name)

§ Выполнить компиляцию. Просмотрите текст SQL-команды создания процедуры и сохраните ее описание (, Preview, ) в файл Список процедур.rtf с русским заголовком

10. Протестируйте созданную процедуру (F9 - execute procedure), введя значение 10, В-31

11. Запустите хранимую процедуру через SQL:

§ Создайте SQL-команду: execute procedure sp_ins_group (11,'В-21')

§ Запустите на выполнение, если ошибок нет, то подтвердите транзакцию

§ Просмотрите содержимое таблицы Группа.

12. Создайте новый генератор с начальным значением

§ имя – Gen_Nom_Group

§ Начальное значение – 100

§ Описание – счетчик для кодов групп

§ Просмотрите текст SQL для создания исключения (вкладка DDL) и сохраните его описание в файл Список генераторов.txt ( через буфер обмена)

13. Внесите изменения в хранимую процедуру sp_ins_group:

§ Удалите первый входной параметр

§ Измените тело процедуры:
insert into Группа (номер, называние) values (gen_id (Gen_Nom_Group, 1),: new_name)

§ в файл Список процедур.rtf сохраните измененную процедуру

14. Протестируйте и сохраните изменения

15. Запустите процедуру через SQL с названием ‘В-32’, а затем ‘В-22’. Если ошибок нет, то просмотрите данные в таблице Группа. Какие номера имеют новые предметы?

16. Самостоятельно создайте генератор для номера (Gen_Nom_Pred), процедуру (sp_ins_pred) для добавления новой записи о предмете (запрос на название предмета и количество часов) и триггер (Tr_add_pred) с проверкой введенного названия на пустоту, а количества часов на диапазон от 20 до 300 часов. Описание объектов сохранить в конец соответствующих файлов

17. Отсоедините БД. Завершите работу с программой. Скопируйте папку PR_1 на личный диск.


Дополнительное задание:

§ В процедуру sp_ins_group добавить входной параметр для ФИО классного руководителя (New_FIO)

§ Создайте процедуру для проверки ссылочной целостности между Группами и Студентами, то есть проверки существует ли значение в поле Код группы из Таблицы Группа в поле Код группы из Таблицы Студент. Если такие данные найдены, то активизируйте сообщение об ошибке «Нельзя удалять эту группу, потому что в ней существуют студенты!». Подключите эту процедуру на удаление данных таблицы Группа

 

Контрольные вопросы:

1. Назначение, структура и порядок использования триггера, исключения, хранимой процедуры и генератора

2. Создание триггера, исключения, хранимые процедуры и генераторы

3. Подключать хранимые процедуры

4. Активизировать триггеры и исключения

5. Увеличивать и использовать генератор

6. Использовать команды SQL: Create Exception, Create Trigger, Create Procedure, Execute Procedure,
Create Generator, Set Generator, Gen_id,

 

Индивидуальное задание: Для базы данных создать объекты контроля данных:

§ Триггер проверки при добавлении и редактировании данных в справочной таблице

§ Триггер проверки удаления записи в справочной таблицы, чтобы не было связанных с ней записей в подчиненных таблицах

§ Хранимую процедуру для добавления новой записи в основную таблицу и расчетом вычисляемого поля

§ Хранимую процедуру для редактирования существующей записи в основной таблице и пересчетом вычисляемого поля

§ Хранимую процедуру для удаления существующей записи из основной таблицы

Примечание: для вывода сообщений создать Исключения, при добавлении новой записи код создавать при помощи Генератора

 

Оформить отчет по индивидуальному заданию:

1. Тема индивидуального задания

2. Имя файла базы данных

3. Связи таблиц базы данных

4. Исходные данные

5. Структура триггеров, генераторов, исключений и хранимых процедур с комментариями

6. Результат выполнения триггеров и хранимых процедур

7. Данные после выполненного триггеров и хранимых процедур

 

Отчет сохранить в файл z:\...\РиЭУБД\Отчеты\3_контроль данных.doc

и распечатать на А4

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: