Разработка автоматизированного рабочего места библиотекаря для "Интелект центра" г. Ноябрьска
Анализ исходных данных и выбор конкретного оптимального программного инструментария для разработки автоматизированных рабочих мест. Библиотечные системы. Разработка, реализация логической схемы и алгоритма. Оценка экономической эффективности проекта.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 09.09.2013 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
- Номер (инвентарный номер) переплёта;
- Дата приобретения (поступления) конкретного переплёта;
- Номер читательского билета;
- Фамилия читателя;
- Имя читателя;
- Отчество читателя;
- Адрес читателя;
- Телефон читателя;
- Дата выдачи читателю конкретного переплёта;
- Дата возврата переплёта.
Анализ приведённых выше объектов и атрибутов позволяет выделить сущности проектируемой базы данных, приняв решение о создании реляционной базы данных, можно построить её модель.
Каждая таблица проектируемой базы данных должна содержать информацию на отдельную тему, а каждое поле таблицы - содержать сведения по теме таблицы. При разработке надо учитывать:
- Каждое поле должно быть связано с темой таблицы;
- Не рекомендуется включать в таблицу данные, которые являются результатом выражения;
- В таблице должна присутствовать вся необходимая информация;
- Информацию следует разбивать на наименьшие логические единицы.
Выделяем следующие таблицы и атрибуты:
- Создатели (Код_создателя, Создатель) - здесь хранятся сведения об людях, принимавших участие в подготовке издания (авторах, составителях, редакторах). Такое объединение допустимо, так как данные о создателях выбираются из одного домена (фамилии и имена) и исключают дублирование данных. Так как фамилия и инициалы создателя могут быть достаточно большими и будут многократно встречаться в разных изданиях, то их необходимо нумеровать и ссылаться на эти номера. Для этого вводим целочисленный атрибут Код_создателя, который будет автоматически наращиваться на единицу при добавлении нового создателя.
- Издательства (Код_издательства, Название, Город) - здесь находятся данные о названии издательства и городе, где расположено издательство. Так же вводим целочисленный атрибут Код_издания, который будет автоматически наращиваться на единицу при добавлении нового издания.
- Виды издания (Вид_издания, Название_вида) - здесь хранятся данные о названии вида издания. Так же вводим целочисленный атрибут Вид_издания, который будет автоматически наращиваться на единицу при добавлении нового названия вида издания.
- Раздел (Название_раздела, Библиотечный_код, Код_раздела, Код_родителя) - здесь хранятся данные о названии разделов, их коды по библиотечно-библиографическому классификатору и их взаимосвязи (ерархия). Так же вводим целочисленный атрибут Код_раздела, который будет автоматически наращиваться на единицу при добавлении нового раздела.
- Издание (Код_издания, Код_раздела, Заглавие, Вид_издания, Авторский_знак, Код_издательства, Год_издания, Аннотация) - здесь хранится общая информация об экземпляре и его принадлежности к разделу. Так же вводим целочисленный атрибут Код_издания, который будет автоматически наращиваться на единицу при добавлении нового издания.
- Переплёты (Номер_переплёта, Код_издания, Дата_приобретения) - здесь хранится информация о конкретном экземпляре (переплёте), такая как инвентарный номер, дата проибретения.
- Группа (Код_группы, Название_группы, Код_родителя) - здесь хранятся данные о названии групп читателей, и их взаимосвязи (ерархия). Так же вводим целочисленный атрибут Код_группы, который будет автоматически наращиваться на единицу при добавлении нового группы.
- Читатели (Номер_читателя, Код_группы, Код_фамилии, Код_имени, Код_отчества, Код_города, Код_улицы, Дом_Квартира, Номер_телефона, Дата_рождения, Дата_регистрации, Комментарий) - здесь хранится информация о читателе и его принадлежности к группе. Так же вводим целочисленный атрибут Номер_читателя, который будет автоматически наращиваться на единицу при добавлении нового читателя и будет являться номером читательского билета.
- Авторы (Код_создателя, Код_издания) - эта таблица является ассоциацией между таблицами Создатели и Издание.
- Составители (Код_создателя, Код_издания) - эта таблица является ассоциацией между таблицами Создатели и Издание.
- Редакторы (Код_создателя, Код_издания) - эта таблица является ассоциацией между таблицами Создатели и Издание.
- Выдача (Номер_переплёта, Номер_читателя, Дата_выдачи, Дата_сдачи) - эта таблица хранит ассоциации между таблицами Переплёт и Читатель.
- Фамилии (Код_фамилии, Фамилия) - здесь хранятся данные о фамилиях читателей. Так же вводим целочисленный атрибут Код_фамилии, который будет автоматически наращиваться на единицу при добавлении новой фамилии.
- Имена (Код_имени, Имя) - здесь хранятся данные об именах читателей. Так же вводим целочисленный атрибут Код_имени, который будет автоматически наращиваться на единицу при добавлении нового имени.
- Отчества (Код_отчества, Отчество) - здесь хранятся данные об отчествах читателей. Так же вводим целочисленный атрибут Код_отчества, который будет автоматически наращиваться на единицу при добавлении нового отчества.
- Города (Код_города, Город) - здесь хранятся данные о названии городов, где проживают читатели. Так же вводим целочисленный атрибут Код_города, который будет автоматически наращиваться на единицу при добавлении нового города.
- Улицы (Код_улицы, Улица) - здесь хранятся данные о названия улиц, где проживают читатели. Так же вводим целочисленный атрибут Код_улицы, который будет автоматически наращиваться на единицу при добавлении новой улицы.
Выделение этих таблиц позволяет избежать возникновения противоречий, снижает объём хранимых данных и позволяет исключить повторный ввод названий.
3.1.3 Определение связей между таблицами
После распределения данных по таблицам и определения полей, необходимо выбрать схему для связи данных в разных таблицах. Для этого нужно определить ключевые поля и связи между таблицами.
Описанные выше приемы проектирования помогают эффективно связывать данные. При создании таблиц, в каждую новую таблицу включается поле, связывающее новую и старую таблицы. Эти связующие поля называются внешними ключами. В хорошо спроектированной базе данных использование внешних ключей обеспечивает эффективность использования приложения. В процессе проектирования нужно внимательно следить за созданием внешних ключей. Заключительный этап логического проектирования базы данных заключается в определении связей между таблицами. Задаваемые при создании таблиц связи первичных ключей с внешними ключами используются для объединения данных из нескольких таблиц.
В большинстве случаев, как уже описывалось выше, таблицы связываются между собой отношением «один ко многим», гораздо реже «один к одному» и «многие ко многим». Если в базе данных существует связь между таблицами типа «многие ко многим», то необходимо создать таблицу пересечения, с помощью которой одна связь «многие ко многим» будет сведена к двум связям типа «многие к одному». В настоящей базе данных все таблицы будут связываться между собой отношением типа «многие к одному». Непосредственно для работы данного приложения необходимо связать данные из таблиц с данными о заголовках разделов и изданиями. Связь между этими таблицами будет типа «один ко многим», так как в одном разделе может содержаться множество изданий, но любое издание содержится только в одном разделе. Для связи таблицы Раздел с таблицей Издание необходимо, чтобы первичный ключ этой таблицы - Код_раздела - присутствовал в связанной с ней таблице. В таблице Издание первичным ключом является Код_издания через который производится связь с таблицами Авторы, Составители, Редакторы и Переплёты, в соотношении «один ко многим», так как у одного издания может быть несколько авторов, составителей и редакторов, а так же в библиотеке может храниться несколько экземпляров данного издания. В свою очередь у таблицы Создатели тоже есть первичный ключ Код_создателя через который определяем связь с таблицами Авторы, Составители и Редакторы, в отношении «один ко многим». Таблица Вид_издания связана с таблицей Издание по первичному ключу Вид_издания в соотношении «один ко многим, так же таблица Издательства связана с таблицей Издание по первичному ключу Код_издательства в отношении «один ко многим». Таблица Переплёты имеет первичный ключ Номер_переплёта по которому связана с таблицей Выдача в отношении «один ко многим».
Аналогично таблица Группа будет связываться с таблицей Читатель отношением типа «один ко многим» через первичный ключ Код_группы, потому как в любой группе может содержаться множество читателей, но каждый читатель содержится в одной группе. Таблица Города, имеющая первичный ключ Код_города связана с таблицей Читатель в отношении «один ко многим», аналогично связаны таблицы Улицы, Фамилии, Имена и Отчества, у которых первичными ключами являются Код_улицы, Код_Фамилии, Код_имени и Код_отчества соответственно. Так же таблица Читатель, имеющая первичный ключ Номер_читателя, связана с таблицей Выдача в отношении «один ко многим».
3.2 Разработка таблиц
3.2.1 Построение таблиц
После разработки проекта приложения можно приступать к непосредственному его созданию.
В Microsoft VFP существует три способа создания таблицы:
- Использование мастера баз данных для создания всех таблиц входящих в базу данных, содержащей все требуемые представления, индексы, хранимые процедуры и связи за одну операцию. Мастер баз данных создает новую базу данных, его нельзя использовать для добавления новых таблиц, индексов, представлений, связей и хранимых процедур в уже существующую базу данных;
- Использование мастера таблиц позволяет выбрать поля для данной таблицы из множества определенных ранее таблиц, таких как деловые контакты, список личного имущества или указать произвольную таблицу. Добавить в существующую базу данных, назначить типы полей, индексы и связи;
- Определение всех параметров таблицы в режиме конструктора.
Независимо от метода, примененного для создания таблицы, всегда имеется возможность использовать режим конструктора для дальнейшего изменения макета таблицы, например, для добавления новых полей, определения типов, индексов и связей.
В дальнейшем, используя, конструктор базы данных создаём проекты таблиц, указываем типы данных и свойства полей, определяем индексы и устанавливаем связи между таблицами, назначаем методы контроля целостности.
В верхней части дизайнера таблиц расположены столбцы, в которых вводится название поля, тип данных, размер поля, наличие простого индекса, направление индексации (по возрастанию, по убыванию), возможность использования значения NULL, в нижней части окна вводятся формат поля, формат маски ввода, заголовок поля, процедуры для проверки вводимых значений, сообщения, значение по умолчанию и комментарий для поля.
Рисунок 3.2 - Окно конструктора таблиц
Для оптимизации работы с таблицами существует несколько возможностей:
- Проектировать таблицы, в которых не содержится избыточных данных;
- Выбирать наиболее подходящий тип данных для поля - это приведёт к уменьшению размера таблицы и увеличит скорость выполнения операций. При описании таблицы следует задавать для него тип данных наименьшего размера, позволяющий хранить нужные данные.
Microsoft Visual FoxPro поддерживает тринадцать типов данных:
Таблица 3.2.1 - Типы данных Microsoft Visual FoxPro
Тип данных |
Использование |
Размер |
|
Character |
Алфавитно-цифровые данные |
До 254 байт |
|
Currency |
Денежные суммы |
8 байт |
|
Numeric/ Float |
Числовые данные |
До 20 байт |
|
Date |
Дата |
8 байт |
|
Data/Time |
Дата-время |
8 байт |
|
Double |
Числа двойной точности с плавающей точкой (18 разрядов) |
8 байт |
|
Integer |
Целые числа |
4 байта |
|
Logical |
Логические данные (.T./.F.) |
1 байт |
|
Memo |
Алфавитно-числовые данные |
Ограничено свободным местом на диске |
|
General |
Графические изображения, диаграммы, OLE объекты |
Ограничено свободным местом на диске |
|
Character (binary) |
Алфавитно-цифровые данные с символами ASCII от 0 до 255 |
Ограничено свободным местом на диске |
|
Memo (binary) |
Алфавитно-цифровые данные с символами ASCII от 0 до 255 |
Ограничено свободным местом на диске |
3.2.2 Назначение типов данных для полей таблиц
Исходя из выше описанной модели, определим типы полей для таблиц.
Для таблицы Создатели:
- Код_создателя - тип данных Integer;
- Создатель - тип данных Character, размер порядка 50 символов.
- Для таблицы Издательства:
- Код_издательства - тип данных Integer;
- Название - тип Character, размером 30 символов;
- Город - тип Character, размером 20 символов.
Для таблицы Виды издания:
- Вид_издания - тип данных Integer;
- Название_вида - тип Character, размером 30 символов.
Для таблицы Раздел:
- Название_раздела - тип Character, размером 100 символов;
- Библиотечный_код - тип Character, размером 20 символов;
- Код_раздела - тип данных Integer;
- Код_родителя - тип данных Integer.
Для таблицы Издание:
- Код_издания - тип данных Integer;
- Код_раздела - тип данных Integer;
- Заглавие - тип Character, размером 30 символов;
- Вид_издания - тип данных Integer;
- Код_издательства - тип данных Integer;
- Авторский_знак - тип Character, размером 10 символов;
- Год_издания - тип Numeric, размером 4 символов;
- Аннотация - тип Memo.
Для таблицы Переплёты:
- Номер_переплёта - тип данных Integer;
- Код_издания - тип данных Integer;
- Дата_приобретения - тип Date.
Для Таблицы Группа:
- Код_группы - тип данных Integer;
- Название_группы - тип Character, размером 30 символов;
- Код_родителя - тип данных Integer.
Для таблицы Читатели:
- Номер_читателя - тип данных Integer;
- Код_группы - тип данных Integer;
- Код_фамилии - тип данных Integer;
- Код_имени - тип данных Integer;
- Код_отчества - тип данных Integer;
- Код_города - тип данных Integer;
- Код_улицы - тип данных Integer;
- Дом_Квартира - тип Character, размером 20 символов;
- Номер_телефона - тип Character, размером 15 символов;
- Дата_рождения - тип Date;
- Дата_регистрации - тип Date;
- Комментарий - тип Memo.
Для таблицы Авторы:
- Код_создателя - тип данных Integer.
- Код_издания - тип данных Integer.
- Для таблицы Составители:
- Код_создателя - тип данных Integer.
- Код_издания - тип данных Integer.
Для таблицы Редакторы:
- Код_создателя - тип данных Integer.
- Код_издания - тип данных Integer.
- Для таблицы Выдача:
- Номер_переплёта - тип данных Integer.
- Номер_читателя - тип данных Integer.
- Дата_выдачи - тип Date;
- Дата_сдачи - тип Date.
Для таблицы Фамилии:
- Код_фамилии - тип данных Integer.
- Фамилия - тип Character, размером 30 символов.
Для таблицы Имена:
- Код_имени - тип данных Integer.
- Имя - тип Character, размером 30 символов.
- Для таблицы Отчества:
- Код_отчества - тип данных Integer.
- Отчество - тип Character, размером 30 символов.
Для таблицы Города:
- Код_города - тип данных Integer.
- Город - тип Character, размером 30 символов.
Для Таблицы Улицы:
- Код_улицы - тип данных Integer.
- Улица - тип Character, размером 30 символов.
На основе выше изложенного создадим следующую структуру таблиц для использования при разработке АРМ.
Раздел (Issue.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
размер |
|||||
1 |
Id |
Integer |
4 |
Уникальный номер раздела |
|
2 |
Bbk |
Character |
20 |
Номер по ББК |
|
3 |
Name |
Character |
100 |
Название раздела |
|
4 |
Parent |
Integer |
4 |
Номер вышестоящего раздела |
Издания (Books.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
размер |
|||||
1 |
IssId |
Integer |
4 |
Номер раздела (Issue.Id) |
|
2 |
BookId |
Integer |
4 |
Уникальный номер книги |
|
3 |
Name |
Character |
30 |
Название книги |
|
4 |
BookType |
Integer |
4 |
Код вида издания |
|
5 |
PublId |
Integer |
4 |
Номер издательства (Publisher.PublId) |
|
6 |
PublYear |
Numeric |
4 |
Год издания |
|
7 |
AutorId |
Character |
10 |
Авторский знак |
|
6 |
Date |
Date |
8 |
Дата поступления |
|
7 |
Comment |
Memo |
4 |
Аннотация |
Создатели (Creators.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
размер |
|||||
1 |
NameId |
Integer |
4 |
Уникальный номер значения |
|
2 |
Name |
Character |
50 |
Значение |
Виды изданий (TypePubl.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
размер |
|||||
1 |
NameId |
Integer |
4 |
Уникальный номер значения |
|
2 |
Name |
Character |
30 |
Значение |
Авторы (Autor.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
Размер |
|||||
1 |
UniqId |
Integer |
4 |
Уникальный номер записи |
|
2 |
BookId |
Integer |
4 |
Номер книги (Books.BookId) |
|
3 |
AutorId |
Integer |
4 |
Номер автора |
Составители (Compilers.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
Размер |
|||||
1 |
CreatorId |
Integer |
4 |
Код создателя |
|
2 |
BookId |
Integer |
4 |
Код издания |
|
3 |
UniqId |
Integer |
4 |
Уникальный ключ |
Редакторы (Editors.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
Размер |
|||||
1 |
CreatorId |
Integer |
4 |
Код создателя |
|
2 |
BookId |
Integer |
4 |
Код издания |
|
3 |
UniqId |
Integer |
4 |
Уникальный ключ |
Издательства (Publisher.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
Размер |
|||||
1 |
PublId |
Integer |
4 |
Уникальный номер издательства |
|
2 |
PublName |
Character |
30 |
Название издательства |
|
3 |
PublCity |
Character |
20 |
Город издательства |
Переплёты (BookNum.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
Размер |
|||||
1 |
BookId |
Integer |
4 |
Номер книги (Books.BookId) |
|
2 |
Number |
Integer |
4 |
Инвентарный номер книги |
|
3 |
Date |
Date |
8 |
Дата поступления экземпляра |
Группы (Groups.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
Размер |
|||||
1 |
Id |
Integer |
4 |
Уникальный номер группы |
|
2 |
Name |
Character |
30 |
Название группы |
|
3 |
Parent |
Integer |
4 |
Номер вышестоящего раздела |
Читатели (Abonents.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
размер |
|||||
1 |
GrId |
Integer |
4 |
Номер группы (Groups.Id) |
|
2 |
AbonId |
Integer |
4 |
Уникальный номер абонента |
|
3 |
Name1 |
Integer |
4 |
Номер фамилии из словаря |
|
4 |
Name2 |
Integer |
4 |
Номер имени из словаря |
|
5 |
Name3 |
Integer |
4 |
Номер отчества из словаря |
|
6 |
CityId |
Integer |
4 |
Номер города из словаря |
|
7 |
StreetId |
Integer |
4 |
Номер улицы из словаря |
|
8 |
House_ Fl |
Character |
20 |
Номер дома и номер квартиры |
|
9 |
Telefon |
Character |
15 |
Номер телефона |
|
10 |
Date1 |
Date |
8 |
Дата рождения |
|
11 |
Date2 |
Date |
8 |
Дата регистрации |
|
12 |
Comment |
Memo |
4 |
Комментарии к карточке абонента |
Выдача (BookUse.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
Размер |
|||||
1 |
UniqId |
Integer |
4 |
Уникальный номер записи |
|
2 |
AbonId |
Integer |
4 |
Номер абонента (Abonents.AbonId) |
|
3 |
Number |
Integer |
4 |
Инвентарный номер книги (BookNum.Number) |
|
4 |
Date1 |
Date |
8 |
Дата выдачи книги |
|
5 |
Date2 |
Date |
8 |
Дата сдачи книги |
Фамилии (Name1.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
размер |
|||||
1 |
NameId |
Integer |
4 |
Уникальный номер значения |
|
2 |
Name |
Character |
30 |
Значение |
Имена (Name2.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
размер |
|||||
1 |
NameId |
Integer |
4 |
Уникальный номер значения |
|
2 |
Name |
Character |
30 |
Значение |
Отчества (Name3.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
размер |
|||||
1 |
NameId |
Integer |
4 |
Уникальный номер значения |
|
2 |
Name |
Character |
30 |
Значение |
Города (City.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
размер |
|||||
1 |
CityId |
Integer |
4 |
Уникальный номер значения |
|
2 |
City |
Character |
30 |
Значение |
Улицы (Streets.dbf) |
|||||
№ |
Название |
Тип |
Значение |
||
Размер |
|||||
1 |
StreetId |
Integer |
4 |
Уникальный номер значения |
|
2 |
Street |
Character |
30 |
Значение |
3.2.3 Создание индексов и связей между таблицами
Чем больше хранится данных в таблицах, тем больше индексов необходимо для эффективного поиска данных. Индекс - это внутренняя таблица, состоящая из двух столбцов: значение выражения, в котором содержатся все поля, включенные в индекс, и местоположение каждой записи таблицы с данным значением индексного выражения. Для создания индексов по ключевым полям, необходимо установить тип индекса Primary. Для внешних ключей используется тип Regular. Определив необходимые таблицы и индексы, создадим связи таблиц.
Как уже было описано выше, все таблицы в базе данных будут связаны между собой отношением «один ко многим». Для установления связи между таблицами следует соединить первичный ключ таблицы, находящийся на стороне отношения «один» с соответствующим ему внешним ключом таблицы на стороне отношения «многие».
После установки связи, можно определить критерии обеспечения целостности, для любого действия в главной таблице которое изменяет ключевое значение, таких как, добавление, удаление и изменения.
Для изменения и удаления записей возможно введения одного из следующих правил:
- Cascade - замена или удаление всех записей в подчинённой таблице, удовлетворяющих старому ключевому значению главной таблице;
- Restrict - проверяет наличие в подчинённой таблице значений удовлетворяющих текущему значению главного ключа, и при их наличии запрещает изменения или удаление;
- Ignore - игнорирует ссылочную целостность и позволяет изменять или удалять значения главного ключа;
- Для добавления записей можно определить только два правила проверки:
- Restrict - запрещает добавление, если в главной таблице отсутствует запись с подходящим ключевым значением;
- Ignore - не выполняет никаких проверок.
Связи таблиц показаны на рисунке 3.3.
Рисунок 3.3 - Схема связей таблиц
4. Разработка и реализация алгоритма
4.1 Разработка алгоритма
Назначение любой базы заключается в получении пользователем базы необходимой ему информации. Кроме того, пользователю должны быть предоставлены возможности пополнения базы данных вновь возникшей информацией и её коррекции в случае изменения тех или иных компонент, хранящихся в базе данных.
Указанные моменты определяют технологический цикл кругооборота информации между пользователем и базой данных, а также основные направления прохождения информации внутри самой базы, иными словами, - взаимодействие отдельных компонент, составляющих в целом базу данных.
Сказанное может быть проиллюстрировано схемой информационных потоков БД, представленной на рисунке 4.1. От пользователя поступает некоторое множество заданий на выполнение тех или иных информационных действий. Входные формы воспринимают эти задания и инициализируют соответствующие запросы, которые в свою очередь осуществляют поиск необходимой информации в таблицах, где находятся данные, позволяющие выполнить заданные действия. Выбранная информация с помощью исполнительных частей запросов пересылается в выходные формы и представляется пользователю для её оценки и принятия решения.
Обобщённо алгоритм, реализующий данную технологическую схему обработки информации, представляет собой следующую совокупность действий:
- Выбор соответствующей выходной формы (Форма i, i=l).
- Заполнение полей формы (Форма i, i=l).
- Отображение информации на видеоконтрольном устройстве.
- Если необходима твёрдая копия полученных данных, то ввод исходных данных.
- Анализ исходных данных (Форма i, i=l, N).
- Если исходные данные корректны, то переход к анализу исходных данных, в противном случае - выдача диагностического сообщения и переход в начало.
- Передача данных соответствующему запросу (Запрос ij, i=l, N; j=l).
-
Рисунок 4.1 - Схема информационных потоков АРМ
- Анализ параметров и условий выборки информации.
- Формирование списка таблиц для поиска информации.
- Поиск информации по выбранному списку таблиц в соответствии со значениями параметров и условиями выборки.
- Если информация, удовлетворяющая заданным параметрам и условиям выборки, отсутствует, то выдаётся соответствующее диагностическое сообщение и переход в начало. При нахождении необходимой информации, она передаётся исполнительным частям запросов (Запрос ij, i=l ,N; j=l) и переход к пункту формирование списка таблиц для поиска информации.
- Производится её печать, в противном случае переход на следующий уровень.
- Выяснение необходимости завершить работу с базой данных. Если «Да», то переход на следующий пункт, если «Нет», то переход на начало.
- Конец работы.
Здесь и далее обозначения имеют следующий смысл:
а) N - мощность (количество) множества входных форм;
б) К - мощности множеств запросов, соответствующих входным формам (Форма i, i=l, N);
в) мощность множества таблиц;
г) мощность множества выходных форм.
Данный алгоритм может быть выражен блок-схемой, представленной на рисунке 4.2. Такое представление даёт возможность более наглядного понимания процесса прохождения информации.
АРМ функционирует в следующих режимах:
- Ввод данных в базу данных АРМ.
- Просмотр информации из базы данных АРМ.
- Коррекция информации в базе данных АРМ.
- Формирование выходных документов.
Выбор режимов работы осуществляется пользователем после инициализации программных модулей. Следовательно, структурная схема будет иметь вид, показанный на рисунке 4.3.
Рисунок 4.2 - Блок-схема алгоритма, реализующего технологическую схему обработки информации
Рисунок 4.3 - Структурно-функциональная схема АРМ
В качестве примера рассмотрим блок-схему алгоритма функционирования управляющего модуля. Блок-схема приведена на рисунке 4.4.
Рисунок 4.4 - Блок-схема функционирования алгоритма управляющего модуля
4.2 Реализация алгоритма
4.2.1 Модуль идентификации и аутентификации
При доступе в программу необходимо производить идентификацию пользователя и его прав для доступа к функциям программы это диктуется тем, что доступ к программе будут иметь не только обслуживающий персонал библиотеки, но и читатели. Форма демонстрирующая этот процесс показана на рисунке 4.5.
Рисунок 4.5 - Форма ввода модуля идентификации и аутентификации
После ввода логина и пароля пользователя производится проверка прав доступа, в случае наличия прав только на чтение выводится сообщение показанное на рисунке 4.6, в случае отсутствия прав доступа к программе выводится сообщение показанное на рис. 4.7.
Рисунок 4.6 - Доступ на чтение
Рисунок 4.7 - Доступ запрещен
При наличии прав доступа только на чтение некоторые функции будут не доступны.
Создание новых пользователей и назначение прав производится в модуле администратора.
4.2.2 Модуль картотеки фондов
На рисунке 4.8 показана структурная схема модуля для работы с картотекой фондов. Далее рассмотрим подробнее данную структурную схему.
Схема отображает связи функций и возможные переходы между функциями, отображает входные и выходные формы, позволяет оценить возможности данного модуля.
Рисунок 4.8 - Структурная схема модуля картотеки фондов
4.2.3.1 Главная форма
На рисунке 4.9 представлена главная форма для работы с картотекой фондов.
Рисунок 4.9 - Главная форма модуля картотеки фондов
Слева располагается дерево разделов, в котором отображаются названия разделов и их нумерация по ББК. Справа находится таблица, содержащая список литературы для выбранного раздела, в ней отображаются следующие данные:
- Автор издания.
- Название издания.
- Издательство.
- Год издания.
- Город издателя.
- Количество экземпляров.
- Количество выданных экземпляров.
- Дата поступления.
Вверху справа располагается меню (набор кнопок) для выбора функций. Предусмотрены следующие функции:
- Просмотр библиографической карточки.
- Поиск по выбранным значениям раздела или карточки.
- Сортировка разделов и карточек.
- Наложение фильтра на выбранный раздел.
- Просмотр новых поступлений.
- Настройка отображаемых полей формы.
- Добавление новых разделов и карточек изданий.
- Редактирование добавленных ранее разделов и карточек.
- Печать библиографической карточки.
Функции для добавления и изменения информации в картотеке доступны только для авторизированного персонала библиотеки.
В нижней части формы представлена строка статуса, в которой слева отображается общее количество разделов и общее количество карточек изданий, а справа количество подразделов в выбранном разделе, общее количество карточек в этих подразделах, количество карточек в текущем разделе, количество выбранных карточек изданий, а также здесь расположен индикатор, в котором при длительных операциях производится отображение хода процесса.
Для главной формы картотеки фондов рассмотрим получение списка литературы, для этого используются SQL запрос, который будет иметь вид:
SELECT Books.bookid AS BookId,
Books.name AS BookName,
Books.booktype AS BookType,
Typepubl.name AS TypeName,
Books.publyear AS PublYear,
Creators.name AS AutorName,
Publisher.publname AS PublName,
Publisher.publcity AS PublCity,
Count(`BookNum.Num') AS Count,
Count(`BookUse.Num') AS UseCount,
Books.comment AS Comment
FROM library!Books INNER JOIN library!Autor
INNER JOIN library!Creators;
INNER JOIN library!BookNum;
INNER JOIN library!BookUse;
INNER JOIN library!Books;
INNER JOIN library!TypePubl
ON Typepubl.nameid = Books.booktype
ON Publisher.publid = Books.publid
ON Booknum.number = Bookuse.number
ON Books.bookid = Booknum.bookid
ON Creators.nameid = Autor.autorid
ON Books.bookid = Autor.bookid;
WHERE Books.issid = lnissid AND
EMPTY(BookUse.Date2);
GROUP BY Books.BookId
INTO CURSOR vwBooks
В качестве фильтрующего параметра для таблицы изданий Books используется уникальный код раздела из таблицы Issue, а из таблицы выдачи BookUse выбираются записи, для которых не заполнена дата возврата.
4.2.3.2 Просмотр
На рисунке 4.10 представлена форма развёрнутого просмотра со следующей информацией:
- Название раздела;
- Номер раздела по ББК;
- Автор, составитель и редактор (или их списки);
- Название книги;
- Название издательства;
- Город издательства;
- Вид издания;
- Год издания;
- Количество экземпляров;
- Количество выданных экземпляров;
- Краткая аннотация.
Рисунок 4.10 - Просмотр карточки издания
Рассмотрим подробнее запрос для получения списка авторов, запрос будет иметь следующий вид:
SELECT Creators.name,
Autor.autorid;
FROM library!Creators INNER JOIN library!Autor
ON Creators.nameid = Autor.autorid;
WHERE Autor.bookid = lnbookid
INTO CURSOR vwAutor
В качестве фильтрующего параметра используется уникальный код книги из таблицы Books.
Для данной формы предусмотрены дополнительные функции:
- Просмотр выданных экземпляров;
- Просмотр инвентарных номеров книг.
Данные функции доступны только для авторизированного персонала библиотеки.
На форме просмотра выданных экземпляров, которая показана на рисунке 4.11 доступна информация о:
- группе;
- фамилии;
- имени;
- дате выдачи;
- количестве выданных экземпляров.
Рисунок 4.11 - Просмотр выданных экземпляров
Показываются только те экземпляры, которые в текущий момент являются выданными абоненту.
Предусмотрены следующие функциональные возможности:
- перехода на карточку абонента;
- группу абонентов;
- просмотр инвентарных номеров выданных книг;
- изменение порядка сортировки отображаемых данных.
Данные для формы получаем SQL-запросом следующего вида:
SELECT Groups.name AS GrpName,
Name1.name AS Fam,
Name2.name AS Name,
Name3.name AS Otch,
BookUse.date1 AS Date,
COUNT('BookUse.Num') AS Count,
Abonents.abonid AS AbonId,
BookNum.bookid AS BookId
FROM library!BookNum INNER JOIN library!BookUse
INNER JOIN library!Abonents
INNER JOIN library!Groups
INNER JOIN library!Name1
INNER JOIN library!Name2
INNER JOIN library!Name3
ON Name1.nameid = Abonents.name3
ON Name2.nameid = Abonents.name2
ON Name3.nameid = Abonents.name1
ON Groups.id = Abonents.grid;
ON Abonents.abonid = Bookuse.abonid;
ON Booknum.number = Bookuse.number;
WHERE Booknum.bookid = lnBookId;
AND EMPTY(Bookuse.date2);
GROUP BY Abonents.abonid;
INTO CURSOR vwUseBook
В качестве элементов фильтра используется уникальный код книги из таблицы Books и значение поля Date2 таблицы BookUse, которое должно быть не заполненным, так как определяет дату возврата книги в библиотеку.
На форме просмотра инвентарных номеров, которая представлена на рисунке 4.12, доступна информация:
- список инвентарных номеров;
- дате поступления экземпляра книги.
Для получения данных используем SQL-запрос:
SELECT Booknum.number AS InvNum,;
Booknum.date AS Date;
FROM library!BookNum;
WHERE Booknum.bookid = lnBookId;
INTO CURSOR vwInvNum
Рисунок 4.12 - Просмотр инвентарных номеров
В качестве элемента фильтра применяется уникальный код книги из таблицы Books. Для выбранных данных можно изменять порядок отображения, установив активный столбец в таблице.
4.2.3.3 Поиск
На рисунке 4.13 показана форма для ввода параметров поиска. Поиск по разделу осуществляется по следующим значениям:
- Номеру раздела по ББК.
- Названию раздела.
Поиск по карточкам фондов осуществляется по:
- Автору.
- Названию книги.
- Году издания.
- Количеству единиц хранения.
- Количеству выданных экземпляров.
- Дате добавления в картотеку.
Поиск может осуществляется по любой комбинации параметров. В форме просмотра результатов поиска, показанной на рисунке, первыми отображаются данные наиболее соответствующие введённым значениям, те которые удовлетворяют логическому условию И, затем все которые удовлетворяют логическому условию ИЛИ.
Рисунок 4.13 - Поиск по параметру
Рисунок 4.14 - Просмотр результатов поиска
В форме просмотра результатов поиска, показанной на рисунке 4.14, отображается следующая информация:
- Номер раздела по ББК.
- Название раздела.
- Автор издания.
- Название издания.
- Издательство.
- Год издания.
- Количество переплётов в наличии.
- Дата добавления информации в картотеку.
Для формы просмотра результатов поиска предусмотрены следующие функции:
- Переход на карточку издания.
- Переход к разделу, к которому относится карточка издания.
- Печать библиографической карточки издания.
- Изменение порядка сортировки отображаемых данных.
4.2.3.4 Сортировка
На рисунке 4.15 показана форма для задания порядка отображения записей в дереве разделов и списке литературы.
Рисунок 4.15 - Выбор параметра сортировки
Для задания порядка отображения в дереве разделов доступны следующие параметры:
- Номер раздела по ББК.
- Название раздела.
Для списка разделов:
- Автор.
- Составитель.
- Редактор.
- Название издания.
- Издательство.
- Год издания.
- Количество единиц хранения.
- Количество выданных экземпляров.
- Дата добавления в каталог.
Так же форма предоставляет возможность просмотра текущих установок. После выбора параметра для сортировки, для списка литературы, он отображается в заголовке соответствующего столбца таблицы изменением шрифта надписи на курсив.
4.2.3.5 Фильтр
На рисунке 4.16 показана форма для задания условий фильтрации в списке литературы выбранного раздела.
Рисунок 4.16 - Задание фильтра для раздела
Фильтр может задаваться по следующим параметрам:
- Автору.
- Составителю.
- Редактору.
- Названию издания.
- Издательству.
- Диапазону годов издания.
- Диапазону единиц хранения.
- Диапазону выданных экземпляров.
- Диапазону дат занесения в картотеку.
Фильтрация может производиться по любой совокупности выбранных параметров. Отмеченные, но не заполненные параметры при установке фильтра не учитываются. Выбранные параметры хранятся как массив главной формы, а установка фильтра производиться командой SET FILTER TO [список параметров].
Для параметров “Автор”, ”Составитель”, “Редактор”, “Название издания”, “Издательство” выбор значений может производиться как определением списка из набора, в котором содержатся только уникальные значения полученные на основе выборок из результата работы запроса показанного в примере 4.1, так и на основе ручного ввода.
4.2.3.6 Новости
При выборе пункта “Новости” главного окна появляется всплывающее меню для выбора типа новостей, таких как “Новости поступления” и “Новости мероприятий”. Новости поступления отображаются в форме показанной на рисунке 4.17.
Рисунок 4.17 - Новости поступления
Здесь отображается информация о:
- Номере раздела по ББК.
- Название раздела.
- Автор.
- Название книги.
- Издательство.
- Год издания.
- Количество экземпляров в наличии.
- Дата занесения в картотеку.
При загрузке в форме показываются самые последние поступления по всем разделам, впоследствии настройки по умолчанию можно изменить, выбрав просмотр поступлений за период или установив желаемый список разделов.
Так же в форме предусмотрены функции:
- Перехода на карточку книги.
- Переход на раздел в котором содержится карточка.
- Печати карточки книги.
- изменение порядка сортировки отображаемых данных.
Отбор информации для формы осуществляется SQL-запросом следующего вида:
SELECT Issue.bbk AS BBK,;
Issue.name AS IssName,;
Books.name AS BookName,;
Creators.name AS AutorName,;
Publisher.publname AS PublName,;
Publisher.publcity AS PublCity,;
Books.publyear AS PublYear,;
COUNT(`Booknum')-COUNT(`Bookuse') AS Count,;
FROM library!Issue INNER JOIN library!Books;
INNER JOIN library!Autor;
INNER JOIN library!Creators;
INNER JOIN library!BookNum;
INNER JOIN library!BookUse;
INNER JOIN library!Books;
ON Publisher.publid = Books.publid;
ON Booknum.number = Bookuse.number;
ON Books.bookid = Booknum.bookid;
ON Creators.nameid = Autor.autorid;
ON Books.bookid = Autor.bookid;
ON Issue.id = Books.issid;
WHERE Books.date => ldDate;
GROUP BY Books.BookId;
INTO CURSOR vwNews
В качестве фильтрующего параметра используется значение даты.
4.2.3.7 Настройка
На рисунке 4.18 показана форма для настройки выводимой информации в дереве разделов и списке литературы.
Рисунок 4.18 - Настройка отображаемых атрубутов
Так же в форме отображается текущая настройка выводимой информации. Для настройки отображения в дереве разделов доступны следующие пункты:
- Номер раздела по ББК.
- Название раздела.
Для списка литературы:
- Автор.
- Название книги.
- Издательство.
- Год издания.
- Город издательства.
- Количество экземпляров хранения.
- Количество выданных экземпляров.
- Дата занесения в картотеку.
4.2.3.8 Добавление
При выборе опции “Добавление” главной формы, появляется всплывающее меню для выбора типа добавления: “Добавить раздел”, “Добавить карточку”.
При добавлении раздела информация о номере раздела по ББК и название раздела заносится в форме показанной на рисунке 4.19. Раздел может быть добавлен в любой узел дерева разделов, для этого дерево отображается в верху формы, по умолчанию добавление происходит в текущий раздел, выбранный в главном окне картотеки.
Рисунок 4.19 - Добавление нового раздела
Добавление производится командой SQL-Insert следующего вида:
INSERT INTO Issue (Id, Bbk, Name, Parent) VALUES (lnId, lcBbk, lcName, lnParent), где
lnId - уникальный номер нового раздела, вычисляется как RECCOUNT(`Issue')+1;
lcBbk- номер нового раздела по ББК;
lcName-Название нового раздела;
lnParent-Номер узла дерева разделов в который производиться добавление.
Добавление новой карточки производится в форме показанной на рисунке 4.20.
Рисунок 4.20 - Добавление новой карточки издания
Для добавления новой карточки необходимо ввести следующую информацию:
- Авторский знак.
- Автора или список авторов.
- Составителя или список составителей.
- Редактора или список редакторов.
- Вид издания.
- Год издания
- Название издания.
- Издательство.
- Город издательства.
- Перечень инвентарных номеров.
- Краткую аннотацию.
Для ввода автора (списка авторов), составителя (списка составителей), редактора (списка редакторов) и издательства используются списки полученные на основе таблиц Creators и Publisher соответственно.
Добавление производится командами SQL-Insert следующего вида:
INSERT INTO Books (IssId, BookId, Name, PublId, PublYear, Date) VALUES (lnIssId, lnBookId, lcName, lnPublId, lnPublYear, DATE())
INSERT INTO BookAutor (UniqId, BookId, AutorId) VALUES (lnUniqId, lnBookId, lnAutorId)
INSERT INTO BookNum (BookId, Number) VALUES (lnBookId, lnNumber)
4.2.3.9 Изменение
При выборе опции “Изменение” главной формы, появляется всплывающее меню для выбора типа изменения: “Изменить раздел”, “Изменить карточку”. Формы для изменения информации о разделе и о карточки идентичны формам представленным в разделе “Добавить”. Кроме изменения данных о авторах, названиях, издательствах, инвентарных номерах и аннотациях, возможно изменение расположения в разделах, которое производится выбором нового узла из дерева разделов. При этом если изменение расположения в дереве производится для раздела, все карточки находящиеся в данном разделе автоматически переносятся вместе с разделом.
Для изменения значений в таблице Issue можно применить команду SQL-Update имеющей вид:
UPDATE Issue;
SET bbk=lnbbk,;
name=lnName,;
parent=lnParent;
WHERE id=lnId
Где в качестве элемента фильтра применяется уникальный номер группы из таблицы Issue.
Для изменения значений в таблице Books необходимо применить несколько аналогичных функций.
4.2.3.10 Печать
При выборе этой функции открывается системное окно выбора принтера, для задания параметров печати, после выбора параметров осуществляется печать библиографической карточки издания.
4.2.4 Модуль картотеки читателей
На рисунке 4.22 показана структурная схема модуля для работы с картотекой читателей. Далее рассмотрим подробнее данную структурную схему.
Схема отображает связи функций и возможные переходы между функциями, отображает входные и выходные формы, позволяет оценить возможности данного структурного модуля.
4.2.4.1 Главная форма
На рисунке 4.21 представлена главная форма для работы с картотекой читателей.
Рисунок 4.21 - Главная форма модуля картотеки читателей
Рисунок 4.22 - Структурная схема модуля картотеки читателей
Слева располагается дерево групп, в котором отображаются групп читателей. Справа находится таблица, содержащая список читателей для выбранной группы, в ней отображаются следующие данные:
- Фамилия, имя и отчество читателя.
- Количество изданий находящихся на руках.
- Количество изданий с просроченным сроком сдачи.
- Дата регистрации читателя.
- Дата последнего посещения.
- Дата рождения читателя.
- Телефон читателя.
Вверху справа располагается меню (набор кнопок) для выбора функций, предусмотрены следующие функции:
- Просмотр карточки читателя с возможностью выдачи и сдачи изданий.
- Поиск по выбранным значениям.
- Сортировка групп и карточек читателей.
- Наложение фильтра на выбранную группу.
- Настройка отображаемых полей формы.
- Добавление новых групп и карточек читателей.
- Редактирование добавленных ранее групп и карточек читателей.
- Формирование, просмотр и печать разнообразной статистики.
- Печать карточки читателя.
В нижней части формы представлена строка статуса, в которой слева отображается общ...
Подобные документы
Развитие автоматизированных информационных технологий. Реализация автоматизированного рабочего места, позволяющего осуществить учет продукции на складе. Концептуальная и логическая модели данных. Оценка экономической эффективности информационной системы.
дипломная работа [1,9 M], добавлен 30.11.2010Разработка информационно-программного комплекса для использования на IBM-совместимых ПК в качестве автоматизированного рабочего места обработки информации. Реализация базы данных в СУБД IBexpert. Характеристики разработанной информационной системы.
курсовая работа [1,3 M], добавлен 13.08.2012Разработка и реализация автоматизированного рабочего места для менеджера по продажам компьютерной техники. Требования к функциональным характеристика программного изделия. Стадии и этапы разработки. Эксплуатационная документация, руководство оператора.
курсовая работа [686,9 K], добавлен 19.05.2014Современное состояние баз данных, их оценка и определение тенденций развития. Технологические особенности их разработки. Проектирование информационно-логической модели автоматизированного рабочего места служащего почты, разработка программы и базы данных.
дипломная работа [528,6 K], добавлен 06.03.2014Способы и методы разработки удаленного автоматизированного рабочего места специалиста службы социальной защиты района Северное Тушино г. Москвы. Теория реляционных баз данных. Этапы жизненного цикла проекта, обоснование его экономической эффективности.
дипломная работа [644,5 K], добавлен 19.02.2013Технико-экономическое описание предметной области и разработка программного проекта по автоматизации рабочего места менеджера по клининговым услугам. Разработка этапов внедрения программного продукта и расчет экономической эффективности его внедрения.
дипломная работа [2,1 M], добавлен 12.04.2014Особенности создания автоматизированного рабочего места (АРМ). Разработка модулей электронных учебников и конспектов. Внедрение электронного документооборота. Схема основных образовательных процессов. Экономическое обоснование эффективности проекта.
дипломная работа [1,6 M], добавлен 03.11.2014Задачи, функция и структура выбранной организации. Выявление и оценка информационных потоков. Разработка автоматизированного рабочего места сотрудника с использованием Microsoft Access. Описание концептуальной и логической моделей объекта, тестирование.
дипломная работа [7,8 M], добавлен 21.01.2012Определение общих требований к организации автоматизированного рабочего места. Создание модели автоматизированного рабочего места менеджера фирмы "Информстиль". Разработка базы данных и описание алгоритма программы по учету продаж вычислительной техники.
дипломная работа [2,9 M], добавлен 03.07.2015Анализ предметной области и описание основных функциональных подсистем автоматизированного рабочего места администратора кинотеатра "Мир". Разработка инфологической модели базы данных и заполнение форм данных. Обеспечение безопасности и доступа к данным.
курсовая работа [4,4 M], добавлен 27.12.2014Обоснование необходимости автоматизации рабочего места. Выбор среды программирования. Этапы разработки программного продукта. База данных и таблицы. Расчет возможного роста производительности труда от внедрения автоматизированной информационной системы.
дипломная работа [661,4 K], добавлен 17.07.2016Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Управление процессом поверки средств измерений. Требования к информационной системе, защите информации. Функциональные возможности и схемы диалога. Принципы и результаты тестирования программной системы. Обоснование экономической эффективности проекта.
дипломная работа [734,1 K], добавлен 20.05.2013Понятие САПР и общее представление об автоматизированных рабочих местах. Информационная технология проектирования автоматизированного рабочего места и эргономика аппаратных и программных средств АРМ. Сравнительная характеристика современных плоттеров.
дипломная работа [3,9 M], добавлен 03.03.2011Обоснование необходимости и цели использования вычислительной техники для решения задач руководителя полиграфического производства. Информационная модель разрабатываемого проекта. Построение логической структуры базы данных в среде Microsoft Access.
дипломная работа [1,9 M], добавлен 18.12.2015Проектирование системы учета для библиотеки: разработка базы данных, в которой описаны наименования книг, имеющиеся в библиотечном фонде, и постоянные читатели, создание печатных форм (отчетов о приеме и выдаче изданий) и интерфейса для пользователей.
контрольная работа [1,1 M], добавлен 17.08.2010Разработка автоматизированного рабочего места в виде Web-приложения "Платные образовательные услуги" для отделения дополнительного образования строительного техникума. Технология создания макета. Разработка программного кода, функции интерфейса.
дипломная работа [1,8 M], добавлен 10.06.2013Разработка и реализация базы данных информационной системы автоматизации рабочего места инспектора по начислению пенсии. Технология создания модуля для оперирования точной информацией при работе с клиентами организации, упрощение способа расчета пенсии.
дипломная работа [1,2 M], добавлен 09.08.2011Обоснование необходимости и основные цели использования вычислительной техники для решения задачи. Используемые классификаторы и системы кодирования. Программное обеспечение разработки автоматизированного рабочего места. Описание программных модулей.
дипломная работа [3,9 M], добавлен 11.08.2015Цели и задачи автоматизированной системы. Разработка автоматизированного рабочего места в виде мобильного приложения "Учета финансов" для отделения дополнительного образования. Экономический расчет разработки автоматизированного рабочего места.
дипломная работа [1,7 M], добавлен 06.06.2023