Изобретение относится к упорядочным массивам информации, логически организованным в многомерные базы данных.
Известно несколько моделей данных, отличающиеся способами организации, внутренней связи, принципов кодирования, управления доступом к данным:
- плоская, или файловая - самый ранний и сегодня не используемый практически способ организации баз данных (БД);
- иерархическая (HDBMS = Hierarchical DBMS), основная особенность этой модели состоит в организации подчиненных связей между данными и их группами, такой, что у каждой записи есть только одна подчиненная запись. Такая модель имеет много недостатков и, поэтому, используется редко. Пример HDBMS - IMS от IBM;
- сетевая (MDBMS = Network DBMS), наиболее типичным представителем является CODASYL - конференцией по языкам систем управления данными (The Conference on Data Systems Languages), созданной в 1957 г. при ФБР (CODASYL was responsible for developing COBOL);
- реляционная РСУБД (RDBMS = Relational DBMS), - система управления базой данных (СУБД), построенная на реляционной модели Е.Ф.Кодда, наиболее распространенный класс СУБД в настоящее время. Наиболее известные реализации - «DB2» (IBM), «ADABAS» (Software AG), «SYBASE» (Sybase), «ORACLE» (Oracle), «MySQL» (MySQL), «PostgreSQL» (PostgreSQL.org), «InterBase» (Borland) и ее разновидности - «FireBird» и «Yaffil», а также ряд других менее известных СУБД.
РСУБД оперируют с данными, организованными в таблицы, состоящие из чисел, строк и иногда ссылок на некие объекты, которые связывают данные между собой отношениями (реляциями). Расширение набора видов данных объектами другой структуры (ссылками на внешние объекты, изображениями, другими мультимедийными данными и проч.) образует подкласс РСУБД - объектно-реляционные СУБД. К классу ОРСУБД относится большинство вышеупомянутых систем.
Несколько особенным видом реляционных СУБД стоит постреляционная (post-relational) СУБД «CACHE'» (Intersystems Ltd).
В «CACHE'» впервые появились специальные «серверные страницы» (Cache' Server Pages), представляющие собой выборки данных, предварительно вычисленные для прогнозируемых запросов, и выдаваемые по запросу без повторного вычисления над БД, что существенно увеличивает реактивность СУБД даже по сравнению с кэшированием части данных БД в оперативной памяти.
Вторая особенность «CACHE'» - это «CATs» (Cache' Application Tags), или программы, исполняемые на стороне сервера БД для записи и считывания, расчетов, циклических действий, координации и т.п., расширяемые "гиперсобытиями" (Hyper-Eventsтм Cache') - сборками (агрегатами) элементарных событий, обычно сохраняемых как элементы традиционных БД.
Эти дополнительные механизмы выгодно отличают «CACHE'» от других СУБД (за исключением похожей технологии Server Data Blades в СУБД «INFORMIX» (Informix)), а именно в ее исполнительном ядре «ILLUSTRA».
Традиционные СУБД хорошо обрабатывают наборы данных, организованные в таблицы с достаточно регулярной структурой по так называемой реляционной модели и ее расширениям - например, объектно-реляционной или динамической объектно-реляционной. В таких СУБД эффективно реализованы механизмы поиска, отбора, агрегирования представлений данных, и транзакции. То есть каждая БД такого рода - это статическая картина состояния информационной области. Единственная разновидность движения, которая может присутствовать в базе, это запись истории выполняемых движений как событий без применения рекурсии - вычисления и записи в БД результатов таких движений.
Для преодоления этого ограничения и используют дедуктивные БД - в них данные или события составляют логическую (экстенциональную) компоненту БД, а правила для логического вывода новых событий и их представлений - содержательную (интенциональную) ее компоненту. Дедуктивные БД в основном существуют в настоящее время только в виде теоретических моделей.
Требование вычисляемости (рекурсии) налагает повышенные требования к функциям СУБД, что приводит на практике к тому, что реальные СУБД могут только записывать, хранить, редактировать и представлять данные, а самостоятельная вычислительная способность СУБД остается недостижимой.
Все вышеперечисленное приводит к невозможности эффективного управления большими массивами функционально связанных данных и их сборок (агрегатов), а также невозможности работы в целевых системах со слабо структурированными данными очень большой размерности, не всегда представимыми в виде таблиц и взаимных отношений между элементами.
Все без исключения известные СУБД в этом смысле являются статическими, то есть не обладают встроенным свойством хранения истории изменения значений хранимых данных в функции от других данных. В некоторых из упоминаемых выше СУБД хранение истории достигается специальной организацией и обработкой структуры таблиц и методов доступа к ним с получением в итоге очень ограниченных возможностей по изменению истории.
В результате на известных СУБД очень сложно реализовать сколько-нибудь сложную задачу функционально связанного изменения данных, например, в функции времени и каких-либо действий над данными, а также наблюдение таких изменений в зависимости от других данных. Не меньшую трудность в реализации представляет задача отражения в СУБД данных очень большой, в частности неизвестной размерности, а также в условиях, когда тип большого числа данные заранее не известен.
Резюмируя вышеуказанное, можно отметить, что построение систем, работающих с функционально связанными данными, на платформе современных СУБД сопряжено с существенными трудностями описания функциональных связей, вычисления результатов взаимодействия описываемых данными процессов и отражения их результатов в динамике.
Многомерная модель данных обладает существенными преимуществами над другими известными логическими моделями данных, включая наиболее распространенные реляционные модели данных.
Использование многомерной модели данных позволяет отказаться от обязательного преобразования (нормализации) исходных данных в формат реляционных таблиц, существенно увеличивающего время обработки исходных данных и объем хранимой в базе информации, а также от необходимости выполнения ресурсоемких операций соединения большого количества реляционных таблиц в процессе формирования аналитических отчетов.
Однако многомерная модель данных, логически представляемая в виде гиперкуба, обладает принципиальным недостатком - при увеличении количества измерений объем многомерного массива исходных данных экспоненционально возрастает.
Увеличивающийся объем многомерной базы данных вынуждает использовать вычислительные устройства с большой оперативной памятью и высокой производительностью, что ведет к росту стоимости обработки информации.
Техническим результатом настоящего изобретения является повышение производительности и снижение стоимости обработки информации в составе многомерной базы данных за счет отказа от логического представления многомерного массива исходных данных в виде гиперкуба.
Заявленный технический результат достигают за счет организации прямого адресного доступа к единичным записям массива исходных данных без формирования логической структуры в виде гиперкуба или иного многомерного логического массива.
Сущность заявляемого способа поиска состоит в следующем.
Логическая структура многомерной базы данных сформирована в виде множества отдельных записей данных, каждая из которых логически представляет многомерный вектор, включающий собственно значение данного и координаты его расположения относительно осей измерений логического пространства многомерного массива данных.
Исходные данные многомерной базы данных поступают в виде записей разной размерности. Идентификацию исходных данных производят на основании метаданных - системных словарей, справочников и классификаторов, содержащих эталонные символьные или цифровые обозначения наименований реквизитов данных - координат многомерных векторов.
Система индексации исходных данных основана на присвоении каждой координате многомерного вектора индекса, логически соответствующего наименованию измерения, например порядковому номеру оси измерения, и значению координаты измерения, например порядковому номеру метки на оси измерений.
Метаданные, включающие наименования осей измерений, состав и количество значений их координат, позволяют описать структуру и логические взаимосвязи составляющих элементов многомерной базы данных, квалифицировать и систематизировать исходные данные.
В процессе эксплуатации массивы данных физически размещают в оперативной и долговременной памяти вычислительной установки.
Формируют логическую среду, состоящую из массивов данных различной размерности. Для получения дополнительных преимуществ предлагаемого метода логическую среду физически предпочтительно располагать в оперативной памяти вычислительного устройства. Организуют хранение данных в виде файлов. Для получения дополнительных преимуществ предлагаемого метода предпочтительно физически хранить данные в долговременной памяти вычислительного устройства.
Оперативная и долговременная память вычислительного устройства оснащены устройствами физического доступа к ячейкам или блокам памяти, в которые записываются данные.
Исходные данные логически представляют в виде многомерного гиперкуба, состоящего из ячеек, в которых располагают значения исходных данных. Метаданные логически представляют в виде двухмерных векторов, соответствующих осям измерений гиперкуба.
Способ доступа к отдельным записям исходных данных в многомерной базе основан на логическом сечении многомерного гиперкуба одной или несколькими плоскостями, проходящими через координаты осей измерений, соответствующие ключу информационного запроса пользователя.
В ячейки, расположенных в плоскости логического сечения гиперкуба, линий пересечения плоскостей, производят запись, чтение, изменение или удаление значений исходных данных.
Массив исходных данных состоит из последовательного списка многомерных записей (логически представляющих собой многомерные векторы), логически связанных между собой значениями координат по осям измерений.
Все необходимые метаданные (словари, классификаторы) в виде двухмерных матриц (логически - двумерных векторов) постоянно поддерживают в оперативной памяти вычислительной установки для увеличения скорости доступа. Одна из строк каждой двухмерной матрицы содержит уникальные идентификаторы исходных данных, например символьные наименования данных. Другая строка - соответствующие им значения исходных данных, являющиеся значениями координат одной из осей измерений. Ячейки строк матриц метаданных логически объединены в пары «идентификатор данного - координата».
Кроме того, для каждого массива исходных данных дополнительно организована двухмерная матрица системных счетчиков, каждая строка которой содержит координаты исходных данных (координаты по осям измерений многомерных векторов), другая строка - физические адреса расположения наиболее поздних поступивших записей в массиве исходных данных по каждой оси измерений. Фактически самая поздняя запись является наиболее удаленной от начала массива при последовательной записи данных. Ячейки строк матрицы системных счетчиков логически объединены в пары «индекс координаты - адрес расположения».
В качестве адреса расположения записи используют физический адрес начала единичной записи, отсчитываемый от начала записи массива исходных данных.
В состав единичных записей исходных данных дополнительно включено поле адресных указателей, каждый из которых ассоциативно связан с одной из координат по оси измерения исходного данного. В адресном указателе указывают ближайшее значение адреса более ранней записи со значением координаты, совпадающим с текущим по соответствующей оси измерения. Фактически это означает, что указывают координату записи, расположенной ближе к началу массива исходных данных.
Если для некоторой единичной записи в массиве исходных данных нет более ранних записей с совпадающим значением координаты по какой-либо оси измерений, в ее соответствующий адресный указатель помещают ссылку на адрес системных счетчиков с совпадающим значением координаты по той же оси измерения.
Способ доступа к многомерной базе данных на этапах записи, чтения, удаления или изменения единичных записей исходных данных организован в следующем порядке.
На этапе записи исходных данных в состав базы в адресные указатели координат по осям измерений первой по порядку единичной записи включают ссылки на адреса совпадающих значений координат по тем же осям измерений системных счетчиков.
При включении первой единичной записи в состав базы данных адрес начала записи имеет значение «0». Адрес окончания первой записи, равный адресу начала второй записи, имеет значение «0+ длина первой записи». Адрес начала записи (в случае первой записи, равный «0») и координаты по всем имеющимся у первой записи осям измерений (например, в виде индексов) заносят в системный счетчик.
При включении каждой последующей единичной записи в состав базы и определения адреса начала записи (в виде величины физического смещения начала записи относительно начала массива исходных данных) из системного счетчика переписывают в адресные указатели адреса записей с совпадающим значением координат по осям измерений, а адрес текущей записи включают в системный счетчик в связи с адресом каждой из координат единичной записи по всем его имеющимся осям измерений. Для вновь появившихся измерений в системном счетчике добавляют новую запись, для уже имеющихся, изменяют адрес начала записи на адрес текущей записи.
На этапе чтения исходных данных для поиска записей, соответствующих заданным пользователем критериям поиска в виде значений или интервала значений координат по одной или нескольким осям измерений, поиск единичных записей в массиве исходных данных производят путем сравнения между собой значений всех имеющихся адресов координат по всем измерениям искомого многомерного вектора для определения наименьшего среди них значения.
На первом шаге поиска адреса всех самых последних записей с заданными координатами по осям измерений определяют из соответствующих системных счетчиков. В результате сравнения между собой значений адресов координат выбирают адрес, наиболее приближенный к началу массива исходных данных (т.е. имеющий наименьшее значение). По этому адресу осуществляют переход к единичной записи исходных данных. У найденной записи проверяют соответствие координат по осям измерений критериям поиска. При совпадении значение записи используют для анализа (выбирают для аналитического отчета).
На втором и последующих шагах поиска сравнивают между собой значения адресных указателей выбранной единичной записи и, используя минимальное значение как адрес, выполняют переход к следующей единичной записи, наиболее приближенной к началу массива исходных данных.
Выбор единичных записей по указанному алгоритму в порядке приближения к началу массива исходных данных производят вплоть до обнаружения единичной записи, один или несколько адресных указателей которой имеют адресацию на ячейки системных счетчиков. На этом процесс поиска считают завершенным.
Для ускорения чтения записей исходных данных, в случае отсутствия у найденной единичной записи полного набора координат, соответствующим критериям поиска, на втором и последующих шагах осуществляют дополнительную выборку из массива исходных данных единичных записей, содержащих указанные координаты и расположенных по адресам, записанным в адресных указателях единичных записей, определенных на предыдущем шаге поиска.
Значения адресных указателей единичных записей, дополнительно выбранных из массива исходных данных, используют в процессе сравнения со значениями адресных указателей первоначально выбранной единичной записи для определения минимального значения в качестве искомого адреса следующей единичной записи, т.е. наиболее приближенной к началу массива исходных данных.
На этапе удаления записей исходных данных из состава базы на первом шаге производят поиск удаляемой единичной записи и связанных с ней ссылками следующих за ней по порядку единичных записей и/или системных счетчиков (в случае наличия ссылок на них). Для этого адреса всех самых последних записей с заданными координатами по осям измерений определяют из соответствующих системных счетчиков. В результате сравнения между собой значений адресов выбирают адрес, наиболее приближенный к началу массива исходных данных (т.е. имеющий наименьшее значение). По этому адресу осуществляют переход к единичной записи исходных данных. У найденной записи проверяют соответствие координат по осям измерений критериям поиска. При совпадении запись помечают для удаляения.
На втором шаге в адресные указатели найденных единичных записей, связанных с удаляемой ссылками и следующих по порядку за удаляемой, записывают значения адресных указателей и ссылки на системные счетчики, содержащиеся в удаляемой записи.
Если имелись ссылки в системных счетчиках, то на третьем шаге в системные счетчики записывают адреса единичных записей следующих после удаляемой записи и связанных с удаляемой записью ссылками (вместе с координатами по соответствующим осям измерений).
На четвертом шаге удаляемую запись исключают из состава массива исходных данных.
На этапе изменения исходных данных в составе базы в части корректировки числа и значений координат многомерного вектора без увеличения длины и размерности единичной записи выполняют следующие шаги.
На первом шаге выполняют поиск единичной записи, назначенной к изменению, связанных с изменяемой ссылками следующих за ней единичных записей и записей системных счетчиков, в случае наличия ссылок на них. Для этого адреса всех самых последних записей с заданными координатами по осям измерений определяют из соответствующих системных счетчиков. В результате сравнения между собой значений адресов выбирают адрес, наиболее приближенный к началу массива исходных данных (т.е. имеющий наименьшее значение). По этому адресу осуществляют переход к единичной записи исходных данных. У найденной записи проверяют соответствие координат по осям измерений критериям поиска. При совпадении запись помечают для изменения.
На втором шаге в адресные указатели единичных записей, связанных с изменяемой ссылками и следующих за изменяемой, и в системные счетчики записывают значения адресных указателей и ссылки на системные счетчики, содержащиеся в изменяемой записи.
На третьем шаге вносят корректировки в число и значения координат изменяемой единичной записи.
На четвертом шаге производят поиск единичных записей, связанных с измененной ссылками, следующих за измененной, и системных счетчиков (в случае наличия ссылок на них). Для этого адреса всех самых последних записей с заданными координатами по осям измерений определяют из соответствующих системных счетчиков. В результате сравнения между собой значений адресов выбирают адрес, наиболее приближенный к началу массива исходных данных (т.е. имеющий наименьшее значение). По этому адресу осуществляют переход к единичной записи исходных данных. У найденной записи проверяют соответствие координат по осям измерений критериям поиска. При совпадении запись помечают для изменения ссылок.
На пятом шаге в адресные указатели скорректированных координат измененной единичной записи записывают значения адресных указателей и ссылки на системные счетчики, содержащиеся в единичных записях, следующих за измененной.
На шестом шаге в адресные указатели единичных записей, следующих за измененной, записываются адреса скорректированных координат измененной записи.
На седьмом шаге в системные счетчики записывают адреса индексов измененной единичной записи.
Внесение изменения в единичную запись исходных данных в части корректировки числа и значений координат многомерного вектора с изменением (преимущественно увеличением) длины единичной записи включает следующие шаги.
На первом шаге выполняют удаление записи в соответствии с алгоритмом удаления исходных данных.
На втором шаге выполненяют запись скорректированной записи как новой в соответствии с алгоритмом записи исходных данных.
Внесение изменения в единичную запись в части корректировки значения исходного данного без изменения числа и значений координат многомерного вектора и без изменения (преимущественно увеличения) длины записи производят в следующей последовательности.
На первом шаге выполняют поиск и считывание корректируемой записи. Для этого адреса всех самых последних записей с заданными координатами по осям измерений определяют из соответствующих системных счетчиков. В результате сравнения между собой значений адресов выбирают адрес, наиболее приближенный к началу массива исходных данных (т.е. имеющий наименьшее значение). По этому адресу осуществляют переход к единичной записи исходных данных. У найденной записи проверяют соответствие координат по осям измерений критериям поиска. При совпадении запись помечают для изменения.
На втором шаге производят корректировку значения записи исходного данного.
На третьем шаге осуществляют сохранение исправленной записи на исходное место (логически и физически) его расположения в массиве исходных данных.
Предлагаемые структура многомерной базы данных и способ доступа к ней на этапе чтения единичных записей проиллюстрированы на примере исходных данных и метаданных трехмерной базы данных.
Исходные данные.
Измерение 1 = покупатели.
Измерение 2 = регионы.
Измерение 3 = виды товаров.
Значение данных = количество проданных товаров.
Единичные записи массива исходных данных содержат следующие реквизиты.
В качестве адреса единичной записи указана условная величина смещения данной единичной записи относительно начала массива в виде целого числа предшествующих ей единичных записей.
В поле адресных указателей символом М обозначена ссылка на номер системного счетчика, совпадающий со значением соответствующей координаты (указанной после символа М). Цифра без символа М обозначает адрес предыдущей единичной записи (расположенной ближе к началу массива исходных данных) с таким же значением такой же координаты. Наклонная черта является разделителем адресов по координатам.
В поле координат первая цифра обозначает порядковый номер оси измерения, две последующие цифры обозначают значение координаты на оси измерения. Наклонная черта является разделителем координат.
В поле значений данных приведено количество проданных товаров одного вида (см. таблицу).
В общем случае исходные данные - многомерные векторы (обладающие собственными наборами измерений в пределах общего базиса измерений многомерной базы данных) могут иметь переменную длину своих логических записей, что определяет необходимость формирования в структуре массива исходных данных последовательного списка логических записей без его преобразования в двухмерную матрицу, приведенную в примере для наглядности.
В рассматриваемом примере логические записи массива системных счетчиков содержат следующие поля:
Массив системных счетчиков включает три двухмерных матрицы (соответствующие количеству осей измерений приведенной базы данных), каждая из которых состоит из строки координат и строки системных счетчиков.
В строках координат указывают все значения координат единичных записей, включенных в массив исходных данных. В строках системных счетчиков указывают адреса расположения координат единичных записей, наиболее удаленных от начала массива исходных данных.
Процесс организации выборки информации из массива исходных данных показан на следующем примере.
В соответствии с информационным запросом пользователя необходимо определить количество товаров вида 3.15, проданных в регионе 2.26 покупателю под номером 1.39.
В соответствии со значениями системных счетчиков адрес (смещение) записи с координатой 3.15 равен 15, адрес записи с координатой 2.26 - 21 и адрес записи с координатой 1.39 - 20. Ввыполняют переход к единичной записи по адресу 15, координата которой (3.15) имеет минимальное значение среди адресов в системных счетчиках по заданным критериям (минимум из чисел 15, 21, 20), т.е. наиболее приближена к началу массива исходных данных. Эта логическая запись соответствует ключу поиска, заданному пользователем.
Поиск данных далее продолжают, анализируя адресные указатели координат по осям измерений найденной единичной записи: 1.39 -11, 2.26 - 14 и 3.15 - 10. Из массива исходных данных выбирают единичную запись с адресом 10 (минимум из 11, 14, 10). Найденная запись не полностью соответствует ключу поиска. В поле адресных указателей этой записи по координате 1.39 соответствует ссылка на адрес 2 в массиве исходных данных.
Проверка единичной записи по адресу 2 позволяет определить в ее поле адресных указателей ссылки на системные счетчики, что указывает на завершение процедуры выборки информации из массива исходных данных.
Результатом выборки информации является количество товаров, проданных покупателю под номером 1.39, равное 54 единицам.
Таким образом, в структуре массива исходных данных проведены многомерный поиск и выборка информации по координатам исходных данных (координатам многомерных векторов) без формирования дополнительного многомерного логического массива в виде гиперкуба.
Поиск проведен в три шага, что в восемь раз меньше общего количества единичных записей в массиве исходных данных. Эффективность применения предлагаемой многомерной базы данных в отличие от известных возрастает при увеличении числа измерений и количества единичных записей.
Источники информации
1. «Distributed Database Management Systems Issues and Approaches». Автор: Amjad Dinar, Издатель University of Michigan College of Engineering, 1988, стр.46.
2. «Database Management Systems»; Авторы: Raghu Ramakrishnan, Johannes Gehrke, Издатель McGraw-Hill Professional, 2002, стр.1104.
3. «Rules in Database Systems»; Автор: Sellis, Издатель Springer, 1995, стр.373.
название | год | авторы | номер документа |
---|---|---|---|
МНОГОМЕРНАЯ БАЗА ДАННЫХ И СПОСОБ УПРАВЛЕНИЯ МНОГОМЕРНОЙ БАЗОЙ ДАННЫХ | 2008 |
|
RU2389066C2 |
СПОСОБ ВОССТАНОВЛЕНИЯ ДАННЫХ В СИСТЕМЕ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ | 2013 |
|
RU2526753C1 |
СПОСОБ И СИСТЕМА ОРГАНИЗАЦИИ И ФУНКЦИОНИРОВАНИЯ БАЗЫ ДАННЫХ НОРМАТИВНОЙ ДОКУМЕНТАЦИИ | 2008 |
|
RU2386166C2 |
СПОСОБ И СИСТЕМА АДАПТИВНОГО УПРАВЛЕНИЯ СВОБОДНЫМ ПРОСТРАНСТВОМ ПАМЯТИ НА ЗАПОМИНАЮЩЕМ УСТРОЙСТВЕ ПРИ РАБОТЕ С БАЗАМИ ДАННЫХ | 2017 |
|
RU2672001C1 |
СПОСОБ ПРОВЕДЕНИЯ РАЗДЕЛЕНИЯ ОБЪЕКТОВ БАЗЫ ДАННЫХ НА ОСНОВЕ МЕТОК КОНФИДЕНЦИАЛЬНОСТИ | 2017 |
|
RU2676223C1 |
СИСТЕМА И СПОСОБ ПОИСКА ДАННЫХ В БАЗЕ ДАННЫХ ГРАФОВ | 2015 |
|
RU2707708C2 |
СПОСОБ ЗАЩИЩЕННОГО ДОСТУПА К БАЗЕ ДАННЫХ | 2019 |
|
RU2709288C1 |
Рекомендательная система подбора персонала с использованием машинного обучения и с понижением размерности многомерных данных и способ подбора персонала с использованием машинного обучения и с понижением размерности многомерных данных | 2019 |
|
RU2711717C1 |
Логическое запоминающее устройство | 1981 |
|
SU963099A1 |
Генератор многомерных случайных процессов | 1990 |
|
SU1755279A1 |
Изобретение относится к области хранения данных в базах данных, в частности к многомерным базам данных, характеризующейся наличием массивов исходных данных из единичных записей, одного или нескольких массивов метаданных, представляющего собой двумерную матрицу, содержащую пары значений и соответствующих им координат одной из осей измерений. Технический результат, заключающийся в повышении производительности и снижении стоимости обработки информации, достигается за счет того, что массив исходных данных сформирован в виде последовательного списка единичных записей, расположенных в порядке поступления из источника исходной информации; в состав многомерной базы данных дополнительно включены массивы системных счетчиков, представленных в виде двухмерной матрицы, содержащей пары координат многомерных векторов по осям измерений и наиболее поздних имеющихся физических адресов расположения записей в массиве исходных данных, единичная запись многомерного вектора дополнительно содержит адресные указатели, каждый содержит адрес расположения в массиве исходных данных совпадающей координаты по совпадающей оси измерений предыдущего многомерного вектора или ссылку на последний адрес совпадающей координаты по оси измерения, содержащейся в массиве системных счетчиков. 2 н. и 2 з.п. ф-лы, 1 табл.
одного или нескольких массивов исходных данных из единичных записей, логически представленных в виде многомерных векторов, каждый из которых содержит по крайней мере одно значение данного и его координаты по осям измерений многомерной базы данных, одного или нескольких массивов метаданных, каждый из которых логически представлен в виде двухмерного вектора, физически представляющего собой двумерную матрицу, содержащую пары значений и соответствующих им координат одной из осей измерений, отличающаяся тем, что
массив исходных данных, логически являющихся многомерными векторами, физически сформирован в виде последовательного списка единичных записей, расположенных в порядке поступления из источника исходной информации;
в состав многомерной базы данных дополнительно включен один или несколько массивов системных счетчиков, каждый из которых логически является двумерным вектором, физически представленных в виде двухмерной матрицы, содержащей пары координат многомерных векторов по осям измерений и наиболее поздних имеющихся физических адресов расположения записей в массиве исходных данных, при этом каждому массиву исходных данных логически соответствует соответствующий массив системного счетчика;
единичная запись многомерного вектора дополнительно содержит адресные указатели, каждый из которых ассоциативно связан с одной из координат этого многомерного вектора (единичной записи) по оси измерений и содержит адрес расположения в массиве исходных данных совпадающей координаты по совпадающей оси измерений предыдущего многомерного вектора или, в случае его отсутствия, ссылку на последний адрес совпадающей координаты по оси измерения, содержащейся в массиве системных счетчиков.
а) при записи исходных данных
на первом шаге в адресные указатели координат по оси измерений первой по порядку единичной записи записывают ссылки на адреса ячеек матрицы системных счетчиков с совпадающими координатами по оси измерений, причем адрес первой по порядку единичной записи включают в ячейки матрицы системных счетчиков в качестве адреса каждой из координат по имеющимся осям измерений;
на втором и последующих шагах в адресные указатели каждой следующей единичной записи включают адреса совпадающих координат по осям измерений, записанные в системных счетчиках, или в случае отсутствия этих записей, ссылки на ячейки адресов матрицы системных счетчиков с совпадающими координатами по осям измерений, при этом адрес следующей единичной записи заменяет в ячейках матрицы системных счетчиков предшествующую запись;
б) при чтении исходных данных
на первом шаге производят выбор единичной записи на основе сравнения между собой абсолютных значений адресов расположения единичных записей с совпадающими значениями координат по осям измерений, отраженных в ячейках матрицы системных счетчиков, выбора наименьшего значения адреса и выполнение перехода по выбранному адресу;
на втором и последующих шагах
после выполнения перехода к выбранной записи производят выявление соответствия остальных координат записи по осям измерений критериям поиска, и при совпадении считывание записи для аналитического расчета,
сравнение между собой абсолютных значений адресных указателей выбранной единичной записи, определение наименьшего значения адреса,
выбор следующей единичной записи по указанному адресу, проверку на соответствие критериям поиска, и так далее, вплоть до нахождения записи, один или несколько адресных указателей которой имеют ссылки на ячейки матрицы системных счетчиков;
в) при удалении исходных данных
на первом шаге производят выбор удаляемой единичной записи и пометку ее для удаления, выбор связанных с ней адресными ссылками и следующих за ней по порядку единичных записей, а также выявление связанных с ней адресными ссылками ячеек матрицы системных счетчиков, причем указанный выбор выполняют на основе сравнения между собой абсолютных значений адресов расположения единичных записей с совпадающими значениями координат по осям измерений отраженных в ячейках матрицы системных счетчиков, выбора наименьшего значения адреса и выполнение перехода по выбранному адресу;
на втором шаге в адресные указатели связанных адресными ссылками единичных записей, следующих по порядку за удаляемой, записывают значения адресных указателей и ссылки на ячейки матрицы системных счетчиков, содержащиеся в удаляемой записи;
на третьем шаге в системные счетчики записывают адреса записей с такими же координатами по осям измерений, связанных адресными ссылками единичных записей, следующих за удаляемой записью;
на четвертом шаге удаляемую единичную запись исключают из массива исходных данных;
г) при изменении исходных данных с корректировкой числа и значений координат по осям измерений многомерного вектора без увеличения длины единичной записи
на первом шаге производят выбор удаляемой единичной записи и пометку ее для удаления, выбор связанных с ней адресными ссылками следующих за ней по порядку единичных записей, а также выявление связанных с ней адресными ссылками ячеек матрицы системных счетчиков, причем указанный выбор выполняют на основе сравнения между собой абсолютных значений адресов расположения единичных записей с совпадающими значениями координат по осям измерений, отраженных в ячейках матрицы системных счетчиков, выбора наименьшего значения адреса и выполнение перехода по выбранному адресу;
на втором шаге в адресные указатели связанных адресными ссылками единичных записей, следующих по порядку за удаляемой, записывают значения адресных указателей и ссылки на ячейки системных счетчиков, содержащиеся в удаляемой записи;
на третьем шаге корректируют в число и значения координат по осям измерений изменяемой единичной записи;
на четвертом шаге производят выбор удаляемой единичной записи и связанных с ней адресными ссылками следующих за ней по порядку единичных записей, а также выявление связанных с ней адресными ссылками ячеек матрицы системных счетчиков, причем указанный выбор выполняют на основе сравнения между собой абсолютных значений адресов расположения единичных записей с совпадающими значениями координат по осям измерений, отраженных в ячейках матрицы системных счетчиков, выбора наименьшего значения адреса и выполнение перехода по выбранному адресу;
на пятом шаге в адресные указатели координат по осям измерений измененной единичной записи записывают значения адресных указателей и ссылки на ячейки матрицы системных счетчиков (в случае их наличия), содержащиеся в адресно-связанных единичных записях, следующих за измененной;
на шестом шаге в адресные указатели адресно связанных единичных записей, следующих за измененной, записывают адреса координат по осям измерений измененной записи;
на седьмом шаге в ячейки матрицы системных счетчиков записывают адреса координат по осям измерений измененной единичной записи;
д) при изменении исходных данных в части корректировки числа и значений координат по осям измерений многомерного вектора с увеличением длины единичной записи
на первом шаге выполняют считывание содержимого записи в память и ее удаление на среде хранения в соответствии с алгоритмом удаления исходных данных;
выполняют корректировку содержимого записи;
формируют новую скорректированную запись;
записывают скорректированную запись в соответствии с алгоритмом записи исходных данных;
е) при изменении исходных данных в части корректировки значения исходного данного без изменения числа и значений координат по осям измерений многомерного вектора и без увеличения длины единичной записи
на первом шаге производят считывание записи в соответствии с алгоритмом чтения исходных данных;
на втором шаге производят корректировку значения исходного данного;
на третьем шаге осуществляют запись скорректированного исходного данного на место расположения считанной записи в массиве исходных данных.
на втором и последующих шагах осуществляют дополнительную выборку из массива исходных данных единичных записей, содержащих указанные координаты и расположенных по адресам, указанным в адресных указателях единичных записей, определенных на предыдущем шаге поиска;
значения адресных указателей единичных записей, дополнительно выбранных из массива исходных данных, используют в процессе сравнения со значениями адресных указателей первоначально выбранной единичной записи для определения минимального значения в качестве искомого адреса следующей единичной записи, то есть наиболее приближенной к началу массива исходных данных.
СПОСОБ И СИСТЕМА ДЛЯ ОРГАНИЗАЦИИ ДАННЫХ | 2000 |
|
RU2268488C2 |
СПОСОБ АВТОМАТИЧЕСКОЙ КЛАССИФИКАЦИИ ДОКУМЕНТОВ | 2003 |
|
RU2254610C2 |
СПОСОБ ПОТОКОВОЙ ОБРАБОТКИ ТЕКСТОВЫХ СООБЩЕНИЙ | 2003 |
|
RU2251148C1 |
US 6839711 В1, 04.01.2005 | |||
JP 2001282590, 12.10.2001. |
Авторы
Даты
2008-05-27—Публикация
2006-09-21—Подача