Область техники
Система относится к средствам управления хранением данных в памяти компьютерных средств. Система предназначена для упорядоченного внесения, поиска, извлечения и обработки хранимых данных, представленных для пользователя в виде сложных, идентифицируемых блоков данных, описывающих объекты предметной области, с использованием для хранения указанных данных, в том числе существующие системы управления реляционными базами данных.
Предшествующий уровень техники
В большинстве известных систем хранения данных информация представлена с использованием реляционной модели данных. В соответствии с этой моделью данные представлены как набор блоков данных, включающих записи фиксированной структуры, состоящие из полей и взаимосвязанные между собой таким образом, что в результате группировки данные представляются в виде строк таблиц. Совокупность таких таблиц образует реляционную базу данных (далее РБД) (см., например, Тиори-Т. Фрай Дж., Проектирование структур баз данных, Москва, Мир, 1985, с.18-19 /1/).
Данные в реляционных базах данных представляют собой множество именованных таблиц (или отношений в терминах реляционной модели), обладающих следующими свойствами и имеющих следующую структуру. Таблицы имеют так называемый заголовок (или схему отношения), включающий набор имен столбцов или имен атрибутов и множество строк. Строки состоят из полей. Структура любой строки, входящей в данную таблицу, определяется заголовком этой таблицы, а именно: каждому полю ставиться в соответствие имя атрибута. Поле строки может содержать скалярное значение одного из поддерживаемых системой типов данных. Структура таблиц реляционной БД определяется в процессе нормализации исходной сложной (ненормализованной) схемы данных (см., например, Першиков В.И. и др., Толковый словарь по информатике, Москва, Финансы и статистика, 1995, с.222 /2/, Крис Дейт, Введение в базы данных, Издание 6-е. Киев, Диалектика, 1998, с. 259-328 /3/).
Математически строгая реляционная модель данных, являясь теоретическим фундаментом, обеспечивает строгость и однозначность организации данных в РБД, что является важнейшей причиной их широкого распространения.
Известные системы управления реляционными базами (СУРБД) данных обеспечивают создание, уничтожение и модифицирование таблиц, запись и считывание полей данных в строки определенной таблицы, поиск строк по значениям полей, содержащихся в этих строках и включают в себя средство управления памятью компьютерных средств, служащей для хранения данных РБД. Для того, чтобы СУБД выполнила одно из указанных действий, она должно получить специальную управляющую команду, например команду на создание таблицы или команду на добавление строки в таблицу и т.п. Обязательным параметром такой команды является имя (или имена) таблицы, над которой выполняется действие. Для ввода и вывода команд и данных в системах управления базами данных используется блок ввода-вывода. Указанная команда передается по шинам команд в управляющее устройство, которое определенным образом меняет хранящиеся в устройствах хранения (памяти) компьютерных средств данные РБД. Таким образом, данные, хранящиеся в такой системе, представлены для пользователя в виде набора таблиц.
С другой стороны, широкое распространение получил объектно-ориентированный (ОО) подход к разработке информационных систем, который наиболее точно соответствует естественному человеческому восприятию окружающего мира, моделируемого в этих системах. Этот подход предполагает, что информационные системы должны выглядеть для пользователя как совокупность информационных объектов, соответствующих реальным сущностям моделируемой предметной области. Известны системы и языки программирования, которые обладают средствами для поддержки такого подхода, позволяют точно описывать реально существующие объекты и называются также объектно-ориентированными (см., например, Буч Г., Объектно-ориентированое проектирование с примерами применений, Диалектика (Киев) & И.В.К. (Москва), 1992).
Если исходить из необходимости точного описания реальных объектов предметной области, то РБД обладает рядом ограничений. Например, таблицы реляционной БД не могут содержать повторяющихся записей. Однако могут существовать объекты предметной области, которые описываются абсолютно одинаковыми данными. Так же, поле записи в таблицах РБД может содержать одно и только одно значение.
Информация об объектах предметной области также может содержать поля, представляющие собой группы повторяющихся значений. Т.о. задачей изобретения является обеспечение возможности представления и манипулирования в одной компьютерной системе объектно-ориентированного описания объектов предметной области и описания с использованием структуры РБД.
Известна система представления данных заданной структуры в реляционной базе данных. Система содержит блоки данных заданной структуры об объектах, включающие идентификаторы и характеристики объектов, в строки указанных таблиц данных введены идентификаторы, взаимосвязанные с соответствующими идентификаторами объектов данных заданной структуры, а в реляционную базу введен узел записи, включающий таблицу, строки которой содержат указанные идентификаторы и другие элементы записи, взаимосвязанные с характеристиками соответствующих объектов (см. RU 12619 U1, G 06 F 17/30, 20.01.2000 /5/). Указанная система выбрана заявителем в качестве прототипа в качестве объектно-ориентированной системы управления базой данных в реляционных базах данных, т.к. в ней также реализуется принцип объектно-ориентированного описания объектов в РБД. В заявленной системе по сравнению с известной системой /5/ управления базой данных РБД достигается упрощение процесса управления и удобство эксплуатации пользователя базами данных с различной структурой.
Сущность изобретения
Техническим результатом системы является обеспечение управления вводом, выводом и хранением данных, представленных в виде ненормализованных, возможно повторяющихся блоков данных (далее объекты данных), описывающих объекты моделируемой предметной области и осуществление хранения этих данных в РБД.
Техническим результатом также является удобство пользования базами данных, обеспечивающее ускорение создания прикладных информационных систем и упрощение управления существующими в таких системах данными, представленными в нормализованном и ненормализованном виде.
Таким образом, заявленную систему управления вводом, выводом и хранением данных в РБД можно назвать объектно-ориентированной системой управления реляционными базами данных.
Технический результат достигается тем, что описываемая объектно-ориентированная система управления содержит связанные шинами данных и управления память для хранения данных, в том числе данных РБД, управляющее устройство, предназначенное для формирования и/или изменения данных РБД, хранящихся в указанной памяти, блок ввода-вывода команд и данных, связанные по шинам данных и управления, генератор уникальных идентификаторов блоков данных, средство формирования таблиц РБД, служащих для хранения значений атрибутов указанных блоков данных и включающих поля, идентичные полям записей каждого из указанных атрибутов блоков данных РБД, а также поле для записи уникального идентификатора блока данных, средство формирования каталога, представляющего собой таблицу или набор таблиц РБД и содержащего записи, в которых каждое имя атрибута вводимого блока данных поставлено в соответствии с именем таблицы РБД, предназначенной для хранения указанного атрибута, и с описанием структуры этого атрибута, преобразователь команд ввода, поиска и извлечения определенного именем атрибута соответствующего блока данных в команду ввода, поиска, извлечения и добавления строк той таблицы РБД, имя которой поставлено в соответствие с именем указанного атрибута, при этом управляющее устройство также выполнено с возможностью управления преобразованием команд с атрибутами в команду с именем таблицы РБД для формирования и/или изменения данных в РБД, хранящихся в указанной памяти, а данные в системе представляются в виде снабженных уникальными идентификаторами блоков данных и содержат имена атрибутов, которые в свою очередь состоят из повторяющихся записей, каждая из которых представляет собой определенный для каждого атрибута набор полей данных.
Изобретение поясняется чертежами.
На чертеже представлена функциональная схема заявленной системы, содержащая следующие функциональные блоки:
память 1 для хранения данных, в том числе данных РБД. Данные в РБД представлены в виде таблиц. Указанные таблицы представляют собой именованный набор повторяющихся записей, каждая из которых представляет собой определенный для каждой таблицы набор полей данных, таким образом, что набор этих таблиц представляет собой РБД,
управляющее устройство 21, служащее для исполнения команд управления РБД, в том числе команд на создание, уничтожение и изменение таблицы РБД, а также команд на добавление, поиск, изменение и уничтожение записей в этих таблицах, и, в соответствии с полученной командой, определенным образом меняющее хранящиеся в памяти 1 данные РБД, принципы и программы работы таких средств управления РБД широко описаны /1/.
Система содержит также управляющее устройство 22, предназначенное для управления преобразованием вводимых команд с различными атрибутами в команды с именем соответствующей таблицы РБД. Для простоты описания работы системы будем считать, что управляющие устройства 21 и 22 представляют одно управляющее устройство, предназначенное для формирования и/или изменения данных РБД, хранящихся в памяти, и предназначенное для управления преобразованием команд с атрибутами в команду с именем таблицы РБД для обеспечения функции формирования и/или изменения данных РБД. Система содержит блок 3 ввода-вывода команд и данных, средство формирования 4 каталога (К), представляющего собой таблицу или набор таблиц указанной РБД, в каталоге каждое имя атрибута блока данных поставлено в соответствии с именем таблицы РБД, предназначенной для хранения указанного атрибута, и с описанием структуры этого атрибута. Система содержит средство 5 формирования таблиц РБД, служащих для хранения значений атрибутов указанных блоков данных, строки каждой из таблиц включают поля, идентичные полям записей каждого из атрибутов блоков данных, имена которых присутствуют в указанном каталоге К, а также поле для данных об уникальном идентификаторе блока данных, преобразователь 6 команд ввода, поиска, извлечения и добавления записей атрибута блока данных в команды ввода, поиска, извлечения и добавления строк той таблицы реляционной базы данных, имя которой поставлено в таблицах каталога в соответствии с именем указанного атрибута, генератор 7 уникальных объектных идентификаторов (ОID).
Все вышеперечисленные функциональные блоки заявленной системы связаны по шине 8 управления и шине 9 данных в заявленной компьютерной системе между собой.
Указанная организация системы позволяет представить данные как блоки данных, снабженные уникальными идентификаторами и состоящие из имеющих имена атрибутов, представляющих собой запись или набор записей, каждая из которых представляет собой определенный для каждого атрибута набор полей данных.
Как было указано выше, управляющие устройства 21 и 22 могут быть выполнены в виде единого функционального управляющего устройства 2.
При этом алгоритм управления данными управляющего устройства 21, хранящимися в памяти 1, совпадает с алгоритмом работы известных систем управления РБД /1/.
Алгоритмом работы управляющего устройства 22 представляет собой алгоритм управления преобразованием команд ввода, поиска, извлечения и добавления записей атрибута блока данных в команды ввода, поиска, извлечения и добавления строк той таблицы реляционной базы данных, имя которой поставлено в таблицах каталога в соответствии с именем указанного атрибута.
В качестве управляющих устройств заявленной системы можно использовать процессор, выполняющий известные алгоритмы управления РБД, дополненные алгоритмом преобразования команд.
Как было указано ранее, данные в реляционных базах данных представляются в виде множества именованных таблиц (или отношений в терминах реляционной модели), обладающих следующими свойствами и имеющих следующую структуру: таблицы имеют так называемый заголовок (или схему отношения), включающий набор имен столбцов или имен атрибутов и множество строк. Строки состоят из полей.
Структура любой строки, входящей в данную таблицу, определяется заголовком этой таблицы, а именно: каждому полю ставиться в соответствие имя атрибута. Поле строки может содержать скалярное значение одного из поддерживаемых системой типов данных /1/.
Заявленная система, предназначенная для управления РБД, включает в себя управляющее устройство 21, которое служит для исполнения команд управления РБД, и, в соответствии с выполняемой командой, определенным образом меняет хранящиеся в памяти 1 данные РБД. Для того чтобы управляющее устройство 21 выполнило одно из указанных действий, оно должно получить команду, например, команду на создание таблицы или команду на добавление строки в таблицу и т.п. При этом доступ к таблицам осуществляется по их именам. Для ввода и вывода команд и данных в системах управления базами данных используется блок 3 ввода-вывода.
Как было указано ранее, известные системы управления реляционными базами данных предполагают, что команды, введенные в блок 3 ввода-вывода, передаются непосредственно управляющему устройству 21, как проиллюстрировано в таблице 1.
Из этого следует, что данные, существующие в такой системе, представлены для оператора в виде набора таблиц. Для управления этими данными оператор вводит в блок 3 ввода-вывода команду, описывающую действие, выполняемое управляющим устройством 21. Обязательным параметром такой команды является имя таблицы, над которой выполняется действие.
Заявленная система, являясь системой управления реляционными базами данных, по сравнению с известными системами дополнена функциональными блоками 22, 4, 6, 7, обеспечивающими преобразование команд ввода, поиска, извлечения и добавления записей атрибута сложного идентифицируемого блока данных в команды ввода, поиска, извлечения и добавления строк той таблицы реляционной базы данных, имя которой поставлено в таблицах каталога в соответствии с именем указанного атрибута. Таким образом, существующие в системе данные представлены для оператора в виде набора сложных идентифицируемых блоков данных.
Для понимания механизма выполнения заявленной системой предписанных ей функций, позволяющего обеспечить возможности реализации ввода, вывода, поиска и извлечения данных, опишем работу системы следующим образом.
Предположим, что некий объект моделируемой предметной области, информацию о котором необходимо сохранить в системе, описывается сложным значением “oV”. Это значение может быть нормализовано (см. /3/) при этом оно преобразуется к набору значений “rV1” и “rV2”, состоящие из записей, имеющих структуру “R1” и “R2”, которые мы будем рассматривать как атрибуты a1 и а2 объекта данных “о”.
Необходимо отметить, что в моделируемой предметной области могут существовать два разных объекта, описываемых одним и тем же значением “oV”. Для того чтобы различить их, каждому хранимому значению система ставит в соответствие генерируемый ею уникальный объектный идентификатор OID, названный выше уникальным идентификатором блоков данных. Рассмотрим представление данных в системе.
В таблице 2 схематично изображена структура объекта данных Obj, описывающих некий объект предметный области. Она содержит имеющие имена a1 и a2 атрибуты rV1 и rV2, состоящие из записей t1 и t2, причем во второй атрибут входят три записи t21 t22 и t23. Соответственно, схемы указанных атрибутов R1 и R2 выглядят следующим образом: записи первого атрибута имеют одно поле f1, записи второго атрибута имеют два поля f21 и f22. Таблица 2 иллюстрирует процедуру введения в систему данных и описывает возможную структуру вводимых данных. Отметим, что в целом объект данных Obj представляет собой ненормализованный блок данных.
Предварительно скажем, что данные об объекте Obj будут храниться в РБД в двух таблицах, которые формируются с использованием средства 4 формирования таблиц РБД на основании данных о структуре атрибутов объекта, занесенных с использования средства 3 формирования таблицы-каталога в записи таблиц каталога. В таблицах каталога имя атрибута объекта и описание структуры этого атрибута поставлено в соответствие с именем таблицы РБД. Рассмотрим случай, когда эти таблицы еще не сформированы.
Перед началом любых операций с объектом данных в блок 3 ввода-вывода, как было указано выше, вводятся данные, описывающие структуру этого объекта данных (метаданные) вида (a1 R1,... , an Rn), где аi - имя атрибута объекта данных, Ri - описание структуры этого атрибута, представляющее собой перечисление входящих в него полей, и управляющая команда на ввод этих метаданных.
В процессе обработки этой команды устройство 22 инициирует работу средства 4 формирования каталога и средства 5 формирования таблиц данных и передает этим средствам введенные метаданные.
На основании полученных метаданных, в частности на основании описаний структуры атрибутов R1...,Rn объекта данных, средство 5 формирования таблиц РБД с помощью управляющего устройства 22 формирует в памяти 1 таблицы T1...Tn, служащие для хранения записей указанных атрибутов. Для этого средство 5 может формировать команды на создание таблиц, которые передаются устройством 22 в устройство 21, которое в процессе выполнения известным образом меняет хранящиеся в памяти 1 данные РБД.
Структура строк создаваемой таблицы Тi определяется описанием структуры Ri записей атрибута аi вводимого объекта данных, к которому средство 5 формирования таблиц РБД добавляет дополнительное поле fOID (далее мы будем называть его системным полем). Значение, записанное в это поле, позволяет поставить в соответствие каждой строке этой таблицы реляционной базы данных OID, хранимого системой объекта данных.
При этом средством 4 формирования каталога с помощью управляющего устройства 22 добавляется информация, позволяющая поставить каждому атрибуту аi в соответствии с таблицей Тi, служащие для хранения записей этого атрибута. Для этого средство 4 может формировать команды на добавление в таблицу или таблицы каталога строки, содержащей поля аi и Тi где аi - имя атрибута объекта данных, Тi - имя соответствующей ему таблицы данных создание таблиц, которые передаются устройством 22 в устройство 21, которое, в процессе выполнения известным образом, меняет хранящиеся в памяти 1 данные РБД.
Для описанного ранее объекта Obj в результате этого процесса (табл. 2 и 3) в РБД будут сформированы следующие таблицы: атрибуту rV1 со схемой (f11) будет соответствовать таблица T1, заголовок которой включает поля fOID и f11, а атрибуту rV2 со схемой (f21, f22) будет соответствовать таблица Т2, заголовок которой включает поля fOID, f21, f22. Поле fOID, имеющееся в обеих таблицах, является системным и предназначено для хранения OID объекта. Также в таблицах каталога сформированы строки {a1, T1} и {a2, T2}, определяющие соответствие между атрибутами объекта о и таблицами памяти (см. таблицу 3).
В таблице 3 приведены структура таблиц РБД, в том числе таблиц T1 и Т2 для хранения данных, созданных в РБД после ввода метаданных, описывающих структуру объекта Obj, представленного в таблице 2, К - таблица каталога, содержащего записи, определяющие соответствие между атрибутами а объекта и созданными таблицами Т.
Таким образам, в процессе обработки данных о структуре объекта (метаданных) система с помощью управляющего устройства 22, средств формирования 4 и 5 создает несколько таблиц РБД, в которых будут размещаться значения атрибутов объекта или объектов данных, вводимых в систему, и добавляет в каталог записи, определяющие соответствие между атрибутами объекта и созданными таблицами РБД, при этом используя управляющее устройство 21, которое известным образом управляет памятью 1, служащей для хранения данных РБД. На этом этап подготовки системы для ввода данных завершен.
При вводе самих данных в систему или иных действий с данными процедура следующая. Отметим сначала, что любые действия, производимые с данными, хранящимися в системе, производятся на основании команд, вводимых в блок ввода-вывода 3.
В число параметров команды входит имя атрибута хранимых объектов, причем указанное имя может быть выделено из других параметров на основании предопределенных правил ввода параметров команды либо предопределенного порядка ввода параметров команды. При введении команды, содержащей имя атрибута, управляющее устройство 22 управляет передачей команды о вводе или ином действии с данными в преобразователь 6 команд. При этом алгоритм работы управляющего устройства 22 следующий.
1) Просматривает вводимые данные и, основываясь на указанных ранее предопределенных правилах, находит в них имя атрибута. В случае, если имя атрибута не найдено, выполнение команды прерывается и в блок 3 ввода-вывода помещается сообщение об ошибке.
2) Управляющее устройство 22 обращается к существующим в РБД таблице или таблицам каталога, данные которого хранятся в памяти 1, и находит в них ранее внесенную строку, определяющую соответствие между найденным атрибутом и таблицей РБД, служащей для хранения записей этого атрибута. В случае, если имя атрибута не найдено, выполнение команды прерывается и в блок 3 ввода-вывода помещается сообщение об ошибки.
3) Управляющее устройство 22 вместе с передаваемой командой из блока 3 ввода-вывода передает найденное таким образом имя таблицы, служащей для хранения записей атрибута объекта, в преобразователь 6 команд.
Получив от управляющего устройства 22 имя таблицы, служащей для хранения записей атрибута, преобразователь преобразовывает полученную команду, обращающуюся к атрибуту объекта, в команду, обращающуюся к таблице, служащей для хранения записей этого атрибута.
Таким образом, алгоритм работы управляющего устройства 22 заключается в том, что устройство 22 отыскивает в команде имя атрибута, ищет по имени атрибута в таблице каталоге имя таблицы и передает в преобразователь 6 для преобразования команды.
Этап ввода данных, представленных в виде объектов данных, в систему заключается в том, что система на основании данных, помещенных в блок 3 ввода-вывода с помощью управляющего устройства 22 и преобразователя команд 6, и в соответствии с информацией о структуре объекта, внесенной в каталог на предыдущем этапе, генерирует команды управления РБД, выполняемые устройством 21, которое, в соответствии с выполняемыми командами, известным образом добавляет новые данные к данным, хранящимся в памяти 1.
Процесс ввода объекта данных начинается с того, что в блок 3 ввода-вывода извне вводятся данные, представленные как набор поименованных атрибутов объекта данных вида (a1 rV1,... , an rVn), где аi - имя атрибута объекта данных, rVi - значение атрибута объекта данных, состоящее из одной или нескольких записей определенной для этого атрибута структуры (см. табл.2) и команда на ввод этих данных, инициирующая работу преобразователя 6. При поступлении такой команды в преобразователь 6 команд считывается с помощью управляющего устройства 22 из генератора 7 объектный идентификатор OID, уникальный для каждого вводимого объекта данных. Этот OID в дальнейшем будет использоваться как уникальный идентификатор вводимого объекта данных.
Далее данные, находящиеся в блоке 3 ввода-вывода, передаются устройством 22 в преобразователь команд 6, при этом управляющее устройство 22 просматривает вводимые данные и находит имя атрибута. Управляющее устройство 22 отыскивает в сформированных на этапе ввода метаданных записях каталога, соответствующее найденному имени атрибута аi имя таблицы Тi, служащей для хранения записей этого атрибута.
Это имя по команде управляющего устройства 22 также поступает в преобразователь 6.
В преобразователь 6 также поступает состоящее из одной или нескольких записей значение rVi, из указанной таблицы РБД, получив которое преобразователь 6 преобразует введенную в блок 3 команду в команду или команды, добавляющую в таблице Тi строки, содержащие записи значения rVi. Причем в системное поле fOID этих строк записывается информация, позволяющая поставить в соответствие каждой из этих строк предварительно сгенерированный OID вводимого объекта данных. Преобразованная команда или команды передаются управляющим устройством 22 из преобразователя 6 в управляющее устройство 21, которое в процессе выполнения известным образом меняет хранящиеся в памяти 1 данные РБД. Описанные действия повторяются для каждого атрибута водимого объекта данных. Таким образом, объект данных сохраняется в системе в виде совокупности строк разных таблиц РБД, причем каждой из указанных строк ставиться в соответствие OID вводимого объекта данных. Присвоенный при этом введенному объекту данных OID передается управляющим устройством 22 в блок 3 ввода-вывода, где он может быть считан извне для дальнейшего использования в командах доступа к введенному в систему объекту данных пользователя.
В таблице 4 приведены таблицы РБД для хранения данных после того, как в систему введены данные объекта, представленного в таблице 2, где Т - имя таблицы, OID1 - сгенерированный уникальный идентификатор объекта данных. Подстроки t идентичны записям атрибутов объекта.
В процессе доступа к хранимым объектам данных, система обеспечивает считывание данных, удовлетворяющих определенным условиям, из памяти 1 и помещает их в блок 3 ввода-вывода, откуда они могут быть считаны извне.
Рассмотрим некоторые режимы доступа к данным, хранящимся в реляционной БД системы.
Адресный режим доступа требует для поиска данных явного указания OID искомых объектов данных.
Процесс доступа к данным начинается с того, что в блок 3 ввода-вывода помещается команда доступа, OID объекта данных, имя атрибута (или имена атрибутов), записи которого необходимо считать из системы, и, возможно, другая информация, определяющая искомые данные. Указанные данные передаются устройством 22 в преобразователь команд 6, при этом управляющее устройство 22 просматривает вводимые данные и отыскивает имя атрибута. При нахождении имени атрибута управляющее устройство 22 с помощью устройства 21 обращается к каталогу, где находит имя Тi таблицы РБД, служащей для хранения записей этого атрибута, и передает это имя в преобразователь 6.
На основании полученных данных преобразователь 6 команд преобразует введенную команду в команду, обращающуюся к этой таблице Тi.
При этом устройством управления 22и считывается из этой таблицы запись, системное поле fOID которого соответствуют введенному OID и Преобразованная команда или команды вместе с записью передаются управляющим устройством 22 из преобразователя 6 в управляющее устройство 21, которое выполняет эту команду известным образом, как команду формирования и/или изменения данных. Считанные записи помещаются в блок 3 ввода-вывода, откуда они могут быть считаны извне.
Поисковый режим доступа противоположен адресному режиму и позволяет определить OID искомых объектов по данным, находящимся в указанных объектах.
В этом случае в блок 3 ввода-вывода помещается команда доступа, критерий (или критерии) определяющий искомые объекты данных, а также имя атрибута (или имена атрибутов), для которых этот критерий будет применяться. Указанные данные передаются устройством 22 в преобразователь команд 6, при этом управляющее устройство 22 просматривает вводимые данные и отыскивает имя атрибута. При нахождении имени атрибута управляющее устройство 22 с помощью устройства 21 обращается к каталогу, где находит имя Тi таблицы РБД, служащей для хранения записей этого атрибута, и передает это имя в преобразователь 6. На основании полученных данных преобразователь 6 команд преобразует введенную команду в команду на считывание из таблицы Тi значение, содержащееся в системном поле fOID тех записей, поля которых удовлетворяют указанному критерию. Преобразованная команда или команды передаются управляющим устройством 22 из преобразователя 6 в управляющее устройство 21, которое выполняет эту команду известным образом.
Результат, представляющий собой набор объектных уникальных идентификаторов, помещается в блок ввода-вывода 3, откуда они могут быть считаны извне.
Ассоциативный режим доступа представляет собой комбинацию поискового и адресного способов доступа.
При этом для поиска данных, входящих в объекты данных, используются другие данные, входящие в эти же объекты. В блок 3 ввода вывода помещается команда доступа, критерий (или критерии), определяющий искомые объекты данных, имя атрибута (или имена атрибутов), для которых этот критерий будет применяться, а также имя атрибута (или имена атрибутов), записи которого необходимо считать из системы. Выполнение "ассоциативной" команды можно разделить на две фазы. В первой, "поисковой" фазе система на основании введенных в блок 3 ввода-вывода имен атрибутов, для которых определен критерий отбора, находит в соответствующих таблицах РБД удовлетворяющие этим критериям OID объектов так, как это описано ранее (см. "поисковый" режим). Во второй, "адресной" фазе, найденные в предыдущей фазе OID используются как критерий отбора строк, содержащих записи искомых атрибутов объектов, так как это описано ранее (см. "адресный" режим). Записи атрибутов объектов, содержащиеся в найденных строках, помещаются в блок ввода-вывода 3, откуда могут быть считаны извне.
Таким образом, для ввода данных в РБД и доступа к этим данным в блок 3 ввода-вывода должны быть введены команды, которые содержат в качестве своих параметров уникальные идентификаторы (OID) хранимых объектов и/или имена их атрибутов, то есть метаданные, описывающие сложную ненормализованную структуру этих объектов данных. Поскольку такого рода команды характерны для систем, в которых данные представлены в виде сложных объектов данных, можно утверждать, что заявленная система преодолевает различие между заявленным способом представления информации и реляционным способом представления информации в существующих системах управления реляционными базами данных.
Это достигается тем, что в процессе функционирования системы преобразователь 6 на основании данных, введенных ранее в каталог К средства 4 формирования каталога преобразует введенные в блок ввода-вывода 3 команды в команды записи, поиска и чтения данных, размещенных в сформированных ранее средством 5 формирования таблиц РБД, которые выполняются управляющим устройством 21 в памяти 1.
В качестве примера рассмотрим команду, изменяющую значение поля f11 атрибута a1 ранее рассмотренного объекта данных о, идентифицируемого в системе уникальным значением OID. Естественно, что такая команда должна включать в себя указанные параметры: идентификатор объекта, имя атрибута и новое значение атрибута (отмечены выделением)
UPDATE o(OID).a1 SET f11="NEWVALUE"...
где о(OID) указывает на объект, идентифицируемый в системе значением OID. Эта команда вводиться в блок ввода-вывода 3.
Получив такую команду (с именем атрибута), управляющее устройство 22 находит в таблицах каталога строку, ставящую атрибут а1 в соответствие с таблицей Т1, где хранятся записи этого атрибута. Найденное имя таблицы вместе с объектным идентификатором передается в преобразователь 6 команд. Преобразователь 6 преобразует введенную команду в команду, которая изменяет значение поля f11 на новое значение в тех строках таблицы T1, системное поля fOID которых содержит соответственно идентификатор OID объекта.
UPDATE T1 SET f11="NEWVALUE" WHERE fOID=OID...
Эта команда затем выполняется устройством 21, которое в процессе выполнения известным образом меняет хранящиеся в памяти 1 данные РБД.
Необходимо обратить особое внимание на то, что эта команда, по сравнению с исходной, содержит один дополнительный параметр, а именно: в ней явно указана служащая для хранения значения атрибута a1 таблица T1, при этом параметры исходной команды, а именно объектный идентификатор объекта данных, представлены в виде значений полей искомых записей этой таблицы, что присуще командам при работе с РБД.
Таким образом система преобразует команды ввода-вывода данных, обращающиеся к данным, представленным в виде сложных объектов данных, в команды, обращающиеся к данным, хранимым в РБД.
Изобретение относится к области управления хранением данных в памяти компьютерных средств. Технический результат заключается в одновременном использовании баз данных, описывающих объекты предметной области, и реляционных баз данных. Система содержит генератор уникальных идентификаторов блоков данных, средство формирования таблиц РБД, средство формирования каталога, представляющего собой таблицу или набор таблиц РБД, преобразователь команд ввода, поиска, извлечения и добавления определенного именем атрибута соответствующего блока данных в команду ввода, поиска, извлечения и добавления строк той таблицы РБД, имя которой поставлено в соответствие с именем указанного атрибута, управляющее устройство выполнено с возможностью преобразования команд с атрибутами в команду с именем таблицы РБД. 1 ил., 4 табл.
Объектно-ориентированная система управления реляционными базами данных, содержащая связанные шинами данных и управления память для хранения данных, в том числе данных РБД, управляющее устройство, предназначенное для формирования и/или изменения данных РБД, хранящихся в указанной памяти, и блок ввода-вывода команд и данных, отличающаяся тем, что система содержит связанные по шинам данных и управления генератор уникальных идентификаторов блоков данных, средство формирования таблиц РБД, служащих для хранения значений атрибутов указанных блоков данных и включающих поля, идентичные полям записей каждого из атрибутов указанных блоков данных РБД, а также поле для записи уникального идентификатора блока данных, средство формирования каталога, представляющего собой таблицу или набор таблиц РБД и содержащего записи, в которых каждое имя атрибута вводимого блока данных поставлено в соответствие с именем таблицы РБД, предназначенной для хранения указанного атрибута, и с описанием структуры этого атрибута, преобразователь команд ввода, поиска, извлечения и добавления определенного именем атрибута соответствующего блока данных в команду ввода, поиска, извлечения и добавления строк той таблицы РБД, имя которой поставлено в соответствие с именем указанного атрибута, а управляющее устройство также выполнено с возможностью управления преобразованием команд с именами атрибутов в команду с именем таблицы РБД для формирования и/или изменения данных РБД, хранящихся в указанной памяти.
US 6477527 В2, 05.11.2002 | |||
Способ крекирования нефти | 1926 |
|
SU12619A1 |
US 6434568 B1, 13.08.2002 | |||
US 6047291, 04.04.2000 | |||
US 5604892, 18.02.1997. |
Авторы
Даты
2005-06-10—Публикация
2003-12-22—Подача