Автоматизированная система "Библиотека"
Автоматизированная система "Библиотека"
Министерство образования и науки Российской Федерации
Тихоокеанский Государственный Экономический Университет
Экономический институт
Курсовая работа
на тему:
«Библиотека»
Владивосток 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) зависимые реквизиты
Описательные реквизиты
|
Ключевые реквизиты
|
|
nazvan
|
kod
|
|
kod_avtor
|
kod
|
|
kod_izdatel
|
kod
|
|
kod_temi
|
kod
|
|
kod_tip
|
kod
|
|
kod_mesto
|
kod
|
|
v_nalichie
|
kod
|
|
familiya
|
kod_chitat
|
|
uliza
|
kod_chitat
|
|
dom
|
kod_chitat
|
|
kvartira
|
kod_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. Реализация алгоритмов средствами макросов
Разработаны следующие макросы:
Новая книга. Осуществляет открытие формы «Информация» для занесения данных о новой книге. Макрос привязан к событию «Нажатие кнопки» в форме «Информация 2».
Закрыть форму читатель. Закрывает форму «читатель».
Открыть новый читатель. Открывает форму «Новый читатель». Привязан к событию «Нажатие кнопки» в кнопке «Новый читатель».
Макрос1. Открывает запрос337, обновляет форму и записывает в таблицу взятую книгу.
Разработка приложения пользователя
Главная форма «Главная форма», в которой есть 2 вкладки:
Ш Читатель
Ш Книги
На вкладке «Читатель» при помощи поиска выбрать фамилию из списка или если она отсутствует зарегистрироваться, нажав кнопку «Новый читатель».
Также на вкладке «Читатель» есть кнопка «Взять книгу». Когда мы ее нажимаем то появляется форма «Информация1», где галочкой отмечается взятая книга.
На вкладке «Книги» мы можем посмотреть весь ассортимент книг.
Если пользователь хочет добавить в базу новую книгу, то он использует кнопку «Новая книга», после ее нажатия открывается форма «Информация».
|