В InterBase соединение дочерних и родительских полей является «жестким», т.е. нельзя реализовать каскадные воздействия при изменении записей в родительской таблице. Поэтому для реализации каскадных воздействий используются триггеры.
Таблица 2. Описание связей
Наименование связи | Правило удаления | Правило обновления |
Справочник факультетов®Справочник групп | RESTRICT | CASCADE |
Справочник групп®Список студентов | RESTRICT | CASCADE |
Список студентов®Книга лицевых счетов | RESTRICT | CASCADE |
Список студентов®Книга оплат | RESTRICT | CASCADE |
Книга выписок банка®Книга оплат | CASCADE | CASCADE |
Справочник групп®Архив списка студентов | RESTRICT | CASCADE |
Список студентов®Архив книги оплат | RESTRICT | CASCADE |
Архив списка студентов®Архив лицевых счетов | RESTRICT | RESTRICT |
Архив списка студентов®Архив книги оплат | RESTRICT | RESTRICT |
Архив книги выписок®Архив книги оплат | RESTRICT | RESTRICT |
Ведение индексов:
Важнейшей проблемой для любой БД является достижение максимальной производительности и ее сохранение при дальнейшем увеличении объемов хранимых данных. Использование индексов облегчает решение этой задачи. Индекс представляет собой часть БД, в которой содержится информация об организации данных в таблицах БД. В отличие от ключей, индексы занимают дополнительные объемы памяти (довольно значительные). Индексы создаются вместе со своей таблицей и обновляются при модификации данных. При этом обновление индекса для большой таблицы может отнимать много ресурсов, поэтому имеет смысл ограничить число индексов и создавать только те индексы, которые будут использоваться.
Индексы содержат уникальные идентификаторы записей и дополнительную информацию об организации данных. Поэтому получение данных при выполнении запроса с помощью индексов занимает значительно меньше времени [4].
По определениям первичных и вторичных ключей СУБД автоматически строит индексы.
В БД существуют следующие индексы:
Справочник факультетов:
-по коду факультета (PK);
Справочник групп:
-по номеру группы (PK);
-по коду факультета;
Справочник студентов:
-по коду студента (PK);
-по Ф.И.О. студента;
-по номеру группы и Ф.И.О. студента;
Книга лицевых счетов:
-по идентификатору счета (PK);
-по коду студента;
Книга выписок банка:
-по идентификатору выписки (PK);
-по номеру выписки;
-по дате выписки;
Книга оплат:
-по идентификатору оплаты (PK);
-по идентификатору выписки;
-по коду студента;
Архив списка студентов:
-по коду студента (PK);
-по Ф.И.О. студента;
-по номеру группы и Ф.И.О. студента;
Архив книги лицевых счетов:
-по идентификатору счета (PK);
-по коду студента;
Архив книги выписок банка:
-по идентификатору выписки (PK);
-по номеру выписки;
-по дате выписки;
Архив книги оплат:
-по идентификатору оплаты (PK);
-по идентификатору выписки;
-по коду студента.
Хранимая процедура – это модуль, написанный на процедурном языке InterBase и хранящийся в БД.
Преимущества хранимых процедур:
-одна процедура может использоваться многими приложениями;
-разгрузка приложений клиента путем переноса части кода на сервер и вследствие этого – упрощение клиентских приложений;
-при изменении хранимой процедуры все изменения немедленно становятся доступны для всех клиентских приложений;
-улучшенные характеристики выполнения, связанные с тем, что хранимые процедуры выполняются сервером, в частности – уменьшенный сетевой трафик.
В БД были созданы процедуры для архивации и получения оборотной ведомости. Тексты процедур приведены в приложении 2.
Вся база данных на сервере InterBase хранится в одном файле с расширением GDB. Для создания, изменения и удаления объектов базы данных используется язык SQL.
В качестве инструмента для выполнения запросов SQL используется утилита WindowsISQL. В данной утилите используются сценарии SQL – текстовые файлы с расширением SQL, содержащие группу запросов.
3.2 Описание функциональной структуры программного комплекса
В разработанном программном продукте по учету оплаты договоров за обучение реализованы следующие функции:
-ведение договоров на обучение;
-ведение лицевых счетов студентов;
-учет оплаты за обучение;
-ведение нормативно-справочной информации;
-формирование сводной выходной информации и документации, например, получение оборотной ведомости или сведений о задолженниках;
-ведение архивов.
В составе программного комплекса ведутся следующие справочники:
-справочник студентов;
-справочник групп;
-справочник факультетов.
По каждому студенту, с которым заключен договор на обучение, ведется лицевой счет, где отражаются все начисления для оплаты.
Информация об оплатах вводится ежедневно на основе выписок банка.
Периодически формируются различные отчеты: оборотная ведомость, ведомость задолженников. Кроме того, выходной информацией являются квитанции для оплаты, которые выдаются студентам.
Через определенное время проводится закрытие периода (архивация). При этом вся информация о студентах, лицевых счетах, выписках банка и оплатах переносится в архивы.
Функция по ведению нормативно-справочной информации реализована с помощью модулей Facul.pas, Group.pas, Student.pas. Модуль Facul.pas реализует просмотр и редактирование справочника факультетов. С помощью модуля Group.pas осуществляется просмотр и редактирование справочника групп. Модуль Student.pas выполняет функцию просмотра данных из списка студентов. Редактирование списка студентов осуществляется с помощью модуля StudentDlg.pas. К нормативно-справочной информации кроме данных о студентах, группах и факультетах относится информация как реквизиты ВУЗа и реквизиты банка. Просмотреть и отредактировать эту информацию можно с помощью модулей Bank.pas и Params.pas. В модулях Student.pas и StudentDlg.pas также реализуется функция ведения договоров на обучение.
Функция ведения лицевых счетов реализована в модуле Schet.pas, с помощью которого можно просмотреть и отредактировать суммы, начисленные для оплаты одному из студентов, и в модуле Oplat.pas, с помощью которого можно просмотреть все оплаты, относящиеся к данному студенту.
Учет оплат за обучение реализуется в модуле Vypis.pas, предназначенном для просмотра и регистрации выписок банка.
Функция ведения архивов осуществляется с помощью модулей Arh.pas (реализуется проведение архивации), ArhStudent.pas, ArhSchet.pas, ArhOplatStud.pas, ArhVypis.pas (просмотр архивов).
В программном продукте предусмотрена возможность получения различных отчетов. Формирование отчетов реализуется с помощью модулей KvitDlg.pas, KvitRep.pas (получение квитанции), Oborot.pas, OborotRep.pas (получение оборотной ведомости), Dolg.pas, DolgRep.pas (получение ведомости задолженников).
Помимо перечисленных модулей программа включает также следующие модули:
- About.pas – модуль, предназначенный для вывода окна «О программе»;
- DataModule.pas – модуль данных, который представляет собой контейнер, где расположены все невизуальные компоненты доступа к данным, такие как TIBDataBase, TIBTransaction, TIBQuery, TDataSource;
- Main.pas – модуль, который соединен с главным меню программы.
Описание всех модулей, входящих в состав проекта, содержится в файле проекта Oplata.dpr, который представляет собой программу, предназначенную для обработки ее компилятором Delphi.
Главное меню программы:
При запуске программы на экране появляется диалоговое окно для ввода имени пользователя и его пароля.
Если имя и пароль введены правильно, то на экране появляется основная форма, содержащая главное меню программы (рис.10). В противном случае на экран выводится предупреждение о том, что данные введены неправильно.
С помощью главного меню можно вызвать другие формы программы, предназначенные для просмотра и редактирования различных сведений из хранящейся на сервере БД, получения отчетов и т.п.
Вызывать различные справочники, таблицы, отчеты можно как с помощью пунктов меню, так и с помощью кнопок, расположенных в нижней части окна.
При закрытии главного окна программы осуществляется выход из программы.
Главное меню включает следующие пункты:
Данные:
-Выписки банка (кнопка
) – для вызова книги выписок банка;-Студенты (кнопка
) – для вызова списка студентов;-Группы (кнопка
) – вызов справочника групп;-Факультеты (кнопка
) – вызов справочника факультетов;-Выход;
Отчеты:
-Оборотная ведомость (кнопка
) – вызов формы для получения оборотной ведомости;-Должники (кнопка
) – вызов формы для получения ведомости должников;Архивы:
-Закрытие периода (архивация) – вызов диалогового окна для проведения процедуры архивации;