Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Представление и обработка XML-баз данных Кадэй Тхэй

Представление и обработка XML-баз данных
<
Представление и обработка XML-баз данных Представление и обработка XML-баз данных Представление и обработка XML-баз данных Представление и обработка XML-баз данных Представление и обработка XML-баз данных
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Кадэй Тхэй. Представление и обработка XML-баз данных : диссертация ... кандидата технических наук : 05.13.11 / Кадэй Тхэй; [Место защиты: Моск. гос. инженерно-физ. ин-т].- Москва, 2009.- 128 с.: ил. РГБ ОД, 61 09-5/2894

Содержание к диссертации

Введение

1. XML-технологии и базы данных 14

1.1 XML-технологии 14

1.1.1 Декларация тега в DTD 16

1.1.2 Декларация атрибутов тега 17

1.1.3 Логическая модель XML-документа 18

1.2 XML-базы данных и базы XML-документов 21

1.3 «native» XDMS 24

1.3.1 XML-DBMS SEDNA 24

1.3.2 XDMS TigerLogic 27

1.4 Гибридные SQL/XML базы данных 29

1.5 Постановка задачи диссертации 32

Выводы по главе 1 34

2. Отображение XML-документов с ориентацией на данные в структуры, определяемые моделью Pick UDM 35

2.1 Описывающая и предписывающая схемы данных 35

2.1.1 Полуструктурированная модель данных 35

2.1.2 Pick UDM и полуструктурированная модель данных 37

2.1.3 Представление полуструктурированных данных в Pick UDM 41

2.1.4 Задача отображения XML-документов в структуры, определяемые моделью Pick UDM 45

2.2 Отображение XML-документа в структуру, определяемую моделью PickUDM 45

2.2.1 Отображение XML-схемы в структуру, определяемую моделью PickUDM 47

2.2.2 Алгоритм загрузки XML-документа 54

2.2.3 Алгоритм выдачи XML-документа 57

2.3 Отображение XML-документов в общем случае 59

Выводы по главе 2 62

3. Отображение XML-документов со смешанным контентом в структуры, определяемые моделью Pick UDM 64

3.1 Декларация элементов со смешанным контентом 64

3.2 Отображение документов со смешанным контентом в модели Pick UDM 66

3.2.1 Файл .xml как отдельная запись 66

3.2.2 Файл .xml как отдельное поле записи 67

3.2.3 Элементы со смешанным контентом как отдельные поля записи 68

3.2.4 Отделение тегов и их контента 68

3.3 Встроенные средства разработки DBMS D3 70

3.4 Система «динамического» гипертекста 74

Выводы по главе 3 79

4. Web-приложение с XML-базой данных 80

4.1 Функциональность разрабатываемого приложения 82

4.2 Разработка концепций архитектуры 83

4.2.1 Определение общих концепций архитектуры 83

4.2.2 Использование конкретных технологий 86

4.3 Проектирование Web-приложения для работы с XML-базами данных 90

4.3.1 Диаграммы прецедентов 90

4.3.2 Диаграмма классов приложения 91

4.3.3 Схема базы данных Web-приложения 95

4.4 Разработка модулей системы 96

4.4.1 Технология подготовки и модификации ситуаций 99

4.4.2 Поиск в базе ситуаций 101

Выводы по главе 4 103

Заключение 104

Список литературы 106

Введение к работе

Актуальность работы

Возрастающее использование XML-технологий привело к тому, что стали накапливаться значительные архивы XML-документов, поэтому в последнее время все больше стали говорить о создании XML баз данных, так как частое конвертирование XML-документов в структуры реляционных баз не эффективно из-за слишком большой разницы в структурах. К настоящему моменту создано уже несколько «native» (родных, созданных именно для XML) XDMS, и они непрерывно совершенствуются.

Однако XML-документы не однородны, их можно разделить на две большие группы: документы, ориентированные на данные и документы со смешанным контентом. Если для управления базами документов со смешанным контентом использование «native» XDMS несомненно оправдано, то управление базами документов, ориентированных на данные, которые широко используются в коммерческой и производственной практике, вызывает дискуссии.

Дело в том, что значительная часть документа – разметка без всяких изменений повторяется из документа в документ, что существенно увеличивает объем базы. В диссертации разработаны алгоритмы, позволяющие разделить разметку и собственно данные, что существенно сокращает объем базы и позволяет использовать для работы с ней стандартные методы DBMS, построенных на базе модели данных Pick UDM.

Цель работы

Целью диссертации является исследование и разработка методов и инструментальных программных средств отображения XML-документов в структуры, определяемые моделью Pick UDM, а также разработка экспериментальных приложений, работающих с XML-базами данных.

Для достижения поставленной цели в диссертации решены следующие задачи:

  1. Проанализированы современные методы создания и использования XML-баз данных в информационных системах.

  2. Проанализированы инструментальные средства работы с XML-базами данных, как создаваемые с «нуля» - «native» XDMS, так и встраиваемые в современные реляционные DBMS.

  3. Разработаны алгоритмы отображения XML-схем в структуры, определяемые моделью Pick UDM.

  4. Разработаны алгоритмы загрузки XML-документов в базу, управляемую в соответствии с моделью Pick UDM.

  5. Разработаны экспериментальные приложения, работающие с XML-базами данных.

Научная новизна

  1. Разработаны алгоритмы отображения XML-схем в структуры, определяемые моделью Pick UDM.

  2. Сформулированы условия, при выполнении которых отображение XML-документов осуществляется без декомпозиции последних.

  3. Разработаны алгоритмы загрузки XML-документов в базу, управляемую в соответствии с моделью Pick UDM.

  4. Разработаны экспериментальные программные средства, продемонстрировавшие эффективность разработанных алгоритмов.

Практическая ценность

Разработанные алгоритмы и программные средства могут быть использованы в следующих областях:

  1. Создания баз XML-документов с ориентацией на данные, работающих под управлением DBMS с моделью данных Pick UDM.

  2. Создание систем динамического гипертекста.

  3. Разработанные в диссертации подходы, алгоритмы и программные средства использовались в учебном процессе для студентов Союза Мьянма, проводимом на кафедре «Кибернетика» МИФИ. Автор лично проводил занятия со студентами.

Основные научные результаты, представляемые к защите

    1. Предлагаемый подход и алгоритмы для отображения XML-схем в структуры, определяемые моделью Pick UDM.

    2. Алгоритмы и программные средства загрузки XML-документов и оформления в виде XML-документа ответа на запрос к базе данных в соответствии с заданной XML-схемой.

    3. Алгоритмы и программные средства, позволяющие проводить динамическую разметку текстов и связывать с этой разметкой возможность выполнения определенных операций.

    Апробация работы

    Основные результаты диссертации докладывались и обсуждались на следующих научных конференциях и семинарах.

    1. На научной сессии МИФИ 2008 г; Москва, МИФИ;

    2. XII московская международная телекоммуникационная конференция студентов и молодых ученых – 2009 г.

    3. На Всероссийской межвузовской научно-технической конференции студентов и аспирантов «Микроэлектроника и информатика - 2008 г; Москва, МИЭТ;

    4. На международном научно-техническом семинаре «Современные технологии в задачах управления, автоматики и обработки информации» 2007, 2008 гг. (Алушта).

    5. Опубликованы в 2009 году в журнале «Безопасность информационных технологий».

    Публикации

    Результаты диссертации опубликованы в 6 печатных трудах, в том числе в одной статье в журнале, который включен ВАК РФ в перечень ведущих рецензируемых научных журналов и изданий, и тезисах докладов в сборниках трудов конференций.

    Структура и объем работы

    Диссертация содержит 4 главы, введение и заключение, 48 рисунков, 1 таблица и 5 приложений.

    Общий объем – 128 страниц машинописного текста. Список использованных источников содержит 58 наименования.

    Логическая модель XML-документа

    XML-схема может быть представлена в виде дерева (рис. 1.3).

    Древовидная структура, представленная на рис. 1.3, отражает логику представления XML-документа в основной памяти. Эта структура лежит в основе Document Object Model (DOM) [24] - рекомендации консорциума W3C, предназначенной для манипулирования элементами XML-документа в программном тексте.

    Фактически DOM определяет "интерфейс, не зависящий от платформы и языка, который позволяет программам и скриптам динамически получать доступ и обновлять содержимое, структуру и стили документов".

    Несмотря на эти очевидные достоинства, при анализе использования DOM при работе с XML базами данных возникают следующие вопросы:

    DOM строит в основной памяти дерево XML-документа. Если документ большой, это дерево, представленное в объектной структуре, может потребовать большого объема памяти (обычно на порядок больше, чем текст XML-документа).

    Дерево DOM содержит все множество объектов, представляющих содержимое XML-документа. Если нужна только конкретная часть документа, построение всего дерева - это лишняя работа.

    Дерево DOM должно быть построено полностью прежде, чем с ним можно будет работать. Так как это объектная структура, то она должна быть сериализована при сохранении в базе и десериализована при обращении к XML-документу. Это требует достаточно много времени.

    Альтернативные подходы не предполагают построения в памяти целого дерева XML-документа. Их можно охарактеризовать, представляя SAX (Simple API for XML). Парсер SAX [25] последовательно читает XML-документ и генерирует события, типа открытия/закрытия тега, не создавая объектов, и, следовательно, существенно менее требователен к ресурсам. Однако для поиска данных в XML-базах такой подход не очень перспективен.

    Кроме обработки XML-документа в оперативной памяти при создании систем управления XML базами данных возникает вопрос хранения XML документа во внешней памяти.

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

    Этот файл можно сохранять в виде CLOB a и обрабатывать последовательно, строка за строкой, или загружать в основную память весь документ в соответствии с некоторой структурой, например, объектной моделью документа. При загрузке XML-документа в основную память каждый элемент представляется объектом, а доступ к конкретным элементам определяется путем из корня дерева к этому элементу .

    Однако подобное хранение XML-документов не позволяет организовать эффективный поиск по всей совокупности хранимых документов, поэтому разработчики систем управления XML-базами используют собственные оригинальные способы хранения, в той или иной степени основанные на объектной модели документа. При этом применяются разные способы декомпозиции дерева XML-документа на отдельно сохраняемые фрагменты, индексация этих фрагментов и т.д.

    Отображение XML-схемы в структуру, определяемую моделью PickUDM

    В соответствии с синтаксисом DTD каждый элемент должен быть декларирован только один раз. Поэтому, если элемент номер_телефона может быть дочерним для элементов телефоны и преподаватель то он будет декларирован только один раз. Так как список телефонов кафедры и преподавателя - это разные данные, то они в базе данных должны быть разнесены по разным полям, а с этими полями должны быть связаны разные атрибуты. Поэтому, если в исходной схеме определены элементы:

    !ELEMENT телефоны (номер_телефона+)

    !ELEMENT номер_телефона (#PCDATA)

    !ELEMENT преподаватель (фио, номер_телефона ) то для упрощения формирования атрибутов модели ее необходимо преобразовать к виду:

    !ELEMENT телефоны (номер_телефона+) !ELEMENT номер_телефона (#PCDATA) !ELEMENT преподаватель (фио, номер_телефона ) !ELEMENT номер_телефона (#PCDATA) Далее, все элементы в преобразованной схеме необходимо расположить в стандартном иерархическом порядке в соответствии с принципом «сверху - вниз, слева - направо». Декларация атрибутов элемента должна следовать непосредственно за декларацией элемента, причем атрибут типа ID должен быть декларирован первым.

    В преобразованной схеме модификаторы «?» придется игнорировать, так как соответствующий атрибут и поле в модели данных все равно должны присутствовать, по этой же причине каждый модификатор « » рассматривается как модификатор «+».

    Рассмотрим путь от корня дерева, представляемого преобразованной XML-схемой, до его висячей вершины. Примерами таких путей могут служить кафедра/преподаватели/преподаватель.таб_номер кафедра/преподаватели/преподаватель/фио

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

    Для того чтобы иметь возможность полностью восстановить исходный XML-документ, сохраненный в базе данных в «разобранном» виде, необходимо каждому «подпути» поставить в соответствие атрибут модели Pick UDM:

    кафедра

    кафедра/преподаватели

    кафедра/преподаватели/преподаватель

    кафедра/преподаватели/преподаватель.таб_номер

    кафедра/преподаватели/преподаватель/фио

    При этом всем групповым тегам ставятся в соответствие виртуальные атрибуты модели Pick UDM, которые не имеют собственных значений и которым традиционно ставится в соответствие поле с номером 0. Собственные значения имеют атрибуты модели Pick UDM, соответствующие висячим вершинам дерева, представляющего XML-схему. Им должны соответствовать конкретные номера полей записи области данных.

    При предположении, что имена групповых тегов не входят в другие группы, имена атрибутов можно сократить и представить в виде:

    кафедра

    кафедра/преподаватели

    преподаватели/преподаватель

    преподаватель.таб_номер

    преподаватель/фио

    Таким образом, при сделанном предположении, имена атрибутов модели Pick UDM образуются следующим образом:

    Корневому элементу XML-документа ставится в соответствие атрибут модели с именем головного элемента, например, кафедра - кафедра.

    Дочернему элементу XML-документа ставится в соответствие атрибут модели, имя которого образуется конкатенацией имени родителя, символа «/» и имени дочернего элемента: преподаватель - преподаватели/преподаватель.

    Атрибуту XML-документа ставится в соответствие атрибут модели, имя которого образуется конкатенацией имени элемента, символа «.» и имени атрибута: преподаватель таб_номер= - преподаватель.таб_номер.

    Напомним, что в модели Pick UDM запись области данных это сериализация динамического массива m i, j,k , где индексы (і - номер поля, j - номер значения, к - номер подзначения) не ограничены каким-либо целым числом. Модель Pick UDM не предполагает какой-либо единообразной интерпретации записей, m — это просто строки переменной длины. Например, первое значение некоторого поля можно интерпретировать как «фамилия», а второе значение — как «имя». Однако, для целей представления XML-документов необходимо, чтобы для каждого поля (і) все значения и подзначения можно было интерпретировать единообразно. Например, если некоторое поле будет связано с элементом номер_телефона , то каждое неструктурированное значение и каждое подзначение, если значение структурировано, - это строка, интерпретируемая как номер телефона. Данное требование определяется тем, что атрибут модели Pick UDM связывается с полем, а элемент XML-схемы связывается с атрибутом этой модели. Это рассуждение позволяет сформулировать -условие отображения XML-документа в виде одной записи области данных.

    Утверждение. Для отображения XML-документа в виде одной записи необходимо, чтобы в дереве, построенном по преобразованной XML-схеме этого документа, на каждом пути из корня дерева в висячую вершину было не более двух модификаторов «+». (Модификатор « » рассматривается как «+»).

    Для пояснения данного утверждения рассмотрим фрагмент преобразованной XML-схемы, до которого модификаторы «+» не встречались:

    ! ELEMENT преподаватели (преподаватель + )

    !ELEMENT преподаватель (фио, день_рождения?, номер_телефона )

    !ATTLIST преподаватель таб_номер ID #REQUIRED

    !ELEMENT фио (#PCDATA)

    !ELEMENT день_рождения (#PCDATA)

    ! ELEMENT номер_телефона (#PCDATA)

    Пусть атрибут преподаватель . табномер определен на поле 4, атрибут преподаватель/фио определен на поле 5, атрибут преподаватель/день_рождения определен на поле 6, атрибут преподаватель/номер_телефона определен на поле 7. В XML-документе элементов преподаватель может быть несколько, поэтому поля 4,5,6,7 - должны быть многозначными, причем связанными в группу.

    Система «динамического» гипертекста

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

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

    С тегами разметки могут быть связаны самые разнообразные действия, самое простое из которых - переход по адресу, который может быть вычисляться по содержимому тега. Получается своеобразный «динамический» гипертекст. Пример другого действия: при изучении документации компьютерных систем очень удобно инициировать выполнение различных запросов, команд и т.д. прямо из текста, непосредственно в процессе изучения документа.

    В диссертации решение подобных задач продемонстрировано на создании некоторой «помогающей» системы при изучении средств DBMS D3 с помощью электронной энциклопедии D3. Электронная энциклопедия D3 - это огромный набор переведенных на русский материалов по DBMS D3 и, прежде всего, по всем командам различных процессоров и языку программирования FlashBasic.

    Каждая статья энциклопедии - это запись в файле d3.doc, которая содержит несколько полей, причем в 4-ом поле хранится основной текстовый материал. Этот материал может быть очень большим, вплоть до нескольких десятков страниц формата А4. Выделив фрагмент этого поля и нажав функциональную клавишу, можно либо перейти в статью энциклопедии по семантике близкую к содержанию выделения, либо получить ответ, что пока ничего сказать не можем, но система сохраняет запрос для неформальной обработки администратором. Выделяемый фрагмент не обязательно должен присутствовать в тексте, его можно ввести вручную как новое значение. Этим приемом постоянно пользуются при выполнении самых разнообразных примеров запросов, команд, находясь непосредственно в тексте энциклопедии.

    Рассмотрим, как реализован прототип подобной системы под управлением DBMS D3.

    Прежде всего создадим отдельный словарь и определим там описывающую схему, то есть атрибуты, под управлением которых будет производиться работа с файлом d3.doc. Внешний вид экрана update-процессора, в среде которого производится обработка, представлен в подразделе 3.3 на рис.3.6, там же представлена команда, которая создает этот экран.

    Декларация атрибута «Описание», определенного на основном тексте каждой статьи энциклопедии (поле 4), имеет вид, представленный на рис.3.7. Из рис.3.7 видно, что функциональные клавиши (hotkeys) нагружены программами. Эти программы инициируются, когда курсор находится в пределах поля 4 и нажимается соответствующая функциональная клавиша. Программа срабатывает успешно, если курсор находится непосредственно под открывающим тегом, в роли которого выступает, например, символ « (». Программа считывает все символы до закрывающего тега «) » и переходит к обработке образованной строки.

    Если нажата клавиша F10 (hotkeyO call Hypertext), то используются различные приемы, чтобы определить ключ записи файла d3.doc, которая раскрывает выделенное понятие. Например, если выделена строка «запись описания файла», то ей ставится в соответствие ключ «file .defining, items». Эти соответствия, прежде всего, программа пытается вычислить, если это не удается, она обращается к специальному файлу, в котором имеется запись с ключом «запись описания файла», в первом поле которой стоит ключ «file .defining. items». После того как ключ определен, программа формирует строку update Электронная-энциклопедия-03 file.defining.items using diet Wdict Дв.черта ЗагМод HI token Опис Описание

    Конец (с и передает ее update-процессору на исполнение. На рис.3.8 представлен фрагмент экрана, в который переходит система. Таким образом, пользователь получает точное толкование русскоязычного термина. Если и в специальном файле нет информации, то выводися сообщение, что пока ничего сказать не можем, но система сохраняет выделенную строку для неформальной обработки администратором.

    Электронная-энциклопедия-Pick: file.defining.items size = 9439 Если нажата клавиша Fl (hotkeyl call Execution), то полученная строка интерпретируется как команда для выполнения на уровне TCL. Например, если выделена строка «free», то в ответ получается следующий экран (рис.3.9), показывающей информацию о доступной памяти

    В приложении 3.1 приводится текст программы Execution, реализующей исполнение произвольной команды непосредственно из текста энциклопедии.

    Технология подготовки и модификации ситуаций

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

    Если использовать XML-технологию в этой сфере, то наиболее сложным моментом является разметка описаний сбойной ситуации. В данном случае можно говорить только о смешанной (mixed в терминах XML-схем) разметке. Внесение разметки - это простейший способ формализации семантики. Он дает возможность достаточно просто формировать запросы для поиска ситуаций, релевантных реальной сбойной ситуации. Было разработано несколько XML-схем (для ситуаций разного типа), фактически вводящих термины, используемые для разметки (теги), и определяющих иерархию этих тегов.

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

    Редактирование сбойной ситуации выполняется на странице Insert_s. jsp. Пользователь размечает текст с помощью XML-редактора и отправляет запрос в Web-приложение.

    Запрос принимает JSF-контроллер, анализирует параметры запроса, обращается к объекту класса MbSituations. Java, который вызывает конкретный объект класса SvSituations. Java. Этот объект класса SvSituations формирует запись в таблице Knowledge. После выполнения всей работы управление возвращается JSF-контроллеру.

    Далее JSF-контроллер инициирует оформление выходной страницы. С этой целью вызывается JSP компонент Situations. jsp. Situations. jsp, используя данные модели, генерирует HTML-код, который под названием Situations .jsp посылается на браузер клиента. Весь этот процесс схематически показан на рис.4.8.

    Итак, создано Web-приложение, позволяющее создавать XML-контент и сохранять его в базе данных сервера. XML данные, извлекаемые из базы данных, можно просматривать в удобном виде в браузере, выполняя преобразование с помощью программы XSLT. В приложении 4.0 показан код программы XSLT.

    Отдельно рассмотрим главную пользовательскую функцию - поиск в базе ситуаций.

    Произведенная разметка может быть эффективно использована для выполнения различного рода поисковых операций в архиве XML-документов.

    Для инициирования функции поиска ситуаций используется страница Search. j sp. которая отправляет запрос в Web-приложение.

    Для поиска по SQL-столбцам на странице обозначаются названия SQL-атрибутов и поля для ввода соответствующих значений.

    Для поиска по XML-фрагменту на странице выделено три поля. Первое поле предназначено выбора тега первого уровня, второе поля - для выбора тега второго уровня, третье поле предназначено для искомой текстовой составляющей, в частности, это может быть слово «ANY», которое обозначает «любой текст». В этом случае интересно само присутствие соответствующей разметки.

    Запрос принимает JSF-контроллер, анализирует параметры запроса, обращается к объекту класса MbSearch. Java, который вызывает конкретный класс SvSearch. j ava.

    Похожие диссертации на Представление и обработка XML-баз данных