Курсовая Разработка автоматизированной системы Библиотека
Работа добавлена на сайт bukvasha.net: 2015-10-25Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Дальневосточная государственная академия экономики и управления
Кафедра математики и моделирования
Курсовая работа
по базам данных и базы знаний
Разработка автоматизированной системы “Библиотека”
Студент
Нестеренко М.В.
131-ПИ
Руководитель
Озерова Г.П.
Владивосток, 2002
Оглавление
1. Введение
2. Функциональные возможности системы
3. Построение информационно-логической модели базы данных
3.1. Выделение информационных объектов
3.2. Структура информационных объектов базы данных
3.3. Связи между информационными объектами
4. Проектирование алгоритмов обработки данных
5. Разработка запросов для корректировки и выборки данных
5.1. Запросы на выборку данных
5.2 Корректировка данных средствами запросов.
6. Реализация пользовательского интерфейса средствами форм
7. Разработка отчетов
8. Реализация алгоритмов обработки информации программными средствами
8.1. Реализация алгоритмов средствами макросов
8.2. Реализация алгоритмов средствами Visual Basic
9. Разработка приложения пользователя
Приложения
1. Введение
Имеется некоторая библиотека, в которой хранятся книги. Они различаются по авторам, по жанру, году издания, издательству, которое их выпустило, по месту издания. Каждый жанр книги имеет свою продолжительность держания на руках и пеню, начисляемую в случае не возврата книги вовремя.
В библиотеке записано некоторое количество читателей, данные о которых хранятся в специальной ведомости. Каждый читатель имеет возможность взять любую книгу, которая в данный момент находится в библиотеке.
После того, как человек взял книгу на руки, считается, что никакому другому читателю она не доступна до тех пор, пока взявший ее не вернет назад. Дата взятия книги заносится в ведомость и когда читатель возвращает книгу, учитывается, вернул ли он ее вовремя или же просрочил. В этом случае ему за каждый день просрочки начисляется пеня в установленном размере.
2. Функциональные возможности системы
Система “Библиотека” предоставляет следующие возможности для пользователей:
Занесение новых книг в фонд библиотеки
Просмотр информации о каждом зарегистрированном читателе
Просмотр всех книг, которые читатель брал за все время пользования библиотекой
Поиск необходимой читателю книги по нескольким параметрам
Просмотр книг, которые находятся на руках у читателя, а также тех, за которые он не заплатил пеню
Оплата пени за ту книгу, сдачу которой читатель просрочил
Просмотреть информацию обо всех читателях, которые зарегистрированы в библиотеке (ФИО, адрес, телефон)
3. Построение информационно-логической модели базы данных
3.1 Выделение информационных объектов
а) документы и их реквизиты, подлежащие хранению в базе данных
Документ | Наименование реквизита | Идентификатор | Функциональная зависимость |
Список | Код_автора | Код_автора | |
книг | Автор_книги | Автор | |
| Авт_знак | Авт_знак | |
| Код_заглавия | Код_заглавия | |
| Заглавие_книги | Заглавие | |
| Код_вида_издания | Код_вида_издания | |
| Вид_издания | Вид_издания | |
| На_какой_срок | На_какой_срок | |
| Начисляемая_пеня | Начисляемая_пеня | |
| Код_издательства | Код_издательства | |
| Издательство | Издательство | |
| Место_издания Код_издания Библ_шифр Год_издания Аннотация Код_экземпляра На_руках? | Место_издания Код_издания Библ_шифр Год_издания Аннотация Код_экземпляра На_руках? | |
Список | Код_улицы | Код_улицы | |
читателей | Улица_проживания | Улица | |
| Дом | Дом | |
| Квартира | Квартира | |
| Код_адреса | Код_адреса | |
| Номер_билета | Номер_билета | |
| Фамилия_читателя | Фамилия | |
| Имя | Имя | |
| Отчество | Отчество | |
| Телефон | Телефон | |
| Код_ведомости | Код_ведомости | |
| Дата_оплаты | Дата_оплаты | |
| Заплачено | Заплачено | |
| Дата_выдачи | Дата_выдачи | |
| Когда_вернул | Когда_вернул | |
| Пеня | Пеня | |
| Заплатил_пеню? | Заплатил_пеню? |
б) зависимые реквизиты
Описательные реквизиты | Ключевые реквизиты |
Код_автора | Код_издания |
Автор | Код_автора |
Авт_знак | Код_автора |
Код_заглавия | Код_издания |
Заглавие | Код_заглавия |
Код_вида_издания | Код_издания |
Вид_издания | Код_вида_издания |
На_какой_срок | Код_вида_издания |
Исчисляемая_пеня | Код_вида_издания |
Код_издательства | Код_издания |
Издательство | Код_издательства |
Место_издания | Код_издательства |
Код_издания | Код_экземпляра |
Библ_шифр | Код_издания |
Год_издания | Код_издания |
Аннотация | Код_издания |
Код_экземпляра | Номер_билета |
На_руках? | Код_экземпляра |
Код_улицы | Код_адреса |
Улица | Код_улицы |
Дом | Код_адреса |
Квартира | Код_адреса |
Код_адреса | Номер_билета |
Номер_билета | Код_ведомости |
Фамилия | Номер_билета |
Имя | Номер_билета |
Отчество | Номер_билета |
Телефон | Номер_билета |
Код_ведомости | ------------------- |
Дата_оплаты | Код_ведомости |
Заплачено | Код_ведомости |
Дата_выдачи | Номер_билета |
Когда_вернул | Номер_билета |
Пеня | Номер_билета |
Заплатил_пеню? | Номер_билета |
в) группировка реквизитов
Реквизиты | Ключ | Имя инф. объекта | Описание |
Автор | q | Авторы | |
Авт_знак | | | |
Код_автора | | 1 | |
Заглавие | | Заглавия | |
Код_заглавия | q | | 1 |
Вид_издания | q | Вид_издания | |
На_какой_срок Начисляемая_пеня Код_вида_издания | | 1 | |
Издательство | q | Издательства | |
Место_издания Код_издательства | | 1 | |
Код_вида_издания | q | Издание | ¥ |
Код_автора | | ¥ | |
Заглавие Библ_шифр Код_издательства Год_издания Аннотация Код_издания | | ¥ ¥ 1 | |
Код_издания | q | Экземпляр | ¥ |
На_руках? | | | |
Код_экземпляра | | 1 | |
Улица | q | Улица | |
Код_улицы | | 1 | |
Улица | q | Адрес | ¥ |
Дом | | | |
Квартира | | | |
Код_адреса | | 1 | |
Фамилия | q | Читатели | |
Имя | | | |
Отчество | | ¥ | |
Код_адреса Телефон | | | |
Номер_билета | | 1 | |
Номер_билета | q q | Выдача | ¥ |
Код_экземпляра Дата_выдачи Когда_вернул Пеня Заплатил_пеню? | | ¥ | |
Код_читателя Код_экземпляра Дата_оплаты Заплачено Код_ведомости | q | Ведомость | ¥ |
Авторы
№ | Название столбца | Тип | Ключ |
1 | Автор | текстовый | |
2 | Авт_знак | текстовый | |
3 | Код_автора | счетчик | q |
Заглавия
№ | Название столбца | Тип | Ключ |
1 | Заглавие | текстовый | |
2 | Код_заглавия | счетчик | q |
Вид_издания
№ | Название столбца | Тип | Ключ |
1 | Ви_издания | текстовый | |
2 | На_какой_срок | числовой | |
3 | Начисляемая_пеня | числовой | |
4 | Код_вида_издания | счетчик | q |
Издательства
№ | Название столбца | Тип | Ключ |
1 | Издательство | текстовый | |
2 | Место_издания | текстовый | |
3 | Код_издательства | счетчик | q |
Издание
№ | Название столбца | Тип | Ключ |
1 | Код_вида_издательства | числовой | |
2 | Код_автора | числовой | |
3 | Заглавие | числовой | |
4 | Библ_шифр | текстовый | |
5 | Код_издательства | числовой | |
6 | Год_издания | числовой | |
7 | Аннотация | Поле MEMO | |
8 | Код_издания | счетчик | q |
Экземпляр
№ | Название столбца | Тип | Ключ |
1 | Код_издания | числовой | |
2 | На_руках? | логический | |
3 | Код_экземпляра | счетчик | q |
Улицы
№ | Название столбца | Тип | Ключ |
1 | Улица | текстовый | |
2 | Код_улицы | счетчик | q |
Адрес
№ | Название столбца | Тип | Ключ |
1 | Улица | числовой | |
2 | Дом | текстовый | |
3 | Квартира | числовой | |
4 | Код_адреса | счетчик | q |
Читатели
№ | Название столбца | Тип | Ключ |
1 | Фамилия | текстовый | |
2 | Имя | текстовый | |
3 | Отчество | текстовый | |
4 | Код_адреса | числовой | |
5 | Телефон | текстовый | |
6 | Номер_билета | счетчик | q |
Ведомость
№ | Название столбца | Тип | Ключ |
1 | Код_читателя | числовой | |
2 | Код_экземпляра | числовой | |
3 | Дата_оплаты | дата/время | |
4 | Заплачено | числовой | |
5 | Код_ведомости | счетчик | q |
Выдача
№ | Название столбца | Тип | Ключ |
1 | Номер_билета | числовой | q |
2 | Код_экземпляра | числовой | q |
3 | Дата_выдачи | дата/время | |
4 | Когда_вернул | дата/время | |
5 | Пеня | числовой | |
6 | Заплатил_пеню? | логический | |
3.3 Связи между информационными объектами
4. Проектирование алгоритмов обработки данных
Выбор книги | Книга на руках | Сдача книги |
Регистрация в библиотеке (если еще не зарегистрирован) Поиск книги в фонде Выбор найденной книги Занесение информации о взятой книги в карточку читателя Занесение в список информации, что книга на руках | Подсчет общей пени каждого читателя | Снятие книги с рук и отражение этого в списках Подсчет пени по данной книге (если такая имеется) Оплата пени |
Действия в течение года | ||
Формирование списка тех книг, которые на руках Добавление новых книг Списание старых книг Регистрация новых читателей |
5. Разработка запросов для корректировки и выборки данных
5.1 Запросы на выборку данных
Пеня – запрос для расчета задолженности читателей по каждой книге.
а) Данные из следующих таблиц должны быть включены в запрос: Авторы, Заглавия, Издание, Экземпляр, Вид_издания, Выдача, читатели.
б) структура связей между таблицами:
((Заглавия INNER JOIN (Вид_издания INNER JOIN (Авторы INNER JOIN Издание ON Авторы.Код_автора = Издание.Код_автора) ON Вид_издания.Код_вида_издания = Издание.Код_вида_издания) ON Заглавия.Код_заглавия = Издание.Заглавие) INNER JOIN Экземпляр ON Издание.Код_издания = Экземпляр.Код_издания) INNER JOIN (Читатели INNER JOIN Выдача ON Читатели.Номер_билета = Выдача.Номер_билета) ON Экземпляр.Код_экземпляра = Выдача.Код_экземпляра
в) поля, включаемы в запрос:
SELECT Читатели.Фамилия, Читатели.Имя, Читатели.Отчество, Авторы.Автор, Заглавия.Заглавие, Выдача.Дата_выдачи, Выдача!Дата_выдачи+ Вид_издания!На_какой_срок AS До_какого_числа, Выдача.Когда_вернул, (Выдача!Когда_вернул-(Выдача!Дата_выдачи +Вид_издания!На_какой_срок)) *Вид_издания!Начисляемая_пеня AS [Был долг], Выдача.Пеня AS Оплатить
г) групповая операция:
Читатели.Фамилия, Читатели.Имя, Читатели.Отчество, Авторы.Автор, Заглавия.Заглавие, Выдача.Дата_выдачи, Выдача!Дата_выдачи+Вид_издания!На_какой_срок, Выдача.Когда_вернул, (Выдача!Когда_вернул-(Выдача!Дата_выдачи +Вид_издания!На_какой_срок))*Вид_издания!Начисляемая_пеня, Выдача.Пеня
д) условие отбора:
((([Выдача]![Пеня])<>0) AND ((([Выдача]![Когда_вернул]-([Выдача]! [Дата_выдачи]+[Вид_издания]![На_какой_срок])) *[Вид_издания]! [Начисляемая_пеня])>0)) ORDER BY Читатели.Фамилия, Читатели.Имя
10 новых книг – перечень 10 самых новых книг.
10 самых постоянных читателей – перечень 10 тех читателей, которые брали наибольшее количество книг.
На_поиск_книги – запрос, необходимый для поиска (отбора) книги по необходимым параметрам.
5.2 Корректировка данных средствами запросов
Подсчет пени: обновление данных о сумме задолженности, обновление данных о читателях, которые оплатили свою задолженность.
Весь процесс можно описать в два шага.
Шаг 1: Выполнение запроса Подсчет пени (1)