Улицы
(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.1 Разработка
алгоритма.
Назначение любой
базы (в том числе и БРЭА) заключается в получении пользователем базы необходимой
ему информации. Кроме того, пользователю должны быть предоставлены возможности
пополнения базы данных вновь возникшей информацией и её коррекции в случае
изменения тех или иных компонент, хранящихся в базе данных.
Указанные моменты
определяют технологический цикл кругооборота информации между пользователем и
базой данных, а также основные направления прохождения информации внутри самой
базы, иными словами, - взаимодействие отдельных компонент, составляющих в целом
базу данных.
Сказанное может
быть проиллюстрировано схемой информационных потоков БД, представленной на
рис.4.1. От пользователя поступает некоторое множество заданий на выполнение
тех или иных информационных действий. Входные формы воспринимают эти задания и
инициализируют соответствующие запросы, которые в свою очередь осуществляют
поиск необходимой информации в таблицах, где находятся данные, позволяющие
выполнить заданные действия. Выбранная информация с помощью исполнительных частей
запросов пересылается в выходные формы и представляется пользователю для её
оценки и принятия решения.
Обобщённо
алгоритм, реализующий данную технологическую схему обработки информации, представляет
собой следующую совокупность действий:
1. Выбор
соответствующей выходной формы (Формаi, i=l, g).
2. Заполнение
полей формы (Формаi, i=l, g).
3. Отображение
информации на видеоконтрольном устройстве.
4. Если
необходима твёрдая копия полученных данных, то Ввод исходных данных.
5. Анализ
исходных данных (Формаi, i=l, N).
6. Если исходные
данные корректны, то переход на пункт 4, в противном случае - выдача диагностического
сообщения и переход на пункт 1.
7. Передача
данных соответствующему запросу (Запросij, i=l, N; j=l, y).
Рис. 4.1 Схема информационных потоков АРМ
8. Анализ
параметров и условий выборки информации.
9. Формирование
списка таблиц для поиска информации (Таблицаi,...,Таблицаk, i Î m, k Î m).
10. Поиск
информации по выбранному списку таблиц в соответствии со значениями параметров
и условиями выборки.
11. Если
информация, удовлетворяющая заданным параметрам и условиям выборки,
отсутствует, то выдаётся соответствующее диагностическое сообщение и переход
на пункт 1. При нахождении необходимой информации, она передаётся
исполнительным частям запросов (Запросij, i=l ,N; j=l , y) и переход на пункт 9.
12. производится
её печать, в противном случае переход на пункт 13.
13. Выяснение
необходимости завершить работу с базой данных. Если «Да», то переход на пункт
14, если «Нет», то переход на пункт 1.
14. Конец работы.
Здесь и далее
обозначения имеют следующий смысл:
• N - мощность
(количество) множества входных форм;
• К, h, y -
мощности множеств запросов, соответствующих входным формам (Формаi, i=l, N);
• m
-мощность множества таблиц;
• g -
мощность множества выходных форм.
Данный алгоритм
может быть выражен блок-схемой, представленной на рис.4.2. Такое представление
даёт возможность более наглядного понимания процесса прохождения информации.
АРМ функционирует
в следующих режимах:
·
Ввод
данных в базу данных АРМ;
·
Просмотр
информации из базы данных АРМ;
·
Коррекция
информации в базе данных АРМ;
·
Формирование
выходных документов.
Выбор режимов
работы осуществляется пользователем после инициализации программных модулей.
Следовательно структурная схема будет иметь вид показанный на рис.
Рис. 4.2 Блок-схема
алгоритма, реализующего технологическую схему обработки информации
Рис. 4.3 Структурно-функциональная схема АРМ
В качестве примера рассмотрим блок-схему алгоритма функционирования
управляющего модуля. Блок-схема приведена на рис.
Рис. 4.4 Блок-схема функционирования
алгоритма управляющего модуля
4.2 Реализация
алгоритма.
4.2.1 Функциональные модули.
Функционально АРМ состоит из
следующих модулей:
· Модуль идентификации и
аутентификации, предназначенный для определения пользователя и его прав
доступа;
· Модуль картотеки фондов,
предназначен для ввода/просмотра, получения различных отчётов по картотеке
фондов;
· Модуль картотеки читателей,
предназначенный для ввода/просмотра, получения различных отчётов по читателям;
· Модуль контроля,
обеспечивающий контроль достоверности и целостности базы данных;
· Модуль администратора,
предназначенный для корректировки системной информации, путей доступа к базе
данных, назначения прав доступа для пользователей.
Доступ к функциональным модулям
обеспечивается через развитую систему меню.
Вид системы меню представлен на
рис.4.5
Рис. 4.5 Вид
системного меню
4.2.2 Модуль идентификации и аутентификации.
При доступе в программу необходимо
производить идентификацию пользователя и его прав для доступа к функциям
программы это диктуется тем, что доступ к программе будут иметь не только обслуживающий
персонал библиотеки, но и читатели. Форма демонстрирующая этот процесс показана
на рис. 4.6.
Рис. 4.6 Форма ввода модуля идентификации и аутентификации
После ввода логина и пароля пользователя производится проверка
прав доступа, в случае наличия прав только на чтение выводится сообщение показанное
на рис. 4.7, в случае отсутствия прав доступа к программе выводится сообщение
показанное на рис. 4.8.
Рис. 4.7
Рис. 4.8
При наличие прав доступа только на
чтение некоторые функции будут не доступны.
Создание новых пользователей и
назначение прав производится в модуле администратора.
4.2.3 Модуль картотеки фондов.
На рисунке 4.9
показана структурная схема модуля для работы с картотекой фондов. Далее рассмотрим
подробнее данную структурную схему.
Схема отображает
связи функций и возможные переходы между функциями, отображает входные и
выходные формы, позволяет оценить возможности данного модуля.
Рис. 4.9
Структурная схема модуля картотеки фондов
Рис. 4. 10 Главная
форма модуля картотеки фондов
На рисунке 4.10
представлена главная форма для работы с картотекой фондов. Слева располагается
дерево разделов, в котором отображаются названия разделов и их нумерация по
ББК. Справа находится таблица, содержащая список литературы для выбранного
раздела, в ней отображаются следующие данные:
·
Автор
издания;
·
Название
издания;
·
Издательство;
·
Год
издания;
·
Город
издателя;
·
Количество
экземпляров;
·
Количество
выданных экземпляров;
·
Дата
поступления.
Вверху справа
располагается меню (набор кнопок) для выбора функций, предусмотрены следующие
функции:
·
Просмотр
библиографической карточки;
·
Поиск по
выбранным значениям раздела или карточки;
·
Сортировка
разделов и карточек;
·
Наложение
фильтра на выбранный раздел;
·
Просмотр
новых поступлений;
·
Настройка
отображаемых полей формы;
·
Добавление
новых разделов и карточек изданий;
·
Редактирование
добавленных ранее разделов и карточек;
·
Печать
библиографической карточки.
Функции для
добавления и изменения информации в картотеке доступны только для авторизированного
персонала библиотеки.
В нижней части
формы представлена строка статуса, в которой слева отображается общее количество
разделов и общее количество карточек изданий, а справа количество подразделов в
выбранном разделе, общее количество карточек в этих подразделах, количество
карточек в текущем разделе, количество выбранных карточек изданий, а также
здесь расположен индикатор, в котором при длительных операциях производится
отображение хода процесса.
Для главной формы
картотеки фондов рассмотрим получение списка литературы, для этого используются
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
Пример 4.1 SQL-запрос
получение списка литературы.
В качестве
фильтрующего параметра для таблицы изданий Books используется уникальный код раздела
из таблицы Issue, а из таблицы выдачи BookUse выбираются записи, для которых не
заполнена дата возврата.
Рис. 4.11 Просмотр
карточки издания
На рисунке 4.11
представлена форма развёрнутого просмотра со следующей информацией:
·
Название
раздела;
·
Номер
раздела по ББК;
·
Автор,
составитель и редактор (или их списки);
·
Название
книги;
·
Название
издательства;
·
Город
издательства;
·
Вид
издания;
·
Год
издания;
·
Количество
экземпляров;
·
Количество
выданных экземпляров;
·
Краткая
аннотация.
Данные для формы
обеспечиваются на основе SQL-запроса который представлен в
примере 4.1, а данные об авторах, составителях, редакторах получают отдельными запросами. Рассмотрим
подробнее запрос для получения списка авторов, запрос будет иметь следующий
вид:
SELECT Creators.name, ;
Autor.autorid;
FROM library!Creators INNER JOIN
library!Autor ;
ON Creators.nameid = Autor.autorid;
WHERE Autor.bookid = lnbookid ;
INTO CURSOR vwAutor
Пример
4.2 SQL-запрос получение списка авторов
В качестве фильтрующего параметра
используется уникальный код книги из таблицы Books.
Для данной формы предусмотрены
дополнительные функции:
·
Просмотр
выданных экземпляров;
·
Просмотр
инвентарных номеров книг.
Данные функции доступны только для
авторизированного персонала библиотеки.
На форме просмотра выданных
экземпляров, которая показана на рисунке 4.12 доступна информация о:
·
группе;
·
фамилии;
·
имени;
·
дате выдачи;
·
количестве выданных экземпляров.
Рис. 4.12 Просмотр
выданных экземпляров
Показываются только те экземпляры,
которые в текущий момент являются выданными абоненту.
Предусмотрены
следующие функциональные возможности:
·
перехода
на карточку абонента;
·
группу
абонентов;
·
просмотр
инвентарных номеров выданных книг;
·
изменение
порядка сортировки отображаемых данных.
Данные для формы
получаем 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 Booknum.number =
Bookuse.number ;
WHERE Booknum.bookid =
lnBookId ;
AND EMPTY(Bookuse.date2) ;
GROUP BY Abonents.abonid ;
INTO CURSOR vwUseBook
Пример 4.3 SQL-запрос получение списка читателей
В качестве элементов фильтра
используется уникальный код книги из таблицы Books и значение поля Date2
таблицы BookUse, которое должно быть не заполненным, так как определяет дату
возврата книги в библиотеку.
На форме
просмотра инвентарных номеров, которая представлена на рис. 4.13, доступна
информация:
·
список
инвентарных номеров;
·
дате
поступления экземпляра книги.
Для получения
данных используем SQL-запрос:
Рис. 4.13 Просмотр инвентарных
номеров
SELECT Booknum.number AS InvNum, ;
Booknum.date AS Date ;
FROM library!BookNum;
WHERE Booknum.bookid
= lnBookId
;
INTO CURSOR vwInvNum
Пример 4.4 SQL-запрос получение инвентарных
номеров
В качестве элемента фильтра
применяется уникальный код книги из таблицы Books. Для выбранных данных можно
изменять порядок отображения, установив активный столбец в таблице.
На рисунке 4.14 показана форма для
ввода параметров поиска. Поиск по разделу осуществляется по следующим
значениям:
·
Номеру
раздела по ББК;
·
Названию
раздела.
Рис. 4.14 Поиск по
параметру
Поиск по
карточкам фондов осуществляется по:
·
Автору;
·
Названию
книги;
·
Году
издания;
·
Количеству
единиц хранения;
·
Количеству
выданных экземпляров;
·
Дате
добавления в картотеку.
Поиск может
осуществляется по любой комбинации параметров. В форме просмотра результатов
поиска, показанной на рисунке, первыми отображаются данные наиболее
соответствующие введённым значениям, те которые удовлетворяют логическому
условию И, затем все которые удовлетворяют логическому условию ИЛИ.
Рис. 4.15 Просмотр результатов поиска
В форме просмотра результатов
поиска, показанной на рис. 4.15, отображается следующая информация:
·
Номер раздела по ББК;
·
Название раздела;
·
Автор издания;
·
Название издания;
·
Издательство;
·
Год издания;
·
Количество переплётов в наличии;
·
Дата добавления информации в картотеку.
Для формы просмотра результатов
поиска предусмотрены следующие функции:
·
Переход
на карточку издания;
·
Переход к
разделу, к которому относится карточка издания;
·
Печать
библиографической карточки издания;
·
Изменение
порядка сортировки отображаемых данных.
Рис. 4.16 Выбор параметра сортировки
На рисунке 4.16 показана форма для
задания порядка отображения записей в дереве разделов и списке литературы. Для
задания порядка отображения в дереве разделов доступны следующие параметры:
·
Номер
раздела по ББК;
·
Название
раздела.
Для списка
разделов:
·
Автор;
·
Составитель;
·
Редактор;
·
Название
издания;
·
Издательство;
·
Год
издания;
·
Количество
единиц хранения;
·
Количество
выданных экземпляров;
·
Дата
добавления в каталог.
Так же форма
предоставляет возможность просмотра текущих установок. После выбора параметра
для сортировки, для списка литературы, он отображается в заголовке
соответствующего столбца таблицы изменением шрифта надписи на курсив.
Рис. 4.17 Задание фильтра для раздела
На рисунке 4.17 показана форма для
задания условий фильтрации в списке литературы выбранного раздела. Фильтр может
задаваться по следующим параметрам:
·
Автору;
·
Составителю;
·
Редактору;
·
Названию
издания;
·
Издательству;
·
Диапазону
годов издания;
·
Диапазону
единиц хранения;
·
Диапазону
выданных экземпляров;
·
Диапазону
дат занесения в картотеку.
Фильтрация может
производиться по любой совокупности выбранных параметров. Отмеченные, но не
заполненные параметры при установке фильтра не учитываются. Выбранные параметры
хранятся как массив главной формы, а установка фильтра производиться командой SET FILTER TO [список параметров].
Для параметров “Автор”, ”Составитель”, “Редактор”, “Название издания”, “Издательство” выбор значений может производиться
как определением списка из набора, в котором содержатся только уникальные
значения полученные на основе выборок из результата работы запроса показанного
в примере 4.1, так и на основе ручного ввода.
При выборе пункта “Новости” главного
окна появляется всплывающее меню для выбора типа новостей, таких как “Новости поступления” и “Новости
мероприятий”. Новости поступления отображаются в форме
показанной на рисунке 4.18.
Рис. 4.18 Новости поступления
Здесь отображается информация о:
·
Номере
раздела по ББК;
·
Название
раздела;
·
Автор;
·
Название
книги;
·
Издательство;
·
Год
издания;
·
Количество
экземпляров в наличии;
·
Дата
занесения в картотеку.
При загрузке в
форме показываются самые последние поступления по всем разделам, впоследствии
настройки по умолчанию можно изменить, выбрав просмотр поступлений за период
или установив желаемый список разделов.
Так же в форме
предусмотрены функции:
·
Перехода
на карточку книги;
·
Переход
на раздел в котором содержится карточка;
·
Печати
карточки книги;
·
изменение
порядка сортировки отображаемых данных.
Отбор информации
для формы осуществляется 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.5 SQL-запрос получение списка новых поступлений
В качестве
фильтрующего параметра используется значение
даты.
Рис. 4.19 Настройка отображаемых атрубутов
На рисунке 4.19 показана форма для
настройки выводимой информации в дереве разделов и списке литературы. Так же в
форме отображается текущая настройка выводимой информации. Для настройки отображения
в дереве разделов доступны следующие пункты:
·
Номер
раздела по ББК;
·
Название
раздела.
Для списка
литературы:
·
Автор;
·
Название
книги;
·
Издательство;
·
Год
издания;
·
Город
издательства;
·
Количество
экземпляров хранения;
·
Количество
выданных экземпляров;
·
Дата
занесения в картотеку.
При выборе опции “Добавление” главной формы, появляется всплывающее
меню для выбора типа добавления: “Добавить раздел”, “Добавить карточку”.
При добавлении раздела информация о
номере раздела по ББК и название раздела заносится в форме показанной на
рисунке 4.20. Раздел может быть добавлен в любой узел дерева разделов, для
этого дерево отображается в верху формы, по умолчанию добавление происходит в
текущий раздел, выбранный в главном окне картотеки.
Рис. 4.20 Добавление нового раздела
Добавление
производится командой SQL-Insert следующего вида:
INSERT INTO Issue (Id, Bbk,
Name, Parent) VALUES (lnId, lcBbk, lcName, lnParent), где
lnId - уникальный номер нового
раздела, вычисляется как RECCOUNT(‘Issue’)+1;
lcBbk- номер нового раздела по ББК;
lcName-Название нового раздела;
lnParent-Номер узла дерева разделов в
который производиться добавление.
Добавление новой
карточки производится в форме показанной на рисунке 4.21.
Рис. 4.21 Добавление новой карточки издания
Для добавления
новой карточки необходимо ввести следующую информацию:
·
Авторский
знак;
·
Автора
или список авторов;
·
Составителя
или список составителей;
·
Редактора
или список редакторов;
·
Вид
издания;
·
Год
издания
·
Название
издания;
·
Издательство;
·
Город
издательства;
·
Перечень
инвентарных номеров;
·
Краткую
аннотацию.
Для ввода автора
(списка авторов), составителя (списка составителей), редактора (списка редакторов)
и издательства используются списки полученные на основе таблиц 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)
При выборе опции “Изменение” главной формы, появляется всплывающее
меню для выбора типа изменения: “Изменить раздел”, “Изменить карточку”. Формы для изменения информации о
разделе и о карточки идентичны формам представленным в разделе “Добавить”. Кроме изменения данных о авторах,
названиях, издательствах, инвентарных номерах и аннотациях, возможно изменение
расположения в разделах, которое производится выбором нового узла из дерева
разделов. При этом если изменение расположения в дереве производится для
раздела, все карточки находящиеся в данном разделе автоматически переносятся
вместе с разделом.
Для изменения
значений в таблице Issue
можно применить
команду SQL-Update имеющей вид:
UPDATE Issue ;
SET bbk=lnbbk, ;
name=lnName, ;
parent=lnParent ;
WHERE id=lnId
Где в качестве элемента фильтра
применяется уникальный номер группы из таблицы Issue.
Для изменения значений в таблице
Books необходимо применить несколько аналогичных функций.
При выборе этой функции открывается
системное окно выбора принтера, для задания параметров печати, после выбора
параметров осуществляется печать библиографической карточки издания.
4.2.4 Модуль картотеки читателей.
На рисунке 4.22
показана структурная схема модуля для работы с картотекой читателей. Далее рассмотрим
подробнее данную структурную схему.
Схема отображает
связи функций и возможные переходы между функциями, отображает входные и
выходные формы, позволяет оценить возможности данного структурного модуля.
Рис. 4.23 Главная форма модуля картотеки
читателей
Рис. 4.22 Структурная
схема модуля картотеки читателей
На рисунке 4.23
представлена главная форма для работы с картотекой читателей. Слева
располагается дерево групп, в котором отображаются групп читателей. Справа
находится таблица, содержащая список читателей для выбранной группы, в ней
отображаются следующие данные:
·
Фамилия,
имя и отчество читателя;
·
Количество
изданий находящихся на руках;
·
Количество
изданий с просроченным сроком сдачи;
·
Дата
регистрации читателя;
·
Дата
последнего посещения;
·
Дата
рождения читателя;
·
Телефон
читателя;
Вверху справа
располагается меню (набор кнопок) для выбора функций, предусмотрены следующие
функции:
·
Просмотр
карточки читателя с возможностью выдачи и сдачи изданий;
·
Поиск по
выбранным значениям;
·
Сортировка
групп и карточек читателей;
·
Наложение
фильтра на выбранную группу;
·
Настройка
отображаемых полей формы;
·
Добавление
новых групп и карточек читателей;
·
Редактирование
добавленных ранее групп и карточек читателей;
·
Формирование,
просмотр и печать разнообразной статистики;
·
Печать
карточки читателя.
В нижней части формы представлена
строка статуса, в которой слева отображается общее количество групп читателей и
общее количество карточек читателей, а справа количество подгрупп в выбранной
группе, общее количество карточек в этих подгруппах, количество карточек в
текущей группе, количество выбранных карточек, а также здесь расположен
индикатор, в котором при длительных операциях производится отображение хода
процесса.
Для главной формы
картотеки читателей рассмотрим получение списка читателей, для этого используются
SQL запрос, который будет иметь вид:
SELECT Name1.name AS Fam,
;
Name2.name AS Name, ;
Name3.name AS Otch, ;
Street.street AS StreetName, ;
City.city AS CityName, ;
Abonents.house_fl AS House_Flat, ;
Abonents.telefon AS Telefon,
;
Abonents.date1 AS Date1, ;
Abonents.date2 AS Date2 ;
Abonents.comment AS Comment,;
FROM library!Name1 INNER JOIN
library!Abonents;
INNER JOIN library!Name2;
INNER JOIN library!Name3;
INNER JOIN library!Street;
INNER JOIN library!City ;
ON
City.cityid = Abonents.cityid ;
ON Street.streetid =
Abonents.streetid ;
ON Name3.nameid = Abonents.name3 ;
ON Name2.nameid = Abonents.name2 ;
ON
Name1.namrid = Abonents.name1;
WHERE Abonents.grid = lngrid ;
INTO CURSOR vwAbon
Пример 4.6 SQL-запрос
получение списка читателей
В качестве
фильтрующего параметра для таблицы читателей Abonents используется уникальный код
группы из таблицы Groups.
На рисунке 4.24
представлена форма развёрнутого просмотра со следующей информацией:
·
Фамилия,
имя и отчество читателя;
·
Дата
рождения;
·
Адрес
читателя;
·
Телефон
читателя;
·
Примечание
к карточке читателя;
·
Дата
регистрации;
·
Дата
последнего посещения.
Рис. 4.24 Просмотр карточки читателя
Данные для формы
обеспечиваются на основе SQL-запроса который представлен в
примере 4.6.
Для данной формы предусмотрены
дополнительные функции:
·
Просмотр
списка выданных изданий;
·
Печать
карточки читателя.
На форме просмотра списка выданных
экземпляров, которая показана на рисунке 4.25, доступна информация о:
·
Дате выдачи;
·
Инвентарном номере выданного переплёта;
·
Номере раздела по ББК;
·
Авторе издания;
·
Названии издания.
Рис. 4.25 Просмотр
списка изданий
По умолчанию показываются только те
экземпляры, которые в текущий момент являются выданными абоненту.
Предусмотрены
следующие функциональные возможности:
·
Выдача
издания читателю, с возможность поиска по картотеке фондов или быстрый поиск по
инвентарному номеру;
·
Приём
издания от читателя;
·
Просмотр
библиографической карточки выданного издания;
·
Изменение
фильтра для просмотра, задолженных экземпляров или всех изданий, которые выдавались
читателю;
·
Печать
списка;
·
Изменение
порядка сортировки отображаемых данных.
Данные для формы
получаем SQL-запросом следующего вида:
SELECT Bookuse.number AS
BookNum, ;
Bookuse.date1 AS BookDate1, ;
Bookuse.date2 AS BookDate2 ;
FROM library!BookNum INNER
JOIN library!BookUse ;
ON Booknum.number =
Bookuse.number;
WHERE Bookuse.abonid =
lnabonid ;
INTO CURSOR vwUseBook
Пример 4.7 SQL-запрос
получение списка изданий для читателя
В качестве элементов фильтра
используется уникальный код читателя таблицы Abonents.
Рис. 4.26 Поиск карточки читателя
На рисунке 4.26 показана форма для
ввода параметров поиска. Поиск может осуществляться по группам и по карточкам
читателей, для этого необходимо определить хотя бы один из следующих параметров:
·
Название
группы;
·
Номер
читательского билета;
·
Фамилию;
·
Имя;
·
Отчество
читателя;
·
Дату
регистрации;
·
Дату
последнего посещения.
Поиск может
осуществляется по любой комбинации параметров.
Для параметров “Название группы”, “Фамилия”, “Имя” и “Отчество” возможен выбор значения из списка
формируемого на основе таблиц Issue, Name1, Name2 и Name3 соответственно. В форме просмотра результатов поиска,
показанной на рисунке, первыми отображаются данные наиболее соответствующие введённым
значениям, те которые удовлетворяют логическому условию И, затем все
которые удовлетворяют логическому условию ИЛИ.
Рис. 4.27 Просмотр результатов поиска
В форме просмотра результатов
поиска (рис.4.27) отображается следующая информация:
·
Название группы читателя;
·
Номер билета читателя;
·
Фамилия, имя и отчество читателя;
·
Дата регистрации.
Для формы просмотра результатов
поиска предусмотрены следующие функции:
·
Переход
на карточку читателя;
·
Переход к
группе, к которому относится карточка читателя;
·
Изменение
порядка сортировки отображаемых данных.
На рисунке 4.28 показана форма для
задания порядка отображения записей в списке карточек читателей. Для задания
порядка отображения в списке читателей доступны следующие параметры:
Рис. 4.28
Сортировка карточек читателей
·
Номер
читательского билета;
·
Фамилия,
имя и отчество;
·
Выдано
экземпляров;
·
Дата
регистрации;
·
Дата
рождения читателя;
·
Телефон
читателя.
Так же форма
предоставляет возможность просмотра текущих установок. После выбора параметра
для сортировки в списке читателей, он отображается в заголовке соответствующего
столбца таблицы изменением шрифта надписи на курсив.
На рисунке 4.29 показана форма для
задания условий фильтрации в списке читателей выбранной группы. Фильтр может
задаваться по следующим параметрам:
·
Диапазону
номеров читательских билетов;
Рис. 4.29 Задание
фильтра для списка карточек читателей
·
Фамилии,
имени и отчеству читателя;
·
Диапазону
количества выданных экземпляров;
·
Диапазону
дат регистрации;
·
Диапазону
дат последнего посещения;
·
Диапазону
дат рождения читателей.
Фильтрация может
производиться по любой совокупности выбранных параметров. Отмеченные, но не
заполненные параметры при установке фильтра не учитываются. Выбранные параметры
хранятся как массив главной формы картотеки читателей, а установка фильтра
производиться командой SET FILTER TO [список параметров].
Для параметра “Ф. И. О.”, выбор значений может производиться
как определением списка из набора, в котором содержатся только уникальные значения
полученные на основе выборок из результата работы запроса показанного в примере
4.6, так и на основе ручного ввода.
На рисунке 4.30 показана форма для
настройки выводимой информации в списке читателей выбранной группы. Так же в
форме отображается текущая настройка выводимой информации. Для настройки
отображения доступны следующие параметры:
·
Номер
читательского билета;
·
Фамилии,
имени и отчества;
·
Выданное
количество экземпляров;
Рис. 4.30 Настройка выводимых атрибутов
·
Дата
регистрации читателя;
·
Дата
последнего посещения;
·
Дата
рождения читателя;
·
Телефон
читателя;
·
Адрес
читателя.
При выборе опции “Добавление”, главной формы модуля картотеки читателей,
появляется всплывающее меню для выбора типа добавления: “Добавить группу”, “Добавить карточку”.
При добавлении
группы, информация о название группы заносится в форме показанной на рисунке
4.31. Группа может быть добавлен в любой узел дерева групп читателей, для этого
дерево отображается вверху формы, по умолчанию добавление происходит в текущую
группу, выбранную в главном окне модуля картотеки читателей.
Рис. 4.31 Добавление новой группы читателей
Добавление
производится командой SQL-Insert следующего вида:
INSERT INTO Groups (Id, Name,
Parent) VALUES (lnId, lcName, lnParent), где
lnId - уникальный номер новой
группы, вычисляется как RECCOUNT(‘Groups’)+1;
lcName-Название новой группы;
lnParent-Номер узла дерева групп в
который производиться добавление.
Добавление новой
карточки читателя производится в форме показанной на рисунке 4.32.
Рис. 4.32
Добавление новой карточки читателя
Для добавления
новой карточки необходимо ввести следующую информацию:
·
Фамилию,
имя и отчество читателя;
·
Дату
рождения читателя;
·
Адрес
читателя;
·
Телефон;
Для ввода
фамилии, имени и отчества читателя используются списки полученные на основе
таблиц Name1, Name2 и Name3 соответственно.
При выборе опции “Изменение” главной формы, появляется всплывающее
меню для выбора типа изменения: “Изменить группу”, “Изменить карточку”. Формы для изменения информации о
группе и информации о карточке читателя идентичны формам представленным в
разделе “Добавить”. Кроме изменения, возможно изменение
расположения в группах, которое производится выбором нового узла из дерева
групп. При этом если изменение расположения в дереве производится для группы,
все карточки читателей находящиеся в данной группе автоматически переносятся
вместе с группой.
Для изменения
значений в таблице Groups
можно применить
команду SQL-Update имеющей вид:
UPDATE Groups ;
SET name=lnName, ;
parent=lnParent ;
WHERE id=lnId
Где в качестве элемента фильтра
применяется уникальный номер группы из таблицы Groups.
Для изменения значений в таблице Abonents необходимо применить несколько
аналогичных функций.
При выборе функции Статистика
главного окна модуля картотеки читателей, появляется всплывающее меню для
выбора одного из возможных видов отчёта, таких как “Задолженность
по группам читателей”, “Выдача изданий по разделам”
и “Выдача изданий по группам читателей”.
При выборе этой функции открывается
системное окно выбора принтера, для задания параметров печати, после выбора
параметров осуществляется печать карточки читателя.
4.2.5 Модуль контроля.
Доступ к модулю контроля имеет только
администратор системы, в этом модуле проводится проверка корректности базы
данных, достоверности хранящейся информации, а также имеются средства для
восстановления таблиц, базы данных и консистенции информации.
4.2.6 Модуль администратора.
Доступ к модулю администратора имеет
только администратор системы, в этом модуле производится настройка путей к базе
данных, создание пользователей и назначения прав доступа.
После
проектирования АРМ, разработки таблиц, полей и связей необходимо еще раз
просмотреть функции подлежащие автоматизации, структуру базы данных и выявить
возможные недочеты. Желательно это сделать на этапе, пока таблицы не заполнены
данными.
Для проверки
необходимо создать несколько таблиц, определить связи между ними и ввести несколько
записей в каждую таблицу, затем осмотреть, отвечает ли база данных поставленным
требованиям. Рекомендуется также создать черновые выходные формы и отчеты и
проверить. выдают ли они требуемую информацию. Кроме того, необходимо
исключить из таблиц все возможные повторения данных.
Как указывалось
ранее, в качестве инструментария разработки АРМ научно-технической библиотеки
университета, была выбрана СУБД Microsoft Visual FoxPro. Этот выбор определяет все особенности компьютерной
реализации принятых решений по организации информационного обеспечения
потенциальных пользователей.
Основой любого
АРМ являются:
• таблицы, где
хранятся все те данные, которые необходимы пользователям;
• запросы,
набор возможностей по поиску, извлечению, вводу и коррекции информации;
• формы,
интерфейс между пользователем и программным обеспечением АРМ. Список таблиц,
их состав, свойства атрибутов, взаимосвязи и прочие характеристики описаны в
разделах 3 и 4 данной работы. Примеры запросов и форм описаны в разделе.
В процессе
выполнения данного дипломного проекта были разработаны:
• перечень
таблиц (всего 17);
• состав
таблиц (суммарно около 60 атрибутов);
• свойства
атрибутов;
• на основе
анализа доступных источников произведено наполнение таблиц реальной.
Указанные наборы
данных являются вполне самодостаточными и позволяют провести тестирование
разработанного АРМ в полном объёме, как в плане проверки вообще
работоспособности системы, так и правильности получаемых результатов.
Тестирование
проводилось методом непосредственной имитации работы пользователя. Основными
критериями верификации (правильности) данного программного продукта являлись
адекватность реакции системы на предложенное ей действие и соответствие этой
реакции эргономическим требованиям, изложенным в разделе 6 данной работы.
В процессе тестирования
был выявлен ряд неточностей и некорректностей, в частности:
•
несоответствие поля типу данных (вместо числового атрибута - текстовый);
• размер поля
меньше требуемого (данные обрезаются по реальному размеру).
Эти и другие
замеченные ошибки были зафиксированы и исправлены.
Результатом
тестирования, последующей отладки и корректировки базы данных является программный
продукт, удовлетворяющий приведенным выше критериям. В частности, по классу
эргономических требований (ограничений), в число которых входит:
• время реакции
системы,
• число
одновременно оцениваемых параметров,
• вид
представляемой информации,
• доклад о
процессе обработки информации,
• цветовая
палитра выходных форм,
• дружественность
интерфейса и др.
Разрабатываемая
база данных отвечает этим требованиям при условии её реализации на тех технических
средствах, которые могут обеспечить эти характеристики.
Машинные
эксперименты проводились на нескольких IBM - совместимых компьютерах разных поколений и конфигураций, а
именно, PC i486-DX,
iPENTIUM-200, AMD K6-2 333, iPENTIUM II-500, AMD K7 Athlon 550.
Эти эксперименты
показали, что на основе их результатов могут быть предъявлены определённые
требования к техническим и программным средствам со стороны разрабатываемого
АРМ. Для нормального функционирования базы данных должны быть выполнены
следующие условия.
Технические
средства
1. Персональная ЭВМ - совместимая с IBM AT:
• с процессором i486DX4-100 или выше,
• с оперативной
памятью не менее 16 Мб,
• с объёмом
свободного пространства на диске не менее 40Мб,
• с накопителем
на гибком диске.
2. Монитор SVGA с разрешением 800*600 точек.
3. Видеокарта с
памятью не менее 1 МБ.
4. Манипулятор
«мышь».
5. Клавиатура.
6. Принтер.
Программные
средства
1. Операционная
система WINDOWS 95/98, WINDOWS NT/2000.
В случае работы в
среде локальной вычислительной сети необходима соответствующая техническая и
программная поддержка.
По критерию
адекватности реакции базы данных на заданные действия нареканий и замечаний
нет, что свидетельствует о правильности выбранного подхода к проектированию
базы данных и правильности выбранного инструментария для её создания.
Необходимо также
отметить тот факт, что разработанная база данных является мобильным программным
продуктом, т.е. может быть легко установлена на любой IBM - совместимой персональной ЭВМ.
ЭРГОНОМИКА (от
греч. ergon - работа и nomos - закон), отрасль науки, изучающая человека (или
группу людей) и его (их) деятельность в условиях производства с целью
совершенствования орудий, условий и процесса труда. Основной объект
исследования эргономики - системы «человек - машина», в том числе и так называемые
эргатические системы.
ЭРГАТИЧЕСКАЯ
СИСТЕМА, сложная система управления, составным элементом которой является
человек-оператор (или группа операторов).
В конечном итоге,
результаты эргономических исследований для конкретных систем выражаются в тех
требованиях для этих систем, реализация которых позволяет человеку трудиться
как можно более продуктивно и в, как более возможно, комфортных условиях.
Современные
эргатические системы включают в свой состав компьютеры с соответствующим программным
обеспечением, поэтому требования к эргономическим параметрам систем можно разделить
на два больших класса:
- требования к
техническим средствам,
- требования к
программным средствам.
Рассмотрение
требований к техническим средствам не входит в наши задачи, остановимся на требованиях
к программным средствам. Применительно к программному обеспечению можно
сформулировать некоторый перечень требований, в число которых, например,
входят:
- время реакции
системы,
- число
одновременно оцениваемых параметров,
- вид
представляемой информации,
- доклад о
процессе обработки информации,
- цветовая
палитра выходных форм,
- дружественность
интерфейса и др.
Время
реакции
– это время, потребное системе для принятия запроса на некоторое действие, на
реализацию этого действия и на доставку оператору результатов выполнения для
последующей их оценки и принятия решения. В общем виде время реакции может быть
представлено следующей формулой:
Где:
tr - время реакции системы;
tпр - время приёма запроса
tвып - время выполнения
tдост - время доставки
Каждый компонент
времени реакции может быть разделён на время работы технических средств и время
работы программных средств.
Очевидно, что
время реакции не должно превышать некоторой заданной величины, достаточно ясно
также, что время работы технических средств в конкретном исполнении практически
постоянно. Поэтому уменьшение времени реакции возможно только лишь за счёт
соответствующей организации программного обеспечения. Таким образом,
эргономическое требование комфортного времени реакции системы влияет на состав
и облик программного обеспечения.
При табличном
проектировании базы данных для уменьшения времени реакции системы на запрос
пользователя следует проектировать таблицы, не содержащие избыточных данных.
Хорошая структура таблицы является необходимым исходным условием для эффективного
получения и обновления данных. Если всё же таблицы содержат слишком много
данных, следует разделить их на связанные таблицы, что повысит эффективность
хранения данных. Следует выбирать подходящий тип данных для полей. Это поможет
уменьшить размеры базы данных и увеличит скорость выполнения операций связи.
При описании поля следует задать для него тип данных наименьшего размера, позволяющий
хранить нужные данные.
Существенное
повышение скорости выполнения запросов приносит индексирование полей, расположенных
по обе стороны отношения, или создание связи между этими полями, а также
индексирование всех полей, используемых для задания условий отбора в запросе.
Поиск записей также выполняется намного быстрее, если он ведётся по
индексированному полю.
Нужно заметить,
что индексы занимают определенный объём памяти на диске и замедляют операции
добавления, изменения и удаления записей. Однако, в большинстве случаев выигрыш
в скорости получения данных перевешивает те неудобства, которые возникают в
этом случае при обновлении данных. Если приложение обновляет данные очень часто
или, если на жёстком диске мало свободного места, использование индексов можно
ограничить; во всех остальных случаях их следует использовать везде, где это
возможно.
Необходимо
отметить тот факт, что все эргономические требования определяются психофизиологическими
особенностями человеческого организма.
В частности,
число одновременно предъявленных человеку параметров для их оценки (в зависимости
от их сложности) не должно превышать 4 – 6. В противном случае резко повышается
вероятность неправильного их восприятия и, как следствие, - неправильного
принятия решения. Этот фактор необходимо учитывать при разработке выходных
форм.
Вид
представляемой информации. Здесь существует основное правило. Информация, представляемая
оператору на средствах отображения, должна соответствовать его
профессиональному опыту и тем документам, которые существовали в данной
организации до появления автоматизированной обработки данных с применением
вычислительной техники. Т.е. это должны быть формализованные таблицы, диаграммы,
графики, структурированные сообщения и т.д.
В разрабатываемом
АРМе в качестве основного метода представления информации выбрана технология
многооконных форм, в которых в соответствии с канонами и традициями
библиотекарского делопроизводства представляются все необходимые данные.
Описания форм и их функциональные предназначенности приведены в соответствующем
разделе дипломной работы.
Доклад о
процессе обработки информации. В тех случаях, когда время обработки данных существенно
превышает заданное время реакции, необходимо выдавать оператору соответствующие
сообщения.
Так, например,
установлено, что при превышении реального времени реакции над заданным в 5-6
раз у оператора возникает состояние «скуки».
(5 – 6)tзад < tr,
При превышении в
10 и более раз у него возникает состояние «паники», т.е. он начинает сомневаться,
выполняется ли вообще его запрос или система «зависла».
10tзад < tr
Во избежание
подобных случаев необходимо выполнение запроса «подкрашивать» дополнительной
информацией, например, выдавать предполагаемую длительность выполнения и
бегущий таймер, динамическую процентную шкалу выполнения, звуковые сигналы о
завершении тех или иных этапов выполнения, какие-либо иные динамические
фрагменты, свидетельствующие о том, что процесс выполнения запроса происходит в
нормальном режиме.
Так, например, на приведенном рисунке
6.1 размещена информация о выполняемой операции (Копирование),
что копируется (Описание.doc), откуда и куда (из 'TEXT ' в
'А:\'), процент выполнения (растущая горизонтальная диаграмма) и сколько
времени осталось до завершения операции (10 сек).
Рис.6.1
При обнаружении
каких-либо некорректностей при выполнении запроса необходимо немедленно (не
откладывая на более поздний срок) информировать об этом обстоятельстве
оператора. Достаточно эффективно при этом использование звуковых сигналов,
динамических фрагментов изображений (мерцание, повороты и т.д.),
соответствующей цветовой гаммы.
Цветовая
палитра выходных форм. Весьма важной психофизиологической особенностью человека является его
восприятие цвета.
Установлено, что
ряд цветовых оттенков, а особенно их сочетание действует на человека как сильнейший
раздражитель, этот фактор чрезвычайно усиливает своё воздействие при
динамической смене цветов (всяческие мигания, мерцания, вспышки и т.д.), что
неизбежно приводит к стрессовым ситуациям.
И, наоборот,
другие сочетания цветов действуют весьма благотворно на нервную систему,
создают комфортные условия для продуктивной длительной работы.
Примером хорошо
продуманного в этом плане программного продукта может служить классический NORTON COMMANDER, который, до появления WINDOWS, был обязательной принадлежностью
каждой ПЭВМ. Да и сейчас, несмотря на прекрасные возможности WINDOWS, его можно
встретить на многих компьютерах. Напротив, подражатели, например, VOLCOV COMMANDER избрали не совсем удачную
палитру цветов, что (в сочетании с другими факторами) определило их значительно
меньшую популярность.
Дружественность
интерфейса. Понятие
практически не формализуемое, но интуитивно достаточно ясное. В первую очередь
характеризуется оптимальным сочетанием рассмотренных выше факторов.
Основным
критерием является комфортность работы оператора, заключающаяся, в частности, в
отсутствии повторов в уже проделанной работе, в сведении к минимально
необходимому числу подтверждений и разрешений на производство тех или иных
операций, в минимизации работы с клавиатурой, большим акцентом работе с
манипуляторами типа «мышь» и ему подобными.
Характеризуется
широкими возможностями многооконных режимов работы, возможностями кратчайших
путей переходов из одного состояния в другое, использованием возможностей
гипертекстовых и гиперссылочных свойств, хорошо развитой системой помощи,
ненавязчивым сервисом, защитой от «дурака» и т.д.
Для
наиболее эффективного управления работой предприятия необходимо
иметь достаточную информацию о положении дел на предприятии и возможность
оперативного реагирования на изменения ситуации. Для этого руководитель
предприятия и другие ответственные лица должны постоянно иметь свежую и
достоверную информацию. Возникает необходимость организации управления
работой предприятия таким образом, чтобы обеспечить быструю и надежную связь
между различными служащими для их слаженного взаимодействия.
Предъявляемые современными
условиями требования к системам управления могут быть удовлетворены лишь при
помощи современных средств автоматизации управления. Опыт показывает, что в
наше время для решения этих задач не обойтись без помощи компьютерной техники,
позволяющей в наиболее удобной форме хранить и представлять пользователям
интересующую их служебную информацию. Однако, такие системы требуют
для своей работы соответствующего программного обеспечения, необходимого
для обеспечения работ отражающего специфику работы данного предприятия. Кроме
того, к такому программному обеспечению предъявляются такие требования как
удобство доступа к необходимой информации, простота в обращении и защита от
несанкционированного доступа к конфиденциальной информации, а также, защита от
порчи различного рода программными вирусами.
Настоящая работа как раз и
представляет собой подобное программное обеспечение по управлению работой
предприятия и отвечает основным требованиям, предъявляемым к такого рода
программным продуктам.
База данных
позволяет связать всех пользователей локальной сети в едином
информационном пространстве. В целях защиты информации от несанкционированного
доступа к ней, каждый из пользователей персонального компьютера, может иметь
свободный доступ только к информации, необходимой для выполнения им его
служебных функций и получить, при необходимости, информацию, не связанную непосредственно
с его функциями, может лишь с ведома вышестоящего руководства
предприятия.
Соответствующими
лицами осуществляется обновление информации в соответствии с изменением
положения дел, такими как поступление или убытие материально-технических
средств, товаров, сырья.
При помощи
указанных средств автоматизации процесса управления значительно
упрощаются такие процессы как документооборот и учет на предприятии,
что значительно уменьшает объем бумажных документов, поиск необходимой
документации, восстановление необходимых документов и составление
новых. Это позволяет облегчить утомительную, "бумажную", работу.
За счет простоты
в обращении, база данных позволяет использовать при работе со служебной
информацией низкоквалифицированных работников. Хорошо спроектированная база
данных значительно экономит рабочее время и повышает эффективность работы
за счет экономии времени на поиск и получение необходимой информации.
Повышение эффективности
работы служб, задействованных на предприятии, приводит к экономии как людских
ресурсов в виде возможности сокращения числа служащих на объекте, так и
экономии рабочего времени высококвалифицированных служащих. Кроме того,
данная система позволяет экономию машинного времени, а также,
возможность использования менее квалифицированных работников и
высвобождение значительного количества кадров с более высокой
квалификацией.
Подобный
программный продукт может быть реализован в единичном экземпляре либо тиражирован
и реализован некоторому числу заказчиков. Обычно принято проводить расчет
экономической эффективности использования разработки для ее потребителя.
Важным фактором,
влияющим на процесс формирования цены, является конкуренция на рынке, необходимость
учета которой совершенно очевидна. В целях повышения конкурентоспособности
продукта может возникнуть необходимость снижения его цены на рынке. Важно
заметить, однако, что целям повышения конкурентоспособности служит не
только снижение цены, но, также, и качество товара и его выгодные отличительные
признаки по сравнению с аналогичным товаром конкурентов.
Наиболее важным
моментом для разработчика, с экономической точки зрения, является процесс
формирования цены. Очевидно, что программные продукты представляют собой
весьма специфичный товар со множеством присущих им особенностей. Многие их
особенности проявляются и в методах расчетов цены на них. На разработку
программного продукта средней сложности обычно требуются весьма незначительные
средства. Однако, при этом он может дать экономический эффект, значительно
превышающий эффект от использования достаточно дорогостоящих систем.
Следует подчеркнуть, что у
программных продуктов практически отсутствует процесс физического
старения и износа. Для них основные затраты приходятся на разработку образца,
тогда как процесс тиражирования представляет собой, обычно, сравнительно
несложную и недорогую процедуру копирования магнитных носителей или
иных носителей, и сопровождающей документации. Таким образом, этот товар
не обладает, по сути, рыночной стоимостью, формируемой на базе общественно
необходимых затрат труда.
Цена на
программные продукты устанавливается на единицу программной продукции с
учетом комплексности ее поставки. Ее цена, обычно, формируется на базе
нормативной себестоимости производства и прибыли:
Цп=С+Пн+Нэ, где
С — себестоимость единицы
продукции, руб.,
Пн—нормативная прибыль, руб.;
Нэ — надбавка к цене.
Предельным значением цены
программного продукта является сумма дополнительной прибыли,
полученной потребителем за период его использования. При назначении цены
следует разделить дополнительную прибыль между потребителями
данного продукта и его собственником.
Цена на
программный продукт может, также, рассчитываться и на основе
роялти. Данный подход применяется, когда цена продукта возмещается
собственнику не сразу, а по мере получения потребителем дополнительного дохода
от его использования. Тогда цена данного программного продукта складывается
из ежегодных отчислений дохода потребителей в течение периода действия
соглашения, т.е. из роялти. Для программных разработок роялти составляет 3 —
5%.
Цена
программного продукта часто складывается из выплат целого ряда
потребителей и распределяется между собственниками этого продукта в
соответствии с количеством заключенных ими сделок, их длительностью и
величиной роялти.
Поскольку
данные о фактической дополнительной прибыли, в связи с
использованием данной конкретной программной разработки, могут составлять
коммерческую тайну, и определить ее величину бывает порой затруднительно даже
самому потребителю, постольку в соглашениях ставка роялти устанавливается в
процентах от стоимости чистых продаж продукции, ее себестоимости, валовой
прибыли, либо же определяется в виде денежной суммы на единицу выпускаемой
продукции. Наиболее распространенным на сегодня методом вычисления
роялти является ее вычисление в процентах от стоимости продаж
лицензионной продукции:
Rs=(R/S)*100, где
Rs — ставка роялти в процентах от
стоимости чистых продаж;
R — годовая сумма роялти;
S — годовая стоимость
чистых продаж за вычетом косвенных налогов, сборов и пошлин.
Соответственно,
валовая сумма роялти
(Rt),
выплаченная собственнику программного продукта за период действия
соглашения (t0 — tn), составит:
Rt=Rti=Rs*Sti
Необходимо, также,
отметить, что одинаковым значениям ставки роялти (Rs) могут соответствовать совершенно различные доли роялти в
валовой прибыли потребителя программной продукции и наоборот — одинаковая выплата
роялти из прибыли может производиться при различных ставках роялти
от стоимости продаж. Определяющее значение имеют здесь различия в
нормах прибыли к стоимости продаж у потребителей в различных
отраслях. Так, например, для получения той же доли прибыли
потребителя в высокорентабельных отраслях производства собственнику
программных продуктов необходимо устанавливать значительно более высокую ставку
роялти, чем в малоприбыльных отраслях.
Другой способ
определения ставки роялти основывается на величине годовой дополнительной
прибыли потребителя.
Годовая
дополнительная прибыль потребителя складывается из величины экономии на капитальных
затратах, а также, на текущих эксплуатационных расходах. Экономия оценивается
либо методом прямого расчета годовой экономии на основе сравнения
производственных показателей двух вариантов, либо методом приведения
экономии на капитальных и текущих затратах, распределенной по годам, к текущему моменту времени и
расчету на этой основе среднегодовой экономии на предполагаемый период действия
соглашения.
Рассчитанная
цена может быть скорректирована в зависимости от степени
риска (производственного и коммерческого), конкуренции со стороны
альтернативных программных продуктов, монополизации рынка продукции, в
производство которой внедряется новая программная разработка.
Производственный риск связан, главным
образом, с тем, что потребитель может не реализовать тех производственных
показателей, которых предполагалось достичь в случае применения
данного программного продукта. Такая вероятность тем выше, чем меньше
степень разработанности и коммерческого освоения нового программного
средства. В этом случае коммерческое доведение закупленной программной
разработки может привести к значительным дополнительным расходам, а
конкурентоспособность альтернативных вариантов (более высокой степени
проработки) — значительно возрасти вследствие того, что суммарные расходы
на приобретение программы и ее доработку будут слишком высоки. Таким образом,
целесообразность закупки программного изделия определяется выполнением
условия:
Рт<Ка—Кд, где
Рт — цена программного
продукта;
Ка — минимальные
капиталовложения в альтернативный вариант;
Кд — затраты потребителя
программного продукта на ее коммерческое доведение;
По имеющимся
оценкам, вероятность того, что доработка и внедрение технологии не обеспечит
расчетных показателей, колеблется от 1 — 2% в случае передачи уже внедренной в
серийное производство программной продукции, и до 40 — 50% для программы,
внедренной на уровне опытного образца. Следовательно величина
роялти уменьшается прямо пропорционально росту затрат на
коммерческое освоение программного продукта.
Аналогично и
влияние коммерческого риска, которое выражается в том, что покупатель программной
продукции не имеет гарантии на реализацию всей произведенной продукции, и,
таким образом, может не получить расчетной суммы дополнительной прибыли.
В этом случае продавец и покупатель программного продукта оценивают возможную
степень риска и вносят поправку в ожидаемую величину дополнительной
прибыли. Полная оценка степени коммерческого риска требует проведения комплексных
конъюнктурных исследований предполагаемого рынка с целью выявления
перспектив спроса.
В условиях
расширения рынка программных продуктов важным фактором, воздействующим на их
цену, становится обострение конкуренции со стороны альтернативных
программных разработок. Чем большее количество продавцов программных средств
предлагает их альтернативные варианты, и чем большее количество потребителей
уже использует или будет в дальнейшем использовать данные программные
разработки, предлагаемые продавцом, тем меньшая дополнительная
прибыль потребителя и тем быстрее она будет уменьшаться. Верно, также, и
обратное — что при уменьшении конкуренции дополнительная прибыль растет. В этой связи, на практике,
при продаже программной продукции с исключительными правами
использования обычно устанавливается надбавка к базовой роялти в размере от 25
до 50%.
Ставки роялти —
один из двух факторов суммы роялти или цены, которую получит продавец программной
продукции от ее реализации на рынке. Второй фактор связан с периодом платежей
роялти.
Период платежей
роялти составляет на практике от 5 до 10 лет. Срок выплаты будет
больше, если покупателю предлагается исключительное право на
использование программного продукта или если продукция запатентована, что
препятствует ее свободному распространению на предприятиях конкурентов.
Достаточно часто
разрабатываемый программный продукт является тиражируемой продукцией.
Изготовление любой тиражируемой продукции состоит из двух этапов: создание
программного продукта, который является конечным изделием, и создание тиража.
Основные затраты в этом случае приходятся на создание оригинального
программного продукта, а создание тиража сводится к сравнительно нетрудоемкому
процессу копирования и сопровождения, и, быть может, затрат на маркетинг.
Проведем теперь
расчет стоимости создаваемого программного продукта. Стоимость продукции
включает в себя себестоимость и планируемую прибыль. Себестоимость составляется
из основной заработной платы разработчика, дополнительной заработной платы и
отчислений на социальное страхование. Кроме того, в нее входят амортизационные отчисления, расходы
на электроэнергию и на аренду помещения.
Планируемую
прибыль примем равной 30%.
Рассмотрим это
более подробно.
На создание
данного программного продукта пяти программистам соответствующей квалификации
требуется 6 месяцев. Исходя из размеров оплаты их труда, составляющей в месяц
в среднем 3000 рублей, определяем, что за рассматриваемый период сумма
заработной платы разработчикам составит 90000 рублей. В стоимость
программного продукта также входит амортизация оборудования, которая, в данном
случае, включает в себя амортизацию 5 компьютеров, на которых работают
программисты, за период разработки.
Расходы на
арендную плату за рассматриваемый период, также переносятся на стоимость
данного программного продукта.
Эта сумма
определяется исходя из годовой арендной платы одного квадратного метра
рабочей площади помещения и с учетом того, что рабочее место 1 программиста
занимает 6 квадратных метров, следовательно, требуемая площадь составит 30
квадратных метров.
Сложив все
вышеперечисленные расходы, получим сумму, которая и будет являться стоимостью
произведенного программного продукта.
В связи со
сказанным выше, в некоторых случаях бывает сложно либо нецелесообразно
проводить подобные расчеты и цену можно установить исходя из конъюнктуры цен
на аналогичную продукцию.
Все
вышеприведенные факторы обусловливают значительные преимущества
рассматриваемой системы и, в частности, использования для управления работой объекта локальной
компьютерной сети. Рассмотренные преимущества являются основой
экономической эффективности разработки и показывают необходимость применения ее
на практике.
Данная дипломная
работа посвящена разработке автоматизированного рабочего места для
научно-технической библиотеки университета.
В процессе
разработки данной дипломной работы были получены следующие результаты:
Разработаны 17
функциональных таблиц, предназначенных для хранения информации о изданиях и
читателях. Для каждой таблицы определены соответствующие атрибуты (поля), общее
количество которых для всех таблиц составило 60 наименований. Во всех таблицах
для каждого атрибута выбран соответствующий тип данных и оптимальный размер
хранимых в этим поле данных.
Разработка
логической структуры базы данных также включает в себя определение и создание
индексов для ключевых и неключевых полей таблиц, определение и создание связей
между таблицами, необходимых для работы запросов. В итоге получена законченная,
достаточно сложная логическая структура базы данных, состоящая из большого
количества таблиц, связанных между собой особым образом.
Для данной
структуры базы данных, разработаны структура и функциональные модули АРМ, получен
интерфейс пользователя позволяющие пользователю работать с базой данных.
Из выше
описанного следует, что задачи, поставленные перед данной работой выполнены в
полной мере.
Было проведено
технико-экономическое обоснование практического внедрения данной разработки,
проведён расчёт стоимости программы и проанализирована экономическая
эффективность работы библиотеки после её установки, а именно высвобождение
кадров и значительная экономия времени на выполнение тех же задач, которые
осуществлялись ранее без использования данного программного продукта.
Программные
продукты, подобные выше описанному, разрабатываются в единичном экземпляре, с
учётом пожеланий и требований заказчика. Проектируемое автоматизированное
рабочее место, разрабатывалось как учебное, но при незначительных доработках,
может быть внедрена на практике и эффективно выполнять поставленные задачи.
В ходе
экспериментов было установлены требования для нормального функционирования
настоящего АРМ, для практической установки требуется компьютер не ниже i80486DX4-100, объём оперативной памяти, которого
должен составлять не менее 16Mb и
свободное место на жестком диске около 40 Mb. Необходимые программные средства – наличие Microsoft Windows 95/98.
1. Дж. Мартин «Организация баз
данных в вычислительных системах», Мир, Москва, 1990 г.
2. К. Дейт «Введение в системы
управления базами данных», БИНОМ, Москва, 1999 г.
3. А. А. Попов «Программирование
в среде СУБД Fox Pro 2.5», Радио и связь., Москва,
1994 г.
4. М. Д. Антонович «Visual FoxPro 3 для Windows», БИНОМ, Москва, 1996 г.
5. В. М. Владимирова, А. С.
Воронина и др. «Стандарты по библиотечному делу и библиографии», Издательство
стандартов, Москва, 1985 г.
6. В. М. Стриганов и др.
«Библиотечно-библиографическая классификация», Книга, Москва, 1986 г.
7. М. А. Аппак
«Автоматизированные рабочие места на основе ПЭВМ», Радио и связь, Москва, 1989
г.
8. В. Л. Бройдо, В. С. Крылова
«Научные основы организации управления и построения АСУ», Высшая школа, Москва,
1990 г.
9. А. Ф. Иоффе «Персональные ЭВМ
в организационном управлении», Наука, Москва, 1988 г.
10. «Библиотекарь», Журнал № 1-10 1997 г.
11. «Библиотекарь», Журнал № 6-12 1998 г.
12. «Библиотекарь», Журнал № 1-12 1999 г.
13. «Библиотекарь», Журнал № 1-3 2000 г.
[1] БЕН РАН - Библиотека по естественным наукам Российской Академии наук
[2] ИРБИС - Интегрированная развивающаяся библиотечно-информационная
система