|
РБД_Лаб_2021. Распределенные базы данных
Лабораторная работа №6 РАЗРАБОТКА КЛИЕНТ-СЕРВЕРНОГО ПРИЛОЖЕНИЯ В СРЕДЕ DELPHI ДЛЯ РАБОТЫ С РАСПРЕДЕЛЕННОЙ БАЗОЙ ДАННЫХ В СРЕДЕ СУБД ORACLE Цель работы. Получение навыков построения клиент-сервер-ных приложений в среде Delphi для работы с распределенной базой данных. Используемая СУБД – Oracle 10g Express Edition. 6.1. КРАТКАЯ ТЕОРИЯ В данной работе для соединения с СУБД должны быть использованы компоненты ADO.
С тандартный модуль данных выглядит следующим образом (рис. 6.1).
Рис. 6.1 – Размещение компонента ADO Connection
Для компонента ADOConnection1 редактируем свойство ConnectionString (рис. 6.2).
Рис. 6.2 – Создание подключения Следует нажать кнопку Build и заполнить соответствующие поля в диалоговом окошке ”Свойство связи с данными”.
Остальные компоненты связи с СУБД располагаются непосредственно на рабочих формах. Пример рабочей формы – на рис. 6.3.
Рис. 6.3 – Пример рабочей формы 6.2 ЗАДАНИЯ К РАБОТЕ И ПОРЯДОК ВЫПОЛНЕНИЯ
Задание 1. Разработать приложение для работы с распределенной базой данных.
Порядок выполнения задания 1.
1. Используя навыки построения базы данных, полученных на предыдущих лабораторных работах, сформировать три пользовательских схемы (эмуляция распределенной базы данных, состоящей из трёх узлов). Распределить, созданные для свое предметной области, таблицы по этим схемам.
2. Реализовать распределенные запросы с использованием оператора UNION.
3. Реализовать распределенные транзакции.
4. Пример главной формы представлен на рис. 6.4. Рабочие формы должны вызываться из главной формы через меню.
Рис. 6.4 – Пример главной формы 5. Каждая таблица должна иметь собственную дочернюю форму в приложении (рис. 6.5). Исключением является таблица связи SUBJ_LECT (какие предметы читаются конкретными преподавателями). Пример экранной формы для этой таблицы приведен на рис. 6.6.
Рис. 6.5 – Пример типовой рабочей формы Общие требования к формам. Заголовок формы должен соответствовать содержимому таблицы. Для просмотра данных в табличном виде используется компонент TDBGird. Для полей редактирования используются компоненты TEdit (для полей типа Varchar2), TMaskEdit (для полей типа Number) и TDateTimePicker (для полей типа Date). Значения первичных ключей и информацию о дате создания записи (DAT_CRE) и пользователе (ID_CRE) выводить на отдельной закладке “Системная информация” в полях TEdit (не доступных для редактирования ни при каких обстоятельствах).
Требования к работе с данными. Для запроса данных использовать обзор, созданный для соответствующей таблицы. Запрос необходимо писать в свойстве SQL компонента ADOQuery1.
При перемещении по записям в таблице DBGrid1 значения в полях редактирования на закладках “Основные параметры” и “Системная информация” должны меняться в соответствии с активной записью.
Рис. 6.6 – Пример рабочей формы с мастер-деталь отношением Требования к работе с кнопками. После нажатия кнопки “Сохранить” или “Удалить” должен вызываться соответствующий метод пакета, закрепленного за таблицей, для которой сделана текущая форма.
После нажатия кнопки удалить должно появляться диалоговое окно с вопросом: “Удалить указанную запись?” и кнопками «Да» и «Нет». При нажатии кнопки «Нет» диалоговое окно закрывается и ничего не происходит. При нажатии «Да» вызывается метод удаления из пакета.
Методы пакетов вызываются в конструкции try…except…end с использованием компонента TADOStoredProc. В блоке try…except транзакция инициализируется и завершается вызовом Commit для транзакции. Если при вызове пакета произошла ошибка, то в блоке except…end должен сработать откат транзакции (Rollback).
Пример вызова операторов для работы с транзакциями: DataModule1.ADOConnection1.BeginTrans;
DataModule1.ADOConnection1.CommitTrans;
DataModule1.ADOConnection1.RollbackTrans; Отдельное пояснение к рис. 6.6. При нажатии кнопки “Удалить” из списка предметов удаляется выбранный предмет (используется метод из пакета). При нажатии кнопки “Добавить” появляется диалоговое окно (рис. 6.7) со списком всех предметов. Из списка выбирается один предмет, и после нажатия кнопки “Выбрать” диалоговое окно закрывается и выбранный предмет добавляется в список (используется метод из пакета).
Рис. 6.7 – Диалоговое окно для добавления предмета Проверка введенных значений. Для предотвращения ввода некорректных значений в поля редактирования необходимо использовать специальные компоненты TMaskEdit (для данных типа Number) с заданием маски, запрещающей ввод любых символов кроме цифр и разделяющих знаков. Количество вводимых цифр также должно указываться в соответствии с типом данных (Number(10) – 10 знаков, Number(10,2) – тоже 10 знаков, так как 2 означает количество знаков после запятой в общем количестве цифр, равном 10). Требования к отображению кнопок. Поля на закладке “Основные параметры” по умолчанию недоступны для редактирования. Они должны становиться доступными для редактирования только при нажатии одной из кнопок “Добавить” или “Изменить”. Причем при нажатии кнопки “Изменить” поля должны очиститься для ввода новых значений вставляемой записи.
После нажатия на кнопку “Сохранить” или “Отмена” поля опять становятся недоступными для редактирования.
6. Также необходимо управлять свойством кнопок Enabled согласно схеме в таблице 6.1. Поле нажатия кнопок “Сохранить” и “Отмена” значения Enabled выставляются “по умолчанию”.
Таблица 6.1
Матрица видимости кнопок управления
Событие
| Добавить
| Изменить
| Удалить
| Сохранить
| Отмена
| По умолчанию
| Enabled
| Enabled
| Enabled
| Disabled
| Disabled
| Добавить
| Disabled
| Disabled
| Disabled
| Enabled
| Enabled
| Изменить
| Disabled
| Disabled
| Disabled
| Enabled
| Enabled
|
Задание 2. Разработать пять различных отчетов с использованием многотабличных запросов, группировок, калькуляций.
Порядок выполнения задания 2.
1. Для разработки отчетов необходимо использовать набор компонентов Quick Report.
По умолчанию в Delphi 7 он не устанавливается, его необходимо подключить вручную. Для этого необходимо зайти в пункт меню Component->Install Packages. Далее нажать кнопку “Add”, найти каталог …\Delphi7\Bin, а в нем выбрать два файла: dclqrt70.bpl и dcltqr70.bpl. Затем нажать кнопку “Открыть”. В палитру компонентов добавится новая закладка “QReport”. На этой закладке расположены все необходимые компоненты для построения отчетов. 6.3 СОДЕРЖАНИЕ ОТЧЁТА Готовится один отчёт на бригаду в печатном виде. Он должен содержать следующие разделы:
- задание;
- схема распределенной базы данных;
- описание экранных форм пользовательского приложения (сопровождается копиями экрана);
- описание примеров реализации распределенных запросов и транзакций (SQL скрипты).
Приём отчёта осуществляется в индивидуальном порядке. Ответы на контрольные вопросы даются устно. 6.4 КОНТРОЛЬНЫЕ ВОПРОСЫ
Объяснить работу рабочей формы (любой на выбор). Объяснить работу обработчика нажатия кнопки “Сохранить”. Объяснить работу обработчика перехода с одной записи на другую в таблице рабочей формы. Рассказать, каким образом происходит обращение к методу пакета. Рассказать о работе обработчика нажатия кнопки “Добавить” в рабочей форме для таблицы связи.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Саймон, А.Р. Стратегические технологии баз данных. / Алан Р. Саймон. М.: Финансы и статистика, 2001. - 480 с. - ISBN 5-279-01789-2, 1-55860-264-X Дейт, К. Дж. Введение в системы баз данных / К. Дж. Дейт — 8-е изд. — М.: Издательский дом “Вильямс”, 2006. — С. 1328. — ISBN 5-8459-0788-8. Молина, Г.Г., Ульман, Дж.Д., Уидом Дж. Системы баз данных. Полный курс / Гектор Гарсиа Молина, Джеффри Д. Ульман, Дженнифер Уидом. М.: Издательский дом “Вильямс”, 2004. -1088 с. - ISBN 5-8459-0384-Х. Кузин, А.В., Левонисова, С.В. Базы данных. / А.В. Кузин, С.В. Левонисова. М.: Академия, 2008. - 320 с. - ISBN 978-5-7695-4833-8. Ульман, Дж.Д., Уидом, Д. Введение в системы баз данных / Джеффри Д. Ульман, Дженнифер Уидом. М.: Лори, 2006. - 376 с. - ISBN 0-13-861337-0, 5-85582-069-6. Харрингтон, Дж. Проектирование объектно-ориентированных баз данных. / Дж. Харрингтон. М.: ДМК Прогресс, 2002. - 272 с. - ISBN 5-94074-097-9, 0-12-326428-6 Пост, Дж., Перри, Дж. Введение в Oracle 10g. / Джеймс Перри, Джеральд Пост. - (пер. с англ., под ред. Вейтмана В.В., Назаренко А.В.) - М.: Вильямс, 2006. - 704 с. - ISBN 0-13-195740-6, 5-8459-1113-3. Корнеев, В.В., Гареев, А.Ф., Васютин, С.В., Райх, В.В. Базы данных. Интеллектуальная обработка информации. / В.В. Корнеев, А.Ф. Гареев, С.В. Васютин, В.В. Райх. М.: Нолидж, 2000. - 352 c. - ISBN 5-89251-089-1. Когаловский, М.Р. Энциклопедия технологий баз данных. / М.Р. Когаловский. М.: Финансы и статистика, 2002. - 800 с. - ISBN 5-279-02276-4. Сорокин, А.В. Delphi. Разработка базы данных / А.В. Сорокин. C.Пб.: Питер, 2005. - 474 с.- ISBN 5-469-00927-0.
СОДЕРЖАНИЕ
Лабораторная работа №1 СОЗДАНИЕ ОСНОВНЫХ ОБЪЕКТОВ БАЗЫ ДАННЫХ 3
Лабораторная работа №2 СОЗДАНИЕ ПОСЛЕДОВАТЕЛЬНОСТЕЙ, ТРИГГЕРОВ И ОРГАНИЗАЦИЯ ЗАПОЛНЕНИЯ ТАБЛИЦ ДАННЫМИ 13
Лабораторная работа №3 РАЗРАБОТКА ФУНКЦИЙ И ПРОЦЕДУР ДЛЯ БАЗЫ ДАННЫХ 23
Лабораторная работа №4 СОЗДАНИЕ ПАКЕТОВ 37
Лабораторная работа №5 РАЗРАБОТКА МОДЕЛИ ДАННЫХ В СИСТЕМЕ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ ERWIN 41
Лабораторная работа №6 РАЗРАБОТКА КЛИЕНТ-СЕРВЕРНОГО ПРИЛОЖЕНИЯ В СРЕДЕ DELPHI ДЛЯ РАБОТЫ С РАСПРЕДЕЛЕННОЙ БАЗОЙ ДАННЫХ В СРЕДЕ СУБД ORACLE 56
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 64
|
|
|