Министерство образования и науки Российской Федерации
Тихоокеанский Государственный Экономический Университет
Экономический институт
Курсовая работа
на тему:
«Библиотека»
Владивосток 2009
Введение
Автоматизированная система «Библиотека»
В библиотеки хранятся несколько видов литературы: книги, газеты и журналы. Каждая книга (газета, журнал) относится к определенному разделу, который подразделяется по темам. У каждой книги (газеты, журнала) есть ряд характеристик: автор, название, издательство, место и пр.
Пользователями библиотеки являются читатели. На каждого читателя ведется формуляр, который содержит информацию о нем (адрес, фамилия, телефон), а также сведения о взятой книге, дате получения и возврата.
В случае задержки книги, начисляется пеня за каждый день просрочки (на руках книга может находиться 10 дней). В системе ведется учет книг, пользователей и финансов.
1. Функциональные возможности системы
Функциональные возможности системы «Библиотека» предоставляют следующие возможности:
¨Занесение новых книг в фонд библиотеки;
¨Просмотр информации о каждом записанном читателе;
¨Оплата пени за ту книгу, сдачу которой читатель просрочил;
¨Просмотреть информацию обо всех читателях, которые зарегистрированы в библиотеке: Ф.И.О., адрес;
¨Занесение новых читателей.
2. Построение информационно-логической модели базы данных
Выделение информационных объектов
1) документы и их реквизиты, подлежащие хранению в базе данных
ДокументНаименование реквизита (реальное)Наименование реквизита в базе данныхТип реквизитаСвязиКнигиКод Название Автор Издательство Тема Тип Место В наличиеkod nazvan kod_avtor kod_izdat kod_temi kod_tip kod_mesto v_nalichieКлючевой Описательный Описательный Описательный Описательный Описательный Описательный ОписательныйЧитателиКод читателя Фамилия Улица Дом Квартираkod_chitat familiya uliza dom kvartiraКлючевой Описательный Описательный Описательный Описательный
2) зависимые реквизиты
Описательные реквизитыКлючевые реквизитыnazvankodkod_avtorkodkod_izdatelkodkod_temikodkod_tipkodkod_mestokodv_nalichiekodfamiliyakod_chitatulizakod_chitatdomkod_chitatkvartirakod_chitat
3) группировка реквизитов
Имя информационного объектаРеквизитыКлючевое полеОписаниеИнформацияkod nazvan kod_avtor kod_izdat kod_temi kod_tip kod_mesto v_nalichieü 1 ¥Авторkod_avtor fioü 1 Издательствоkod_izdat nazvanü 1 Местоkod_mesto nazvanü 1 Разделkod_razd nazvanü 1 Темаkod_temi nazvan kod_razdü 1 Типkod_tip tipü 1 Экземплярkod_ekzempl nazvan ekzempl kod_temi v_nalichieü 1 Таблица - связкаkod chitat nazvan ekzempl data_vid data_voz pr_dni penyaü Читательkod_chitat familiya uliza dom kvartiraü 1 ¥Улицаkod_uliza ulizaü 1
Структура информационных объектов базы данных
Автор
Название столбцаТипКлючевоеполеKod_avtorСчетчикü fioТекстовый
Издательство
Название столбцаТипКлючевое полеkod_izdatСчетчикü nazvanТекстовый
Место
Название столбцаТипКлючевое полеkod_mestoСчетчикü nazvanТекстовый
Раздел
Название столбцаТипКлючевое полеkod_razdСчетчикü nazvanТекстовый
Тема
Название столбцаТипКлючевое полеkod_temiСчетчикü nazvanТекстовыйkod_razdЧисловой
Тип
Название столбцаТипКлючевое полеkod_tipСчетчикü tipТекстовый
Улица
Название столбцаТипКлючевое полеkod_ulizaСчетчикü ulizaТекстовый
Таблица - Связка
Название столбцаТипКлючевое полеkodСчетчикü chitatЧисловойnazvanТекстовыйekzemplЧисловойdata_vidДата/времяdata_vozДата/времяpr_dniЧисловойpenyaДенежный
Читатель
Название столбцаТипКлючевое полеkod_chitatСчетчикü familiyaТекстовыйdomЧисловойkvartiraЧисловой
Экземпляр
Название столбцаТипКлючевое полеkod_ekzemplСчетчикü nazvanЧисловойkod_temiЧисловойv_nalichieЛогический
Информация
Название столбцаТипКлючевое полеkodСчетчикü nazvanТекстовыйkod_avtorЧисловойkod_mestoЧисловойv_nalichieЛогический
Связи между информационными объектами
3. Проектирование алгоритмов обработки данных
Выбор книгиКнига на рукахДействие в течение годаРегистрация в библиотеке (если еще не зарегистрирован) Поиск книги в базе Занесение информации о взятой книги в карточку читателя Подсчет пени каждого читателяДобавление новых книг Регистрация новых читателей
Запрос на выборку данных
1.Пеня - запрос для расчета задолженности читателей по каждой книге. Данные из таблицы - связки должны быть включены в запрос: chitat, nazvan, ekzempl, data_vid, data_voz, pr_dni, penya
Данный запрос, описанный в SQL:
UPDATE [Таблица - связка] SET [Таблица - связка].penya = [pr_dni]*0.9
2.На поиск книги - запрос, необходимый для поиска книги по необходимым параметрам (по автору, издательству, теме).
3.Взять книгу - берется книга и данные добавляются в таблицу «Таблица - связка».
Корректировка данных средствами запросов
1.Взять книгу - берется книга и данные добавляются в таблицу «Таблица - связка».
Данный запрос, описанный в SQL:
INSERT INTO [Таблица - связка] (chitat, nazvan, ekzempl)
SELECT TOP 1 Читатель.kod_chitat, Информация.nazvan, Экземпляр.kod_ekzempl
FROM Читатель, Информация INNER JOIN Экземпляр ON Информация.kod = Экземпляр.nazvan
WHERE (((Читатель.kod_chitat)=[Forms]! [Главная форма]! [Читатель, книги]. [Form]! [kod_chitat]) AND ((Информация.nazvan)=[Forms]! [Информация1]! [nazvan]));
2.Просроченные дни - обновляются данные (просроченные дни) в таблице «Таблица - связка».
4. Реализация пользовательского интерфейса средствами форм
Технология загрузки базы данных
- В первую очередь заполняются таблицы Автор, Тема, Тип, Издательство, Место.
- Таблица «Информация» заполняется на основе вышеприведенных таблиц.
- Затем заполняются таблицы «Экземпляр», «Улица», эти данные вклячаются в таблицы «Таблица - связка» и «Читатель».
Разработка форм
1) Составная форма
Источник записей: Читатель + Информация
Таблица, на которой строится форма: Информация
Корректируемые данные: Да
Количество записей: Информация
Недостатки: Невозможно корректировать таблицы, отсутствует иерархический просмотр.
2) Вложенная форма с одним уровнем
Главная:
Источник записей: Читатель
Таблица, на которой строится форма: Читатель
Корректируемые данные: Читатель
Количество записей: Читатель
Подчиненная:
Источник записей: Информация
Таблица, на которой строится форма: Информация
Корректируемые данные: Да
Количество записей: сколько книг у читателя
Достоинства: Возможность корректировать таблицу «Читатель», реализуется иерархический просмотр.
Вывод: Выбираем для реализации форму 2, так как она удовлетворяет всем поставленным требованиям.
Определение подсхемы данных
Для удобства пользования желательно заносить информацию о книгах, по каждому читателю имея возможность найти его с помощью поиска.
Общая структура вложенной формы
В соответствие с приведенной подсхемой определим структуру вложенной формы «Читатель». В основной части будут располагаться реквизиты читателя (название читателя: familiya). Подчиненная форма «Информация» будет содержать список книг, которыми пользуются читатели. Связь между формами будет осуществляться по полям код студента.
Таким образом, форму «Читатель» определяют:
- Тип формы: вложенная;
- Источник записей для основной части формы: таблица «Читатель»;
- Включаемая подчиненная форма: «Информация».
Форму «Информацию» определяют:
- Тип формы: подчиненная;
- Источник строк: Информация.
Реквизиты основной и подчиненной формы
В заголовок формы «Читатель» включаем реквизит поле, содержащий имя читателя. С помощью этого поля будет осуществляться поиск записей в форме для каждого конкретного Читателя. В основную часть формы включаем подчиненную форму «Информация», в которую включаем поля, содержащие информацию о взятой книги.
7. Реализация алгоритмов обработки информации
7.1. Реализация алгоритмов средствами макросов
Разработаны следующие макросы:
- Новая книга. Осуществляет открытие формы «Информация» для занесения данных о новой книге. Макрос привяза