Информационная система библиотеки

Автор работы: Пользователь скрыл имя, 25 Января 2014 в 13:25, курсовая работа

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

Целью данной работы является разработка системы, автоматизирующей ведение базы данных библиотеки. Данная система упрощает процесс учета книг, связанный с обработкой больших объемов информации, а также позволяет читателям осуществлять в интерактивном режиме поиск и выбор интересующих книг.
Для достижения поставленной цели предполагается составление технического задания в соответствии с требованиями предметной области, разработка инфологической и физической модели базы данных на платформе Oracle, написание информационной системы на язык программирования C#.

Содержание

Введение 5
1 Техническое задание 6
1.1 Описание предметной области 6
1.2 Модели вариантов использования 6
1.3 Требования к информационному и программному обеспечению 7
2 Технический проект 8
2.1 Модели локальных представлений 8
2.2 Инфологическая модель предметной области 11
2.3 Физическая модель базы данных 14
2.4 Основные запросы к базе данных 17
2.5 Хранимые процедуры 21
2.6 Архитектура информационной системы 24
3 Рабочий проект 25
3.1 SQL-скрипт создания базы данных 25
3.2 SQL-скрипт хранимых процедур 25
3.3 Текст программы 25
3.4 Руководство пользователя 25
Заключение 32
Список источников 32

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

Курсовая работа.docx

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

 

 

 

Окончание таблицы 3

Название 

Код

Тип

Длина

Первич.

Внеш.

Обяз.

Выдача (Issuance)

Номер выдачи

iNumber

INTEGER

 

X

 

X

Номер экземпляра

cNumber

INTEGER

   

X

X

Номер читательского билета

rNumber

NUMBER(6)

6

 

X

X

Дата выдачи

iIssuance

DATE

     

X

Дата ожидаемого возврата

iExpReturn

DATE

     

X

Дата фактического возврата

iFactReturn

DATE

       

Выбор книги читателем

ICHOICE

SMALLINT

       

Читатель

Номер читательского билета

rNumber

NUMBER(6)

6

X

 

X

ФИО

rFullName

VARCHAR2(100)

100

   

X

Адрес

rAddress

VARCHAR2(200)

200

   

X

Телефон

rPhone

NUMBER(11)

11

   

X

Дата рождения

rDate

DATE

     

X

Замена (Replacement)

Код замены

repCode

INTEGER

 

X

 

X

Дата замены

repDate

DATE

     

X

Списание (Writeoff)

Код списания

woCode

INTEGER

 

X

 

X

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

woDate

DATE

     

X


 

 

 

 

 

2.4 Основные запросы к базе данных

      1. Формулировка  на естественном языке

2.4.1.1 Выборка недобросовестных читателей

Из естественного соединения таблиц Читатель и Выдача выбрать ФИО, адрес, телефон читателей для которых дата фактического возврата больше даты ожидаемого возврата, либо имеет null-значение; подсчитать для каждого читателя количество выдач, удовлетворяющих данному условию (количество опозданий/долгов). Отсортировать по убыванию количества опозданий/долгов.

2.4.1.2 Выборка популярных книг за  период

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

2.4.1.3 Выборка цены утерянных книг

Из естественного соединения таблиц Книга, Экземпляр книги, Выдача  и Читатель выбрать название книги, номер экземпляра, его цену и ФИО читателя, если флаг Утерян равен 1 и код акта замены не указан.

2.4.1.4 Выборка  читателей

Из таблицы  Читатель выбрать ФИО, адрес, телефон, дату рождения читателя. Если количество выдач читателю в которых ICHOICE не равен null

2.4.1.5 Выборка книг, находящихся на руках у читателя

Из естественного соединения таблиц Книга, Экземпляр книги, Выдача  и Читатель выбрать ISBN и название книги для книг, у которых не указана дата фактического возврата и номер читательского соответствует заданному.

2.4.1.6 Выборка свободных экземпляров книги

Выбрать из естественного  соединения таблиц Книга, Экземпляр  книги, Место расположения и Выдача отдел, стеллаж, полку и сектор для  экземпляров книги, ISBN которой соответствует заданному, дата фактического возврата не равна null, а дата выдачи максимальна среди выдач этого экземпляра.

 

      1. Формулировка в виде выражения  реляционной алгебры

2.4.2.1 Выборка  недобросовестных читателей:

где Ч – отношение Читатель ( Номер читательского билета, ФИО, Адрес, Телефон, Дата рождения); B – отношение Выдача (Номер выдачи, Номер экземпляра, Номер читательского билета, Дата выдачи, Дата ожидаемого возврата, Дата фактического возврата); dateBegin и dateEnd – введенные начальная и конечная даты соответственно

 

2.4.2.2 Выборка стоимости утерянных книг:

где  К  – отношение Книга(ISBN, Название книги, Автор(ы), Место издания, Издательство, Год издания, Количество страниц, Количество экземпляров);         Э – отношение Экземпляр книги (Номер экземпляра, ISBN, Код списания, Код замены, Код места, Стоимость экземпляра, Дата поставки, Утерян).

 

 

 

 

 

      1. Формулировка в виде выражений  реляционного исчисления с переменными-кортежами

2.4.3.1 Выборка книг, находящихся на руках:

 

где  К  – отношение Книга(ISBN, Название книги, Автор(ы), Место издания, Издательство, Год издания, Количество страниц, Количество экземпляров),         Э – отношение Экземпляр книги (Номер экземпляра, ISBN, Код списания, Код замены, Код места, Стоимость экземпляра, Дата поставки, Утерян),                                       B – отношение Выдача (Номер выдачи, Номер экземпляра, Номер читательского билета, Дата выдачи, Дата ожидаемого возврата, Дата фактического возврата).

2.4.3.2 Выборка стоимости утерянных  книг:

где Ч –  отношение Читатель ( Номер читательского  билета, ФИО, Адрес, Телефон, Дата рождения);    B – отношение Выдача (Номер выдачи, Номер экземпляра, Номер читательского билета, Дата выдачи, Дата ожидаемого возврата, Дата фактического возврата);    К – отношение Книга(ISBN, Название книги, Автор(ы), Место издания, Издательство, Год издания, Количество страниц, Количество экземпляров);    Э – отношение Экземпляр книги (Номер экземпляра, ISBN, Код списания, Код замены, Код места, Стоимость экземпляра, Дата поставки, Утерян).

 

 

 

 

2.4.4 Формулировка на языке SQL

2.4.4.1 Выборка недобросовестных читателей

SELECT R."rFullName" AS ФИО, R."rAddress" AS Адрес, R."rPhone" AS Телефон, R."rData" AS Дата_рождения, COUNT(I."iNumber") AS Опоздания_Долги

FROM "Reader" R, "Issuance" I

WHERE R."rNumber" = I."rNumber" AND

(I."iExpReturn" < I."iFactReturn" OR I."iFactReturn" IS NULL) AND

(I."iFactReturn" BETWEEN (select to_date('dateBegin','dd-mm-rr') from dual) AND (select to_date('dateEnd','dd-mm-rr') from dual) OR I."iFactReturn" IS NULL)

GROUP BY R."rFullName",R."rAddress",R."rPhone",R."rData"

ORDER BY Опоздания_Долги DESC

2.4.4.2 Выборка популярных книг за  период

SELECT B."bName" AS Книга, B."bAuthor" AS Автор,B."bPublish" AS Издательство, B."bYear" AS Год_издания, COUNT(I."iNumber") AS Выдач

FROM "Book" B, "Issuance" I, "Copy" C

WHERE B."ISBN" = C."ISBN" AND C."cNumber" = I."cNumber" AND I."iIssuance" BETWEEN (select to_date('dateBegin','dd-mm-rr') from dual) AND (select to_date('dateEnd','dd-mm-rr') from dual)

GROUP BY  B."bName",B."bAuthor",B."bPublish",B."bYear"

ORDER BY Выдач DESC

2.4.4.3 Выборка стоимости утерянных книг

SELECT B."bName" AS Книга, C."cNumber" AS Номер, C."cCost" AS "Цена",R."rFullName" AS ФИО_читателя

FROM "Book" B, "Issuance" I, "Copy" C, "Reader" R

WHERE B."ISBN" = C."ISBN" AND C."cNumber" = I."cNumber" AND I."rNumber"=R."rNumber" AND C."cLost"=1 AND C."repCode" IS NULL

2.4.4.4  Выборка читателей

SELECT R."rNumber" AS Номер_билета, R."rFullName" AS ФИО, R."rAddress" AS Адрес, R."rPhone" AS Телефон, R."rData" AS Дата_рождения, case when (select count(I."iNumber") from "Issuance" I, "Reader" R2 where I."rNumber" = R2."rNumber" AND R2."rNumber" =  R."rNumber" AND  I.ICHOICE IS NOT NULL group by R2."rNumber") IS NULL then 'нет' else 'да' end AS Выбрал_книгу FROM "Reader" R

2.4.4.5  Выборка книг, находящихся на руках у читателя

SELECT B.ISBN, B. "bName"

FROM "Book" B, "Copy" C, "Issuance" I, "Reader" R

WHERE  I. "cNumber" = C. "cNumber" AND C. ISBN = B.ISBN AND I. "rNumber" = R. "rNumber"  AND R. "rNumber" = 'RNUMBER'  AND I. "iFactReturn" IS NULL AND C."cLost" = 0 AND C."repCode" IS NULL

2.4.4.6 Выбор свободных экземпляров книги читателем

SELECT C."cNumber" AS Номер, P."plSection" AS Отдел,P."plRack" AS Стеллаж,P."plShelf" AS Полка,P."plSector" AS Сектор

FROM "Book" B INNER JOIN "Copy" C ON B.ISBN = C.ISBN AND B."bName" = 'Конспект лекций  по высшей математике' AND  C."cLost" = 0  AND  C."woCode" IS NULL

INNER JOIN "Place" P ON C."plCode" = P."plCode" 

INNER JOIN "Issuance" I ON I."cNumber" = C."cNumber" AND I."iFactReturn" IS NOT NULL AND I."iIssuance"=(select max(I2."iIssuance") from "Book" B2 INNER JOIN "Copy" C2 ON B2.ISBN = C2.ISBN AND B2."bName" = 'Конспект лекций по высшей математике' AND  C2."cLost" = 0  AND  C2."woCode" IS NULL

INNER JOIN "Place" P2 ON C2."plCode" = P2."plCode" 

INNER JOIN "Issuance" I2 ON I2."cNumber" = C2."cNumber"

WHERE C2."cNumber"=C."cNumber"

GROUP BY C2."cNumber")

2.5 Хранимые процедуры

2.5.1 Блок-схема алгоритма

2.5.1.1 Алгоритм регистрации  нового читателя представлен на             рисунке 6.

Рисунок 6. Алгоритм регистрации нового читателя

2.5.1.2 Алгоритм регистрации новой книги представлен на рисунке 7.

Рисунок 7. Алгоритм регистрации книги

2.5.1.3 Алгоритм добавления экземпляра книги представлен на рисунке 8.

Рисунок 8. Алгоритм добавления экземпляра книги

2.5.1.4 Алгоритм добавления  книги в раздел каталога представлен на рисунке 9.

Рисунок 9. Алгоритм добавления книги в раздел каталога

2.5.1.5 Алгоритм редактирования  экземпляра книги и изменения  его места расположения представлен на рисунке 10.

Рисунок 10. Алгоритм редактирования экземпляра книги и  изменения его места расположения

 

2.5.1.6 Алгоритм редактирования  данных книги представлен на рисунке 11.

Рисунок 11. Алгоритм редактирования данных книги

 

 

2.5.1.7 Алгоритм редактирования  данных читателя представлен на рисунке 12.

Рисунок 12. Алгоритм редактирования данных читателя

 

2.5.2 Код на языке PL/SQL (см. Приложение 2)

2.6 Архитектура информационной системы

2.6.1 Архитектуру информационной системы можно представить в виде совокупности трех элементов: базы данных, СУБД, приложения.

Приложение  DBLibrary.exe реализует пользовательский интерфейс для работы с данными, хранящимися в базе. Приложение взаимодействует с базой данных посредством объектно-реляционной СУБД Oracle 11g Express Edition.

2.6.2 Концептуальная схема информационной системы представлена на рисунке 13.

Рисунок 13. Архитектура информационной системы

3 Рабочий проект

3.1 SQL-скрипт создания базы данных (см. Приложение 1)

3.2 SQL-скрипт хранимых процедур (см. Приложение 2)

3.3 Текст программы    (см. Приложение 3).

3.4 Руководство пользователя

3.4.1 Введение

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

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

Пользователи  системы  должны  иметь  опыт  работы  с  персональным компьютером  на  базе  операционных  систем  Microsoft  Windows  на  уровне квалифицированного пользователя и свободно осуществлять базовые операции.

Перед  началом  работы  с  приложением  необходимо  ознакомиться  с

Руководством  пользователя.

3.4.2 Назначение и условия применения

3.4.2.1 Приложение DBLibrary предназначено для автоматизации приведенных ниже функций пользователей.

Функции читателей:

    • просмотр каталога библиотеки и получение полного списка имеющихся книг из выбранного раздела;
    • после выбора книги, при наличии свободного экземпляра, получение его расположения; в противном случае, получение ближайшего времени возврата экземпляра данной книги.

 

 

 

Функции библиотекаря:

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

Функции администрации:

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

3.4.2.2 Минимальные  требования для запуска программы:

    • Процессор Intel Pentium IV;
    • Наличие не менее 128Mб ОЗУ;
    • Наличие не менее 20Мб свободного дискового пространства;
    • SVGA – графический адаптер;
    • Минимальный набор периферийного оборудования.

3.4.2.3 Программное обеспечение, необходимое для функционирования программы:

Информация о работе Информационная система библиотеки