Автор работы: Пользователь скрыл имя, 14 Сентября 2014 в 19:03, курсовая работа
Целью данной курсовой работы является:
Углубление теоретических и практических знаний в области баз данных и систем управления базами данных;
К задачам курсовой работы можно отнести следующее:
Разработка базы данных в РСУБД Firebird;
Создание приложения, основанного на клиент-серверной технологии;
Создание веб-приложения.
Введение
Разработка б.д. для ИС «Библиотека»
Разработка клиентского приложения
3.Создание Web приложения. Web-доступ.
Заключение
Список использованных источников
Таблица 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(
end
Подобным образом создаем остальные таблицы.Задаем для этих таблиц ключевые поля, вторичные ключи, разрабатываем генераторы и триггеры (см. Приложение 1).
В курсовом проекте клиентское приложение для информационной системы «Библиотека» будет придерживаться концепции «тонкого клиента». То есть, вся бизнес – логика должна быть реализована на сервере базы данных 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.ulica,chitatel.nomer_
VALUES (:familiya,:name,:otchestvo,:
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. Наполнение модуля DB.
Данный DataModule не будет являться единственным. Приложение будет состоять из множества форм, к которым соответственно будут подключены различные DataModule.
Следующим этапом является размещение визуальных компонентов с последующею их настройкой и обработкой событий.
Рисунок 4. Внешний вид приложения и поиск.
DataBase=IBDatabase1; StoredProcName= ADD_CHIT.
Рисунок.5. Форма для таблицы читатели.
Для реализации фильтрации , поместим на форму два компонента Edit (для задания диапазона фильтрации данных) и компонент Button чтобы подать запрос для фильтрации
Для формирования отчетов также будут выделены отдельные формы.
Рисунок 6. отчет
Полный листинг программы представлен в Приложении 2.
Web приложение в технологии «Клиент-Сервер» представляет собой некий интерфейс между пользователем и базой данных, расположенной на сервере и состоящей под управлением какой-либо СУБД. Такие приложения отличаются от приложений Windows тем, что пользователю не требуется наличие никаких установленных дополнительно на компьютере программ, кроме Web-браузера. Все действия, которые требует выполнить такое приложение, выполняются непосредственно на сервере. Кроме того, приложение Windows является уже откомпилированным файлом, а Web-приложение интерпретируются сервером в момент обращения пользователя к данному приложению.
Для создания такого приложения будет использован язык программирования PHP - интерпретируемый, скриптовый язык программирования, созданный для генерации HTML-страниц на Web-сервере и работы с базами данных. А так же язык гипертекстовой разметки HTML для создания интерфейса приложения.
Итак, приложение будет содержать главную интерфейсную страницу с заголовком, меню и частью, куда будет загружаться контент.
Остальные страницы будут полностью написаны на PHP: страницы с добавлением данных в таблицы, удалением данных в таблицы и редактированием данных. Также будет реализован поиск по базе данных.
В результате приложение будет иметь следующую карту страниц:
Рисунок 7. Схема созданного Web-приложения
Листинги Web-приложения представлены в приложении «Созданное Web-приложение».
Доступ к приложению: http://172.23.30.98:8080/ftp/
Рисунок 8. Главная страница
Рисунок.9. Таблица Читатели и редактирование
Рисунок.10. Результат редактирования
Рисунок.11. Удаление
Рисунок.12. Результат удаления
Рисунок.13. Поиск
Рисунок.14. Результаты поиска
Рисунок.14.Сортировка
Рисунок.15. Результаты сортировки
В результате выполнения курсовой работы нами было создано два клиентских приложения «Библиотека», это Windows и web - приложения. Были достигнуты все поставленные цели и задачи: Углублены теоретические и практические знания в области баз данных и систем управления базами данных. Пользователям предоставляется широкая возможность одновременной работы в обоих приложениях с одной базой данных.
Работа над курсовым проектом позволила приобрести навыки создания информационных систем, основанных на клиент – серверной технологии с использованием РСУБД Firebird. База данных для информационной системы создана в среде РСУБД Firebird и разработана с помощью утилиты IBExpert.
Разработанная информационная система обладает всей необходимой для работы функциональностью и вполне может стать основой в деятельности библиотеки, т.к. web интерфейс является очень удобным приложением для работы с БД.
Создание таблиц
Читатель
/***
/*****************************
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);