МНОГОМЕРНАЯ БАЗА ДАННЫХ И СПОСОБ УПРАВЛЕНИЯ МНОГОМЕРНОЙ БАЗОЙ ДАННЫХ

1. Многомерная база данных, физическая структура данных которой состоит из элементов, логически соответствующих точке входа, гиперкубам, измерениям, дескрипторам координат и координатам векторов данных многомерного пространства, отличающаяся тем, что каждый элемент представлен идентификатором, включающим адрес, равный величине смещения относительно начала физического файла записи (далее - файла) указанной многомерной базы данных, номер транзакции, в составе которой был записан идентификатор, код, соответствующий значению идентификатора, и набор указателей четырех типов, содержащих адреса связанных с ним идентификаторов и индикаторы,
причем идентификатор точки входа расположен в начале файла, при этом его указатель первого типа содержит адрес идентификатора, записанного последним в файл, указатель второго типа содержит адрес второго экземпляра точки входа, указатель третьего типа содержит адрес корня двоичного дерева гиперкубов с нечетными кодами идентификаторов, указатель четвертого типа содержит адрес корня двоичного дерева гиперкубов с четными кодами идентификаторов;
причем идентификаторы гиперкубов расположены в порядке записи в файл и связаны указателями первого и второго типов в двоичные деревья гиперкубов, при этом коды идентификаторов являются ключами поиска элементов в составе двоичных деревьев гиперкубов, указатели третьего типа содержат адреса корней двоичных деревьев измерений с нечетными кодами идентификаторов, указатели четвертого типа содержат адреса корней двоичных деревьев измерений с четными кодами идентификаторов;
причем идентификаторы измерений расположены в порядке записи в файл и связаны указателями первого и второго типов в двоичные деревья измерений, при этом коды идентификаторов являются ключами поиска элементов в составе двоичных деревьев измерений, указатели третьего типа содержат адреса корней двоичных деревьев дескрипторов с нечетными кодами идентификаторов, указатели четвертого типа содержат адреса корней двоичных деревьев дескрипторов с четными кодами идентификаторов;
причем идентификаторы дескрипторов расположены в порядке записи в файл и связаны указателями первого и второго типов в двоичные деревья дескрипторов, при этом коды идентификаторов являются ключами поиска элементов в составе двоичных деревьев дескрипторов, указатели третьего типа содержат адреса идентификаторов координат с совпадающими кодами, входящих в состав многосвязных списков координат и записанных последними по порядку, указатели четвертого типа содержат адреса идентификаторов координат с совпадающими кодами первых экземпляров многосвязных списков координат;
причем идентификаторы координат расположены в порядке записи в файл и связаны указателями в многосвязные списки координат, при этом указатели первого типа идентификаторов координат, записанных первыми по порядку, содержат адреса идентификаторов дескрипторов с совпадающими кодами, указатели первого типа идентификаторов координат, записанных следующими по порядку, содержат адреса предыдущих идентификаторов координат с совпадающими кодами, указатели второго типа содержат адреса идентификаторов координат, входящих в состав одного вектора данного, указатели третьего типа содержат адреса идентификаторов координат, входящие в состав одной иерархической группы вектора данного, указатели четвертого типа содержат адреса идентификаторов координат, входящих в состав одной вариантной группы вектора данного.
2. Многомерная база данных по п.1, отличающаяся тем, что индикаторы указателей идентификаторов содержат следующие значения
индикатор указателя первого типа идентификатора дескриптора содержит количество связанных с ним идентификаторов координат с совпадающим кодом;
индикатор указателя первого типа идентификатора координаты содержит количество связанных с ним идентификаторов координат с совпадающим кодом, предшествующих по порядку записи;
индикатор указателя второго типа идентификатора координаты содержит величину его смещения относительно идентификатора координаты, записанного первым по порядку в составе вектора данного;
индикатор указателя третьего типа идентификатора координаты содержит уровень иерархии координаты в составе иерархической группы координат вектора данного;
индикатор указателя четвертого типа идентификатора координаты содержит порядковый номер вариантной группы координат в составе вектора данного.
3. Многомерная база данных по п.1 или 2, отличающаяся тем, что
в состав базы данных входит служебный гиперкуб, включающий в себя полный набор измерений, каждое из указанных измерений включает в себя полный набор координат, при этом в набор измерений служебного гиперкуба входит служебное измерение, координатами указанного служебного измерения являются измерения многомерного пространства;
векторы данных, относящиеся к служебному гиперкубу, содержат наименования базы данных, гиперкубов, измерений и координат, соответствующие кодам идентификаторов координат и представленные в виде фрагментов неструктурированной информации, расположенных между идентификаторами координат;
в состав каждого вектора данного входят служебные идентификаторы координат, расположенные на первом и втором уровнях иерархии и относящиеся соответственно к измерению типов данных, входящих в подмножество гиперкуба, и к измерению уникальных идентификационных номеров данных, присваиваемых в порядке их включения в подмножество гиперкуба.
4. Способ управления многомерной базой данных по любому из пп.1-3, включающий операции записи, чтения, удаления, изменения, сжатия, многопользовательского доступа и восстановления внутренней непротиворечивости информации после аварийного завершения работы базы данных, отличающийся тем, что
запись информации производят в виде набора идентификаторов, входящих в состав одной транзакции,
запись новых значений идентификаторов точки входа, гиперкубов, измерений и дескрипторов, ранее записанных в файл, производят путем изменения ранее записанных значений этих идентификаторов,
запись идентификаторов координат, входящих в состав одной транзакции, производят в опережающем порядке относительно записи идентификаторов дескрипторов, входящих в состав той же транзакции;
чтение информации производят на основании ключа поиска, сформированного из кодов идентификаторов координат, входящих в состав искомых векторов данных,
чтение идентификаторов гиперкубов, измерений и дескрипторов производят путем последовательного поиска элементов физической структуры данных, коды которых соответствуют кодам идентификаторов координат ключа поиска,
чтение идентификаторов координат производят, начиная с выбора идентификатора дескриптора с наименьшим значением индикатора указателя третьего типа, перехода к идентификатору координаты с совпадающим кодом, чтения всех идентификаторов координат, входящих в состав одного вектора данного, включения вектора данного в отчет о поиске в случае совпадения идентификаторов координат с ключом поиска, выбора идентификатора координаты, входящего в ключ поиска и обладающего наименьшим значением индикатора указателя первого типа, и последовательного перехода к следующим идентификаторам координат в составе векторов данных вплоть до достижения идентификатора координаты с нулевым значением индикатора указателя первого типа;
удаление и изменение информации осуществляют на логическом уровне,
удаление идентификаторов гиперкубов, измерений и дескрипторов производят путем приравнивания нулю значений адресов указателей третьего и четвертого типов, при этом изменение идентификаторов гиперкубов, измерений и дескрипторов производят путем присваивания нулевых значений индикаторам указателей третьего и четвертого типов,
удаление идентификаторов координат производят путем записи новых версий векторов данных, в состав которых включены удаленные идентификаторы координат с нулевыми кодами и неизмененными значениями адресов, при этом изменение идентификаторов координат производят путем записи новых векторов данных, в состав которых включены измененные идентификаторы координат с измененными кодами и неизмененными значениями адресов;
сжатие информации производят путем записи вторых экземпляров идентификаторов точки входа, гиперкубов, измерений, дескрипторов и координат, консолидации векторов данных и последующего удаления из файла первых экземпляров идентификаторов,
запись вторых экземпляров идентификаторов гиперкубов, измерений и дескрипторов производят в составе одной транзакции с одновременным присваиванием нулевых значений адресов указателям третьего и четвертого типов ранее удаленных идентификаторов,
запись вторых экземпляров идентификаторов координат производят в составе разных транзакций после консолидации версий векторов данных без включения в состав консолидированных версий удаленных и измененных идентификаторов координат,
по окончанию сжатия запись и чтение информации производят на основании адресов указателей идентификаторов гиперкубов, измерений, дескрипторов и координат, соответственно увеличенных и уменьшенных на величину адреса, содержащуюся в идентификаторе точки входа;
многопользовательский доступ к информации обеспечивают посредством версионной записи вновь поступающей информации и чтения ранее сохраненной информации в виде консолидированных версий данных, сформированных на момент начала операции чтения,
запись удаленной или измененной информации производят после повторного чтения информации в порядке поступления команд пользователей на запись, блокировки записи удаляемых или изменяемых данных, сравнения номеров транзакций в составе удаленной или измененной информации и в составе прочитанной информации, повторного удаления или изменения информации в случае превышения номеров транзакций в составе прочитанной информации, снятия блокировки и записи удаленной или измененной информации;
восстановление внутренней непротиворечивости информации после аварийного завершения работы базы данных обеспечивают посредством контроля соответствия значений адресов указателей идентификаторов дескрипторов фактическому смещению идентификаторов координат относительно начала файла,
контроль соответствия начинают с чтения идентификаторов координат, входящих в состав последней по порядку записи транзакции, чтения идентификатора дескриптора, совпадающего по коду с первым идентификатором координаты в составе транзакции, и сравнения адреса указателя третьего типа идентификатора дескриптора с фактическим смещением первого идентификатора координаты,
в случае совпадения адреса указателя третьего типа идентификатора дескриптора с фактическим смещением первого идентификатора координаты осуществляют чтение, контроль и приведение в соответствие адресов указателей третьего типа остальных идентификаторов дескрипторов с фактическими смещениями остальных идентификаторов координат последней по порядку записи транзакции,
в случае несовпадения адреса указателя третьего типа идентификатора дескриптора с фактическим смещением первого идентификатора координаты все идентификаторы координат последней по порядку записи транзакции удаляют из файла.