рефераты скачать

МЕНЮ


Дипломная работа: Разработка базы данных

·  UpdateTilte – изменение названия источника;

·  UpdateLanguage – изменение языка источника;

·  IsWriter – проверка прав пользователя на изменение БД.

Для управления безопасностью БД созданы три роли:

·  Admin – имеет права на любые действия с БД (чтение, изменение структуры и данных);

·  Writer – имеет права на чтение и изменение данных БД, но не имеет прав на изменение структуры БД;

·  Reader – имеет права только на чтение данных БД.

Эти роли, исходя из выше сказанного, наделены соответствующими правами на соответствующие таблицы и хранимые процедуры.


5. РАЗРАБОТКА ПРИЛОЖЕНИЯ-КЛИЕНТА

5.1 Обоснование выбора среды программирования

Разработка клиентского приложения осуществлялось на языке Delphi (ранее Object Pascal) в среде программирования Borland Delphi 7.0 Enterprise Edition.

Сформулируем основные критерии, по которым производился выбор среды программирования для создания приложения.

1) Создание максимально возможного удобства в работе. Для этого программа должна иметь удобный и современный интерфейс пользователя.

2) Работа модуля должна выполняться с максимально возможной скоростью. Нежелательны ситуации, в которых пользователю длительное время придется ожидать окончания работы модуля.

3) Поддержка длинных имен файлов.

4) Минимальные затраты на разработку модуля.

5) Максимальная переносимость исходного кода программы для платформы Linux.

В ходе последующего анализа имеющихся средств программирования на основании перечисленных критериев был выбран вариант написания данного модуля с использованием системы визуального программирования Borland Delphi 7.0. Данное заключение основывалось на следующем.

Среда визуального программирования Delphi 7.0 работает в среде Windows 9x/NT/2000/XP и предоставляет программисту возможность реализации всех достоинств графического интерфейса этой системы. Так как подавляющее большинство пользователей персональных компьютеров работают сегодня в среде операционных систем семейства Windows, то этот интерфейс является для них наиболее привычным и удобным.

Многие системы разработки приложений для ОС Windows генерируют код-полуфабрикат, который не может быть выполнен процессором без дополнительной трансляции во время работы самой программы, что существенно снижает производительность компьютера. Delphi же использует настоящий компилятор и компоновщик и генерирует стопроцентный машинный код. Такая реализация лишена непроизводительных затрат, что делает программы, написанные на Delphi, максимально эффективными.

Так как Delphi 7.0 является средой программирования для Windows, то, как и сама операционная система Delphi поддерживает длинные имена файлов и папок.

Для запуска программ, написанных на Delphi, не требуются никакие дополнительные библиотеки, интерпретаторы кода и прочее. Достаточно взять один-единственный сгенерированный исполняемый файл и запустить его там, где нужно. Для установки программы на другой компьютер не требуется создание каких-либо дистрибутивов, не нужен процесс инсталляции, достаточно переписать исполняемый файл программы.

Среда визуального программирования Delphi 7.0 является мощным средством для быстрой и качественной разработки программ для операционной системы Windows 95. Имеющаяся библиотека визуальных компонентов позволяет создать интерфейс с пользователем за считанные минуты. Объектно-ориентированный язык Object Pascal, положенный в основу Delphi, является расширением языков Turbo Pascal и Borland Pascal фирмы Borland и нашел в себе отражение новых веяний в программировании. Компонентный принцип, используемый в Delphi, позволяет создавать полноценные Windows-приложения, написав минимальное количество строк кода. Delphi представляет собой открытую систему, позволяя добавлять свои компоненты в систему, модифицировать уже имеющиеся стандартные компоненты благодаря тому, что предоставлены их исходные тексты. Благодаря всему этому разработка программ в среде Delphi становится легкой и приятной.

Также, вследствие того, что большинство компонентов Delphi 7.0 идентично компонентам Kylix, то переход под платформу Linux будет занимать минимально возможное время.

Таким образом, выбранная платформа, как было показано выше, удовлетворяет поставленным требованиям, поэтому выбор был остановлен на данной системе программирования.

5.2 Средства Delphi для работы с базами данных

Хотя Delphi не имеет своего формата таблиц БД, она тем не мене обеспечивает мощную поддержку различных СУБД – как локальных (например, dBase или Paradox), так и промышленных (например, Sybase или InterBase). Средства Delphi для работы с БД можно разделить на три вида:

1) инструментальные средства;

2) компоненты.

К инструментальным средствам относятся специальные программы и пакеты, обеспечивающие обслуживание БД вне разрабатываемых приложений. Компоненты предназначены для создания приложений, осуществляющих операции с БД.

Для операций с БД система Delphi предлагает следующий набор инструментальных средств.

1)  Borland Database Engine (BDE) – процессор баз данных, который представляет собой набор динамических библиотек и драйверов, предназначенных для организации доступа к БД из Delphi-приложений. BDE является центральным звеном при организации доступа к данным.

2)  BDE Administrator – утилита для настройки различных параметров BDE.

3)  Database Desktop – программа создания и редактирования таблиц, SQL- запросов и запросов QBE.

4)  SQL Explorer – проводник БД, позволяющий просматривать и редактировать БД и словари данных.

5)  SQL Builder – программа визуального конструирования SQL-запросов.

6)  SQL Monitor – программа отслеживания порядка выполнения SQL-запросов к удалённым БД.

7)  Data Pump – программа для переноса данных между БД.

8)  IBConsole – программа для управления удалёнными БД.

9)  InterBase Sever Manager – программа для запуска сервера InterBase.

10)  SQL Links – драйверы для доступа к удалённым промышленным СУБД, таким как Microsoft SQL Server или Oracle. К промышленному серверу InterBase, который поставляется совместно с Delphi и является для него родным, доступ также можно организовать напрямую через BDE, не используя драйверы SQL-Links.

11)  dbExpress – набор драйверов для доступа к базам данных SQL с помощью таких компонентов, как SQLConnection, SQLDataSet, SQLQuery, SQLStoredProc и SQLTable. dbExpress включает в свой состав следующие драйверы:

·  InterBase – DBEXPINT.DLL;

·  DB2 – DBEXPDB2.DLL;

·  Oracle – DBEXPORA.DLL;

·  MySQL – DBEXPMYS.DLL.

12)  InterBase Server – клиентская и серверная часть SQL.

Компоненты, предназначенные для работы с БД, находятся на страницах Data Access, Data Control, dbExpress, BDE, ADO, Decision Cube, QReport и InterBase палитры компонентов. Некоторые компоненты предназначены специально для работы с удалёнными БД в архитектуре “клиент-сервер”.


5.3 Реализация приложения

5.3.1 Общее описание форм и модулей

Для реализации интерфейса с базой данных был выбран набор компонентов прямого доступа к серверу InterBase. Этот выбор имеет ряд преимуществ по сравнению с другими группами компонентов. Основным преимуществом является то, что данный набор компонент предназначен специально для доступа к СУБД InterBase и он позволяет более произвести более тонкие настройки приложения. Нет необходимости установки совместно с программой BDE или копирования библиотек драйверов для доступа к серверу, что способствует экономии дискового пространства и времени при установке. Также компоненты InterBase в Delphi аналогичны компонентам InterBase в Kylix, что существенно снижает затраты при смене платформы приложения.

Листинг файла проекта приложения (Lib.dpr) расположен в приложении Б.

В соответствии с требованиями к приложению для обеспечения заданной функциональности в нём реализованы следующие формы и модули.

1.  MainForm (см. приложение А, рис. А.1), наследник типа TForm – основная форма приложения. На ней располагается ряд визуальных и невизуальных компонентов, обеспечивающих отображение данных, главное меню приложения, навигационный и управляющий интерфейс БД, обработку событий приложения и настройку вида программы. Форме соответствует модуль Main (см. приложение В).

2.  DataModule1 (см. приложение А, рис. А.2), наследник типа TDataModule – простой модуль данных, являющийся контейнером для невизуальных компонентов, реализующих взаимодействие приложения с БД. Данной форме соответствует модуль DBUnit (см. приложение Г).

3.  EditForm (см. приложение А, рис. А.3), наследник типа TForm – диалоговое окно редактирования (добавления/изменения) записей БД. Форме соответствует модуль Edit (см. приложение Д).

4.  DeleteForm (см. приложение А, рис. А.4), наследник типа TForm – диалоговое окно подтверждения удаления текущей записи БД. Форме соответствует модуль Delete (см. приложение Е).

5.  FilterForm (см. приложение А, рис. А.5), наследник типа TForm – диалоговое окно задания фильтра БД. Данной форме соответствует модуль Filter (см. приложение Ж).

6.  FindForm (см. приложение А, рис. А.6), наследник типа TForm – диалоговое окно поиска необходимых записей БД. Код формы реализован в модуле Find (см. приложение З).

7.  DirSourceForm (см. приложение А, рис. А.7), наследник типа TForm – диалоговое окно выбора каталога, содержащего файлы источника. Код реализации формы располагается в модуле DirSource (см. приложение И).

8.  PathForm (см. приложение А, рис. А.8), наследник типа TForm – диалоговое окно задания пути к БД. Форме соответствует модуль Path (см. приложение К).

9.  UserForm (см. приложение А, рис. А.9), наследник типа TForm – диалоговое окно выбора пользователя программы. Форме соответствует модуль User(см. приложение Л).

10.  AboutBox (см. приложение А, рис. А.10), наследник типа TForm – окно информации о программе, данной форме соответствует модуль About (см. приложение М).

11.  Модуль Data содержит строковые, числовые и прочие константы, используемые другими модулями (см. приложение Н).

12.  Модуль Files содержит подпрограммы манипулирования файлами, упаковкой/распаковкой файлов и запуском внешних программ (см. приложение О).

Все визуальные компоненты всех форм для удобства пользователя и увеличения его скорости работы снабжены всплывающими подсказками. Визуальные компоненты, расположенные на главной форме приложения также снабжены дополнительными подсказками, отображающимися в строке статуса. Для того чтобы подсказки отображались, свойство ShowHint всех визуальных компонентов и элементов списка действий ActionList1 устанавливаются в True.

5.3.2 Форма MainForm и модуль Main

Форма MainForm является основным окном программы и контейнером для визуальных и невизуальных компонентов. На ней располагаются следующие невизуальные компоненты.

При создании формы, для обработки события MainForm.OnCreate, выполняется метод TMainForm.FormCreate, в котором инициализируются начальными значениями глобальные переменные и создаются временные каталоги.

При активизации формы и возникновении события MainForm.OnActivate, выполняется метод TMainForm.FormActivate. В нём первоначально восстанавливаются параметры приложения путём считывания их из файлов инициализации при помощи метода TMainForm.RestoreIniFiles. Затем делается попытка соединится с БД (вызов метода DataModule1.InitDBParams), и если она успешна, то устанавливается уровень доступа пользователя (метод DataModule1.SetAccess) и таблица заполняется данными (метод MainForm.DataSetRefrashExecute). В противном случае работа программы завершается.

При уничтожении формы возникает событие OnDestroy, обработка которого осуществляется методом TMainForm.FormDestroy. В ходе его выполнения процедурой Files.DeleteFiles удаляются все временные файлы, затем удаляются все временные каталоги и методом MainForm. SaveIniFiles сохраняются все настройки программы в файле инициализации.

Для сохранения и восстановления настроек программы используются методы TMainForm.SaveIniFiles и TMainForm.RestoreIniFiles.

Компонент ImageList1 типа TImageList – список иконок и рисунков, используемых приложением. Список заполняется вручную на этапе проектирования программы и в дальнейшем не изменяется. Элементы списка используются для прорисовки изображений на кнопках, в главном меню и всплывающих меню.

Компонент ActionList1 типа TActionList – список управляющих элементов программы. Это ключевой невизуальный компонент приложения, он обеспечивает синхронизацию необходимых действий программы при возникновении некоторых событий. ActionList1 содержит ряд элементов (объектов) типа TAction, сгруппированных по следующим категориям:

1)  DataSet - объекты действий для обработке баз данных;

2)  File – объекты действий для задания имени пользователя и пути к фалу БД, а также выход из программы;

3)  Help – объект действия для получения справки о программе;

4)  Options – объекты действий для задания настроек программы;

5)  SortBy – объекты действий для задания поля БД, по которому будет осуществляться сортировка выводимых в таблице записей;

6)  SortDir – объекты действий для задания направления сортировки записей в таблице (по возрастанию или по убыванию).

Рассмотрим подробно элементы списка действий ActionList1.

Объекты DataSetFirst, DataSetPrior, DataSetNext, DataSetLast категории DataSet предназначены для перемещения указателя БД соответственно к первой, предыдущей, следующей или последней записи. Они является стандартными предопределёнными действиями Delphi.

Объект DataSetInsert категории DataSet предназначен для вставки новой записи в БД. Обработка действия осуществляется методом TMainForm.DataSetInsertExecute, в котором активизируется форма редактирования записи EditForm, а ей поля редактирования принимают пустые значения. Затем, по закрытии формы редактирования записей, значения её полей ввода передаются процедуре DataModule1.CallInsertBook, которая создаёт новую запись в БД. Таблица БД обновляется (действие DataSetRefresh) и указатель устанавливается на новую запись (процедура DataModule1.IBDataSet1.Locate). Для быстрой активизации действия предусмотрено сочетание клавиш Ctrl+I.

Объект DataSetUpdate категории DataSet предназначен для изменение существующих записей БД. Обработка действия осуществляется при помощи метода TMainForm.DataSetUpdateExecute, который аналогичен методу TMainForm.DataSetInsertExecute. Отличием является то, что поля редактирования формы EditForm заполняется не пустыми значениями, а значениями редактируемой записи БД. Значения полей ввода формы передаются процедуре DataModule1.CallUpdateBook, которая редактирует выбранную запись в БД. Для активизации действия можно использовать сочетание клавиш Ctrl+E.

Объект DataSetUpdate категории DataSet предназначен для удаления существующих записей БД. Обработка действия осуществляется методом TMainForm.DataSetDeleteExecute. В нём в зависимости от установки соответственного флажка в настройках программы может запрашиваться подтверждение для удаления (для этого активизируется форма DeleteForm). Далее вызывается процедура DataModule1.CallDeleteBook, которая и осуществляет удаление. Для быстрой активизации действия предусмотрено сочетание клавиш Ctrl+D.

Объект DataSetRefrash категории DataSet предназначен для обновления таблицы БД. Обработка действия осуществляется методом TMainForm.DataSetRefrashExecute. При обновлении СУБД передаются запрос на выборку всех записей БД, отсортированных в заданном порядке. Сортировка записей БД осуществляется в зависимости от текущих настроек. Перед обновлением делается закладка на текущий курсор БД, затем после обновления указатель опять устанавливается на ту же запись. Возможна быстрая активизация действия при нажатии клавиш Ctrl+R.

Объект DataSetOpen категории DataSet предназначен для открытия существующего в базе источника для чтения/редактирования. Обработка действия осуществляется методом TMainForm.DataSetOpenExecute. Алгоритм работы метода следующий. Увеличивается глобальный счётчик открытых файлов источников, затем по его значению задаётся название новой папки, в которую распаковываются файлы источника при помощи функции UnPackFiles модуля Files. Далее процедурой Files.OpenFile открывается главный файл источника. Возможна быстрая активизация действия при нажатии клавиш Ctrl+O.

Объект DataSetFind категории DataSet предназначен для поиска существующей в БД записи по задаваемым атрибутам. Обработка действия осуществляется методом TMainForm.DataSetFindExecute. В его теле активизируется форма поиска записи БД FindForm, при помощи обработки событий которой и осуществляется поиск. Далее, в случае если в курсор БД находится не на последней записи, становится доступным действие DataSetFindNext. Для активизации действия возможно использование сочетания клавиш Ctrl+F.

Объект DataSetFindNext категории DataSet предназначен для поиска следующей существующей в БД записи по атрибутам, заданным в действии DataSetFind. Обработка действия осуществляется методом TMainForm.DataSetFindNextExecute. Алгоритм работы метода следующий. Из полей ввода формы FindForm процедурой FindForm.GetLocateParams считываются значения – атрибуты искомой записи. Затем они передаются стандартному методу поиска TIBDataSet.LocateNext, который осуществляет поиск и возвращает указатель на искомую запись. Так как данное действие может повторяться подряд большое количество раз, то для ускорения его активизации предусмотрена горячая клавиша F3.

Объект DataSetFilter категории DataSet предназначен для локальной фильтрации записей БД по задаваемым атрибутам. Обработка действия осуществляется методом TMainForm.DataSetFilterExecute. В ходе выполнения метода активизируется форма FilterForm. И на её обработчики событий возлагается вся дальнейшая работа по фильтрации записей.

Объект DataSetAll категории DataSet предназначен для отмены локальной фильтрации записей БД. Обработка действия осуществляется методом TMainForm.DataSetAllExecute, в котором сбрасывается флаг фильтрации Filtered объекта IBDataSet1, используемого для доступа к БД.

Объект FileDataBasePath категории File предназначен задания пути к файлу БД. Обработка действия осуществляется методом TMainForm. FileDataBasePathExecute. В ней активизируется диалоговое окно задания маршрута, и затем обработчиками событий этой формы выполняются все необходимые действия. После закрытия диалогового окна, происходит обновление данных путём вызова метода TMainForm.DataSetRefrashExecute.

Объект FileUser категории File предназначен задания пути к файлу БД. Обработка действия осуществляется методом TMainForm. FileUserExecute. В ней активизируется диалоговое окно задания пользователя программы, и затем обработчиками событий этой формы выполняются все необходимые действия. После закрытия диалогового окна, происходит попытка установить соединение с БД с новыми параметрами (имя и пароль пользователя) при помощи вызова метода DataModule1.Connect. Праметры пользователя считываются из соответствующих полей ввода формы UserForm. Если соединение неудачно, то приложение автоматически прекращает свою работу, иначе данные в таблице обновляются путём вызова метода TMainForm.DataSetRefrashExecute. Далее при помощи метода DataModule1.SetAccess устанавливается уровень доступа данного пользователя к БД (чтение/изменение или только чтение). В зависимости от уровня доступа становятся доступными или недоступными действия вставки (DataSetInsert), изменения (DataSetUpdate) и удаления (DataSetDelete) записей БД.

Объект FileExit категории File предназначен для завершения работы приложения. Он является стандартным предопределённым объектом Delphi.

Объект HelpAbout – единственный объект категории Help предназначен для активизации информационного окна программы. Это осуществляется путём вызова метода TMainForm.HelpAboutExecute.

Объект OptColor категории Options предназначен для задания цвета фона сетки БД, поля ссылок и полей редактирования. Это осуществляется путём вызова метода TMainForm.OptColorExecute. В нём сначала активируется стандартный диалог выбора цвета ColorDialog1, а затем выбранный цвет присваивается соответственным свойствам упомянутых объектов.

Объект OptFont категории Options предназначен для задания шрифта сетки БД, поля ссылок и полей редактирования. Это осуществляется путём вызова метода TMainForm.OptFontExecute. В нём сначала активируется стандартный диалог выбора шрифта FontDialog1, а затем выбранный шрифт присваивается соответственным свойствам упомянутых объектов.

Объект OptConfDel категории Options предназначен для включения/выключения запроса на подтверждение удаления записи БД. Обработка действия осуществляется методом TMainForm.OptConfDelExecute. При его вызове изменяется значение флага подтверждения удаления ConfirmDelete на противоположное. Для того чтобы объект переходил из выбранного в невыбранное состояние автоматически его свойство AutoCheck установлено в True.

Объекты SortByNum, SortByAut, SortByTit, SortByLan, SortByNo категории SortBy предназначены для задания поля БД, по которому осуществляется сортировка таблицы. Обработка всех действий осуществляется методом TMainForm.RefreshExecute. Для перехода объекта из выбранного в невыбранное состояние автоматически его свойство AutoCheck установлено в True.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.