СПОСОБ ПОИСКА ДАННЫХ ОБ ОБЪЕКТАХ И В РАЗЛИЧНЫХ БАЗАХ ДАННЫХ И СИСТЕМА ДЛЯ ЕГО РЕАЛИЗАЦИИ
METHOD FOR SEARCHING DATA ON OBJECTS AND IN VARIOUS DATABASES AND SYSTEM FOR ITS REALISATION

Изобретение относится к вычислительной технике, в частности к обработке цифровых данных, предназначенных для специфических функций с помощью специфических устройств, и может найти применение для обработки, хранения, анализа и представления данных об объектах, находящихся в разнородных базах данных (информационных массивах), и связях между ними. В частности, информационные массивы могут содержать данные по объектам следующих типов: юридические лица, физические лица, строения, помещения и другие.
Известен способ по заявке на изобретение №2006102530/09 «Модель данных для объектно-реляционных данных», представляющий собой способ хранения данных произвольной структуры. Этот способ предназначен для облегчения доступа к данным путем хранения разнородной информации в единой универсальной объектной структуре. Для этого необходимо произвести предварительную трансформацию всех исходных данных, что во многих случаях может быть связано с ресурсными затратами и значительным увеличением объема данных.
Известны способ «Поиска и выборки информации из различных баз данных» по патенту РФ №2305314 и способ «Способ поиска и выборки информации с повышенной релевантностью» по патенту РФ №2236699. Указанные способы ориентированы на поиск и выборку информации из баз данных, содержащих только текстовые документы. Поэтому невозможно выполнить поиск по заранее определенному набору поисковых атрибутов в реляционных базах данных.
Известно устройство ситуационного поиска информации по патенту на полезную модель №13108. Устройство имеет выход ко всем доступным неограниченным информационным ресурсам и позволяет получать информацию с высоким уровнем релевантности. Однако оно позволяет проводить поиск релевантной информации только по одному непараметризованному наборному полю и только по информационным ресурсам, содержащим текстовые архивы информации. Также в устройстве отсутствуют модули, выполняющие автоматическое формирование сигналов поиска, в соответствии с метаданными, описывающими структуру информационных ресурсов, что подразумевает определенные затраты при организации связей с дополнительными информационными ресурсами.
Также известна Иерархическая многоуровневая автоматизированная система сбора и обработки данных по патенту на полезную модель №43984. Система состоит из множества идентичных по структуре и функциональному назначению звеньев сбора и обработки данных, каждое из которых содержит блок хранения шаблонов ввода, блок хранения статической справочной информации, блок хранения вводимых данных, блок ввода данных, блок импорта, блок экспорта, блок архивирования, блок восстановления, блок электронного обмена данными между уровнями и блок хранения резервных копий данных. Однако она ориентирована на пакетный обмен данными и, как следствие, в ней отсутствуют средства поиска и предоставления сводной справки о найденных объектах.
Технической задачей, на решение которой направлено данное изобретение, является повышение быстродействия при поиске и получении данных об интересуемых объектах, сведения о которых находятся в разнородных информационных массивах, и связях между ними.
Эта задача решена тем, что в способе поиска данных об объектах и в различных базах данных, заключающемся в том, что формируют пакет данных на основании введенных параметров пользовательских запросов, таких как поисковые атрибуты и условия, идентифицируют пользователя с помощью устройства авторизации, создают с помощью устройства управления контекстом объект контекста пользовательской сессии, в котором сохраняют параметры поискового запроса и формируют поисковые запросы с помощью устройства формирования пользовательских запросов на основании полученных из устройства управления конфигурацией метаданных, описывающих тип, состав, структуру и принадлежность баз данных, а также сведений, указанных в сформированном пакете данных пользовательского запроса, определяют набор баз данных, участвующих в поиске, с учетом уровня доступа пользователя, выполняют поиск элементов общих для всех баз данных классификаторов и определяют множество соответствующих им идентификаторов для каждой базы данных, участвующей в поиске, после чего для каждой из набора баз данных выполняют последовательности запросов для поиска объектов каждого типа и составляют список идентификаторов найденных объектов, удовлетворяющих условиям поиска, получают список идентификаторов найденных объектов, удовлетворяющих условиям поискового запроса для каждой базы, который трансформируют в единый формат информации и сохраняют в объекте контекста пользовательской сессии, при этом при выполнении последовательности запросов для поиска объектов каждого типа, сведения о которых содержатся в базе данных, значения атрибутов объектов, которые распределены по нескольким таблицам, собираются в одно плоское денормализованное представление данных с учетом множественности значений атрибутов, содержащее помимо значений поисковых атрибутов также и идентификаторы объектов.
В соответствии с п.2 формулы, определяют набор баз данных, участвующих в поиске как пересечение множеств разрешенных и указанных в параметрах пользовательских запросов баз данных, относящихся к выбранным пользователем группам и поисковым атрибутам, указанным в параметрах пользовательских запросов.
В соответствии с п.3 формулы, поисковые запросы выполняют в базах данных независимо один от другого в асинхронном режиме.
Информационно-поисковая система для реализации способа по п.1-3, содержащая устройство ввода данных, связанное с устройством формирования пользовательских запросов, которое связано устройством протоколирования и с устройством маршрутизации запросов, которое связано с устройством авторизации, и с устройством управления контекстом, а также с устройством формирования статистических результатов, которое связано с устройством управления контекстом и устройством вывода данных, которые также связаны с устройством формирования отчетов, входы которого связаны с устройством маршрутизации запросов и с устройством хранения данных, отличающаяся тем, что она дополнительно содержит устройство независимого поиска, входы которого связаны с устройством маршрутизации запросов, устройством управления контекстом и устройством управления конфигурацией, а выходы связаны с устройством хранения данных и устройством протоколирования, при этом устройство независимого поиска предназначено для выполнения поиска в блоках хранения данных в соответствии с заданными параметрами запроса пользователя системы и результатами анализа состава и конфигурации блоков хранения данных, составляющих устройство хранения данных, устройство управления конфигурацией предназначено для ведения метаданных о типе, составе, структуре и принадлежности сведений, хранящихся в блоках устройства хранения данных, а входы устройства управления контекстом связаны с устройством хранения данных.
Сущность изобретения поясняется чертежом, на котором представлена блок-схема системы, на которой:
1 - устройство ввода данных, в частности один или несколько пользовательских терминалов, соединенных с управляющей ЭВМ посредством сетевого коммуникационного оборудования, с подключенными к ним устройствами ввода, такими как клавиатура и/или манипулятор «мышь»;
2 - устройство формирования пользовательских запросов, в частности управляющая ЭВМ, включающая в себя процессор и оперативную память, формирует пакет данных, содержащий параметры команд и условия поиска;
3 - устройство авторизации, в частности управляющая ЭВМ, включающая в себя процессор и подсистему хранения данных, обеспечивает проверку необходимых параметров и предоставляет определенные полномочия лицу или группе лиц (прав доступа) на выполнение некоторых действий;
4 - устройство протоколирования, в частности управляющая ЭВМ, включающая в себя процессор и подсистему хранения данных, обеспечивает хронологическую запись с различной степенью детализации сведений о происходящих в системе событиях (ошибки, предупреждения, сообщения) в подсистему хранения данных (ведение журнала);
5 - устройство формирования статистических результатов, в частности управляющая ЭВМ, включающая в себя процессор и оперативную память, обеспечивает формирование сводной статистики по результатам проведенного поиска;
6 - устройство маршрутизации запросов, в частности управляющая ЭВМ, включающая в себя процессор и оперативную память, предназначено для передачи пользовательских запросов соответствующим устройствам системы для последующего выполнения;
7 - устройство управления контекстом, в частности управляющая ЭВМ, соединенная через общую шину или иные каналы связи с устройством хранения данных, включающая в себя процессор, оперативную память и подсистему хранения данных, обеспечивает поддержку контекста пользовательской сессии;
8 - устройство независимого поиска, в частности управляющая ЭВМ, соединенная через общую шину или иные каналы связи с устройством хранения данных, включающая в себя процессор и оперативную память, динамически формирует набор поисковых запросов;
9 - устройство управления конфигурацией, в частности управляющая ЭВМ, включающая в себя процессор, подсистему хранения данных, а также устройство ввода и отображения метаданных, обеспечивает ведение метаданных об информации, хранящейся в устройстве хранения данных;
10 - устройство формирования отчетов, в частности управляющая ЭВМ, включающая в себя процессор, оперативную память и подсистему хранения данных, обеспечивает получение информации по найденным объектам;
11 - устройство вывода данных, в частности один или несколько пользовательских терминалов, соединенных с управляющей ЭВМ посредством сетевого коммуникационного оборудования с подключенными к ним устройствами отображения данных.
Пример осуществления способа рассмотрим на примере работы системы, которая происходит следующим образом.
С помощью устройства ввода данных (1) пользователь вводит параметры пользовательских запросов, содержащие условия и поисковые атрибуты, а также сервисные и служебные команды. На основании введенных значений устройство формирования пользовательских запросов (2) формирует пакет данных, содержащий параметры команд и условия поиска интересуемых объектов. При этом с помощью устройства протоколирования (4), предназначенного для ведения учета всех действий, выполняемых пользователями в Системе, происходит регистрация параметров всех сформированных запросов в журнале событий, предназначенном для записи в хронологическом порядке сведений о происходящих в системе событиях с различной степенью детализации.
Сформированный пользовательский запрос передается в устройство маршрутизации запросов (6), предназначенное для передачи пользовательских запросов соответствующим устройствам системы для последующего выполнения. Устройство маршрутизации запросов (6) определяет набор действий, перечень устройств, а также последовательность выполнения действий, необходимых для выполнения поступившего запроса. Для каждого действия с помощью устройства авторизации (3) выполняется проверка уровня доступа пользователя на выполнение. Устройство авторизации (3) предназначено для накапливания и контролирования всей информации о пользователях Системы, правах доступа, а также управления разграничением уровня доступа к ресурсам Системы. Если устройством авторизации (3) установлен факт поступления запроса на выполнение несанкционированного действия, то в устройство протоколирования (4) передается сигнал, по которому выполняется соответствующая запись в журнал событий.
В начале каждого сеанса работы пользователя с системой поступает запрос на авторизацию пользователя в системе. Этот запрос транслируется модулем маршрутизации запросов (6) в устройство авторизации (3), где происходит идентификация и авторизация пользователя. В случае успешной авторизации с помощью устройства управления контекстом (7) создается объект контекста пользовательской сессии, где сохраняются все необходимые промежуточные параметры и результаты работы пользователя в системе: значения атрибутов поиска, перечень источников поиска, тематических блоков, регионов, список найденных объектов и т.д.
Запрос, содержащий значения атрибутов поиска, перечень источников поиска, тематических блоков, регионов, транслируется устройством маршрутизации запросов (6) в устройство управления контекстом (7), где указанные параметры поискового запроса сохраняются в текущем объекте контекста пользовательской сессии.
Запрос на выполнение поиска транслируется устройством маршрутизации запросов (6) в устройство независимого поиска (8). Здесь, на основании значений атрибутов поиска, перечня источников поиска, тематических блоков, регионов, полученных из устройства управления контекстом (7), динамически формируется набор поисковых запросов непосредственно к источникам данных, представляющих собой ни что иное, как набор баз данных в устройстве хранения данных. В результате выполнения поисковых запросов получается список идентификаторов найденных объектов, однозначно определяющий множество объектов, удовлетворяющих заданным условиям поиска, сведения о которых содержатся в устройстве хранения данных. Список этих идентификаторов передается в устройство управления контекстом (7) для хранения с привязкой к базам данных и типам соответствующих найденных объектов. Структура динамически формируемых запросов к базам данных устройства хранения данных определяется устройством независимого поиска (8) на основании метаданных, полученных из устройства управления конфигурацией (9). Устройство управления конфигурацией (9) предназначено для ведения метаданных о типе, составе, структуре и принадлежности сведений, хранящихся в устройстве хранения данных. Эти метаданные содержат описание состава баз данных устройства хранения данных: структуры таблиц, описания столбцов, связей; перечень и принадлежность к базе данных тематических блоков, типов объектов, поисковых и отчетных атрибутов, перечень общих для всех баз данных классификаторов, таблицы соответствия элементов общих классификаторов элементам баз данных.
При динамическом формировании запросов сначала определяют следующие наборы баз данных устройства хранения данных:
- набор баз данных, соответствующий перечню источников поиска, указанному в параметрах поискового запроса;
- набор баз данных, доступ к которым разрешен для пользователя устройством авторизации (3);
- набор баз данных, которые содержат информацию, принадлежащую хотя бы одному тематическому блоку, указанному в параметрах поискового запроса;
- набор баз данных, содержащих сведения, относящиеся хотя бы к одному региону, указанному в параметрах поискового запроса;
- набор баз данных, в которых присутствует информация по всем поисковым атрибутам, значения которых указаны в параметрах поискового запроса.
Далее определяют набор баз данных, участвующих в поиске, как пересечение полученных на предыдущем шаге наборов. Затем выполняют поиск элементов в общих для всех баз данных классификаторов, содержащих атрибуты, значения которых указаны в параметрах поискового запроса. По таблицам соответствия элементов общих классификаторов определяют множества идентификаторов соответствующих найденных элементов классификаторов для каждой базы данных, участвующей в поиске. Найденные идентификаторы элементов общих классификаторов сохраняются в текущем контексте пользовательской сессии в устройстве управления контекстом (7) для последующего использования. Из набора баз данных, участвующих в поиске, исключают базы, по которым не было найдено ни одного элемента при поиске по общим классификаторам.
После этого для каждой из оставшихся баз данных по очереди выполняют последовательности запросов для поиска объектов каждого типа, сведения о которых содержатся в базе данных, на соответствие всем значениям поисковых атрибутов для данного типа объектов, указанным в параметрах поискового запроса. При этом значения атрибутов объектов, которые распределены по нескольким таблицам, собирают в одно плоское денормализованное представление с учетом множественности значений атрибутов, содержащее помимо значений поисковых атрибутов также и идентификаторы объектов. Для атрибутов, ссылающихся на общие классификаторы, при поиске используют не само значение атрибута, а предварительно полученные наборы идентификаторов соответствующих элементов общих классификаторов. Таким образом, в результате получают наборы идентификаторов объектов независимо по каждому типу объектов, удовлетворяющих условиям поискового запроса. Далее вычисляют пересечение всех полученных наборов объектов с учетом определенных прямых связей между объектами. Оставшиеся после пересечения идентификаторы объектов однозначно определяют множество объектов разного типа, удовлетворяющих условиям поискового запроса для каждой базы данных, участвующей в поиске. Значения полученных идентификаторов сохраняются в объекте контекста пользовательской сессии при помощи устройства управления контекстом (7). Таким образом, решена задача поиска объектов, которые находятся в разнородных базах данных (информационных массивах). При этом пользователю достаточно активизировать всего один поисковый запрос к системе, который затем автоматически преобразуется в множество адаптированных запросов для поиска объектов в разнородных базах данных, что в несколько раз уменьшает трудоемкость формирования поисковых запросов (в общем случае, в N раз, где N - количество разнородных баз данных, составляющих устройство хранения данных). И как следствие, повышается быстродействие при поиске интересуемых объектов, сведения о которых находятся в разнородных информационных массивах.
В соответствии с п.5 формулы, сформированные аналогичным образом последовательности запросов выполняют в каждой из участвующих в поиске баз данных одновременно, независимо одна от другой (асинхронно). Запрос на выполнение поиска считают обработанным, когда закончилось выполнение самого последнего запроса по всем базам данных. Такой вариант позволяет еще больше сократить общее время выполнения поискового запроса за счет параллельного выполнения независимых между собой процессов поиска.
Запрос на получение статистических результатов поиска транслируется модулем маршрутизации запросов (6) в устройство формирования статистических результатов (5), предназначенное для формирования сводной статистики по результатам проведенного поиска. Здесь, на основании списка идентификаторов найденных объектов, полученных из устройства управления контекстом (7), и метаданных, содержащих описание состава баз данных, типы объектов и принадлежность к тематическим блокам, полученным из устройства управления конфигурацией (9), формируется сводная статистика, содержащая количество найденных объектов, сгруппированных по принадлежности к типам и тематическим блокам. Сформированные таким образом статистические данные передаются в устройство вывода данных (11), где в табличной форме представляются пользователю.
Запрос на получение информации по найденным в результате проведенного поиска объектам транслируется устройством маршрутизации запросов (6) в устройство формирования отчетов (10). Для определения состава и объема получаемой информации запрос может содержать следующие параметры: набор идентификаторов, однозначно определяющих множество объектов, относящихся к разным базам данных, отобранных пользователем из набора найденных в результате проведенного поиска объектов; набор тематических блоков отчета, определяющих тематический состав формируемых сведений. При формировании отчета по найденным объектам используется принцип группировки информации по типам объектов, то есть информация по объектам, относящимся к одному типу, но принадлежащим разным базам данных, трансформируется в единую структуру и может быть представлена в заранее определенном формате отчета. Для этого устройство формирования отчетов (10) сначала определяет список баз данных, в которых содержатся сведения об указанных в параметрах запроса объектах. Затем, для каждого объекта каждой базы данных из этого списка динамически формируется последовательность запросов на получение требуемой информации. В результате выполнения этих запросов данные преобразуются в соответствующие заранее определенные структуры для каждого типа объектов для их последующего объединения в едином отчете. Описания единых структур отчета (перечень таблиц, полей, связей) в привязке к типам объектов хранится в виде мета данных в устройстве управления конфигурацией (9).
В результате выполнения запроса на получение информации по найденным объектам формируется общий набор данных, содержащий объединенные сведения по объектам, найденным в различных базах данных. Этот набор данных соответствует определенной структуре и представляется пользователю в виде, пригодном к восприятию при помощи устройства вывода данных (11).
Таким образом, решена задача получения данных об указанных объектах и связях, которые находятся в разнородных базах данных (информационных массивах). При этом, как и в случае с поиском, пользователю достаточно активизировать всего один запрос на получение информации к системе, который затем автоматически преобразуется в множество адаптированных запросов для выборки сведений об объектах в разнородных базах данных, что в несколько раз уменьшает трудоемкость формирования отчетных запросов (в общем случае, в N раз, где N - количество разнородных баз данных, составляющих устройство хранения данных), и как следствие, повышается быстродействие при получении данных об указанных объектах, сведения о которых находятся в разнородных информационных массивах (базах данных).