СПОСОБ ВВОДА СВЕДЕНИЙ В БАЗУ ДАННЫХ И УСТРОЙСТВО ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ
METHOD OF INPUTTING DATA INTO DATABASE AND DEVICE THEREFOR

Предлагаемое изобретение относится к области технической кибернетики и может быть использовано в информационных (автоматизированных, информационно-аналитических, поддержки принятия решений) системах (ИС) для организации ввода сведений от различных источников информации в базы данных.
Известен способ, принципы которого могут быть использованы при организации ввода сведений от различных источников информации в базу данных [1], при котором элементы системы представляют многопараметрическими многоуровневыми иерархически упорядоченными и объединенными в сетевой граф структурами и формируют сведения о непосредственной и через атрибуты (параметры) взаимосвязи элементов системы описанием связей, представленных простыми и содержательными связями с описанием содержательного характера каждой.
Недостатком этого способа является то, что система ориентирована только на информационные объекты с заранее определенной структурой и невозможна организация ввода сведений от различных источников информации в базы данных.
Известен способ генерации уникальных ключей во взаимодействующих базах данных, изложенный в [2]. Наиболее перспективным считается способ генерации новых ключей для записей, загружаемых в базу данных из баз данных источников. Новый ключ генерируется с помощью специального алгоритма (чаще всего используют генерацию возрастающей последовательности целых чисел). При этом используется специальная структура метаданных (таблица или несколько таблиц) для хранения соответствий между ключами баз данных источников и ключами, сгенерированными в базе данных приемнике, а также процедуры для управления данной структурой.
Недостатком известного способа является то, что обеспечивается только уникальность записей в базе данных приемнике, когда данные получают от нескольких баз данных источников. В известном способе не обеспечивается исключение многократного хранения одних и тех же по содержанию данных по тем или иным причинам повторенных при передаче от нескольких баз данных источников. Кроме этого на практике не всегда есть возможность организовать каналы обмена между базами данных. Например, часто передают структурированные данные в виде файлов процессоров электронных таблиц (наиболее распространена практика передачи структурированных данных файлами Excel). В этом случае, как правило, отсутствуют уникальные ключи, обеспечивающие представление связей между записями данных сложной структуры.
Известен способ ввода сведений из электронных таблиц (например, из таблиц Excel) в базы данных [3], при котором образуют новую таблицу в базе данных, колонки которой образуют соответствующими колонкам электронной таблицы, а записи (строки таблицы) формируют из данных, внесенных в ячейки электронной таблицы соответствующих колонок. Указанный известный способ реализует в том числе и диалоговый режим, обеспечивающий дополнительные возможности пользователю, например выбор части колонок в электронной таблице, данные из которых необходимо внести в базу данных, переименование колонок вновь образуемой таблицы базы данных и другие возможности.
Недостатком этого способа ввода данных является невозможность ввода данных в существующие таблицы баз данных, в которых уже есть данные, и обеспечения корректного совмещения данных от нескольких источников и имеющихся в базе данных в единый логически связанный информационный массив.
Наиболее близким к предлагаемому является способ информационного обмена между базами данных информационных систем [4], в котором за счет введения централизованной службы идентификации данных формируют централизованные (в рамках информационной системы) уникальные ключи для типов записей данных (ИТО - "идентификаторы типов объектов"), указывают отдельные типы, для которых необходима централизованная идентификация экземпляров объектов, формируют централизованные (в рамках информационной системы) уникальные ключи для отдельных экземпляров записей данных (ЦИДЭ - "централизованные идентификаторы экземпляров"), хранят в базах данных информационной системы таблицы соответствия ЦИДЭ и уникальных ключей базы данных ("таблицы наличия экземпляров"), хранят в базах данных информационной системы таблицы признаков необходимости сопровождения информационных объектов ЦИДЭ ("таблицы признаков сопровождения") с привязкой этих признаков к ключам типов записей - ИТО и соответствующими процедурами при приеме данных исключают повторные записи данных, которые уже занесены в базы данных приемника и которые вновь поступают в составе данных от новых источников. Обеспечивается также корректное совмещение данных от нескольких источников в единый логически связанный информационный массив, что существенно повышает функциональные возможности системы.
Способ реализуется в системе информационного обмена, содержащей базы данных информационной системы, канал обмена между базами данных, а каждая база данных содержит устройство метаданных, устройство формирования массивов записей для обмена и устройство приема записей при обмене, при этом устройство метаданных содержит блок хранения уникальных ключей для типов записей данных и признаков необходимости сопровождения, входы и выходы которого соединены соответственно с первыми выходами и с первыми входами блока обслуживания запросов к устройству метаданных, вторые выходы и вторые входы которого соединены соответственно с входами и выходами блока хранения соответствия ключей записей базы данных и ключей экземпляров, при этом вторые канальные входы и вторые канальные выходы блока обслуживания запросов к устройству метаданных соединены через четвертый канал со вторыми канальными выходами и вторыми канальными входами блока управления формированием массива записей для обмена устройства формирования массива записей для обмена, которое содержит также блок хранения записей для обмена, входы и выходы которого соединены с выходами и входами блока управления формированием массива записей для обмена, первые канальные выходы которого соединены с каналом обмена между базами данных, а первые канальные входы соединены через третий канал со вторыми канальными выходами реляционной базы данных, с третьими канальными выходами и первыми канальными входами которой соединены через второй канал первые канальные входы и первые канальные выходы блока управления преобразованием массива и занесением записей в базу данных устройства приема записей при обмене, которое содержит также блок хранения массива записей принятого при обмене и блок хранения результатов анализа и преобразования массива записей, входы и выходы которых соединены соответственно со вторыми выходами, вторыми входами, первыми выходами и первыми входами блока управления преобразованием массива и занесением записей в базу данных, третьи канальные входы которого соединены с каналом обмена между базами данных, а вторые канальные входы и вторые канальные выходы через пятый канал соединены с третьими канальными выходами и третьими канальными входами блока обслуживания запросов к устройству метаданных, четвертые канальные входы которого соединены через шестой канал с первыми канальными выходами реляционной базы данных, а первые канальные входы и первые канальные выходы через первый канал соединены с канальными выходами и канальными входами блока обслуживания запросов баз данных и обмена устройства службы централизованной идентификации данных информационной системы, которое содержит также блок ввода данных, выходы которого соединены с первыми входами блока формирования и хранения уникальных ключей для типов записей данных и признаков необходимости сопровождения, выход и вторые входы которого соединены с первыми входами и первыми выходами блока обслуживания запросов баз данных и обмена, вторые выходы и вторые входы которого соединены с входами и выходами блока формирования и хранения уникальных ключей для экземпляров записей данных
Недостатком этого способа, как и способа [2], является ввод данных только по каналам обмена данными между базами данных, и остается невозможным ввод сведений, представленных другими способами передачи данных, в частности с помощью файлов процессоров электронных таблиц.
Целью предлагаемого способа является расширение функциональных возможностей информационной системы за счет исключения повторной записи данных, которые уже занесены в базу данных приемник и которые вновь поступают в составе данных от нового источника в виде файлов процессоров электронных таблиц, а также корректный ввод новых данных от нескольких источников в единый логически связанный информационный массив.
Цель достигается реализацией заявляемых способа ввода сведений в базы данных информационных систем и устройства для его осуществления.
Сущность предлагаемого изобретения состоит в следующем.
При предлагаемом способе ввода сведений в базу данных информационной системы для ввода данных формируют входной массив записей экземпляров информационных объектов, значений свойств (атрибутов) экземпляров объектов в совокупности ячеек, например в виде файлов процессоров электронных таблиц, а в базе данных приемнике заносят в базу данных экземпляры информационных объектов, значения свойств экземпляров и образуют уникальные ключи записей базы данных приемника, а в отличие от известных способов формируют запросы информационных объектов, их атрибутов и уникальных ключей записей из независимых таблиц базы данных приемника, соответствующих независимым информационным объектам входного массива записей, сравнивают атрибуты информационных объектов, полученных из базы данных с атрибутами информационных объектов входного массива записей, выявляют наличие или отсутствие информационных объектов, соответствующих информационным объектам во входном массиве записей в базе данных приемнике, записывают при необходимости отсутствующие информационные объекты и их атрибуты в соответствующие таблицы базы данных приемника, образованными при этой записи уникальными ключами, а также уникальными ключами, имевшимися в соответствующих таблицах базы данных приемника до ввода данных из входного массива записей, дополняют записи подчиненных информационных объектов входного массива записей и записывают подчиненные информационные объекты из входного массива записей с их атрибутами и дополненными уникальными ключами в соответствующие подчиненные таблицы базы данных приемника.
Устройство для реализации способа содержит каналы записи и чтения данных, базу данных приемника, блок записи данных в приемную базу данных, блок запросов к приемной базе данных, причем первые информационные входы-выходы блока запросов к приемной базе данных и блока записи данных в приемную базу данных соединены с каналами записи и чтения данных и в отличие от известных в устройство включен блок диалоговой обработки сведений входного массива, информационные входы которого являются информационными входами устройства, первые информационные входы-выходы соединены со вторыми информационными входами-выходами блока запросов к приемной базе данных, вторые информационные входы-выходы соединены со вторыми информационными входами-выходами блока записи данных в приемную базу данных.
При выполнении предлагаемого способа с использованием предлагаемого устройства достигается технический результат, заключающийся в:
- выявлении в принимаемых записях информационных объектов, уже имеющихся в базе данных, и предотвращения повторной записи таких объектов;
- совмещении данных от нескольких источников и имеющихся в базе данных приемнике в единый логически связанный информационный массив.
Этим повышаются функциональные возможности ИС.
Осуществление предложенного способа ввода сведений в базу данных информационной системы и устройства поясняется фиг.1-8.
Реализация предлагаемого способа ввода сведений в базу данных информационной системы возможна в предлагаемом устройстве для его осуществления. Структура устройства ввода сведений в базу данных 1 показана на фиг.1, где:
1 - устройство ввода сведений в базу данных;
2 - блок диалоговой обработки сведений входного массива;
3 - блок записи данных в приемную базу данных;
4 - блок запросов к приемной базе данных;
5 - приемная база данных;
6 - информационные входы устройства 1 и блока 2;
7 - каналы записи и чтения данных из базы данных приемника 5.
Для осуществления способа ввода данных в предлагаемое устройство ввода сведений в базу данных 1 включен блок диалоговой обработки сведений входного массива 2. В процессе работы информационной системы на информационные входы 6 устройства 1, являющиеся также информационными входами блока диалоговой обработки сведений входного массива, поступают данные входного массива.
В процессе работы блок 2 запрашивает с помощью блока запросов 4 через каналы 7 в приемной базе данных 5 данные, соответствующие независимым сведениям во входном массиве, включая и уникальные ключи приемной базы данных. С помощью блока записи данных в приемную базу данных 3 осуществляются записи данных в приемную базу данных 5.
С помощью блока диалоговой обработки сведений входного массива 2:
- формируют шаблоны для данных, поступающих от различных источников;
- формируют в шаблонах массивы со списками данных, существующих в таблицах базы данных приемника; такие массивы формируются для независимых сведений во входных массивах; независимыми сведениями являются такие данные, которые не являются подчиненными при вводе в таблицы приемной базы данных (в таких таблицах нет «внешних» ключей, связывающих записи таблиц с записями других «родительских» таблиц);
- вносят записи входных массивов в указанные шаблоны;
- сравнивают записи входных массивов с записями соответствующих массивов со списками данных, существующих таблицам базы данных приемника, идентифицируя тем самым наличие или отсутствие аналогичных записей в базе данных приемника;
- заносят независимые (не имеющие связей подчинения) записи из входных массивов в таблицы базы данных приемника, причем только те записи, которые в них отсутствуют;
- переадресовывают связи в подчиненных записях входных массивов или на уникальные ключи вновь образованных независимых записей или переадресовывают связи на уникальные ключи, уже имевшиеся в базе данных приемнике до начала обработки входного массива, и заносят такие идентифицированные записи входных массивов в подчиненные таблицы базы данных приемника.
Создают шаблоны данных, например для файлов процессоров электронных таблиц. Шаблоны представляют собой разметки ячеек, предусматривающие хранение записей сведений по различным типам информационных объектов из входных массивов записей с наборами их свойств, которые используются при формировании входных массивов сведений или при их преобразовании. При анализе таких шаблонов выявляют информационные объекты, которые могут дублироваться в базе данных приемнике при внесении данных от нескольких источников (от нескольких входных массивов). Такие ячейки шаблона дополняют массивами со списками, которые связываются с соответствующими таблицами базы данных приемника.
В процессе работы информационной системы при выполнении ввода сведений из входного массива данных в базу данных приемник в качестве первой операции выполняют перемещение данных входного массива в шаблон данных.
Второй операцией сравнивают независимые записи входного массива с существующими записями в соответствующих таблицах принимающей базы данных и выявляют отсутствующие в базе данных записи. Для записей, имеющихся в принимающей базе данных, выбирают соответствующие записи в массивах со списками (при этом идентифицируются имеющиеся в базе данных уникальные ключи записей).
Третьей операцией те независимые записи из входного массива, которые отсутствуют в соответствующей таблице приемной базы данных, записывают в базу данных. Полученные при записи уникальные ключи возвращают в шаблон (обновляют содержимое массивов со списками).
Четвертой операцией записывают в базу данных подчиненные записи входного массива и дополняют эти записи соответствующими ключами связей подчинения, причем для записей, уже имевшихся в базе данных приемнике, используют уже имевшиеся в базе данных уникальные ключи записей независимых таблиц, а для записей, которых не было в базе данных, используют вновь сформированные уникальные ключи (полученные при выполнении третьей операции).
Это позволяет осуществить при занесении данных из обменного массива записей корректное сжатие информации (не заносятся уже имеющиеся в базе данных информационные объекты и их свойства) и совмещение данных от нескольких источников данных в единый логически связанный информационный массив с данными уже имевшимися в базе данных приемнике, что обеспечивает расширение функциональных возможностей информационной системы и сокращает затраты на эксплуатацию ИС за счет исключения необходимости систематического решения вопросов, связанных с некорректным размножением в базах данных приемника одних и тех же информационных объектов, поступающих от нескольких источников данных.
В качестве примера рассмотрим базу данных ИС, предназначенной для обобщения сведений по оборудованию, необходимому ряду предприятий, участвующих в реализации каких-либо производственных программ. Структура таблиц базы данных (информационная модель) приведена на фиг.2, где:
8 - таблица базы данных для хранения записей по реализуемым программам;
9 - таблица базы данных для хранения записей по предприятиям, участвующим в реализации программ;
10 - таблица базы данных для хранения записей по типам оборудования;
11 - таблица базы данных для хранения записей по годам;
12 - таблица базы данных для хранения записей по заявкам предприятий на оборудование (эта таблица является подчиненной, другие упомянутые выше четыре таблицы являются независимыми).
Пример входного массива, сведения по которому необходимо ввести в базу данных, приведен на фиг.3 (заявка предприятия на оборудование, необходимое для реализации программы), где:
13 - сведения входного массива данных по программе работ; эти сведения являются независимыми;
14 - сведения о предприятии, подготовившем заявку на оборудование; независимые сведения;
15 - сведения о периоде времени поставки оборудования (по заявке предприятия); независимые сведения;
16 - сведения о типах необходимого оборудования (независимые сведения), его количестве и стоимости («подчиненные» сведения).
Пример записей в таблицах принимающей базы данных до и после ввода сведений из входного массива (фиг.3) приведен на фиг.4 и фиг.5. Показан случай, когда имевшихся в базе данных достаточно, чтобы при вводе сведений из входного массива не вносить никаких записей в независимые таблицы «ГОД» и «ПРОГРАММЫ», но необходимо дополнять записями независимые таблицы «ПРЕДПРИЯТИЕ», «ОБОРУДОВАНИЕ» и зависимую таблицу «ЗАЯВКИ ПРЕДПРИЯТИЙ».
Примеры возвращаемых в блок 2 массивов списков записей из принимающей базы данных приведены на фиг.6.
Сравнением записей запроса и независимых сведений во входном массиве блок 2 (вторая операция) выявляет записи (и соответственно уникальные ключи записей), которые уже имеются в соответствующих независимых таблицах приемной базы данных. Пример диалогового окна блока 2 (при выполнении второй операции) приведен на фиг.7, где:
17 - возвращение блоком 2 результата сравнения в случае, когда в приемной базе данных в независимой таблице есть запись, соответствующая независимым сведениям во входном массиве;
18 - возвращение блоком 2 результата сравнения в случае, когда в приемной базе данных в независимой таблице нет записи, соответствующей независимым сведениям во входном массиве;
19 - управляющие элементы диалогового окна для выполнения третьей операции («Записать данные в независимые таблицы» и «Обновить запросы к БД») и четвертой операции предлагаемого способа («Внести заявку в БД» - внесение данных в подчиненную таблицу приемной базы данных).
При выявлении независимых записей, которые присутствуют во входном массиве, но отсутствуют в независимых таблицах приемной базы данных, выполняют третью операцию - внесение дополнительных записей в независимые таблицы приемной базы данных («Записать данные в независимые таблицы» и «Обновить запросы к БД»). Пример диалогового окна, формируемого блоком 2 после выполнения третьей операции предлагаемого способа, приведен на фиг.8, где: 20 - пример обновленной ячейки.
Заявляемый способ обеспечивает, как и известный способ, генерацию новых ключей для записей, загружаемых в базу данных от новых источников, чем обеспечивается уникальность записей в базе данных. В то же время предлагаемый способ позволяет:
- идентифицировать записи данных во входных массивах данных, поступивших от разных источников;
- поставить в соответствие типы записей входных массивов с таблицами базы данных приемника;
- поставить в соответствие записи входных массивов с существующими записями в таблицах базы данных приемника или идентифицировать их отсутствие;
- выполнить процедуру внесения входных массивов данных в таблицы базы данных приемника, при которой исключается повторение одних и тех же записей, совпадающих в различных входных массивах.
В результате применения предлагаемого способа, по сравнению с известными способами, достигается технический результат, заключающийся в повышении функциональных возможностей ИС за счет реализации возможности совмещения данных от нескольких источников в базе данных приемнике в единый логически связанный информационный массив.
Выше представленные способ и устройство позволяют уменьшить затраты на эксплуатацию ИС из-за исключения необходимости систематического решения вопросов, связанных с некорректным размножением в базах данных приемника одних и тех же информационных объектов, поступающих от нескольких источников.
Источники информации
1. Патент РФ №2225033, кл. G06N 1/00, 2004.
2. К.Лисянский. Архитектурные решения и моделирование хранилищ и витрин данных. Директор ИС, №3, 2002 г., издательство "Открытые Системы".
3. Описание систем управления базами данных (например, Access). Патент РФ №2351010, 27.03.2007.