Подходы к организации загрузки информации из XML-документов в реляционные базы данных

Влияние языка разметки XML на информационные технологии. Выделение основных классов задач, для которых целесообразно применение XML. Изучение систем поддержки принятия решений, которые применяются для обработки и анализа большого количества данных.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 15.08.2020
Размер файла 83,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Ивановский государственный энергетический университет

Подходы к организации загрузки информации из Xml-документов в реляционные базы данных

Павлов М.Н.

Бурное развитие информационных технологий ознаменовало собой разработку и развитие огромного количества систем обработки данных. Такие системы могут иметь очень сложную архитектуру и состоять из множества функциональных подсистем, выполняющих специфичные задачи. Разумеется, для полноценного функционирования, подсистемы должны обмениваться различного рода данными, причем не всегда однородными. Поэтому, зачастую эффективно связать источники в одну систему не удается. Как следствие, разработчики системы тратят огромное количество усилий на разработку внутренних стандартов обмена данными. Интеграция же различных приложений или систем для выполнения поставленной задачи может оказаться вовсе невыполнимой или слишком трудоемкой.

Однако, появление и распространение расширяемого языка разметки XML (от англ. eXtensible Markup Language) оказало огромное влияние на информационные технологии. Одной из сильнейших сторон языка XML является возможность отделять данные от их представления, хранить информацию в простом и понятном формате, стандарт которого четко оговорен. Такой подход имеет ряд достоинств: универсальность решений, снижение времени и стоимости разработки систем, широкие возможности по интеграции и обмену данными, многоцелевое использование информации. За последние несколько лет XML-технологии нашли свое применение во многих областях. Можно выделить несколько основных классов задач, для которых целесообразно применение XML [1]:

Создание новых языков, где XML используется в качестве набора синтаксических правил. Примерами могут служить WML, SVG, XHTML, SOAP, RDF, OML, MathML, CML, CDF и множество других менее распространенных языков;

Хранение данных, где XML используется для описания формата структуры данных;

Обмен данными и проекты интеграции, где XML используется для описания унифицированного формата обмена данными.

Несмотря на все возрастающую популярность применения XML в качестве внутреннего формата данных системы, существует круг задачи, в которых XML может оказаться не эффективным. Главным недостатком XML является громоздкость синтаксиса, что может стать препятствием для систем, в которых необходимо компактное представление данных. Так же существуют системы, для работы которых критична скорость обработки данных. Обработка большого числа документов в формате XML может занять продолжительное время, поскольку необходимо производить дополнительные действия для преобразования текстового представления древовидной структуры документа во внутреннее представление системы, что может оказаться очень ресурсоемкой операцией.

Примером таких систем могут служить системы поддержки принятия решений (СППР), которые применяются для комплексной обработки и анализа большого количества информации. Для хранения информации СППР используют концепцию хранилищ данных (ХД). Способ организации хранилища данных хорошо известен. Для этого большинство систем строятся на основе или используют в качестве составной части систему управления баз данных (СУБД). Наибольшей популярностью пользуются реляционные базы данных, что и понятно. Простота представления совокупности данных в виде таблицы со связями позволяет эффективно хранить и обрабатывать структурированную информацию, а язык запросов SQL обеспечивает универсальных способ манипулирования хранимыми данными. Современные СУБД обеспечиваю достаточную для таких систем производительность обработки данных. Несмотря на то, что в настоящее время уже созданы так называемые XML-native СУБД для хранения и обработки xml-документов, однако речи о том, чтобы строить на них ХД пока не ведется. Также существует огромное количество унаследованных систем, работающих с СУБД, в которых может понадобиться информация, поступающая в формате XML. Таким образом, система должна иметь подсистему загрузки xml-документов. Можно выделить два основных способа реализации такой задачи, которые непосредственно вытекают из моделей обработки xml-документов.

Одним из самых удобных интерфейсов доступа к содержимому xml-документов является DOM (от англ. Document Object Model, объектная модель документа). Объектная модель xml-документов является представлением его внутренней структуры в виде совокупности определенных объектов. DOM - это спецификация универсального платформо- и программно-независимого доступа к содержимому документов и является своеобразным интерфейсом доступа для их обработчиков. DOM является стандартным способом построения объектной модели любого xml-документа, при помощи которой можно производить поиск нужных фрагментов, создавать, удалять и модифицировать его элементы. Все обращения к данным и структуре, которыми обладает документ, происходят посредством вызова методов, определенных в соответствующих интерфейсах. Достоинством модели DOM является тот факт, что программа получает произвольный доступ к элементам документа. Это позволяет реализовать задачу загрузки данных самым простым способом, заключающимся в использовании XPath (от англ. XML Path, язык XML путей) выражений. Главной задачей этого языка является определение местоположения частей xml-документа. На практике, это означает выбор в документе множества узлов, которые соответствуют определенным условиям расположения. Критерии выборки могут быть самыми разнообразными: положение, тип узла, выполнение логических условий [2].

Таким образом, с помощью XPath выражений можно реализовать способ загрузки методом отсечения. Первое, что должно быть включено в процесс загрузки, это описание метаданных целевой системы. Иными словами, какие таблицы должны быть в СУБД и какие поля в каждой таблице должны присутствовать. Второе, с помощью XPath выражений должны быть описаны критерии, позволяющие для каждой таблицы выбрать именно те данные, которые необходимо в нее занести. Третье, с помощью XPath выражений должны быть описаны критерии, позволяющие выбрать конкретные значения для каждого поля таблицы. Алгоритм работы такого загрузчика будет следующим:

Строится список таблиц для заполнения,

строится объектная модель документа,

итеративно для каждой таблицы из исходного документа выбирается поддерево, содержащее необходимые данные,

итеративно для каждого поля данной таблицы их полученного поддерева выбирается значение поля.

выполняется SQL запрос на вставку значений в таблицу.

Данный способ организации загрузки довольно прост в реализации, а главное не зависит от порядка следования элементов в документе, что позволяет заполнять таблицы в нужном порядке.

Несмотря на очевидные достоинства метода, его существенным недостатком является то, что он очень требователен к ресурсам, поскольку объектная модель документа полностью представляется в памяти. При необходимости загрузки документов больших объемов этот недостаток может не позволить использовать данный метод. К тому же выполнение сложных XPath выражений для больших документов может занять продолжительное время.

Другим подходом при обработке xml-документов является модель SAX (от англ. Simple API for XML, простой прикладной интерфейс программирования для XML). Он построен на механизме обратных вызовов. Разработчик должен реализовать объект, который будет реагировать на события синтаксического разбора документа. Примерами таких событий являются начало разбора документа, начало тэга и т. п. В отличие от DOM, модель SAX не требует создания внутреннего представления документа, вследствие чего менее требовательна к ресурсам. Однако в этом случае обработка документа будет происходить последовательно. Элементы документа будут обрабатываться в том порядке, в каком они встречаются в документе. Данное обстоятельство не позволяет обрабатывать элементы документа в произвольном порядке, что может понадобиться при загрузке. Это обстоятельство существенно усложняет архитектуру загрузчика. Данную проблему можно решить при помощи добавления в структуру системы объектов, реализующих кэширование уже считанных данных. Для выполнения загрузки с помощью данного метода необходимо: определить список целевых таблиц и их полей, задать привязку функциональных элементов документа (узлы и атрибуты узлов) к полям таблиц, определить контрольные элементы документа, после обработки которых будет происходить выгрузка данных из табличного кэша в СУБД. Концептуальная блок-схема реализации загрузчика с применением данного метода представлена на рисунке 1. язык разметка информационный данный

Может возникнуть ситуация, когда таблицы в процессе загрузки должны быть связаны по уникальным идентификаторам со справочниками, а данные справочника расположены в конце документа. Для разрешения таких ситуаций вводится понятие прохода обработки входного документа, который определяет, какие функциональные элементы документа в данный момент участвуют в наполнении кэша. Таким образом, можно определить первый проход, который будет обрабатывать данные справочников, а вторым проходом определить обработку данных таблицы с установлением идентификаторов из уже загруженных справочников.

Алгоритм работы построенного по данному методу загрузчика легко можно проследить по рисунку 1:

Строится список таблиц кэша, инициализируются контейнер и контроллер, итеративно по списку проходов обработки запускается SAX-парсер для разбора документа разобранные данные передаются контроллеру привязок, контроллер привязок помещает данные в нужную таблицу кэша и при необходимости инициирует выгрузку кэша в СУБД с помощью построителя SQL-запросов.

Рис. 1. Концептуальная блок-схема реализации загрузчика с кэшированием данных.

Реализованный по такому принципу загрузчик может работать с файлами любых размеров, не требуя при этом больших ресурсов памяти. Еще одним достоинством данного способа является возможность контролировать количество необходимых итераций прохождения документа обработчиком. Это позволяет существенно увеличить производительность загрузчика, поскольку в данном случае не используются XPath выражения.

Таким образом, создание системы загрузки xml-документов в реляционные базы данных позволит существенно обогатить существующие системы информацией, поступающих из разнородных источников, тем более что в настоящее время применение xml формата в самых различных областях информационных технологий становиться все более популярным.

Литература

1. Валиков А. Н. Технология XSLT. - СПб.: БХВ-Петербург, 2002.

2. Питц-Моултис Н., Кирк Ч. XML: Пер. с англ. - СПб.: БХВ-Петербург, 2001.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.