Авторитетность издания
Добавить в закладки
Следующий номер на сайте
Использование специализированной СУБД при работе с таблицами и текстами
Аннотация:
Abstract:
Авторы: Кутасова Т.Ю. () - , Стронгин Р.Г. () - | |
Ключевое слово: |
|
Ключевое слово: |
|
Количество просмотров: 9912 |
Версия для печати |
Задачи, решаемые в управлении, при научных исследованиях и в производстве, часто требуют обработки больших объемов таблично-текстовой информации. К ней относятся статистические данные, обрабатываемые при моделировании и оптимизации технологических процессов, статистические данные по заболеваемости, используемые в медицине, данные планов НИР и т.п. При этом объем таблиц и текстов часто заранее не известен и может изменяться в процессе работы с ними. Таблицы могут иметь многоуровневую структуру шапки и боковика; элементами таблиц могут быть как числа, так и символьная информация. Значения элементов таблиц могут вычисляться по формулам или с помощью специальных алгоритмов (вычисление математического ожидания, дисперсии в строке или столбце и т.п.). Часты ссылки из клеток одной таблицы на другие таблицы. Взаимосвязь различных этапов технологического процесса можно отобразить через взаимосвязь таблиц, описывающих эти этапы. Ручная обработка такой информации трудоемка, а часто практически невозможна, поэтому совершенно необходимы инструментальные средства создания и обработки таблиц и текстов на ЭВМ, доступные массовому пользователю. Ориентация на пользователя, специалиста в конкретной прикладкой области, требует простоты эксплуатации таких систем, что достигается диалоговым режимом работы, отображением таблиц и текстов на дисплее. Для диалогового режима необходим быстрый доступ к строкам, столбцам и элементам таблиц. Таблицы и тексты часто используются разными пользователями при решении разнообразных задач, что обуславливает необходимость ведения единой базы таблично-текстовой информации. Создать такую систему на мини-ЭВМ отечественного производства, используя серийные СУБД (КВАНТ, СЕТОР и т.д.), практически невозможно, поэтому была разработана специализированная СУБД с диалоговым интерфейсом для пользователя-непрограммиста. В основу структуры были положены списки и страничная организация памяти. Память на дисках (архивы) и оперативная память (ОП) разбиты на разделы фиксированного объема. Таблицы хранятся в табличном архиве, тексты—в текстовом. Обмен между ОП и дисками осуществляется при помощи страниц. Содержимое раздела архива считываете» в страницу ОП, где происходит обработка информации, затем в случае модификации страница ОП вводится в соответствующий раздел архива. Для хранения таблиц используется мульти-списковая структура с постраничным разбиением; небольшие таблицы размещаются целиком в одном разделе. Внутри раздела таблица хранится в виде двух иерархических двухсвязных списков, соответствующих шапке и боковику таблицы, объединенных звеном заголовка, и матрицы элементов. Списки формируются из звеньев, соответствующих строкам, столбцам или охватывающим полосам таблицы. Звенья объединены в двухсвязные списки свободных строк; в процессе формирования структуры хранения конкретной таблицы соответствующие звенья исключаются из списков свободных строк и присоединяются к списку, соответствующему шапке или боковику таблицы. Матрица элементов таблицы хранится в виде массива, в котором она расположена по строкам. Длина массива делится на максимальное число строк, которые можно разместить в разделе; определяется квант массива для хранения одной строки. В звенья списка свободных строк заносятся смещения каждой строки от начала массива. На этапе формирования шапки при вводе нового столбца для всех его элементов отводятся кванты массива одинаковой длины, и в соответствующее звено записываются длина кванта и его относительное смещение от начала строки. Адрес любого кванта массива вычисляется по формуле А + S + S н стр столб где А — адрес начала массива, S — смещение строки от начала массива, S 6 - относительное смещение столбца от начала строки. Таким образом, с помощью относительной адресации можно получить доступ к любому элементу таблицы. При создании табличного архива определяется максимальное число строк (N), столбцов (М), охватывающих полос (К), которые размещаются в одном разделе архива, и максимальная длина кванта массива для хранения элементов строки таблицы (DK). Если размеры матрицы и рамки таблицы превышают доступный объем памяти в разделе {N, М, К, DK), таблица хранится в виде связанной совокупности из нескольких подтаблиц, называемой структурой агрегирования. Таблица разбивается на горизонтальные и вертикальные ряды агрегирования. Подтаблицы, стоящие на пересечении рядов агрегирования, помещаются Bv разные разделы, при этом для каждой подтаблицы хранится соответствующий фрагмент шапки и боковика. Для адресации подтаблиц вводится агрегированная матрица адресов, строки и столбцы которой соответствуют рядам агрегирования. Каждый элемент агрегированной матрицы содержит адрес раздела с соответствующей подтаблицей исходной таблицы. Агрегированная матрица является простой таблицей и также записывается в табличный раздел архива. В звеньях матриц адресов указывается число строк (столбцов), принадлежащих соответствующему ряду агрегирования, для обеспечения быстрого доступа по номеру строки (столбца). Если размеры агрегированной матрицы адресов превышают объем доступной памяти в разделе архива (N, М, К, DK), то эта матрица делится на подматрицы адресов, которые размещаются в различных разделах архива, путем введения горизонтальных и вертикальных рядов агрегирования. Этим осуществляется вторая степень агрегирования. Элементы матрицы адресов второй степени указывают на разделы архива, содержащие подматрицы адресов первой степени, которые, в свою очередь, указывают на разделы, хранящие подтаблицы исходной таблицы. Аналогично можно построить агрегированные матрицы третьей, четвертой и т.д. степеней. Заголовок подматрицы адресов К-ой степени агрегирования содержит указатель раздела, хранящего матрицу К + 1-ой степени, в которой данная подматрица является агрегированным элементом. Заголовок матрицы адресов высшей степени агрегирования содержит указатель собственного раздела, что является признаком высшей степени агрегирования. Доступ к информации исходной таблицы осуществляется через структуру матриц адресов, а к таблицам - через каталог таблиц. Он располагается в специальных разделах каталога табличного архива и формируется из звеньев таблиц, которые объединены в двухсвязный список свободных строк. При вводе новой таблицы из списка свободных строк выделяется звено, которое присоединяется к каталогу таблиц с внесенной информацией о таблице. Каталог таблиц организован также в виде двухсвязного списка. При формировании структуры хранения таблицы в звено таблицы заносится адрес раздела с таблицей, если она небольшая и размещается в одном разделе, или матрицей адресов старшей степени агрегирования, если таблица не убирается в один раздел. Текст хранится в виде двухсвязного списка строк фиксированной длины. Если текст небольшой, он размещается в одном разделе. Все строки текстового архива объединены в двухсвязный список свободных строк. При вводе текста пустые строки исключаются из списка свободных, заполняются и присоединяются к структуре хранения текста. Доступ к текстам также осуществляется через каталог, который хранится в разделах каталога текстового архива. Каталог текстового архива устроен аналогично каталогу табличного архива. В звеньях каталога записаны адреса первых строк текста. Таблицы связаны с текстами следующим образом: в звеньях полос шапки и боковика таблицы могут быть ссылки на справочные тексты, поясняющие имена полос; допустимы ссылки на тексты из клеток таблицы. Списковая структура хранения таблиц и текстов позволяет легко и быстро осуществлять операции модификации структуры (вставка, удаление, перестановка строк или столбцов и т.д.). Например, если строки таблицы принадлежат к одному ряду агрегирования, для перестановки строк в тексте или таблице достаточно изменить указатели соответствующих строк, не переписывая их содержимого. Для доступа к фрагменту таблицы или текста достаточно прочитать в ОП соответствующий раздел или группу разделов архива благодаря страничной организации памяти. Для каждого конкретного набора таблиц и текстов можно выбрать длину раздела/страницы, обеспечивающую оптимальные временные характеристики СУБД. Для более эффективного использования памяти в архивах можно ввести разную разметку (N, М, К, DK) табличных разделов архива для разных таблиц. Списковая структура, однако, имеет и недостаток. При ненадежной работе ЭВМ машинный сбой может привести к частичному или полному разрушению информационных структур, особенно если сбой произойдет при выполнении операции, модифицирующей структуру хранения (ввод строк/столбцов в таблицу, ввод/удаление текста и т.д.). Для повышения надежности вводится текущее копирование модифицируемых разделов структуры в процессе выполнения перечисленных операций. Копирование разделов осуществляется в специальный архив копий. Информация о копировании заносится в системный журнал, который хранится в первых разделах архива копий. При очередном запуске системы в случае сбоя происходит восстановление архивов, соответствующее состоянию перед началом прерванной операции. Специализированная СУБД обеспечивает быстрый доступ к данным, диалоговый режим работы и высокую надежность. Система функционирует в ОС RSX ИМ v 4.0 на ЭВМ СМ-4, "Электроника-79". Изложенные идеи нашли реализацию в автоматизированной системе учета и анализа рекламаций, а также анализа фондов заработной платы предприятия. |
Постоянный адрес статьи: http://swsys.ru/index.php?page=article&id=1312 |
Версия для печати |
Статья опубликована в выпуске журнала № 1 за 1991 год. |
Возможно, Вас заинтересуют следующие статьи схожих тематик:
- Формулировка задачи планирования линейных и циклических участков кода
- Компьютерная интеграция и интеллектуализация производств на основе их унифицированных моделей
- Подход к выбору оптимального маршрута при перевозке крупногабаритных грузов на основе нейросетевых технологий
- Алгоритмы и процедуры построения билинейных моделей непрерывных производств
- Опыт разработки и эксплуатации системы управления базами данных (DBS/R)
Назад, к списку статей