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)

 



Таблица Выдача

Номер_билета

Код_экземпляра

Дата_выдачи

Когда_вернул

Пеня

Заплатил_пеню?

Данный запрос, описанный в SQL:

UPDATE ((Вид_издания INNER JOIN Издание ON Вид_издания.Код_вида_издания = Издание.Код_вида_издания) INNER JOIN Экземпляр ON Издание.Код_издания = Экземпляр.Код_издания) INNER JOIN Выдача ON Экземпляр.Код_экземпляра = Выдача.Код_экземпляра SET Выдача.Пеня = (Выдача!Когда_вернул-(Выдача!Дата_выдачи+Вид_издания!На_какой_срок)) *Вид_издания! Начисляемая_пеня WHERE ((([Выдача]![Когда_вернул]-([Выдача]![Дата_выдачи]+ [Вид_издания]! [На_какой_срок]))>0) AND (([Выдача]![Пеня])=0) AND (([Выдача]![Заплатил_пеню?])=False));

Шаг 2: Выполнение запроса Аннулировать пеню (2)

Таблица Выдача

Номер_билета

Код_экземпляра

Дата_выдачи

Когда_вернул

Пеня

Заплатил_пеню?

Данный запрос, описанный в SQL:

UPDATE ((Вид_издания INNER JOIN Издание ON Вид_издания.Код_вида_издания = Издание.Код_вида_издания) INNER JOIN Экземпляр ON Издание.Код_издания = Экземпляр.Код_издания) INNER JOIN Выдача ON Экземпляр.Код_экземпляра = Выдача.Код_экземпляра SET Выдача.[Заплатил_пеню?] = True WHERE ((([Выдача]![Когда_вернул]) Is Not Null) AND (([Выдача]![Пеня])=0));

Вернуть_книгу – запрос на обновление: если читатель возвращает книгу, то данный запрос изменяет везде данные, что книга имеется в библиотеке в данный момент (не на руках).

На_руках_ли_книга? – запрос на обновление: проверяется, есть ли книга в фонде библиотеке в данный момент или она на руках.

Создать_таблицу – запрос на создание таблицы: создается временная таблица Заплатить с последним заплатившим пеню.

Оплата_пени – запрос на обновление: сведения из таблицы Заплатить заносятся в соответствующие списки об оплате пени.



Информация о работе «Разработка автоматизированной системы "Библиотека"»
Раздел: Информатика, программирование
Количество знаков с пробелами: 18928
Количество таблиц: 19
Количество изображений: 17

Похожие работы

Скачать
57700
0
11

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

Скачать
153441
4
7

... эффективности программных средств вычислительной техники”:М: МИФИ, 1990. - 67с. Приложение 1 “Техническое задание на разработку автоматизированной информационной системы учета выбывших из стационара (форма №066/у)” 1. Введение. Автоматизированная система учета выбывших из стационара (условное обозначение КАРТА) предназначена для автоматизации заполнения формы №066/у Минздрава России и генерации ...

Скачать
138680
12
12

... приведения к базовому узлу, метод удельных весов, метод учета затрат на единицу веса изделия, расчет себестоимости по статьям затрат. В данном проекте приводится расчет себестоимости разработки автоматизированной системы управления торговым предприятием. (АСУТП). АСУТП служит для ведения учета торговой деятельности в Интернет и на аукционе EBay. Из основных преимуществ перед конкурентами стоит ...

Скачать
63465
6
21

... поступления По требованию начальников Источник Предприятие Список реквизитов дата 3. Проектирование информационного обеспечения 3.1 Описание задачи Необходимо разработать автоматизированную систему для учета договоров. Нужно хранить информацию: Об основных договорах (регистрационный номер, юридический номер, контрагент, дата договора, дата договора, срок окончания, исполнитель, предмет ...

0 комментариев


Наверх