Разработка информационной системы «Библиотека» с использованием клиент-серверной технологии

Автор работы: Пользователь скрыл имя, 14 Сентября 2014 в 19:03, курсовая работа

Краткое описание

Целью данной курсовой работы является:
Углубление теоретических и практических знаний в области баз данных и систем управления базами данных;
К задачам курсовой работы можно отнести следующее:
Разработка базы данных в РСУБД Firebird;
Создание приложения, основанного на клиент-серверной технологии;
Создание веб-приложения.

Содержание

Введение
Разработка б.д. для ИС «Библиотека»
Разработка клиентского приложения
3.Создание Web приложения. Web-доступ.
Заключение
Список использованных источников

Вложенные файлы: 1 файл

Курсовая.doc

— 3.13 Мб (Скачать файл)

 

Таблица 1. ER – модель БД.

 

 

Имя домена

Тип

Длинна

Ограничения

D_INDEXTYPE

SMALLINT

 

VALUE>0

D_NAME

VARCHAR

45

 

D_ADRES

VARCHAR

40

 

D_TEL

VARCHAR

15

 

D_DATETYPE

DATE

 

VALUE<='TODAY'


Таблица 2. Список доменов.

 Теперь, когда проработаны все теоретические аспекты создания базы данных, можно приступать к программированию доменов и таблиц. Для этого, запустив IBExpert, загружаем SQL редактор и выбираем меню Tools->SQL Editor.

В появившемся окне пишем скрипт для создания домена D_NAME:

CREATE DOMAIN D_NAME AS

VARCHAR(45) CHARACTER SET WIN1251

NOT NULL

COLLATE WIN1251

Подобным образом создал домены D_INDEXTYPE, D_ADRES, D_DATETYPE, D_TEL . (см. Приложение 1).

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

Средствами IBExpert создаем таблицу chitatel и указываем ключевые поля, в этой таблице будут храниться данные о типах мебели:

CREATE TABLE CHITATEL (

    FAMILIYA_CHITATELYA  D_NAME /* D_NAME = VARCHAR(45) NOT NULL */,

    IMYA_CHITATELYA      D_NAME /* D_NAME = VARCHAR(45) NOT NULL */,

    OTCHESTVO            D_NAME /* D_NAME = VARCHAR(45) NOT NULL */,

    ULICA                D_NAME /* D_NAME = VARCHAR(45) NOT NULL */,

    NOMER_DOMA           D_INDEXTYPE /* D_INDEXTYPE = INTEGER NOT NULL */,

    TELEFON              D_TEL /* D_TEL = VARCHAR(15) */,

    NOMER_CHITATELYA     D_INDEXTYPE NOT NULL /* D_INDEXTYPE = INTEGER NOT NULL */

);

 --Задание первичного ключа

ALTER TABLE CHITATEL ADD PRIMARY KEY (NOMER_CHITATELYA);

Используя комбинацию генератора с триггером, реализуем автоинкрементное поле для таблицы chitatel

--Создание генератора

CREATE GENERATOR GEN_ID_ CHITATEL;

--Создание триггера

CREATE OR ALTER TRIGGER CHITATEL_BI0 FOR CHITATEL

ACTIVE BEFORE INSERT OR UPDATE POSITION 0

AS

begin

  IF(NEW.nomer_chitatelya is null ) then

    NEW.nomer_chitatelya=gen_id(gen_chitatel,1);

end

Подобным образом создаем остальные таблицы.Задаем для этих таблиц ключевые поля, вторичные ключи, разрабатываем генераторы и триггеры (см. Приложение 1).

2.5. Программирование бизнес  – логики

 

В курсовом проекте клиентское приложение для информационной системы «Библиотека» будет придерживаться концепции «тонкого клиента». То есть, вся бизнес – логика должна быть реализована на сервере базы данных Firebird.  РСУБД предоставляет широкий выбор вариантов программирования бизнес – логики позволяя написать просмотры, хранимые процедуры, триггеры, исключения. Средствами IBExpert создаем все необходимые просмотры (см.Листинг 1). Далее приступаем к созданию хранимых процедур на ввод, изменение и удаление данных для каждой таблицы. Кроме этого необходимо создать хранимые процедуры на выборку данных для составления отчетов.

В IBExpert загрузил SQL редактор, выбрав меню Tools->SQL Editor. В появившемся окне написал скрипт для создания процедур на ввод, изменение и удаление данных таблицы сhitatel:

--Процедура на удаление данных из таблицы chitatel

CREATE OR ALTER PROCEDURE DEL_CHIT (

    n_chitat integer)

as

BEGIN

  DELETE FROM chitatel

  WHERE (nomer_CHITATELYA = :n_CHITAT);

END^

Затем создаем процедуру на добавление или изменение записи.

CREATE OR ALTER PROCEDURE ADD_CHIT (

    familiya varchar(20),

    name varchar(15),

    otchestvo varchar(15),

    ulica varchar(21),

    n_doma smallint,

    tel varchar(10))

as

begin

  INSERT INTO chitatel (chitatel.familiya_chitatelya,chitatel.imya_chitatelya,chitatel.otchestvo,

  chitatel.ulica,chitatel.nomer_doma,chitatel.telefon)

  VALUES (:familiya,:name,:otchestvo,:ulica,:n_doma,:tel);

  suspend;

end^

 

CREATE OR ALTER PROCEDURE RED_CHITATEL (

    familiya varchar(20),

    name varchar(10),

    otchestvo varchar(14),

    ulica varchar(20),

    n_doma smallint,

    tel varchar(10),

    n_chit integer)

as

BEGIN

  UPDATE chitatel

  SET nomer_chitatelya=:n_chit,

      nomer_doma =:n_doma,

      familiya_chitatelya =:familiya,

      imya_chitatelya =:name,

      otchestvo=:otchestvo,

      ULICA=:ulica,

      telefon=:tel

WHERE(nomer_chitatelya =:n_chit);

when sqlcode -530 do

    exception key_ne_ice;

    end^

 Полный список хранимых процедур представлен в таблице 3.

Таблица 3. Название и назначение процедур

Название процедуры

Назначение

Add_chit

Добавление записи в таблице читатели

Add_biblio

Добавление записи в таблице библиотекари

Add_vyda4

Добавление записи в таблице выдача книг

Add_otdel

Добавление записи в таблице отделы книг

Add_knig

Добавление записи в таблице книги

Del_chit

Удаление записи в таблице читатели

Del _knig

Удаление записи в таблице книги

Del _otdel

Удаление записи в таблице отделы книг

Del _bibl

Удаление записи в таблице библиотекари

Del _vyda4a

Удаление записи в таблице выдача книг

Red_chitatel

Изменение записи в таблице читатели

Reg _otdel

Изменение записи в таблице отделы книг

Reg _knig

Изменение записи в таблице книги

Reg _bibl

Изменение записи в таблице библиотекари

Reg _vyda4

Изменение записи в таблице выдача книг


 

3. Разработка клиентского приложения

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

  1. Выполняем команду File->New->Other и выбираем значок Data Module на вкладке New.
  2. В созданный модуль DB переносим компоненты IBDatabase1 и IBTransaction1.
  3. Настраиваем свойства DatabaseName, DefaultTransaction для компонента IBDatabase1 и свойство DefaultDatabase для компонента IBTransaction1.
  4. В созданный модуль FBDataModule переносим наборы данных TIBQuery. Формируем запросы ко всем главным таблицам, просмотрам, процедурам настроив свойство Query->SQL.
  5. В тот же контейнер переносим  компонентs TIBDataSource
  6. Связываем  источники данных с запросами и таблицами в свойстве DataSet.
  7. Добавляем в модуль данных компонент IBStoredProc1 (рис.3) для реализации хранимых процедур, настроив свойства Database и Transaction

Рисунок 3. Наполнение  модуля DB.

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

Следующим этапом является размещение визуальных компонентов с последующею их настройкой и обработкой событий.

  1. Переносим на главную форму требуемые компоненты
  2. Перетаскиваем на каждую форму необходимое количество компонентов DBGrid, для представления записей таблиц и свойством DataSource соединяем их с источником данных, а заголовки столбцов таблиц переименовываем в соответствующие названия полей.
  3. Перетаскиваем необходимое количество других визуальных компонентов: TButton, TLabel, TEdit,

Рисунок 4.  Внешний вид приложения и поиск.

  1. Далее аналогичным образом создаем остальные формы, подключаем заголовочные файлы и в обработчиках событий кнопок.
  2. Добавление реализуем через созданную ранее хранимую процедуру на добавление: ADD_CHIT, для этого поместим на DataModule2 компонент IBStoredProc3 и настроим у него следующие свойства:

DataBase=IBDatabase1; StoredProcName= ADD_CHIT.

Рисунок.5. Форма для таблицы читатели.

 

 

   Для реализации фильтрации , поместим на форму два компонента Edit (для задания диапазона фильтрации данных) и компонент Button чтобы подать запрос для фильтрации

  1. Для генерации отчетов добавляем на главную форму соответствующие кнопки и пишем необходимый код в обработчике событий (см. Приложение 2).

Для формирования отчетов также будут выделены отдельные формы.

Рисунок 6. отчет

 

  1. Командой Run->Run компилируем, собираем и запускаем приложение.

Полный листинг программы представлен в Приложении 2.

 

 

 

4. Создание Web приложения. Web-доступ.

Web приложение в технологии «Клиент-Сервер» представляет собой некий интерфейс между пользователем и базой данных, расположенной на сервере и состоящей под управлением какой-либо СУБД. Такие приложения отличаются от приложений Windows тем, что пользователю не требуется наличие никаких установленных дополнительно на компьютере программ, кроме Web-браузера. Все действия, которые требует выполнить такое приложение, выполняются непосредственно на сервере. Кроме того, приложение Windows является уже откомпилированным файлом, а Web-приложение интерпретируются сервером в момент обращения пользователя к данному приложению.

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

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

Остальные страницы будут полностью написаны на PHP: страницы с добавлением данных в таблицы, удалением данных в таблицы и редактированием данных. Также будет реализован поиск по базе данных.

В результате приложение будет иметь следующую карту страниц:

Рисунок 7. Схема созданного Web-приложения

Листинги Web-приложения представлены в приложении «Созданное Web-приложение».

Доступ к приложению: http://172.23.30.98:8080/ftp/1406124/apache/index.html

 

Рисунок 8. Главная страница

Рисунок.9. Таблица Читатели и редактирование

 

 

Рисунок.10. Результат редактирования

 

Рисунок.11. Удаление

 

Рисунок.12. Результат удаления

 

Рисунок.13. Поиск

Рисунок.14. Результаты поиска

 

Рисунок.14.Сортировка

Рисунок.15. Результаты сортировки

 

Заключение

В результате выполнения курсовой работы нами было создано два  клиентских  приложения «Библиотека», это Windows и web - приложения. Были достигнуты все поставленные цели и задачи: Углублены теоретические и практические знания в области баз данных и систем управления базами данных. Пользователям предоставляется широкая возможность одновременной работы в обоих приложениях с одной базой данных. 

Работа над курсовым проектом позволила приобрести навыки создания  информационных систем, основанных на клиент – серверной технологии с использованием РСУБД  Firebird. База данных для информационной системы создана в среде РСУБД Firebird и разработана с помощью утилиты IBExpert.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список используемых источников

  1. А.Я. Архангельский, «Программирование в C++ Builder 6». — М.: «БИНОМ», 2003 г.
  2. Бори Х., «FIREBIRD. Руководство разработчика баз данных». –С-Пб.: «БХВ», 2006 г., 2-е издание.
  3. Шамис В., «Borland C++ Builder 6.0». – С – Пб.: «Питер», 2005 г.
    1. Похомов Б. И. C\C++ и Borland C++ Builder для студента. СПб.: БХВ-Петербург, 2006. – 448с.
    1. Хомоненко А. Д., Ададуров С. Е. Работа с базами данных в C++ Builder. — СПб.: БХВ-Петербург, 2006.—496 с: ил.
  1. http://www.ibase.ru

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение 1. SQL код создания БД

 

Создание таблиц

Читатель

/***                                 Tables                                 ***/

/******************************************************************************/

CREATE TABLE CHITATEL (

    FAMILIYA_CHITATELYA  D_NAME /* D_NAME = VARCHAR(45) NOT NULL */,

    IMYA_CHITATELYA      D_NAME /* D_NAME = VARCHAR(45) NOT NULL */,

    OTCHESTVO            D_NAME /* D_NAME = VARCHAR(45) NOT NULL */,

    ULICA                D_NAME /* D_NAME = VARCHAR(45) NOT NULL */,

    NOMER_DOMA           D_INDEXTYPE /* D_INDEXTYPE = INTEGER NOT NULL */,

    TELEFON              D_TEL /* D_TEL = VARCHAR(15) */,

    NOMER_CHITATELYA     D_INDEXTYPE NOT NULL /* D_INDEXTYPE = INTEGER NOT NULL */

);

/******************************************************************************/

/***                              Primary Keys                              ***/

/******************************************************************************/

ALTER TABLE CHITATEL ADD PRIMARY KEY (NOMER_CHITATELYA);

Информация о работе Разработка информационной системы «Библиотека» с использованием клиент-серверной технологии