Учет литературы в библиотеке арбитражного суда Пермского края

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 27.02.2016
Размер файла 2,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru//

Размещено на http://www.allbest.ru//

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«ПЕРМСКИЙ ГОСУДАРСТВЕННЫЙ ГУМАНИТАРНО-ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ»

Факультет информатики и экономики

Кафедра прикладной информатики

КУРСОВАЯ РАБОТА

по дисциплине

«Проектирование и реализация приложений на базе технологии «клиент - сервер»

на тему

«Учет литературы в библиотеке арбитражного суда Пермского края»

Работу выполнила

студентка группы z1263

Андриевская А.С.

Научный руководитель

Симакина Н.И.

Пермь 2015

Введение

Автоматизация бизнес-процессов существенно оптимизирует деятельность компании. Затраты на внедрение информационных систем, помогающих выполнять повседневные работы сотрудников, быстро покрываются за счет экономии времени и ресурсов на выполнение производственных и иных задач. На сегодняшний день почти все предприятия, желающие развиваться и производить качественные товары или услуги, используют разнообразные информационные системы, позволяющие автоматизировать управленческие, производственные или иные процессы.

В данной работе будет реализован процесс проектирования информационной системы с использованием технологии «клиент-сервер». Система будет автоматизировать ряд бизнес-процессов библиотеки Арбитражного суда Пермского края. Клиент-серверная архитектура позволит использовать информационную систему в многопользовательском режиме.

1. Описание предметной области

В данной главе описывается деятельность Арбитражного суда Пермского края, а так же выделены бизнес-процессы, связанные с учетом литературы.

1.1 Описание деятельности предприятия

Арбитражный суд Пермского края (АСПК) - это постоянно действующий официальный государственный орган, осуществляющий правосудие в сфере предпринимательской и иной экономической деятельности. В АСПК входят коллегия по рассмотрению споров, возникающих из административных правоотношений и коллегия по рассмотрению споров, возникающих из гражданских и иных правоотношений. На рисунке 1 приведена организационная структура предприятия.

Рис.1. Организационная структура Арбитражного суда Пермского края

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

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

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

Разрабатываемая информационная система позволит автоматизировать регистрацию и учет литературы в библиотеке АСПК.

Бизнес-процессы

На основании описанной деятельности выделим основные бизнес-процессы:

Регистрация новых книг:

- регистрация нового издания;

- регистрация экземпляров издания.

Работа с читателями:

- регистрация нового читателя;

- выдача книги;

- возврат книги.

Отображение данных о книгах, находящихся на руках.

- выбор читателя, по которому необходимо вывести отчет;

- вывод данных о книгах, находящихся на руках.

Информационная система разрабатывается для 2-х категорий пользователей: кодификатор, начальник отдела.

Исходя из предметной области, данная ИС должна выполнять следующие функции:

Кодификатор: просмотр списка книг, ввод данных о новых книгах, редактирование данных о книгах, ввод и редактирование данных о читателях, оформление выдачи книг, оформление возврата книг.

Начальник отдела: просмотр данных о книгах, находящихся на руках у читателя.

1.2 Концептуальное проектирование

На этапе концептуального проектирования необходимо определить объекты и их атрибуты, связи между объектами и смоделировать бизнес-процессы.

Описание и моделирование бизнес процессов

Для моделирования бизнес-процессов будем использовать объектно-ориентированный подход, при котором система разбивается на набор объектов, соответствующих объектам реального мира и взаимодействующих между собой посредством посылки сообщений. В данной работе используются CASE-средство BPwin.

Контекстная диаграмма «Библиотека Арбитражного суда Пермского края»

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

Рис. 2. Контекстная диаграмма «Библиотека Арбитражного суда Пермского края»

Схема взаимодействия бизнес-процессов представлена на рисунке 3.

Рис. 3. Диаграмма декомпозиции

Бизнес-процесс «Регистрация новой книги»

Данный бизнес-процесс является первоначальным этапом. Он состоит из регистрации нового издания, регистрации экземпляров издания, каждый из которых имеет индивидуальный инвентарный номер (рис.4).

Рис. 4. Диаграмма деятельности бизнес-процесса «Регистрация новой книги»

Бизнес-процесс «Работа с читателями»

На данном этапе сотрудник библиотеки регистрирует новых читателей, оформляет выдачу и возврат книг (рис. 5).

Рис. 5. Диаграмма деятельности бизнес-процесса «Работа с читателями»

Бизнес-процесс «Отображение данных о книгах, находящихся на руках»

Данный бизнес-процесс состоит из выбора читателя, по которому необходимо вывести отчет, и вывода данных о книгах, находящихся на руках (рис. 6).

Рис. 6. Диаграмма деятельности бизнес-процесса «Отображение данных о книгах, находящихся на руках»

1.3 Объекты и атрибуты

На основании описания предметной области можно выделить следующие объекты и назначить им атрибуты (табл.1).

Таблица 1. Объекты и атрибуты.

Объект

Атрибуты

Первичный ключ

ИЗДАНИЕ

Код_издания

Код_автора

Код_типа_издания

Код_издательства

Код_организации

Год_издания

Количество_страниц

Ключевые_слова

Авторский_знак

Индекс_классификатора

Количество_экземпляров

Сведения_об_ответственности

Заглавие

Код_издания

ИЗДАТЕЛЬСТВО

Код_издательства

Название

Место издания

Код_издательства

ТИП_ИЗДАНИЯ

Код_типа_издания

Тип_издания

Код_типа_издания

АВТОР

Код_автора

ФИО

Код_автора

ЭКЗЕМПЛЯР_ИЗДАНИЯ

Инвентарный_номер

Код_издания

Дата_поступления

Дата_списания

На_руках

Инвентарный_номер

ОРГАНИЗАЦИЯ

Код_организации

Наименование

Код_организации

ПОДРАЗДЕЛЕНИЕ

Код_Подразделения

Код_организации

Наименование_подр

Код_Подразделения

ЧИТАТЕЛЬ

Код_читателя

Код_Подразделения

ФИО

Код_читателя

1.4 Связи

Связи между объектами представлены в таблице 2.

Таблица 2. Объекты и атрибуты

Связь

Объекты

Показатель кардинальности

Степень участия

Находится_в

ОРГАНИЗАЦИЯ

ИЗДАНИЕ

1:М

Полная

Полная

Относится_к

ИЗДАНИЕ

ЭКЗЕМПЛЯР_ИЗДАНИЯ

1:М

Полная

Полная

Состоит из

ОРГАНИЗАЦИЯ

ПОДРАЗДЕЛЕНИЕ

1:М

Полная

Полная

Работает в

ЧИТАТЕЛЬ

ПОДРАЗДЕЛЕНИЕ

М:1

Полная

Полная

Написал

ИЗДАНИЕ

АВТОР

М:1

Полная

Полная

Издано_в

ИЗДАНИЕ

ИЗДАТЕЛЬСТВО

М:1

Полная

Полная

Является

ИЗДАНИЕ

ТИП_ИЗДАНИЯ

М:1

Полная

Полная

Получает

ЧИТАТЕЛЬ

ЭКЗЕМПЛЯР_ИЗДАНИЯ

М:М

Полная

Частичная

1.5 ER-диаграмма

Результат концептуального проектирования можно представить в виде ER-диаграммы (рис. 7.).

Рис. 7. ER-диаграмма «Библиотека Арбитражного суда Пермского края»

1.6 Логическое проектирование

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

Упрощение концептуальной модели

Исключение связи М:М

Для того, чтобы исключить связь М:М, необходимо:

1)Ввести новый объект;

2)Сложную связь заменить бинарными связями типа 1:М исходных объектов с вновь созданным объектом.

Сложная связь представлена на Рис.8.

Рис. 8. Связь Многие ко Многим

Здесь необходимо ввести новый объект ВЫДАЧА и связать исходные объекты с новым объектом ВЫДАЧА связями 1:М (Рис.9).

Рис.9. Новый объект ВЫДАЧА

ВЫДАЧА (Код_читателя, Инвентарный_номер, Дата_выдачи)

1.7 Таблицы и атрибуты

При переходе к реляционной модели, объекты с атрибутами преобразуются в таблицы (табл. 3).

Таблица 3. Таблицы и атрибуты

Объекты

Таблицы

Атрибуты

Первичный ключ

ИЗДАНИЕ

ИЗДАНИЕ

Код_издания

Код_автора

Код_типа_издания

Код_издательства

Код_организации

Год_издания

Количество_страниц

Ключевые_слова

Авторский_знак

Индекс_классификатора

Количество_экземпляров

Сведения_об_ответственности

Заглавие

Код_издания

ИЗДАТЕЛЬСТВО

ИЗДАТЕЛЬСТВО

Код_издательства

Название

Место издания

Код_издательства

ТИП_ИЗДАНИЯ

ТИП_ИЗДАНИЯ

Код_типа_издания

Тип_издания

Код_типа_издания

АВТОР

АВТОР

Код_автора

ФИО

Код_автора

ЭКЗЕМПЛЯР_ИЗДА-НИЯ

ЭКЗЕМПЛЯР

Инвентарный_номер

Код_издания

Дата_поступления

Дата_списания

На_руках

Инвентарный_номер

ОРГАНИЗАЦИЯ

ОРГАНИЗАЦИЯ

Код_организации

Наименование

Код_организации

ПОДРАЗДЕЛЕНИЕ

ПОДРАЗДЕЛЕНИЕ

Код_Подразделения

Код_организации

Наименование_подразделения

Код_Подразделения

ЧИТАТЕЛЬ

ЧИТАТЕЛЬ

Код_читателя

Код_Подразделения

ФИО

Код_читателя

ВЫДАЧА

ВЫДАЧА

Код_читателя

Инвентарный_номер Дата_выдачи

Дата_возврата

Код_читателя

Инвентарный_номер

Дата_выдачи

1.8 Нормализация таблиц

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

Определим функциональные зависимости между атрибутами:

ФЗ 1: Код_издания > Код_автора, Код_типа_издания, Код_издательства, Код_организации, Год_издания, Количество_страниц, Ключевые_слова, Авторский_знак, Индекс_классификатора, Количество_экземпляров, Сведения_об_ответственности, Заглавие;

ФЗ 2: Код_издательства> Название, Место издания;

ФЗ 3: Код_типа_издания> Тип_издания;

ФЗ 4: Код_автора> ФИО;

ФЗ 5: Инвентарный_номер> Код_издания, Дата_поступления, Дата_списания, На_руках;

ФЗ 6: Код_организации> Наименование;

ФЗ 7: Код_Подразделения> Код_организации, Наименование_подразделения;

ФЗ 8: Код_читателя> Код_Подразделения, ФИО;

ФЗ 9: Код_читателя, Инвентарный_номер, Дата_выдачи> Дата_возврата.

Нормализация позволяет избавиться от избыточности данных, что позволяет осуществлять непротиворечивое и корректное редактирование данных.

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

Использование ненормализованных таблиц может привести к нарушению целостности данных (непротиворечивости информации) в базе данных.

Рассмотрим нормализацию таблиц в информационной системе Учет литературы в библиотеке Арбитражного суда Пермского края.

Таблицы ИЗДАНИЕ, ИЗДАТЕЛЬСТВО, ТИП_ИЗДАНИЯ, АВТОР, ЭКЗЕМПЛЯР, ОРГАНИЗАЦИЯ, ПОДРАЗДЕЛЕНИЕ, ЧИТАТЕЛЬ, ВЫДАЧА находятся в 1НФ, т.к. все атрибуты этих отношений простые (табл.3).

Таблицы ИЗДАНИЕ, ИЗДАТЕЛЬСТВО, ТИП_ИЗДАНИЯ, АВТОР, ЭКЗЕМПЛЯР, ОРГАНИЗАЦИЯ, ПОДРАЗДЕЛЕНИЕ, ЧИТАТЕЛЬ находятся во 2НФ, т.к. они приведены к 1НФ и имеют простой первичный ключ.

Таблица ВЫДАЧА находится во 2НФ, т.к. она приведена к 1НФ и неключевое поле Дата_возврата функционально полно зависит от ключа (9ФЗ).

Таблица ИЗДАНИЕ находится в 3НФ, т.к. она приведена ко 2НФ и все неключевые атрибуты (Год_издания, Количество_страниц, Ключевые_слова, Авторский_знак, Индекс_классификатора, Количество_экземпляров, Сведения_об_ответственности, Заглавие) взаимно независимы (1ФЗ).

Таблица ИЗДАТЕЛЬСТВО находится в 3НФ, т.к. она приведена ко 2НФ и все неключевые атрибуты (Название, Место издания) взаимно независимы (2ФЗ).

Таблица ТИП_ИЗДАНИЯ находится в 3НФ, т.к. она приведена ко 2НФ и все неключевые атрибуты (Тип_издания) взаимно независимы (3ФЗ).

Таблица АВТОР находится в 3НФ, т.к. она приведена ко 2НФ и все неключевые атрибуты (ФИО) взаимно независимы (4ФЗ).

Таблица ЭКЗЕМПЛЯР находится в 3НФ, т.к. она приведена ко 2НФ и все неключевые атрибуты (Дата_поступления, Дата_списания, На_руках) взаимно независимы (5ФЗ).

Таблица ОРГАНИЗАЦИЯ находится в 3НФ, т.к. она приведена ко 2НФ и все неключевые атрибуты (Наименование) взаимно независимы (6ФЗ).

Таблица ПОДРАЗДЕЛЕНИЕ находится в 3НФ, т.к. она приведена ко 2НФ и все неключевые атрибуты (Наименование_подразделения) взаимно независимы (7ФЗ).

Таблица ЧИТАТЕЛЬ находится в 3НФ, т.к. она приведена ко 2НФ и все неключевые атрибуты (ФИО) взаимно независимы (8ФЗ).

Таблица ВЫДАЧА находится в 3НФ, т.к. она приведена ко 2НФ и все неключевые атрибуты (Дата_возврата) взаимно независимы (9ФЗ).

1.9Связи

Для преобразования бинарных связей между объектами в реляционную схему будем использовать механизм первичных и внешних ключей (табл.4):

Таблица 4. Связи

Название связи

Таблицы

Статус таблицы

Ключи

Находится_в

ОРГАНИЗАЦИЯ

ИЗДАНИЕ

Родительская

Дочерняя

Код_организации (ПК)

Код_издания (ПК)

Код_организации (ВК)

Относится_к

ИЗДАНИЕ

ЭКЗЕМПЛЯР

Родительская

Дочерняя

Код_издания (ПК)

Инвентарный_номер(ПК) Код_издания (ВК)

Состоит из

ОРГАНИЗАЦИЯ

ПОДРАЗДЕЛЕНИЕ

Родительская

Дочерняя

Код_организации (ПК)

Код_Подразделения (ПК)

Код_организации (ВК)

Работает в

ПОДРАЗДЕЛЕНИЕ

ЧИТАТЕЛЬ

Родительская

Дочерняя

Код_Подразделения (ПК)

Код_читателя (ПК)

Код_Подразделения (ВК)

Написал

АВТОР

ИЗДАНИЕ

Родительская

Дочерняя

Код_автора (ПК)

Код_издания (ПК)

Код_автора (ВК)

Издано_в

ИЗДАТЕЛЬСТВО

ИЗДАНИЕ

Родительская

Дочерняя

Код_издательства(ПК)

Код_издания (ПК)

Код_издательства(ВК)

Является

ТИП_ИЗДАНИЯ

ИЗДАНИЕ

Родительская

Дочерняя

Код_типа_издания(ПК)

Код_издания (ПК)

Код_типа_издания (ВК)

Получает

ЧИТАТЕЛЬ

ВЫДАЧА

Родительская

Дочерняя

Код_читателя (ПК)

Код_читателя (ПК)

Инвентарный_номер(ПК)

Дата_выдачи (ПК)

Выдается

ЭКЗЕМПЛЯР

ВЫДАЧА

Родительская

Дочерняя

Инвентарный_номер(ПК)

Инвентарный_номер(ПК)

Код_читателя (ПК)

Дата_выдачи (ПК)

1.9 Реляционная схема данных

В результате преобразования концептуальной схемы получается реляционная схема разрабатываемой БД (Рис. 3.2.)

Рис. 10. Реляционная схема данных

1.10 Целостность данных

Целостность данных - ограничения на значения, которые могут принимать атрибуты.

Существует 3 типа целостности данных: доменная, категорийная и ссылочная.

Доменная целостность

Доменная целостность - значения атрибутов определяется из множества значений домена. Если значение атрибута неизвестно, то опция NULL - это отсутствие атрибута.

В таблице «ИЗДАНИЕ» неключевой атрибут «Заглавие» не может быть пустым, при отсутствии данных база будет сообщать ошибку и попросит проверить данные; неключевой атрибут «Количество_экземпляров» должен быть >0.

В таблице «ИЗДАТЕЛЬСТВО» неключевой атрибут «Название» не может быть пустым, при отсутствии данных база будет сообщать ошибку и попросит проверить данные.

В таблице «ТИП_ИЗДАНИЯ» неключевой атрибут «Тип_издания» не может быть пустым, при отсутствии данных база будет сообщать ошибку и попросит проверить данные.

В таблице «АВТОР» неключевой атрибут «ФИО» не может быть пустым, при отсутствии данных база будет сообщать ошибку и попросит проверить данные.

В таблице «ЭКЗЕМПЛЯР» неключевой атрибут «На руках» может принимать только два значения - «да» или «нет».

В таблице «ОРГАНИЗАЦИЯ» неключевой атрибут «Наименование» не может быть пустым, при отсутствии данных база будет сообщать ошибку и попросит проверить данные.

В таблице «ПОДРАЗДЕЛЕНИЕ» неключевой атрибут «Наименование_подразделения» не может быть пустым, при отсутствии данных база будет сообщать ошибку и попросит проверить данные.

В таблице «ЧИТАТЕЛЬ» неключевой атрибут «Название» не может быть пустым, при отсутствии данных база будет сообщать ошибку и попросит проверить данные.

В таблице «ВЫДАЧА» неключевой атрибут «Дата_возврата» не может быть меньше атрибута «Дата_выдачи».

В таблице «ВЫДАЧА» неключевой атрибут «Дата_выдачи» не может быть меньше текущей даты.

Категорийная целостность

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

Первичные ключи:

Первичные ключи Код_издания (ИЗДАНИЕ), Код_издательства (ИЗДАТЕЛЬСТВО), Код_типа_издания (ТИП_ИЗДАНИЯ), Код_автора (АВТОР), Инвентарный_номер (ЭКЗЕМПЛЯР), Код_организации (ОРГАНИЗАЦИЯ), Код_Подразделения (ПОДРАЗДЕЛЕНИЕ), Код_читателя (ЧИТАТЕЛЬ), Код_читателя, Инвентарный_номер, Дата_выдачи (ВЫДАЧА) не могут иметь отсутствующие значения, они должны быть обязательно заполнены и идентифицированы.

Ссылочная целостность

Для внешних ключей Код_автора (ИЗДАНИЕ), Код_типа_издания (ИЗДАНИЕ), Код_издательства (ИЗДАНИЕ), Код_организации (ИЗДАНИЕ, ПОДРАЗДЕЛЕНИЕ), Код_издания (ЭКЗЕМПЛЯР), Код_Подразделения (ЧИТАТЕЛЬ) недопустимо пустое значение. Значение в дочерней таблице может быть создано, только если присутствует в родительской.

1.11 Проектирование пользовательского интерфейса

Диаграммы прецедентов

Рассмотрим диаграммы прецедентов для проектируемой информационной системы.

Главная диаграмма прецедентов

Главная диаграмма прецедентов представлена на рисунке 11.

Рис.11. Главная диаграмма прецедентов ИС «Библиотека АСПК»

Вспомогательная диаграмма прецедентов

Вспомогательная диаграмма прецедентов представлена на рисунке 12.

Рис.12. Дополнительная диаграмма прецедентов ИС «Библиотека АСПК»

Диаграмма дерева узлов

Диаграмма дерева узлов для проектируемой информационной системы представлена на рисунке 13.

Рис.13. Диаграмма дерева узлов ИС «Библиотека АСПК»

Диаграммы деятельности бизнес-процессов

Рассмотрим диаграммы деятельности для каждого бизнес-процесса проектируемой информационной системы.

Диаграмма деятельности для бизнес-процесса «Регистрация новой книги»

Диаграмма деятельности для бизнес-процесса «Регистрация новой книги» представлена на рисунке 14.

Рис.14. Диаграмма деятельности для бизнес-процесса «Регистрация новой книги»

Диаграмма деятельности для бизнес-процесса «Работа с читателями»

Диаграмма деятельности для бизнес-процесса «Работа с читателями» представлена на рисунке 15.

Рис.15. Диаграмма деятельности для бизнес-процесса «Работа с читателями»

Диаграмма деятельности для бизнес-процесса «Отображение данных о книгах, находящихся на руках»

Диаграмма деятельности для бизнес-процесса «Отображение данных о книгах, находящихся на руках» представлена на рисунке 16.

Рис.16. Диаграмма деятельности для бизнес-процесса «Отображение данных о книгах, находящихся на руках»

На основании приведенных выше диаграмм можно отобразить разрабатываемый интерфейс в виде графа (рис. 17.)

Размещено на http://www.allbest.ru//

Размещено на http://www.allbest.ru//

Рис. 17. Эскиз приложения

Более подробно команды пользовательского интерфейса описаны в таблице 5.

Таблица 5. Команды пользовательского интерфейса

КОМАНДА

НАЗНАЧЕНИЕ

ОСНОВНОЕ МЕНЮ

Кодификатор

Ввод и редактирование данных о читателях

Ввод данных о новых изданиях

Редактирование зарегистрированных изданий

Ввод и редактирование экземпляров книг

Выдача книг

Возврат книг

Начальник отдела

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

Выход

Выход из программы

КОДИФИКАТОР

Ввод и редактирование данных о читателях

Регистрация новых читателей, а так же редактирование существующих.

Ввод данных о новых изданиях

Добавление новых изданий в информационную систему.

Редактирование зарегистрированных изданий

Просмотр списка зарегистрированных изданий и их редактирование

Ввод и редактирование экземпляров книг

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

Выдача книг

Просмотр списка зарегистрированных изданий, экземпляров. Оформление выдачи.

Возврат книг

Просмотр списка зарегистрированных изданий, экземпляров. Оформление возврата.

НАЧАЛЬНИК ОТДЕЛА

Книги на руках

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

Глава 2. Реализация приложения информационной системы «учет литературы в библиотеке арбитражного суда пермского края» по технологии клиент-сервер

2.1 Разработка серверной части

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

2.1.1 Создание и заполнение БД на MS SQL SERVER 2012

База данных будет реализована в среде «Microsoft SQL server 2012». Для начала работы необходимо запустить SQL Server Management Studio. Для этого необходимо последовательно открыть: «Пуск» - «Программы» - «Microsoft SQL server 2012» - «SQL Server Management Studio».

Нужно нажать «Подключиться», появляется рабочая область программы, после чего нажать пиктограмму «Создать запрос»:

Для создания базы данных используется команда create database <Имя базы данных>. Для ее выполнения нужно ввести: Create database lib и нажать «Выполнить» на панели инструментов. В результате появляется сообщение об успешном выполнении команды. В левой части в списке «Базы данных» появится название только что созданной базы данных «lib» (см. рис. 18):

Рис.18. Создание базы данных

Переключение на созданную базу данных изображено на рисунке 19.

Рис.19. Переключение текущей базы

После создания базы данных следует создать таблицы с помощью команды create table. Создадим таблицу «Издательство». Для этого нужно ввести:

create table Publisher (ID_publisher int identity (1,1) primary key,

Publisher varchar(100) not null,

City varchar(50))

Нажимаем «Выполнить». Получаем новую таблицу «Publisher» (см. рис. 20).

Рис.20. Создание таблицы ИЗДАТЕЛЬСТВО

Аналогично создадим таблицы «ИЗДАние», «АВТОР», «ТИП_ИЗДАНИЯ», «ОРГАНИЗАЦИЯ», «ПОДРАЗДЕЛЕНИЕ», «ЧИТАТЕЛЬ», «ЭКЗЕМПЛЯР», «ВЫДАЧА»:

create table Edition (ID_Edition int identity (1,1) primary key,

ID_Company int not null references Company (ID_Company),

ID_Author int not null references Author (ID_Author),

ID_Type int not null references Type (ID_Type),

ID_Publisher int not null references Publisher (ID_Publisher), Publishing_year varchar(4),

Number_of_pages int check(Number_of_pages > 0),

Keywords varchar(255),

Author_sign varchar(10),

Index_classifier varchar(10),

Number_of_copies int,

Responsibility varchar(255),

Title varchar(255) not null)

create table Author(ID_Author int identity (1,1) primary key,

Author varchar(100) not null)

create table Type(ID_Type int identity (1,1) primary key,

Type varchar(100) not null)

create table Company(ID_Company int identity (1,1) primary key,

Company varchar(100) not null)

create table Department(ID_Department int identity (1,1) primary key,

ID_Company int not null references Company(ID_Company),

Department varchar(50) not null)

create table Reader (ID_Reader int identity (1,1) primary key,

ID_Department int not null references Department (ID_Department),

Reader varchar(50) not null)

create table Copy (Inventory_number int identity (1,1) primary key,

ID_Edition int not null references Edition (ID_Edition),

Incoming_date datetime,

Write_off_date datetime,

On_hands varchar(10) CHECK(On_hands IN('да', 'нет')))

create table History(

ID_Reader int not null references Reader (ID_Reader),

Inventory_number int not null references Copy(Inventory_number),

Issue datetime,

[Return] datetime,

primary key(ID_Reader, Inventory_number, Issue))

В результате получились новые таблицы (рис. 21).

Рис.21. Создание таблиц

Заполним базу данных, используя команду «insert». Рассмотрим заполнение на примере таблицы «организация» (см. рис. 22). Введем:

insert Company(Company)

values('Арбитражный суд Пермского края')

Рис.22. Заполнение таблицы организация

Нажмем «выполнить». Для просмотра результата нужно последовательно открыть: Базы данных - lib - Таблицы. Выберем таблицу «Company», щелкнем на нее правой клавишей мыши, нажмем «изменить первые 200 строк» (см. рис. 23).

Рис.23. Действия для открытия таблицы

Результат можно посмотреть на рисунке 24.

Рис.24. Просмотр таблицы Company

Заполним остальные таблицы (см. рис. 25):

insert Author(Author) values(' Иванов А.И.')

insert Author(Author) values(' Яковлев В.Ф.')

insert Author(Author) values(' Ярошенко К.И.')

insert Author(Author) values(' Новоселова Л.А.')

insert Author(Author) values(' Зенин И.А.')

insert Author(Author) values(' Елисеев Н.Г.')

insert Author(Author) values(' Кудрявцева В.П.')

insert Author(Author) values(' Авилов Г.Е.')

insert Author(Author) values(' Скловский К.И.')

insert Department(Department, ID_Company) values(' Отдел анализа и обобщения судебной практики', 1)

insert Department(Department, ID_Company) values(' Отдел информатизации и связи', 1)

insert Department(Department, ID_Company) values(' 1 судебный состав', 1)

insert Department(Department, ID_Company) values(' 2 судебный состав', 1)

insert Department(Department, ID_Company) values(' 3 судебный состав', 1)

insert Department(Department, ID_Company) values(' 4 судебный состав', 1)

insert Department(Department, ID_Company) values('5 судебный состав', 1)

insert Department(Department, ID_Company) values('6 судебный состав', 1)

insert Department(Department, ID_Company) values(' 7 судебный состав', 1)

insert Department(Department, ID_Company) values('8 судебный состав', 1)

insert Department(Department, ID_Company) values('9 судебный состав', 1)

INSERT Reader (ID_Department, Reader) VALUES (3, 'Иванов А.А')

INSERT Reader (ID_Department, Reader) VALUES (4, 'Петров И.И.')

INSERT Reader (ID_Department, Reader) VALUES (5, 'Сидоров П.П.')

INSERT Reader (ID_Department, Reader) VALUES (6, 'Рудаков М.С.')

INSERT Reader (ID_Department, Reader) VALUES (7, 'Новикова С.Н.')

INSERT Reader (ID_Department, Reader) VALUES (8, 'Шадрина Я.Р.')

INSERT Reader (ID_Department, Reader) VALUES (9, 'Кокшарова М.О.')

INSERT Reader (ID_Department, Reader) VALUES (10, 'Лазарева В.В.')

INSERT Reader (ID_Department, Reader) VALUES (11, 'Ермакова А.В.')

INSERT Reader (ID_Department, Reader) VALUES (1, 'Тиунова Н.П.')

INSERT Reader (ID_Department, Reader) VALUES (2, 'Коростелева Е.А.')

INSERT Reader (ID_Department, Reader) VALUES (3, 'Журавлева М.Н.')

INSERT Reader (ID_Department, Reader) VALUES (4, 'Кайгородова Д.Ю.')

INSERT Reader (ID_Department, Reader) VALUES (5, 'Кондратьева О.В.')

INSERT Publisher (Publisher, City) VALUES (' Юридическая литература', ' Москва')

INSERT Publisher (Publisher, City) VALUES (' Статут', ' Москва')

INSERT Publisher (Publisher, City) VALUES (' Infotropic media', 'Пермь')

INSERT Publisher (Publisher, City) VALUES (' Законность', ' Москва')

INSERT Publisher (Publisher, City) VALUES (' Юридический Центр Пресс', ' Москва')

INSERT Type (Type) Values ('Официальное издание')

INSERT Type (Type) Values ('Справочное издание')

INSERT Type (Type) Values ('Учебное пособие')

INSERT EDITION (ID_Author,ID_Type,ID_Publisher,ID_Company,Title, Publishing_year, Number_of_pages, Keywords, Author_sign, Index_classifier, Number_of_copies, Responsibility) VALUES (2,2,3,1,' АП Кодекс', '2013',600,' гражданское право', ' Я45', ' 123',2, '')

INSERT EDITION (ID_Author,ID_Type,ID_Publisher,ID_Company,Title, Publishing_year, Number_of_pages, Keywords, Author_sign, Index_classifier, Number_of_copies, Responsibility) VALUES (2,2,5,1,' Беститульное владение и его защита', '2012',567,' гражданское право', ' Я45', ' 876', 12, '')

INSERT EDITION (ID_Author,ID_Type,ID_Publisher,ID_Company,Title, Publishing_year, Number_of_pages, Keywords, Author_sign, Index_classifier, Number_of_copies, Responsibility) VALUES (4,2,2,1,' Гражданское право', '2015',120,' гражданское право', ' Я45', '66', 4, '')

INSERT EDITION (ID_Author,ID_Type,ID_Publisher,ID_Company,Title, Publishing_year, Number_of_pages, Keywords, Author_sign, Index_classifier, Number_of_copies, Responsibility) VALUES (4,3,3,1,' Кодекс', '2015',110,' арбитражный процесс', ' Н77', '77', 5, '')

INSERT EDITION (ID_Author,ID_Type,ID_Publisher,ID_Company,Title, Publishing_year, Number_of_pages, Keywords, Author_sign, Index_classifier, Number_of_copies, Responsibility) VALUES (2,2,2,1,' Арбитражный процесс', '2014',300,' арбитражный процесс', ' Я45', ' 55.9', 6, '')

INSERT EDITION (ID_Author,ID_Type,ID_Publisher,ID_Company,Title, Publishing_year, Number_of_pages, Keywords, Author_sign, Index_classifier, Number_of_copies, Responsibility) VALUES (2,2,1,1,' Банк решений Арбитражных судов', '2014',544,' арбитражный процесс', '312', '43', 7, '')

INSERT EDITION (ID_Author,ID_Type,ID_Publisher,ID_Company,Title, Publishing_year, Number_of_pages, Keywords, Author_sign, Index_classifier, Number_of_copies, Responsibility) VALUES (4,2,2,1,' Комментарии к АПК РФ', '2014',1024,' арбитражный процесс', ' Я32', '111', 1, ' под ред. Яркова В.В.')

INSERT EDITION (ID_Author,ID_Type,ID_Publisher,ID_Company,Title, Publishing_year, Number_of_pages, Keywords, Author_sign, Index_classifier, Number_of_copies, Responsibility) VALUES (5,2,4,1,' Обеспечение иска в арбитражном процессе', '1998',30,' арбитражный процесс', ' Я44', '123', 2, '')

INSERT EDITION (ID_Author,ID_Type,ID_Publisher,ID_Company,Title, Publishing_year, Number_of_pages, Keywords, Author_sign, Index_classifier, Number_of_copies, Responsibility) VALUES (5,1,3,1,' Разъяснения и решения высших судов РФ', '2015',544,' Гражданское право, Интеллектуальные права', ' Н123', ' 67.0', 10, ' под ред. Новоселовой')

INSERT COPY (ID_Edition,Incoming_date,Write_off_date,On_hands) VALUES (10, '10.12.2014', '', 'нет')

INSERT COPY (ID_Edition,Incoming_date,Write_off_date,On_hands) VALUES (11, '10.12.2014', '', 'нет')

INSERT COPY (ID_Edition,Incoming_date,Write_off_date,On_hands) VALUES (12, '21.12.2014', '', 'да')

INSERT COPY (ID_Edition,Incoming_date,Write_off_date,On_hands) VALUES (13, '21.12.2014', '', 'нет')

INSERT COPY (ID_Edition,Incoming_date,Write_off_date,On_hands) VALUES (13, '21.12.2014', '', 'нет')

INSERT COPY (ID_Edition,Incoming_date,Write_off_date,On_hands) VALUES (14, '21.12.2014', '', 'да')

INSERT COPY (ID_Edition,Incoming_date,Write_off_date,On_hands) VALUES (14, '23.12.2014', '', 'нет')

INSERT COPY (ID_Edition,Incoming_date,Write_off_date,On_hands) VALUES (15, '24.12.2014', '', 'да')

INSERT COPY (ID_Edition,Incoming_date,Write_off_date,On_hands) VALUES (15, '24.12.2014', '', 'нет')

INSERT HISTORY (ID_Reader, Inventory_number, Issue, [Return]) VALUES (1,19, '20.12.2014', '')

INSERT HISTORY (ID_Reader, Inventory_number, Issue, [Return]) VALUES (1,19, '21.12.2014', '')

INSERT HISTORY (ID_Reader, Inventory_number, Issue, [Return]) VALUES (1,20, '24.12.2014', '')

INSERT HISTORY (ID_Reader, Inventory_number, Issue, [Return]) VALUES (2,20, '21.12.2014', '22.12.2014')

INSERT HISTORY (ID_Reader, Inventory_number, Issue, [Return]) VALUES (2,22, '24.12.2014', '')

INSERT HISTORY (ID_Reader, Inventory_number, Issue, [Return]) VALUES (2,22, '20.12.2014', '23.12.2014')

INSERT HISTORY (ID_Reader, Inventory_number, Issue, [Return]) VALUES (2,23, '23.12.2014', '24.12.2014')

INSERT HISTORY (ID_Reader, Inventory_number, Issue, [Return]) VALUES (3,24, '27.12.2014', '28.12.2014')

INSERT HISTORY (ID_Reader, Inventory_number, Issue, [Return]) VALUES (3,25, '24.12.2014', '25.12.2014')

Рис.25. Заполнение таблиц

Для просмотра результатов необходимо выполнить действия, аналогичные описанным выше.

Создание запросов

Запрос 1. Вывести список всех изданий, зарегистрированных в системе.

SELECT Edition.Id_Edition, Edition.Title, Edition.Publishing_year, Edition.Number_of_Pages,

Edition.Keywords, Edition.Author_sign, Edition.Index_Classifier, Edition.Responsibility,

Author.Author, Publisher.Publisher, Type.Type

FROM ((Edition LEFT JOIN Author ON Edition.ID_Author = Author.Id_Author) LEFT JOIN

Publisher ON Edition.ID_Publisher =Publisher.ID_Publisher) LEFT JOIN

Type ON Edition.ID_Type = Type.ID_Type;

Рис.26. Результат запроса 1

Запрос 2. Вывести список всех экземпляров книг, находящихся на руках, их название и инвентарный номер.

SELECT Reader.Reader, Copy.Inventory_number, Copy.On_hands, Edition.Title

FROM (Edition INNER JOIN Copy ON Edition.[ID_Edition] = Copy.[ID_Edition])

INNER JOIN (Reader INNER JOIN History ON Reader.[ID_Reader] = History.[ID_Reader])

ON Copy.[Inventory_number] = History.[Inventory_number]

WHERE (((Copy.On_hands)='да'))

ORDER BY Reader.Reader

Рис. 27. Результат запроса 2

Запрос 3. Вывести список всех экземпляров книг, находящихся на руках у читателя Сидорова П.П., их название и инвентарный номер.

SELECT Reader.Reader, Copy.Inventory_number, Copy.On_hands, Edition.Title

FROM (Edition INNER JOIN Copy ON Edition.[ID_Edition] = Copy.[ID_Edition])

INNER JOIN (Reader INNER JOIN History ON Reader.[ID_Reader] = History.[ID_Reader])

ON Copy.[Inventory_number] = History.[Inventory_number]

WHERE (((Copy.On_hands)='да') AND (Reader.Reader)='Сидоров П.П.')

Рис. 28. Результат запроса 3

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

Триггер 1

Дата, введенная в поле «Дата_выдачи» в таблицу «ВЫДАЧА», не должна быть меньше текущей даты (рис.29):

CREATE TRIGGER Date_of_Issue ON History FOR INSERT

AS

IF (SELECT Issue FROM INSERTED) < GETDATE()

BEGIN

RAISeRROR (`Дата выдачи не может быть меньше текущей даты! ',1,1)

ROLLBACK TRAN

END

Рис.29. Триггер для ограничения поля Дата_выдачи

Проверка триггера (рис.30)

Рис.30. Результат проверки триггера

Триггер 2

Дата, введенная в поле «Дата_возврата» в таблицу «Выдача», не должна быть меньше значения, введенного в поле «Дата_выдачи» (рис.31):

CREATE TRIGGER Date_of_Return1 ON History FOR INSERT

AS

IF (SELECT [Return] FROM INSERTED) < (SELECT Issue FROM INSERTED)

BEGIN

RAISeRROR ('Дата возврата не может быть меньше даты выдачи!',1,1)

ROLLBACK TRAN

END

Рис.31. Триггер для ограничения поля Дата_возврата

Проверка триггера (рис.32)

Рис.32. Результат проверки триггера

Триггер 3

Количество экземпляров, введенное в поле «Количество_экземпляров» в таблице «Издание», должно быть больше 0 (Рис.33)

CREATE TRIGGER Copies_number ON Edition AFTER INSERT

AS

BEGIN

SET NOCOUNT ON;

If (select [Number_of_copies] from inserted) <='0'

ROLLBACK

Print `Количество экземпляров не может быть меньше или равно 0!'

END

Рис.33. Триггер для ограничения поля «Количество_экземпляров»

Проверка триггера (рис.34)

Рис.34. Результат проверки триггера

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

Для реализации приложения использована среда разработки Embarcadero Delphi XE5. Основное меню приложения представлено на рисунке 35.

Рис.35. Основное меню

Основное меню состоит из 3 кнопок - «Кодификатор», «Начальник отдела», «Выход».

2.2.1 Кодификатор

При нажатии на кнопку «Кодификатор» появляется окно меню «Рабочее место кодификатора» (рис. 36).

Рис.36. Рабочее место кодификатора

При нажатии на кнопку «Регистрация нового читателя» откроется форма Читатели, позволяющая зарегистрировать нового читателя (рисунок 37)

Рис. 37. Форма Читатели

При нажатии на кнопку «Регистрация нового издания» откроется форма Новое издание, позволяющая зарегистрировать новое издание (рисунок 38)

Рис. 38. Форма новое издание

При нажатии на кнопку «Регистрация, выдача и возврат экземпляров» откроется форма Библиотека (рисунок 38).

Рис. 38. Форма Библиотека

На данной форме отображаются две таблицы. В верхней таблице - список всех зарегистрированных изданий, в нижней таблице - список зарегистрированных экземпляров издания, выделенного в верхней таблице. Для того, чтобы зарегистрировать новый экземпляр издания, нужно нажать кнопку «+» под таблицей Экземпляры изданий, ввести необходимые данные и нажать «?». В верхней таблице, содержащей список всех изданий, реализовано редактирование изданий. Для этого нужно дважды щелкнуть левой кнопкой мыши по изданию, которое необходимо отредактировать. Откроется форма для редактирования (рисунок 39).

Рис. 39. Форма Редактирование издания

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

Откроется форма Выдача и возврат (рисунок 40).

Рис. 40. Форма Выдача и возврат

Кнопка «Завершить работу» закрывает приложение.

2.2.2 Начальник отдела

При нажатии на кнопку «Начальник отдела» откроется форма Начальник отдела (рисунок 41).

Рис. 41. Форма Начальник отдела

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

Кнопка «Выход» Основного меню полностью завершает работу программы.

Заключение

В процессе работы была спроектирована информационная система учета литературы в библиотеке Арбитражного суда Пермского края. Все основные функции, удовлетворяющие требования бизнес-процессов, были реализованы.

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

Литература

Половина И.П. Базы данных: лабораторный практикум, 2-е издание исправленное и дополненное / Перм. гос. пед. ун-т, Пермь, 2011. - 53с.

Половина И.П. Курсовой проект по дисциплине «Базы данных»: метод. указания / Перм. гос. пед. ун-т, Пермь, 2010. - 20с.

http://msdn.microsoft.com/ru-ru/library/ms187752.aspx - Справочник по MS SQL Server. Типы данных (Transact SQL).

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.