СПОСОБ ОБНОВЛЕНИЯ СТРУКТУРИРОВАННЫХ ДАННЫХ В СИСТЕМЕ УПРАВЛЕНИЯ РЕЛЯЦИОННЫМИ БАЗАМИ ДАННЫХ
METHOD OF UPDATING STRUCTURED DATA IN RELATIONAL DATABASE MANAGEMENT SYSTEM

Изобретение относится к вычислительной технике (вычислительным сетям), в частности к способу обновления структурированных данных в системе управления реляционными базами данных (СУРБД), и может быть использовано в СУРБД для управления и обмена обновлениями различных типов данных: текстовых или числовых, или даты, или BLOB - Binary Large Object, представляющий собой специальный тип данных, предназначенный для хранения изображений, аудио и видео, а также компилированного программного кода.
Модели СУРБД характеризуются простотой формирования структуры данных в системе управления базами данных, удобным для пользователя структурным (табличным) представлением данных.
В процессе проектирования базы данных определяется структура СУРБД (состав таблиц данных, их структура и логические связи). Структура СУРБД определяется составом столбцов, типом данных и размерами столбцов, ключами таблицы.
К базовым понятиям модели СУРБД «сущность - связь» относятся: сущности, связи между ними и их атрибуты (свойства).
Сущности - это базовые типы данных: численные значения, даты и время, строки и отдельные символы, которые хранятся в СУРБД.
Модель СУРБД ориентирована на организацию данных в виде двумерных реляционных таблиц данных. Каждая реляционная таблица данных представляет собой двумерный массив данных и обладает следующими свойствами:
- каждый элемент двумерного массива - один элемент данных,
- все ячейки в столбце двумерного массива (таблицы)
однородные, то есть все элементы в столбце имеют одинаковый тип
(числовой, символьный и т.д.),
- каждый столбец имеет уникальное имя,
- одинаковые строки в таблице отсутствуют,
- порядок следования строк и столбцов может быть произвольным [К.Дж.Дейт. Введение в системы баз данных = Introduction to Database Systems. - 8-е изд. - М.: Вильямс, 2006. - С.1328. - ISBN 0-321-19784], [http:ru.//wikipedia.org/wiki/Реляционная_СУБД].
Пример расположения двумерного массива данных в виде реляционной таблицы данных показан на фиг.1.
За последние десятилетия в связи с развитием вычислительной техники и использованием компьютерных технологий все более актуальной является задача не только хранения большого объема различных данных (различной информации) в базах данных, но и ее обновление и пополнение.
Известно изобретение по патенту СА 2464927 «Text Joins for Data Cleansing and Integration in a Relational Database Management System», Int. Сд. G06F 17/30; G06F 7/02, дата публикации 21.10.2004 г.(приоритетный документ - заявка US №20030464101 Р от 21.04.2003 г.), которое для обновления структурированных данных (файлов на устройстве) содержит систему для сравнения строк в нескольких отношениях в СУРБД и включает создание набора строк из набора TERS ofcharac, разлагая каждую строку в подмножество лексем, создание не менее двух отношений внутри строки, установление сходства порог отношений, выборку, по меньшей мере, двух отношений, соотнося отношения порог подобия и возвращение всех жетонов, которые отвечают критериям сходства порога).
Данный подход позволяет выполнять сравнение строковых данных в таблицах СУРБД, но в связи с усложнением как структурных, так и технологических характеристик систем хранения и обработки данных данный подход к сравнению данных уже нельзя считать оптимальным или достаточным для эффективного сравнения разнородных данных, которые могут храниться в современных системах управления базами данных.
Недостатком этого изобретения является то, что данный подход не позволяет адаптироваться к растущим потребностям систем хранения и обработки данных, в плане возможностей хранения и обработки информации, отличной от текстовой, так как он ориентирован исключительно на обработку текстовой информации, что существенно ограничивает область применения данной технологии для сравнения очень больших объемов разнотипной информации (видео-, аудио- ) и другие цифровые данные, которые сейчас широко используются в связи с распространением web-технологий, и особенно технологий web 2.0.
Наиболее близким техническим решением (прототипом) к заявляемому изобретению является опубликованная 3 февраля 2005 г. заявка US №2005027717 «Text joins Text joins for data cleansing and integration in a relational database management system», Int. Cl.: G06F 17/30 (приоритетные документы - заявки US №20040828819 от 21.04.2004 г.; US №20030464101Р от 21.04.2003 г.). Это техническое решение представляет собой систему для сравнения строк в нескольких отношениях в СУРБД, включает создание набора строк из набора символов, разлагая каждую строку в подмножество лексем, создание не менее двух отношений внутри строк, устанавливая порог подобия для отношений, выборку, по меньшей мере, двух отношений, соотнося отношения порога подобия и возвращение всех жетонов, которые отвечают критериям сходства порога.
Опять же, данный способ позволяет обрабатывать (сравнивать) текстовые данные, хранящиеся в СУРБД. Но текущий вектор развития технологий обработки и хранения данных показывает, что нужно разрабатывать более общие решения, позволяющие производить обработку разнотипных данных на более высоком уровне и с большей эффективностью.
Недостатком этого изобретения является то, что способ описывает обработку только текстовой информации, что уже не соответствует современному уровню техники. Сейчас предъявляются более жесткие и сложные требования к обработке больших объемов разнотипной (разнородной) информации.
Поэтому задача сравнения и обновления структурированных данных в системе управления реляционными базами данных является по-прежнему актуальной.
Техническая задача, на решение которой направлено заявляемое изобретение, - это повышение точности и качества сравнения и обновления структурированных данных в СУРБД.
Поставленная техническая задача решается заявляемым способом обновления структурированных данных в системе управления реляционными базами данных, в которых исходную базу данных формируют из строк одинаковой структуры, где каждая строка представлена набором полей с заданными значениями, а совокупность значений одного и того же поля в разных строках образует столбец значений данных и метаданных, каждый из которых имеет свой тип данных, нумеруют по строкам таким образом, что каждая строка получает уникальный номер, и запоминают ее,
согласно изобретению:
формируют структуру обновленной базы данных, содержащую метаданные и набор измененных данных по отношению к исходной базе данных,
сравнивают структуры исходной и обновленной баз данных посредством сравнения данных и метаданных структур, используя интерфейс операционной системы, обеспечивающий получение этих данных и метаданных от сервера базы данных,
если по результатам сравнения выявлено, что структуры исходной и обновленной баз данных не идентичны, то завершают процедуру сравнения;
если по результатам сравнения выявлено, что структуры исходной и обновленной баз данных идентичны, то полученный результат сравнения структур трансформируют в формат данных заданной структуры, зависящей от структуры возвращенных запросом строк исходной и обновленной баз данных, получая фрагменты метаданных в формате данных заданной структуры,
сравнивают полученные фрагменты метаданных в формате данных заданной структуры через интерфейс операционной системы, формируя результаты сравнения,
анализируют сформированные результаты сравнения и выделяют сущности - отличающиеся строки данных в формате данных заданной структуры отформатированного фрагмента-описателя данных, в обновленной и исходной базах данных,
используя выделенные сущности, формируют файл данных, описывающий различие данных в структурах обновленной и исходной баз данных, измененные данные и метаданные, данные о структурах данных и описание всех действий, которые должны быть выполнены над данными обновленной и исходной баз данных, чтобы привести данные исходной базы данных в состояние обновленной,
используя сформированный файл данных, выполняют обновление данных в исходной базе данных посредством обратной трансформации данных из формата данных заданной структуры в формат запросов, определяя тип изменений данных и выполняя обновление данных в исходной базе данных.
При этом столбец значений данных и метаданных имеет свой тип данных: текстовый или числовой, или тип даты, или BLOB - Binary Large Object, представляющий собой специальный тип данных, предназначенный, например, для хранения изображений, аудио и видео, а также компилированного программного кода.
Данные и метаданные от сервера базы данных получают посредством интерфейса ODBC - Open Database Connectivity, обеспечивающего доступ к базам данных.
Сравнение структур исходной и обновленной баз данных выполняют посредством языка XML.
В качестве формата данных заданной структуры используют формат
XML.
В качестве сформированного файла данных для обновления данных в исходной базе данных используют файл формата XML.
Обновление данных в исходной базе данных выполняют посредством обратной трансформации данных из формата данных заданной структуры XML в формат SQL запросов, определяя тип изменений данных типа INSERT, или UPDATE, или DELETE.
Таким образом, повышение точности и качества сравнения и обновления структурированных данных в СУРБД достигается за счет формирования структуры обновленной базы данных, сравнения структур исходной и обновленной баз данных, выделения сущностей (структур и строк) в исходной и обновленной базах данных, сравнения данных в таблицах и строках, формирования файла данных, который описывает различие данных в структурах обновленной и исходной баз данных, измененные данные и метаданные, данные о структурах данных и описание всех действий, которые должны быть выполнены над данными обновленной и исходной баз данных, чтобы привести данные исходной базы данных в состояние обновленной, используя сформированный файл данных, выполняют обновление данных в исходной базе данных посредством обратной трансформации данных из формата данных заданной структуры в формат запросов, определяя тип изменений данных.
Проведенный заявителем патентный и научно-технический поиск не выявил признаки данного изобретения в известном уровне техники.
Далее подробное описание изобретения поясняется примерами выполнения со ссылкой на чертежи.
На фиг.1 показан пример расположения двумерного массива данных в виде реляционной таблицы.
На фиг.2 в обобщенном виде показан пример осуществления заявляемого изобретения согласно заявляемому изобретению.
Фиг.3 иллюстрирует алгоритм сравнения структур, данных и метаданных в исходной и обновленной базах данных, анализ сформированных результатов сравнения, выделения сущностей и формирование файла данных, описывающего различие данных в структурах обновленной и исходной баз данных и описание всех действий, которые следует выполнить над данными, чтобы привести данные исходной базы данных в состояние обновленной (согласно заявляемому изобретению).
Осуществляют изобретение следующим образом.
В системе управления реляционными базами данных формируют исходную базу данных из строк одинаковой структуры (фиг.1), где каждая строка представлена набором полей с заданными значениями, а совокупность значений одного и того же поля в разных строках образует столбец значений данных и метаданных, каждый из которых имеет свой тип данных: текстовый или числовой, или тип даты, или BLOB - Binary Large Object, представляющий собой специальный тип данных, предназначенный, например, для хранения изображений, аудио и видео, а также компилированного программного кода. Нумеруют по строкам таким образом, что каждая строка получает уникальный номер, и запоминают ее.
Согласно изобретению (фиг.2) формируют структуру обновленной базы данных, содержащую метаданные и набор измененных данных по отношению к исходной базе данных.
Сравнивают структуры исходной и обновленной баз данных посредством сравнения данных и метаданных структур, используя, например, интерфейс ODBC операционной системы, который обеспечивает получение этих данных и метаданных от сервера базы данных. Если по результатам сравнения выявлено, что структуры исходной и обновленной баз данных не идентичны, то завершают процедуру сравнения. Если по результатам сравнения выявлено, что структуры исходной и обновленной баз данных идентичны, то полученный результат сравнения структур трансформируют в формат данных заданной структуры, зависящей от структуры возвращенных запросом строк исходной и обновленной баз данных, получая фрагменты метаданных в формате данных заданной структуры.
Полученный результат сравнения структур баз данных трансформируют в формат данных заданной структуры, например XML, зависящей от структуры возвращенных запросом строк исходной и обновленной баз данных, получая фрагменты метаданных в формате данных XML структуры.
Сравнивают полученные фрагменты метаданных в формате данных XML структуры через интерфейс операционной системы, формируя результаты сравнения.
Анализируют сформированные результаты сравнения и выделяют сущности - отличающиеся строки данных в формате данных XML структуры, XML-отформатированного фрагмента-описателя данных, в обновленной и исходной базах данных.
Используя выделенные сущности, формируют XML файл данных, который описывает различие данных в структурах обновленной и исходной баз данных, измененные данные и метаданные, данные о структурах данных и описание всех действий, которые должны быть выполнены над данными обновленной и исходной баз данных, чтобы привести данные исходной базы данных в состояние обновленной.
Используя сформированный XML файл данных, выполняют обновление данных в исходной базе данных посредством обратной трансформации данных из формата данных заданной структуры XML в формат SQL запросов, определяя тип изменений данных типа INSERT или UPDATE, или DELETE.
Заявляемый способ обновления структурированных данных в системе управления реляционными базами данных реализуется на известных устройствах, используемых в вычислительных сетях (вычислительной технике), и не требует дополнительных существенных аппаратных затрат. К таким известным устройствам относится, например, семейство программно-аппаратных устройств SQL Server 2008 R2, разработанных компанией Microsoft, оптимизированных для баз данных [Майкл Оти. Программно-аппаратные устройства SQL Server 2008 R2. Windows IT Pro №4, 2012]. Для формирования исходных и обновленных баз данных используют программно-аппаратные устройства SQL Server (серверы), данные и метаданные от серверов базы данных получают через интерфейс ODBC, в качестве программных средств используют формат и язык XML.
Рассмотрим пример выполнения заявляемого изобретения, используя для иллюстрации фиг.1, 2 и 3.
На сервере базы данных №1 (далее - сервер БД №1) формируют исходную базу данных из строк одинаковой структуры (как показано на фиг.1). При этом, например, исходная база данных (далее - исходная БД) содержит данные и метаданные (далее - данные №1, данные №2, данные №4).
На сервере БД №1 (фиг.2) формируют структуру обновленной базы данных (далее - обновленная БД), содержащую метаданные и набор измененных данных по отношению к исходной БД (далее - данные №1, данные №4, данные №3).
Сравнивают структуры исходной и обновленной БД посредством сравнения данных и метаданных структур, используя, например, интерфейс ODBC операционной системы (Open Database Connectivity), который обеспечивает получение этих данных и метаданных от сервера БД №1.
Получают результат сравнения:
Удалить "2. Данные №2"
Добавить "3. Данные №3".
Полученный результат сравнения структур БД трансформируют в формат данных заданной структуры XML, зависящей от структуры возвращенных запросом строк исходной и обновленной БД, получая фрагменты метаданных в формате данных XML структуры.
Сравнивают полученные фрагменты метаданных в формате данных XML структуры через интерфейс операционной системы, формируя результаты сравнения.
Анализируют сформированные результаты сравнения и выделяют сущности - отличающиеся строки данных в формате данных XML структуры, XML-отформатированного фрагмента-описателя данных, в обновленной и исходной базах данных.
Используя выделенные сущности, формируют XML файл данных, который описывает различие данных в структурах обновленной и исходной баз данных, измененные данные и метаданные, данные о структурах данных и описание всех действий, которые должны быть выполнены над данными обновленной и исходной баз данных, чтобы привести данные исходной базы данных в состояние обновленной.
Используя сформированный XML файл данных, выполняют обновление данных в исходной базе данных посредством обратной трансформации данных из формата данных заданной структуры XML в формат SQL запросов, определяя тип изменений данных типа INSERT и/или UPDATE, и/или DELETE.
SQL - универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных.
INSERT - позволяет добавить строки в таблицу, заполняя их значениями.
UPDATE - оператор языка SQL, позволяющий обновить значения данных в заданных столбцах таблицы.
Delete - в языках, подобных SQL, DML - операция удаления записей данных из таблицы.
Сформированный файл данных используют для обновления структурированных данных в других базах данных на других серверах, например на сервере БД №2 (как показано на фиг.2).
На фиг.3 иллюстративно показан алгоритм сравнения согласно заявляемому изобретению. Посредством интерфейса ODBC операционной системы от сервера БД №1 одновременно поступает управляющий сигнал сравнения на исходную БД и обновленную БД. По этому сигналу сравнивают структуры исходной и обновленной БД посредством сравнения данных и метаданных структур. Получают результат сравнения:
- если структуры БД не идентичны, то завершают процедуру сравнения;
- если структуры БД идентичны, то полученный результат сравнения структур БД трансформируют в формат данных заданной структуры XML, зависящей от структуры возвращенных запросом строк исходной и обновленной БД, получая фрагменты метаданных в формате данных XML структуры.
Сравнивают полученные фрагменты метаданных в формате данных XML структуры через интерфейс операционной системы, формируя результаты сравнения.
Анализируют сформированные результаты сравнения и выделяют сущности - отличающиеся строки данных в формате данных XML структуры, XML-отформатированного фрагмента-описателя данных, в обновленной и исходной базах данных.
Используя выделенные сущности, формируют XML файл данных, который описывает различие данных в структурах обновленной и исходной баз данных, измененные данные и метаданные, данные о структурах данных и описание всех действий, которые должны быть выполнены над данными обновленной и исходной баз данных, чтобы привести данные исходной базы данных в состояние обновленной.
Используя сформированный XML файл данных, выполняют обновление данных в исходной базе данных посредством обратной трансформации данных из формата данных заданной структуры XML в формат SQL запросов, определяя тип изменений данных типа INSERT или UPDATE, или DELETE.
Таким образом, заявляемый способ обеспечивает в СУРБД эффективное и качественное управление обновлениями различных типов структурированных данных: текстовых или числовых, или даты, или BLOB, предназначенных для хранения изображений, аудио и видео, а также компилированного программного кода.