Постоянное развитие социалистического народного хозяйства, где процессы производства и планирования становятся все сложнее и все более взаимосвязанными, требует совершенствования методов и форм управления на всех уровнях и во всех сферах народного хозяйства. Применение вновь получаемых научно-технических результатов, и в частности, применение современных математических и технических средств играет очень важную роль в качестве основных факторов при решении актуальных экономических задач.
Во всех социалистических странах, и в частности, на Кубе, поставлены большие задачи в области увеличения производительности труда и благосостояния народа, несомненно в зависимости от конкретных условий страны. На I и П съездах Коммунистической партии Кубы [1,2} было уделено большое внимание этим вопросам и были определены главные направления дальнейшего развития страны быстрыми темпами на основе задач, возникающих в условиях научно-технической революции. Повышение уровня социалистического управленческого труда является для этого важной предпосылкой. В работе [Ю] В. М. Глушков утверждает, что возможность увеличения производительности труда в сфере управления сегодня дают только электронные вычислительные машины (ЭВМ) и основанные на их использовании автоматизированные системы управления (АСУ). Кроме того, необходима научно обоснованная система информации.
В настоящее время развертывание организационных и технических средств информационной работы требует упрощения выборки нужных данных из большого количества накопленной информации со значительной степенью достоверности и без потерь времени. Ряд причин делают обычные средства обработки информации недостаточными. Дальнейшее развитие и повышение эффективности автоматизированных систем управления и вычислительных центров, в свою очередь, вызвали широкое развитие работ по созданию систем управления базами данных различного назначения.
Сегодня в развитых странах трудно себе представить в любой предметной области реальную большую вычислительную систему, которая не содержала бы в качестве основной компоненты систему управления базами данных. На Щгбе, маленькой развивающейся социалистической стране, относительно недавно применяются системы управления базами данных как наилучший в настоящее время способ обработки информации. До наших дней накопленный опыт в основном сосредоточен в использовании систем частного назначения и в попытке эксплуатации коммерческих систем общего назначения, таких как S О С R AT Е [381 из французской фирмы С11. Постоянно увеличивается применение систем управления базами данных и приобретенный навык в общем положителен.
После вступления в Совет Экономической Взаимопомощи в качестве постоянного члена Куба стремится к распространению и эксплуатации вычислительных машин Единой Системы в главных министерствах и учреждениях. Это позволяет организовать эффективное управление, наилучший контроль и использование оборудования и кадров специалистов, что соответствует действительным условиям страны, которые заставляют рационально использовать находящиеся в распоряжении технические средства и персонал.
Кроме этого, в некоторых министерствах и учреждениях существуют вычислительные центры, но нет необходимых кадров, чтобы решать задачи такого масштаба, и есть министерства и учреждения, в которых нет вычислительных центров и которые пользуются устройствами других учреждений.
Несмотря на практическую важность и реалвную эффективность систем частного назначения, нынешняя линия работы на Кубе направлена на интеграцию этих систем в автоматизированные системы управления. Учитывая наличие некоторого опыта и благодаря поддержке социалистических стран, и в частности Советского Союза, поставлена задача разработать системы управления базами данных общего назначения, удобных и эффективных в эксплуатации. Исходя из этого, предлагается система управления базами данных PC (реляционная система) как первая попытка создания, проектирования и реализации системы этого вида на Кубе.
Система управления базами данных — это совокупность программного обеспечения и аппаратных средств, основной функцией которой является выполнение операций по обработке данных для прикладных программ. Несомненно основой любой системы баз данных является модель данных. Л. А. Калиниченко в работе [16], кроме более строгого определения этого понятия, рассматривает модель данных как совокупность методов и средств определения логической структуры баз данных и динамического моделирования состояний предметной области в базе данных. Существуют по крайней мере три основные класса моделей, которые используются в системах баз данных: иерархическая модель, сетевая модель и реляционная модель, которые подробно изложены в литературе [5,13,23,29,41].
Выбор подходящей модели данных для конкретной системы управления базами данных представляет собой важную и трудоемкую задачу. В практике разработки систем управления базами данных не существует идеальной модели данных. Для сравнения различных классов моделей данных и выбора одного из них необходимо рассмотреть их с общих, абстрактных и конкретных позиций, позволяющих выявить относительные достоинства и недостатки моделей различных классов.
Основное достоинство иерархической модели заключается именно в структуре представления данных в виде деревьев, которая обеспечивает простоту понимания и использования для прикладных пользователей, хорошо знакомых с иерархическими структурами. При этом иерархическая модель может легко применяться в решении задач некоторых областей реального мира, характеризующихся иерархическими структурами. С другой стороны, из-за строгой иерархической упорядоченности объектов запросы в иерархической модели оказываются несимметричными, так что, если два запроса сформулированы умышленно симметрично, то один не является инверсией другого [13]. Эта ассиметрия — основной недостаток иерархической модели данных, поскольку она затрудняет работу пользователя. Взаимосвязи «многие ко многим», хотя и могут быть реализованы, требуют очень сложной структуры. Кроме этого, усложняются операции запоминания, и необходима процедурность операций манипулирования данными. Тем не менее, существуют хорошо зарекомендовавшие себя системы управления базами данных, основанные на применении иерархической модели, как IMS [13], ОКА [з], ИНЭС [4 ] .
Главным достоинством сетевой модели является то, что она позволяет непосредственно моделировать часто встречающиеся в реальном мире взаимосвязи «многие ко многим «. Основной недостаток сетевой модели состоит в ее сложности, поскольку прикладной программист должен детально знать логическую структуру базы данных, чтобы осуществлять навигацию по этой структуре. Сетевая модель более симметрична, чем иерархическая модель, но процедуры для решения запросов в некоторых случаях более сложны, чем при иерархической организации. Аномалии запоминания возникают и в этой модели. Существуют однако успешные реализации систем управления базами данных на основе сетевой модели, как dbtg COOASyL CI3,23], СЕДАН [26], БАНК [14] и много других.
Согласно Дж. Ульману [29] реляционная модель обладает дескриптивной мощностью других моделей при простейшей организации данных в виде отношений, которые пользователю удобно представлять себе как таблицы. Пользователь формулирует запросы в терминах информационного содержания таблиц и не должен принимать во внимание сложные аспекты системной реализации. Это обеспечивает симметрию и непроцедурность запросов. В аномальных случаях операции запоминания можно минимизировать на основе процесса нормализации [13,29,41,42], благодаря тому, что модели базируются на теории отношений. Центральной проблемой, связанной с применением реляционной модели, является достижение хорошей производительности. Существуют по крайней мере, две технические причины, которые в настоящее время непосредственно влияют на эту проблему: отсутствие ассоциативной памяти, в которой поиск информации осуществляется по значениям, а не по адресам, и отсутствие машинных инструкций, автоматически выполняющих математические операции теории множеств. Однако, Э. Ф. Кодд в работе [44], приводит некоторые аргументы, обосновывающие значительное улучшение производительности труда пользователей при применении реляционной модели. В последнее десятилетие разрабатывается и используется много хороших систем управления базами данных, обеспечивающих реляционную модель, на основе моделирования и оптимизации необходимых операций. Примерами этих систем являются.
SYSTEM R [37], PRTV [55 ], INGRES [53], ПАЛЬМА [ II ], СИЗИФ [l7l .
Для более детального сопоставления моделей потребуется более совершенная система понятий, которая дается в [1б], но это не является целью настоящей работы. В работах [21,4б] подробно излагаются причины выбора реляционной модели в качестве основы системы управления базами данных PC. Коротко можно сказать, что представление данных в виде таблиц — одна из важнейших черт реляционной модели — обусловливает выбор реляционной модели для системы PC, поскольку оно обеспечивает наиболее простой и единый способ представления данных кубинским пользователям.
Система PC также основывается на техническом и математическом обеспечении ЕС ЭВМ и обеспечивает описание и обработку информации как в пакетном, так и в диалоговом режимах. В работах [ 28,47] излагаются основные характеристики и архитектуры системы управления базами данных PC.
Самая главная характеристика системы PC заключается в том, что она позволяет управлять совокупностью баз данных с адекватной степенью независимости данных. Совокупность баз данныхэто множество баз данных, имеющихся в каждый данный момент времени, которое является высшим уровнем логической организации в системе. Остальные в порядке понижения уровни логической организации в системе PC — это база, отношение и атрибут. В дальнейшем под «объектом» будем понимать любой элемент из этих трех уровней в совокупности баз данных. Основное правило образования имени объекта заключается в том, что имена объекта должны однозначно определять либо соответствующую базу, либо соответствующее отношение, либо соответствующий атрибут.
В системе PC общая схема состоит из совокупности баз данных, порядок и объем которой зависит только от ресурсов ЭВМ. Каждый пользователь может определить свою частную схему, состоящую из одной или нескольких баз данных, определенных этим пользователем, который получает название «пользователь-хозяин». Хозяин информации — единственный, кто может переопределить свои объекты и разрешить другим пользователям иметь доступ к ним. Подсхема пользователя строится автоматически и динамически системой, поэтому пользователю не нужно определять ее.
Система PC допускает параллельную работу пользователей через дисплей и через прикладные программы одновременно. Ограничение числа одновременно работающих пользователей зависит от возможностей и ресурсов ЭВМ. Имеется также механизм защиты данных от неразрешенного доступа. При этом пользователь системы PC имеет возможность доступа к любому объекту при следующих условиях: либо объект незащищенлибо объект защищен, но пользователю предоставлено право доступа к немукроме того, контроль одновременного использования объекта в системе не запрещает пользователю доступ к объекту.
В системе PC пользователь не обязан сообщать первичные ключи его отношений. Если ключ указан, то система использует его только для обнаружения повторяющихся строк, но не для определения адресов строк. Пользователь может также указать на создание обратных списков, соответствующих тем атрибутам, по которым чаще производятся запросы.
Другая важная характеристика системы PC состоит в том, что пользователь располагает возможностью использовать подъязык данных ЯРС (язык реляционной системы) высокого уровня, либо как расширение базового языка в пакетном режиме, либо как язык запросов в диалоговом режиме. Однако, операции над объектами совокупности баз данных осуществляются моделированием необходимых алгоритмов и структур данных, посредством использования интерпретатора выражений промежуточного кода КРС (код реляционной системы). Система PC обеспечивает трансляцию инструкций подъязыка данных ЯРС в эквивалентные им выражения промежуточного кода КРС.
Система управления базами данных PC разделяется на четыре подсистемы, которые осуществляют основные функции системы:
• Монитор создания, обработки и защиты данных, который является подсистемой, имеющей доступ к совокупности баз данных.
• Вспомогательная подсистема, которая выполняет функции проверки целостности, восстановления, реорганизации, статистики и другие.
• Монитор обработки в пакетном режиме, предназначенный для обработки и запуска прикладных программ, написанных на базовом языке и содержащих инструкции подъязыка данных ЯРС.
• Монитор обработки в диалоговом режиме, предназначенный для подготовки и запуска запросов информации, используя инструкции подъязыка данных ЯРС непосредственно с терминалов. Однако, в системе управления базами данных PC пользователь не имеет прямого контакта со средствами, которые обеспечивают связь между подсистемами внутри системы. Пользователь только работает в своих рабочих областях или на экране видеотерминала. Процедуры поддержки монитора обработки в пакетном режиме, монитор обработки в диалоговом режиме, механизм связи между разделами и интерпретатор монитора создания, обработки и защиты данных автоматически осуществляют действия, необходимые для выполнения команд пользователя.
Разработка системы управления базами данных PC осуществляется небольшой группой лиц, которые работают в трех государственных учреждениях Кубы. Большой объем работ по исследованию и разработке системы разделен между тремя диссертационными работами:
1. Монитор создания, обработки и защиты данных реляционной системы управления базами данных, разработан Лопесом Хесусом.
2. Монитор обработки в диалоговом режиме и архитектура реляционной системы управления базами данных, разработаны Самора.
Виктором.
3. Монитор обработки в пакетном режиме и подъязык данных реляционной системы управления базами данных, разработаны Гарсией Лусиной, в настоящей работе. Следует отметить, что ради связности изложения некоторые разделы настоящей диссертационной работы содержат сведения, уже освещенные в остальных двух диссертационных работах. Основные цели данной работы заключаются в следующем:
• Разработка и реализация монитора обработки в пакетном режиме, определение порядка работы прикладных программ в системе управления базами данных PC, обеспечение взаимодействия между прикладными программами и совокупностью баз данных в пакетном режиме.
• Описание подъязыка данных ЯРС, который характеризуется полным, непроцедурным набором инструкций, обеспечивающих функции описания, поиска и запоминания данных.
• Спецификация структуры компилятора подъязыка данных ЯРС, обеспечение лексического, синтаксического и семантического анализа инструкций подъязыка данных ЯРС, преобразование инструкций подъязыка данных ЯРС в выражения промежуточного кода КРС.
ЗАКЛЮЧЕНИЕ
.
Разработанная система PC является системой управления базами данных общего назначения с возможностью параллельного коллективного использования, которая обеспечивает достижение основных целей, поставленных перед любой СУБД, и особых целей, среди которых имеются:
• обработка заданий в пакетном режиме;
• непосредственный доступ пользователей с терминала в диалоговом режиме;
• параллельный доступ нескольких пользователей к базам данных в обоих режимах обработки;
• наличие высокоуровневого языка для взаимодействия пользователей с системой;
• обеспечение допустимых преобразований между внутренним и внешним представлением данных.
Проектирование и реализация монитора обработки в пакетном режиме, и в частности, компилятора подъязыка данных ЯРС осуществлялось на основе применения общих методов построения компиляторов и на принципе модульности, что облегчило отладку и позволило без особого труда расширять возможности системы. Примененный принцип модульности позволяет легко употреблять различные общепринятые языки программирования в качестве базовых языков.
Основные моменты работы монитора обработки прикладных программ в пакетном режиме следующие:
I. Работа препроцессора, который осуществляет обнаружение инструкций подъязыка данных ЯРС в прикладной программе, преобразование инструкций подъязыка данных ЯРС в эквивалентные им выражения промежуточного кода КРС, замену инструкций подъязыка.
— 8 8данных ЯРС во входной прикладной программе соответствующими инструкциями базового языка, в большинстве которых содержатся выражения промежуточного кода КРС;
2. Компиляция и установление связей прикладной программы, полностью написанной на базовом языке. Именно во время установления связей в программу включаются процедуры поддержки, необходимые при шаге выполнения прикладной программы;
3. Выполнение прикладной программы, с использованием интерпретатора КРС для действительного осуществления операций над совокупностью баз данных, и процедур поддержки для обеспечения успешного взаимодействия между прикладной программой и монитором создания, обработки и защиты данных, в частности, для обмена данными между рабочими областями и совокупностью баз данных с допустимыми преобразованиями.
При этом большая часть работы по разбору, связи имен и выбору усовершенствованного пути доступа осуществляется во время работы препроцессора и не влияет на время выполнения прикладной прсь-граммы.
Монитор обработки в пакетном режиме системы PC дает сообщение об ошибках, как во время работы препроцессора, так и во время работы компилятора базового языка. Сама прикладная программа определяет последующие шаги задания, которые осуществляются в зависимости от серьезности происшедших ошибок.
Большинство модулей монитора обработки в пакетном режиме и компилятор подъязыка данных ЯРС написаны на языке программирования высокого уровня ПЛ/1, поскольку при этом уменьшается время" затрачиваемое на программирование и отладку. В первой версии монитора обработки в пакетном режиме системы PC язык ПЛ/1 используется также в качестве базового языка прикладных программ. К настощему времени полностью реализован монитор обработки в пакетном режиме с использованием имитатора интерпретатора промежуточного кода КРС. Объем программ и каталогизированных процедур составляет 55 модулей и приблизительно 2 тысячи инструкций языка ПЛ/1 и операторов управления заданиями.
Компилятор подъязыка данных ЯРС отлажен на основе подмножества подъязыка, в котором условия формулируются без использования кванторов. Объем программ составляет около 3,5 тысяч инструкций ГШ/1.
В дальнейшем предполагаются следующие направления работы:
• объединение всех компонент системы управления базами данных PC в единый работающий комплексреализация и эксплуатация монитора обработки в пакетном режиме с использованием других базовых языков;
• расширение компилятора подъязыка данных ЯРС. Особое внимание будет уделено, прежде всего, разработке и усовершенствованию модуля оптимизации компилятора, включая обработку условий, содержащих кванторы существования и всеобщности. Система управления базами данных PC — единообразна, поскольку предоставляет возможность использования подъязыка данных ЯРС как в качестве расширения базового языка в пакетном режиме, так и в качестве языка запросов в диалоговом режиме с небольшими отличиями. Подъязык данных ЯРС предлагается как язык описания данных, так и как язык обработки данных. Он дает каждому пользователю возможность описывать свою схему, манипулировать объектами и запрашивать информации и даже в зависимости от условий возможность создавать и обновлять данные в совокупности баз данных. В подъязыке данных ЯРС пользователь имеет в распоряжении набор достаточно мощных инструкций, которые с высокой степенью автоматизации оперируют либо с объектами, либо со строками.
Подъязык данных ЯРС обеспечивает высокий уровень независимости данных. В инструкциях подъязыка данных ЯРС необходимо только указать, какая информация должна обрабатываться, а описания способа ее получения не требуется. Сама система выбирает адекватный метод. С другой стороны, пользователь не должен определять объем памяти, необходимый для своих данных.
Поскольку в системе управления базами данных PC полностью не достигается симметрия, пользователь может оказать влияние на эффективность своих программ, используя возможность описать обратный список для любого атрибута отношения. Из-за этого уменьшается уровень независимости данных, но увеличивается производительность системы.
Подъязык данных ЯРС позволяет запрашивать любую информацию, содержащуюся явным или неявным образом в совокупности баз данных, и получить ее в затребованном пользователем виде и порядке. Этот подъязык является оперативным инструментом для ответа на непредвиденные запросы, поскольку уменьшается время программирования и отладки на основе реляционного подхода и непроцедурности языка. Пользователь может легко обработать затребованную информацию и при желании сохранить ее в совокупности баз данных.
Во многих ситуациях подъязык данных ЯРС позволяет легко и автоматически изменять структуру и содержание совокупности баз данных без осуществления поиска и обновления по строкам. Возможность описания временных объектов и простота обмена данными между временными и постоянными объектами упрощает поэтапную работу пользователя с совокупностью баз данных.
Система управления базами данных PC обеспечивает проверку существования использованных в программах объектов и разрешения доступа к ним как во время компиляции, так и во время выполнения. Подъязык данных ЯРС дает возможность избежать таких проверок во время компиляции при работе в пакетном режиме.
При прерывании система управления базами данных PC дает возможность сохранения результатов всех завершенных к этому моменту инструкций при желании пользователя при работе как’в пакетном режиме, так и в диалоговом, с помощью использования определенных средств подъязыка данных ЯРС.
В первой версии подъязыка данных ЯРС не предоставляется возможность использовать библиотечные функции внутри запроса, хотя с помощью процедурных средств базового языка можно вычислить любую из них. Тем не менее, до сих пор в диалоговом режиме системы PC нельзя осуществлять такие вычисления.
Дальнейшее развитие подъязыка данных ЯРС направлено на: •-. Обеспечение возможности работать не только с библиотечными функциями, но и с арифметическими выражениями, как составными частями запросов в подъязыке данных ЯРС.,. Изучение подъязыка данных с целью упрощения формулировки запросов для пользователей, не имеющих достаточного математического уровня. Расширение подъязыка данных для работы с запросами непострочного вида и использования логических выражений в случае инструкций записи и обновления данных.. Расширение средств обеспечения целостности, защиты и безопасности данных.
Основные научные результаты, полученные в работе, заключаются в следующем:
I. Спроектирована система управления базами данных PC, которая может использоваться в различных областях исследования и народного хозяйства, где требуется хранить, обрабатывать и запрашивать информацию, поставленную согласно реляционной модели. Разработка системы PC совместно осуществляется Лопесом Хесусом, Самора Виктором и Гарсией Лусиной.
2. Разработан и реализован монитор обработки в пакетном режиме, который управляет всеми действиями, обеспечивающими успешную обработку прикладных программ в системе управления базами данных PC. Двумя основными элементами монитора являются препроцессор инструкций подъязыка данных ЯРС в прикладной программе и процедуры поддержки при шаге выполнения прикладной программы.
3. Разработан подъязык данных ЯРС, который является единообразным, непроцедурным, мощным, полным языком, обеспечивающим довольно высокий уровень автоматизации процессов общения пользователя с совокупностью баз данных в ЭВМ.
4. Разработан и реализован компилятор подъязыка данных ЯРС на основе подмножества возможностей подъязыка, не включающего кванторов существования и всеобщности в конструкциях вида «условие». Осуществляется лексический, синтаксический и частично семантический разбор инструкций подъязыка данных ЯРС и генерация эквивалентных им выражений промежуточного кода КРС,.