Лабораторная работа №7 / БДлаб7.doc
Лабораторная работа № 7
Проектирование и создание прикладной
системы для работы с базой данных
Цель работы: изучить методику построения прикладной системы для работы с базой данных и использовать ее для создания конкретной прикладной системы в среде визуального программирования Delphi.
Продолжительность работы - 4 ч.
Теоретические сведения
Методика построения прикладной системы
для работы с базой данных
Методика построения прикладной системы (приложения) для работы с базой данных включает следующие пункты:
1) определение назначения и задач приложения;
2) проектирование базы данных и прикладных процессов, необходимых для решения поставленных задач;
3) реализация проекта в виде приложения путем создания необходимых объектов базы данных и программных объектов;
4) тестирование приложения на соответствие поставленным задачам;
5) установка приложения для эксплуатации.
Рассмотрим суть каждого из пунктов применительно к примеру учебного задания, сформулированного в лабораторной работе № 5 Проектирование и создание базы данных.
Определение назначения и задач приложения
Определение назначения приложения должно представлять собой одно предложение, состоящее из подлежащего, сказуемого и дополнения. Подлежащее всегда обозначает создаваемое приложение; сказуемое описывает то, что должно делать приложение; дополнение указывает объекты, на которые направлены действия приложения.
Предложение, определяющее назначение приложения, должно быть максимально простым и лаконичным. Для учебного задания оно формулируется так: приложение PERSONPROFIT должно вести учет жителей и их доходов.
При определении задач приложения следует ограничиться тремя-четырьмя основными задачами и при их формулировке соблюдать тот же трехчастный формат, который использовался в определении назначения приложения, например:
"Прикладная система (приложение) PERSONPROFIT должна вести учет жителей и их доходов, а именно:
1) регистрировать сведения о жителях и получаемых ими доходах;
2) предоставлять накопленную информацию о конкретных жителях;
3) выдавать печатные формы для сбора исходных данных и отчеты со сводной информацией".
Следует стремиться к тому, чтобы сформулированные задачи охватывали все основные функции приложения и не дублировали друг друга.
Проектирование БД и прикладных процессов
Проектирование БД начинается с построения инфологической модели (ИЛМ) предметной области (ПО), для обслуживания которой разрабатывается прикладная система. На основе ИЛМ определяется табличный состав БД и схема БД (см. лабораторную работу № 3).
Каждая из вышеназванных задач приложения должна быть разделена на прикладные процессы, взаимодействующие с объектами БД. Эти процессы представляются своими схемами функционирования. На схеме целесообразно не только указать действия, выполняемые прикладным процессом, но и обозначить объекты БД, с которыми процесс взаимодействует, и точки взаимодействия прикладного процесса с пользователем прикладной системы через соответствующие экранные формы и выдаваемые отчеты. Это позволит определить перечень необходимых экранных форм и отчетов и зафиксировать их внешний вид, т.е. подготовит их эскизы.
Реализация проекта
Реализация проекта начинается с создания необходимых объектов БД: описания структуры таблиц, построения первичных и вторичных индексов, задания ограничений целостности с учетом особенностей выбранной СУБД (см. лабораторную работу № 3).
Создание программных объектов прикладной системы (приложения) в среде визуального программирования Delphi в основном сводится к разработке экранных форм и отчетов по подготовленным эскизам и написанию процедур обработки событий, связанных с интерфейсными элементами экранных форм и объектами БД.
Разработка экранных форм осуществляется с учетом их назначения и удобства использования. Рекомендации по разработке форм и реализации хорошего пользовательского интерфейса изложены в [1, 2].
Тестирование приложения
Тестирование приложения связано в основном с проверкой:
1) работоспособности интерфейсных элементов каждой экранной формы;
2) правильности отображения данных, вводимых в БД и выводимых из БД;
3) ограничений целостности БД;
4) правильности вычислений, выполняемых отдельными процедурами обработки событий.
Установка (инсталляция) приложения
Приложения, которые создаются с помощью Delphi, обращаются к БД посредством основанного на технологии Integrated Database Application Program Interface (IDAPI) пакета Borland Database Engine (BDE), поэтому нормальная работа приложений возможна, если на компьютере установлен BDE.
Использование методики
для выполнения учебного задания
После определения назначения и задач приложения осуществляется проектирование БД (см. лабораторную работу № 3) и прикладных процессов, необходимых для регистрации жителей и получаемых ими доходов, предоставления накопленной информации, выдачи печатных форм для сбора исходных данных и отчетов со сводной информацией.
Проектирование прикладных процессов
Каждая задача приложения PERSONPROFIT реализуется прикладными процессами, которые представляются в проекте своими схемами функционирования. На рис.1 - 3 показаны схемы функционирования прикладных процессов, соответствующих задачам регистрации, предоставления накопленной информации и выдачи печатных форм и отчетов.
Имея схемы, легко определить, какими должны быть меню прикладной системы (рис.4), общий вид ее главной формы (рис.5) и список форм, используемых для интерфейса с пользователем (табл.1).
В прикладной системе используются 5 типов форм (см. табл.1):
1) главная - появляется на экране после запуска системы и используется для управления ее работой (см. рис.5);
2) стандартная - содержится в Delphi и выбирается на закладке Forms после выбора команды File|New для последующего дополнения необходимыми компонентами (рис.6);
3) ввод/редактирование - содержит значения полей строки одной таблицы; для перехода к нужной строке таблицы используются кнопки навигатора (рис.7);
4) сетка - отображает все строки одной таблицы базы данных; для доступа к нужной строке используется клавиатура, мышь или кнопки навигатора (рис.8); при необходимости можно применять соответствующие кнопки навигатора для удаления, вставки и редактирования строк, а также фиксации измененных значений полей;
5) главная/подчиненная - содержит значения полей строки (или строк) главной таблицы и значения полей соответствующих строк подчиненных таблиц (рис.9).
Подготовив эскизы остальных форм (см. табл.1), можно приступать к реализации прикладной системы. (Эскизы форм fmEDITFORM, fmEDITPROF, fmSHOWPHON, fmSHOWPROF, fmSHOWPERS не приведены в целях экономии места.)
Таблица 1
Формы, обеспечиваюшие пользовательский интерфейс
| Имя формы | Имя модуля | Назначение формы | Тип формы |
| fmEDITFLAT | EDITFLAT | Ввод или изменение сведений о квартире | Ввод/редакти-рование |
| fmEDITPHON | EDITPHON | Ввод или изменение сведений о телефоне, установленном в квартире | Ввод/редакти-рование |
| fmEDITPROF | EDITPROF | Ввод или изменение сведений о виде дохода | Ввод/редакти-рование |
| fmEDITPERS | EDITPERS | Ввод или изменение сведений о жителе, его телефоне и доходах | Главная/под-чиненная |
| fmSHOWFLAT | SHOWFLAT | Просмотр сведений о квартирах | Сетка |
| fmSHOWPHON | SHOWPHON | Просмотр сведений о телефонах | Сетка |
| fmSHOWPROF | SHOWPROF | Просмотр сведений о видах доходов | Сетка |
| fmSHOWPERS | SHOWPERS | Просмотр сведений о жителях | Сетка |
| fmABOUTSYS | ABOUTSYS | Вывод информации о версии, назначении и разработчике прикладной системы | Стандартная |
| fmMAINFORM | MAINFORM | Управление прикладной системой | Главная |
Реализация прикладной системы
Создание главной формы fmMAINFORM. Для создания главной формы в меню системы Delphi выбирается команда File|New Project. Изменим значение свойства Name формы на fmMAINFORM, а значение свойства Caption - на Система учета жителей и доходов.
Для включения меню в главную форму нужно поместить в нее компонент MainMenu и вызвать конструктор меню, дважды щелкнув на компоненте MainMenu.
Методика построения меню проста. Разработчику всегда доступен пустой пункт меню. Выбрав его при помощи мыши или клавиш управления курсором, в окне инспектора объектов нужно задать значения свойств Caption (название пункта меню), Name (имя пункта), Shortcut (комбинация клавиш быстрого выбора). Разновидностью клавиш быстрого выбора является акселератор, который набирается как комбинация клавиш Alt и подчеркнутого символа в названии пункта главного меню или только как подчеркнутый символ в названии пункта дополнительного меню. Акселератор задается знаком амперсанда (&) перед символом в названии пункта меню, являющимся значением свойства Caption.
Пункт-разделитель в меню задается символом "минус" (-) в качестве значения свойства Caption. В табл.2 указаны значения свойств пунктов меню, перечисленных на рис.5. Выход из конструктора меню задается двойным щелчком на кнопке вызова системного меню.
Таблица 2
Свойства пунктов главного и дополнительных меню
| Caption | Name | Shortcut |
| Регистрация | mmRegistrate | |
| Таблицы | mmTables | |
| Отчеты | mmReports | |
| Справка | mmHelp | |
| Житель | mmEditPerson | F5 |
| Квартира | mmEditFlat | F6 |
| Телефон | mmEditPhone | F7 |
| Вид дохода | mmEditProfit | F8 |
| - | mmDelimiter | |
| Вы&ход | mmExit | F10 |
| &Жители | mmShowPersons |
Окончание
| Caption | Name | Shortcut |
| &Квартиры | mmShowFlats | |
| &Телефоны | mmShowPhones | |
| &Виды доходов | mmShowProfits | |
| Входные формы | mmInitData | |
| Список жителей | mmPersonProfits | |
| Таблица доходов | mmProfitsTable | |
| Список видов доходов | mmProfits | |
| Этикетки | mmLabels | |
| О системе | mmAboutSys | F1 |
Примечание. При выборе значения свойства Name для компонента рекомендуется начинать значение двухсимвольным префиксом, обозначающим тип компонента. Например, fm - для компонента типа Form, mm - MainMenu, sp - SpeedButton, la - Label, de - DBEdit, te - DBText, ta - Table, ds - DataSource, bu - Button, dc - DBComboBox, lc - DBLookupCombo, na - DBNavigator, gr - DBGrid, qu - Query и т.д.
Предусмотрим процедуру обработки события, связанного с выбором пункта меню Выход. Для этого нужно щелкнуть на пункте меню Выход и в активизированном окне текстового редактора, начиная с позиции, отмеченной курсором, набрать оператор, вызывающий метод Close для главной формы fmMAINFORM. В результате этих действий создается процедура, приведенная на листинге 1. Эта процедура будет вызываться при выборе пункта меню Выход либо при нажатии функциональной клавиши F10 или клавиши х (русская буква "ха"), когда отображается дополнительное меню.
Листинг 1. Процедура обработки события, связанного с выбором пункта меню Выход
procedure TfmMAINFORM.mmExitClick (Sender: Tobject);
begin
fmMAINFORM.Close; {это набрал разработчик}
end;
Чтобы создать панель быстрого доступа, нужно расположить компонент Panel под главным меню, разместить на нем четыре компонента SpeedButton и задать для них значения свойств Name (имя кнопки), Glyph (файл с рисунком), Hint (текст подсказки), ShowHint=True (табл.3). Файлы с рисунками для кнопок находятся в каталоге F:\Program Files\Common Files\Borland Shared\ Images\Buttons.
Таблица 3
Свойства компонентов SpeedButton
| Name | Glyph | Hint |
| sbNewPerson | picture.bmp | Регистрация жителя |
| sbNewFlat | doorshut.bmp | Регистрация квартиры |
| sbNewPhone | phone.bmp | Регистрация телефона |
| sbNewProfit | many2one.bmp | Регистрация вида дохода |
Поместим в главную форму компонент DataBase, для которого установим значения свойств AliasName=TUTOR_DATABASE (выбирается из выпадающего списка) и DatabaseName=dbTUTOR.
