[an error occurred while processing this directive]

.цв

ВВЕДЕНИЕ.

.ов

СУБД "Эврика" (СУБД) предназначена для создания и ведения автоматизированных информационных фондов картотечного типа. СУБД относится к группе программных средств автоматизации учрежденческой деятельности. Система обеспечивает ввод, корректировку, накопление, поиск и вывод необходимой пользователю информации в соотвтетствии с запросами.

СУБД является удобным рабочим инструментом для сотрудников административного аппарата учреждения. Для работы с системой не требуется специальных знаний ПЭВМ, операционной системы, языков программирования. Вся работа с СУБД выполняется через разветвленную ситему меню или через стандартные формы документов.

СУБД можно эффективно использовать в составе автоматизированных рабочих мест в самых разнообразных сферах учрежденческой деятельности. Примерами применения системы могут быть:

- контроль исполнения поручений;
- учет кадров;
- библиотечное дело;
- анкетирование;
- учет корреспонденции;
- личная записная книжка;

Приступая к работе по созданию СУБД передо мной стояла основная задача - написать систему простую в обращении. Естественно, что это требование находится в обратной зависимости от уровня сложности задач решаемых системой, выигрывая в одном, мы неизбежно проигрываем в другом. Однако, несмотря на то, что набор функций выполняемых СУБД почти-что минимальный, она занимает вполне определенную экологическую нишу в среде программного обеспечения, и рассчитана на вполне определенные задачи, решение которых с помощью более простых или более сложных систем менее эффективно. В отличие от одной из наиболее распротраненной на западе СУБД для персональных ЭВМ pfs:file фирмы Software Publishing Corporation (прототип СУБД "Эврика"), созданная мной СУБД обладает более удобной системой меню, встроенным генератором отчетов, имеет больший размер виртуальной страницы, что значительно повысило эффективность работы системы, и что наиболее важно, практически неограниченный объем обрабатываемой базы данных (база данных может располагаться на нескольких дисках). Кроме того СУБД имеет гибкую систему работы с несколькими дисководами и реализует некоторые дополнительные функции работы с дисками.

.сс

.цв

Технические средства.

.ов

- ПЭВМ "АГАТ", 7-е исполнение
- принтер CPA-80 или EPSON-80FX
- дополнительный дисковод SHUGART
- 1 или 2 дополнительных дисковода TEAC
- монохромный монитор высокого разрешения
- диски 5,25 дюйма.

.сс

.цв

ЗАПУСК СИСТЕМЫ.

.ов

Запуск системы осуществляется следующим образом:

- вставляется системный диск с СУБД;
- включается принтер (если подключен);
- включается монитор;
- включается системный блок ПЭВМ "АГАТ".

После выполнения выше перечисленных операций СУБД "Эврика" готова к работе, и на экране появляется главное меню. Как видно из рис. 1, СУБД состоит из следующих автономных блоков, количество которых может быть расширено в случае необходимости.

.сс

.ло16

--------------------------------
********************************
*                              *
*         СУБД ЭВРИКА          *
*                              *
*    ALV SOFTWARE  (C) 1988    *
*                              *
********************************

      ПОИСК И ИЗМЕНЕНИЕ

      ЗАНЕСЕНИЕ ДАННЫХ

      ВЫВОД НА БУМАГУ

      УДАЛЕНИЕ ДАННЫХ

      СОЗДАНИЕ БД

      КОПИРОВАНИЕ

      СМЕНА ДИСКОВОДА

      ДИАЛОГ С ДОС

      ОКОНЧАНИЕ РАБОТЫ
-------------------------------
           рис.1
.нф

в главном, как и во всех остальных меню, выбор нужного режима осуществляется с помощью клавиш перемещения курсора, а подтверждение выбора осуществляется путем нажатия клавиши "ВВОД". Текущая альтернатива при этом выделена на экране инверсной строкой.

.сс

.цв

ОСНОВНЫЕ ПРИНЦИПЫ РАБОТЫ СУБД.

.ов

Так как не существует эффективного способа упорядоченного хранения массива данных на нескольких дисках, с одновремнным доступом только к одному из них, пришлось отказаться от методов поиска записей, основанных на данном спосбе хранения.

Ядром СУБД является программа поиска записи по заданному критерию поиска. На вход программы поступает шаблон, поля которого содержат критерии поиска, результатом выполнения одного цикла программы поиска является занесение адреса начала очередной записи, соответствующей критерию поиска, в указатель адреса текущей записи, после чего происходит переход по заранее установленному вектору для дальнейшей обработки найденной записи. Если записей, соответствующих заданному критерию больше нет, то происходит передача управления по заранее установленному вектору окончания поиска.

Подавляющее большинство блоков, составляющих СУБД, использует программу поиска, с дальнейшей обработкой найденных записей согласно их функциональному назначению.

Второй, одной из наиболее "ходовых" программ, является программа ввода шаблона. Эта программа организует ввод записей и критериев поиска в форме шаблона, состоящего из отдельных полей, имеющих названия (о том, как создается шаблон будет рассказано ниже в разделе "СОЗДАНИЕ БД"), и дальнеюшую компоновку в форме записи в определенной области памяти ЭВМ. Таким образом, эта программа совместно с системой меню осуществляет диалог пользователя с СУБД. Более подробно о работе с шаблоном будет рассказано ниже.

В основу работы СУБД заложен виртуальный принцип организации памяти. Весь массив данных, составлящих базу данных, разбивается на равные по величине фрагменты - страницы, по 24 Кбайта каждая. В памяти в определенный момент находится не более одной страницы. Остальные страницы находятся на диске в виде бинарных файлов. По мере необходимости происходит замена одних страниц другими, при этом проверяется флаг изменения содержимого страницы, находящейся в памяти. Если он установлен, то происходит запись текущей страницы в соответствующий файл, и только потом загружается очередная страница.

Кроме файлов, содержащих собственно данные, имеется файл определяющий структуру базы данных, названия и количество полей в записи, их длину, а также форму шаблона, через который происходит обмен данными между пользователем и СУБД. Этот файл создается в блоке СОЗДАНИЕ и имеет расширение .DATA0. Файлы, хранящие записи, имеют расширение .DATAn, где n - порядковый номер страницы виртуальной памяти. Максимально возможное количество страниц, составляющих одну базу данных равно 253. Таким образом общий объем одной базы данных может быть равен 5072 Кбайтам, или примерно 5 Мбайтам.

.сс

.цв

СОЗДАНИЕ БАЗЫ ДАННЫХ.

.ов

Как уже было сказано выше, результатом работы блока создания базы данных является создание файла с расширением .DATA0, хранящего параметры, определяющие структуру записей и формат шаблона. Кроме того, в этом файле содержится информация о количестве хранимых записей, а также о количестве использованных виртуальных страниц. Один байт содержит информацию о версии СУБД, в которой создавалась база данных, это сделано для совместимости со следующими версиями СУБД "Эврика".

Для создания базы данных, нужно, находясь в главном меню, переместить курсор (инверсную строку) на строку "СОЗДАНИЕ БД" и нажать ввод. После этого нажатия управление передается блоку создания базы данных. Выводится чистый экран формата 64х32 символа и в верхнем левом углу появляется мигающий курсор. Перемещение курсора осуществляется клавишами управления курсора. Нажатие какой либо клавиши алфавитно-цифровой клавиатуры осуществляет вывод соответствующего символа на экран с перемещением курсора в следующую позицию в строке. Сдвижка и раздвижка строки осуществляется нажатием клавиш F1 и F2 соответственно. Используя выше описанные функции редактирования, пользователь располагает на экране поля, согласно его требованиям. Для полной очистки экрана следует нажать "УПР+L"

Каждое поле имеет следующий формат:

.цв

"имя поля":***....*

.ов

, где "имя поля" является последовательностью из символов, не содержащей пробелов и двоеточий. Длина создаваемого поля определяется количеством звездочек, стоящих после двоеточия.

Готовый шаблон может иметь, например следующий вид:

.кс0

---------------------------------------------------------------
        
    ПРИБОР:********************    НОМЕР:********              
        
     МЕСТО:********************                                
        
      ДАТА:*********                                           
        
        
                   СОСТОЯНИЕ:******                            
        

ПРОВЕРЯВШИЙ:************************
---------------------------------------------------------------
.нф

После того, как макет создан, нужно нажать "ввод", и когда система выдаст сообщение:"ВВЕДИТЕ ИМЯ БАЗЫ ДАННЫХ:", ввести имя, под которым структура созданной базы данных, а также виртуальные страницы, содержащие записи, будут хранится на дисках. На этом процедура создания базы данных завершается.

.сс

.цв

ЗАНЕСЕНИЕ ДАННЫХ.

.ов

Для перехода в режим занесения данных, в главном меню следует выбрать соответствующую строку и нажать ввод. После выполнения процедуры ввода имени базы данных, в которую будет производится занесение очередных записей, загрузится файл, содержащий данные о структуре заданной базы данных, и на экране должен появиться соответствующий шаблон с мигающим курсором в первой позиции первого поля. Информация может заносится только в те места, которые на шаблоне в режиме создания были выделены звездочками. Используя стрелки "вверх/вниз", пользователь переходит в начало предыдущего или следующего поля соответственно. Для перемещения внутри поля используются стрелки "вправо/влево". Клавиши F1 и F2 сдвигают и раздвигают поле, а "УПР+L" очищает его. Нажатие клавиши "ВВОД" вызывает занесение записи в конец последней страницы текущей базы данных и переход к занесению следующей записи. Для выхода из этого режима пользователь должен нажать клавишу "РЕД". При этом происходит запись текущей виртуальной страницы на диск, а также изменение соответствующих счетчиков в файле, содержащем данные о структуре базы данных. Шаблон, с заполненными полями может выглядеть следующим образом:

.сс

.кс0

---------------------------------------------------------------

ПРИБОР:ПРОГРАММАТОР НОМЕР:1234567

МЕСТО:8 ЛАБОРАТОРИЯ

ДАТА:88/05/16

СОСТОЯНИЕ:ОТЛ.

ПРОВЕРЯВШИЙ:БЕРЕЗУТСКИЙ В.В
---------------------------------------------------------------

.нф

Маленькая особенность занесения цифровой информации: последовательности цифр могут быть разделены нецифровыми символами (за исключениям пробелов), во время поиска они игнорируются. Таким образом, информация записанная в поле ДАТА, будет рассматриваться ситемой во время поиска как число 880516. Отрицательные числа системой игнорируются, а дробные усекаются до целой части. Для полей, которые будут содержать заведомо числовые данные, следует брать длину поля на одно знакоместо больше. Зачем это нужно, будет объяснено в разделе "ПОИСК И ИЗМЕНЕНИЕ".

.сс

.цв

ПОИСК И ИЗМЕНЕНИЕ.

.ов

Поиск информации является наиболее часто используемой операцией по ведению баз данных. Если представить программу поиска, как черный ящик, то на его входе будет название базы данных и критерий поиска, которому должны соответствовать записи, выдаваемые на выходе этого гипотетического устройства.

В данной СУБД критерии поиска передаются аналогично занесению данных в базу данных, то-есть через шаблон. При этом поля содержат критерии поиска. Те поля, в которых ничего не занесено, во время поиска игнорируются. Для удобства и расширения возможностей поиска могут использоваться следующие ключевые символы:

- ">" - имеет смысл только для числовых данных,

ставится в первой позиции соответствующего поля;

- "<" - аналогично ">";

- "=" - означает "любая последовательность символов",

в одном поле может быть задано несколько "=".

Теперь становится ясным, для чего нужно задавать в полях, содержащих числовые данные длину на одно знакоместо больше: это знакоместо во время поиска может содержать ключевые символы ">" или "<". Выше сказаннное удобно пояснить на конкретном примере.

.сс

Предположим, что нам надо найти информацию о всех программаторах, проверявшихся до 1987 года, имеющих отличное состояние и находящихся в 8 лаборатории.

зададим критерий поиска:

.кс0

---------------------------------------------------------------

ПРИБОР:ПРОГРАММАТОР НОМЕР:

МЕСТО:8=

ДАТА:<87/01/01

СОСТОЯНИЕ:О=

ПРОВЕРЯВШИЙ:
---------------------------------------------------------------

.нф

и нажмем клавишу "ВВОД". СУБД выберет из окон шаблона введенную информацию и скомпонует критерий, на основании которого и будет производится поиск. В результате поиска, пользователю будут выданы на экран, только те записи, которые полностью соответствуют введенному критерию поиска. Как только критерий поиска введен, СУБД начинает последовательно просматривать содержимое заданной базы данных, сравнивая записи с введенным критерием, если хотя бы одно поле не соответствует критерию поиска, то эта запись игнорируется и указатель записи перемещается на начало следующей без вывода ее на экран. В противном случае, СУБД выбирает из записи информацию и заполняет соответствующие поля шаблона на экране. Выведя найденную запись на экран система переходит в состояние редактирования записи. Пользователь в этот момент может выбрать одну из трех следующих альтернатив:

- изменить запись. В этом случае по окончании поиска, все

измененные записи будут записаны на диск;

- просто продолжить просмотр базы данных в соответствии с

заданным критерием;

- выйти из режима поиска.

Изменение записи производится аналогично ее занесению. Пользователь перемещаясь по полям шаблона, изменяет их содержимое. Приведя запись к требуемому виду нажимается клавиша "ВВОД", и система продолжает поиск очередной записи, соответствующей заданному критерию. Если записей больше нет, то в случае, если производились изменения, происходит запись соответствующих виртуальных страниц на диск, и выводится общее количество обнаруженных записей.

Нажатие клавиши "ВВОД" без внесения исправлений, вызывает переход к следующей записи.

Нажатие клавиши "РЕД" прерывает процесс поиска с возвратом в гавное меню.

.сс

Результатом работы приведенного выше критерия могут быть например следующие записи:

.кс0

---------------------------------------------------------------

ПРИБОР:ПРОГРАММАТОР НОМЕР:1234000

МЕСТО:8 ЛАБОРАТОРИЯ

ДАТА:78/03/12

СОСТОЯНИЕ:ОТЛ

ПРОВЕРЯВШИЙ:ГОЛОВ А.А.
---------------------------------------------------------------

.сс

или

---------------------------------------------------------------

ПРИБОР:ПРОГРАММАТОР НОМЕР:1225437

МЕСТО:8 СКЛАД

ДАТА:85/10/30

СОСТОЯНИЕ:ОТЛИЧ.

ПРОВЕРЯВШИЙ:ШЕВКУНОВ В.В.
---------------------------------------------------------------
[an error occurred while processing this directive]