Методы хранения XML в реляционных базах данных
СОДЕРЖАНИЕ
Введение
1 ОБЩЕСИСТЕМНЫЙ РАЗДЕЛ
1.1 Языки разметки
1.2 Язык разметки XML
1.2.1 Особенности XML
1.2.2 Синтаксис XML
1.2.3 Структура XML
1.3 Базы данных и системы управления базами данных
1.3.1 Общие понятия о базах данных и системах управления базами данных
1.3.2 Реляционные системы управления базами данных
1.4 Хранение XML
1.4.1 Задача хранения
1.4.2 Документы и данные
1.4.3 Способы хранения XML-документов
1.4.3.1 Хранение в файловой системе
1.4.3.2 Хранение в реляционной базе данных
1.4.3.3 Хранение в БД поддерживающей XML
1.4.3.4 Хранение в специализированных xml-серверах (истинных БД)
1.4.4 Критерии выбора способа хранения
1.5 Обзор готовых продуктов
2 СПЕЦИАЛЬНЫЙ РАЗДЕЛ
2.1 Постановка задачи
2.2 Выбор способа представления XML в РСУБД
2.3 Разработка схемы базы данных
2.4 Выбор средств реализации
2.4.1 Выбор системы управления базами данных
2.4.2 Выбор языка программирования
2.5 Разработка интерфейсного ПО
2.6 Инструкция по применению
ЗАКЛЮЧЕНИЕ
Список использованных источников
Приложение
Приложение А
Приложение Б
Введение
Популярность интернета и неотъемлемой его части, HTML, стала причиной повышенного внимания к системам гипертекстовой разметки документов. Всплеск активности вокруг подобных систем начался лишь тогда, когда возникла реальная необходимость в механизме объединения множества информационных ресурсов, обеспечения возможности создания и просмотра нелинейного текста. И примером реализации этого механизма послужила паутина WWW.
Самый популярный на сегодняшний день язык гипертекстовой разметки – HTML, был создан специально для организации информации, распределенной в сети Интернет, и является одной из ключевых составляющих технологии WWW. С использованием гипертекстовой модели документа способ представления разнообразных информационных ресурсов в сети стал более упорядочен, а пользователи получили удобный механизм поиска и просмотра нужной информации.
Однако, с развитием всемирной паутины, становилось ясно, что простой язык HTML перестает в полной мере удовлетворять требованиям, предъявляемым современными разработчиками к языкам подобного рода. И ему на смену был предложен новый язык разметки, мощный, гибкий, и, одновременно с этим, удобный язык XML.
Сегодня язык XML привлек к себе уже достаточно много внимания со стороны разработчиков и пользователей Интернет. Количество приверженцев этой новой технологии стремительно возрастает: появляются новые языки, созданные на основе XML, возникают многочисленные Web-сервера, использующие эту технологию для организации хранящейся на них информации.
Вместе с появлением нового языка появилась проблема хранения xml-данных. С одной стороны XML предоставляет множество функций: хранение (XML-документ), схемы (DTD, XML Schema), язык запросов (XQL, XML-QL, QUILT и другие), интерфейсы для языков программирования (SAX, DOM) и так далее. Но, многие функции необходимые в современных условиях отсутствуют: отсутствует эффективное хранение, индексация, обеспечение безопасности, обработка транзакций и поддержка целостности данных, многопользовательский доступ, триггеры, и т.д. Таким образом, там, где нет больших объемов информации, большого количества пользователей, а также в приложениях, не требующих высокой производительности, хранение данных в виде чистого XML вполне оправданно. Но вместе с тем, XML совершенно не подходит для многих реальных задач, предполагающих поддержку большого числа пользователей, жесткие требования к целостности данных и производительности, поэтому и возникает задача хранения XML в какой-либо базе данных.
Цель данной работы – исследовать способы хранения XML в базах данных, выявить их достоинства, недостатки, область применения. Для достижения данной цели необходимо решить следующие задачи:
а) выявить особенности языка XML;
б) определить и проанализировать существующие способы хранения XML;
в) определить область применения способов хранения;
г) определить существующие на практике критерии выбора способа хранения;
д) реализовать один из способов хранения XML в базе данных.
В теоретической части рассмотрены такие особенности XML как история появления, назначение и области применения языка, его синтаксис и структурa, описаны способы хранения XML документов, выявлены достоинства, недостатки и область применения каждого способа. В конце главы даны критерии выбора способа хранения XML документов.
В практической части был реализован способ хранения XML, основанный на объектно-реляционном отображении XML в базу данных.
1 ОБЩЕСИСТЕМНЫЙ РАЗДЕЛ
1.1 Языки разметки
XML (Extensible Markup Language) - это язык разметки. Язык разметки - это набор символов или последовательностей, вставляемых в текст для передачи информации о его выводе или строении. Текстовый документ, написанный с использованием языка разметки, содержит не только сам текст (последовательность слов и знаков препинания), но и дополнительную информацию о различных его участках — например, указание на заголовки, выделения, списки и т. д. В более сложных случаях язык разметки позволяет вставлять в документ интерактивные элементы и содержание других документов.
Различают логическую и визуальную разметки. В первом случае речь идет только о том, какую роль играет данный участок документа в его общей структуре (например, «данная строка является заголовком»). Во втором определяется, как именно будет отображаться этот элемент (например, «данную строку следует отображать жирным шрифтом»). Идея языков разметки состоит в том, что визуальное отображение документа должно автоматически получаться из логической разметки и не зависеть от его непосредственного содержания. Это упрощает автоматическую обработку документа и его отображение в различных условиях.
1.2 Язык разметки XML
1.2.1 Особенности XML
XML (англ. eXtensible Markup Language) — расширяемый язык разметки; рекомендованный Консорциумом Всемирной паутины [11] (англ. World Wide Web Consortium, W3C) — организация, разрабатывающая и внедряющая технологические стандарты для Всемирной паутины) язык разметки, фактически представляющий собой свод общих синтаксических правил. XML — текстовый формат, предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями.
Можно считать, что XML появился в 1996 году, когда появился черновой вариант спецификации языка, или в 1998 году, когда эта спецификация была утверждена [8]. Язык XML создан на основе SGML.
SGML (англ. Standard Generalized Markup Language — стандартный обобщённый язык разметки) предназначенный для создания языков разметки. SGML очень сложный и запутанный язык.
Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет [9]. Сегодня XML может применяться для следующих целей:
С помощью XML можно устроить хранение данных вне кода. Когда для отображения данных используется HTML, данные хранятся прямо в HTML-коде. Использование XML позволяет хранить данные в отдельных XML-файлах. Благодаря этому, можно сосредоточиться на применении HTML для отображения данных и быть уверенными в том, что изменения в данных не потребуют никакого изменения кода.
С помощью XML можно устроить обмен данными между несовместимыми системами. В реальных условиях компьютерные системы и базы данных хранят данные в несовместимых форматах. Одной из самых сложных задач для разработчиков программного обеспечения было обеспечить обмен данными между такими системами через Интернет. Преобразование данных в XML может в значительной мере уменьшить сложность этой задачи и дать формат, который может быть прочитан многими типами приложений.
С помощью XML можно обмениваться через Интернет финансовой информацией. XML является основой многих B2B-технологий (B2B – системы электронной коммерции, или системы электронной торговли, программно-аппаратные комплексы, являющиеся инструментами для осуществления торгово-закупочной деятельности в сети интернет).
XML позволяет хранить совместно используемые данные в простых текстовых файлах. Поскольку XML хранит данные в текстовом формате, открывается возможность организации совместного использования данных, независимо от программного или аппаратного обеспечения. Становится гораздо легче создавать данные, с которыми могут работать различные приложения. Кроме того, гораздо легче расширять или проводить апгрейд системы со сменой операционной системы, сменой сервера, программного обеспечения или нового браузера. Также XML может применяться для хранения данных в файлах или базах данных. Для извлечения данных из хранилища могут быть созданы специальные приложения, родственные приложения могут применяться и для отображения данных.
XML позволяет сделать данные доступными для большего числа пользователей. Поскольку XML не зависит от аппаратного и программного обеспечения, можно сделать свои данные доступными не только для стандартных HTML-браузеров. К источникам данных в виде XML могут получить доступ и другие клиенты и приложения. Для этого им не потребуется какого-либо специализированного ПО (как клиенты для подключения к БД, например).
XML – прародитель технологии WAP и языка WML. Беспроводной язык разметки WML (Wireless Markup Language) применяется для разметки интернет-приложений для носимых устройств, таких как мобильные телефоны.
Уже сегодня такие приложения как Microsoft Office Word 2007, Microsoft Office Word 2010, OpenOffice Writer 3.2 хранят документы в виде XML файлов [3]. Некоторые сайты переходят на технологию web 3.0 – интернет будущего. Web 3.0 предполагает появление узкоспециализированных ресурсов, где будет произведена агрегация всех необходимых пользователю сервисов и инструментов профессиональной социальной составляющей и будет осуществляться публикация экспертно-модерируемого контента. Основой для хранения данных является XML [14].
Язык XML как и все языки разметки имеет свои достоинства и недостатки. К достоинствам языка XML относятся:
XML — язык разметки, позволяющий отобразить двоичные данные в текст, читаемый человеком и анализируемый компьютером;
XML поддерживает Юникод;
в формате XML могут быть описаны такие структуры данных как списки и деревья;
XML — это самодокументируемый формат, который описывает структуру и имена полей так же как и значения полей;
XML — формат, основанный на международных стандартах, т.е. открытый формат;
иерархическая структура XML подходит для описания практически любых типов документов, кроме аудио и видео мультимедийных потоков, растровых изображений и двоичных данных;
XML представляет собой простой текст, свободный от лицензирования и каких-либо ограничений;
XML не зависит от платформы;
XML является подмножеством SGML (который используется с 1986 года). Уже накоплен большой опыт работы с языком и созданы специализированные приложения;
в отличие от бинарных форматов, XML содержит метаданные об именах, типах и классах описываемых объектов, по которым приложение может обработать документ неизвестной структуры (например, для динамического построения интерфейсов);
XML имеет реализации парсеров для всех современных языков программирования;
XML поддерживается на низком аппаратном, микропрограммном и программном уровнях в современных аппаратных решениях.
К недостаткам языка можно отнести следующее:
синтаксис XML избыточен;
размер XML документа существенно больше бинарного представления тех же данных. В грубых оценках величину этого фактора принимают за 1 порядок (в 10 раз);
для большого количества задач не нужна вся мощь синтаксиса XML и можно использовать значительно более простые и производительные решения;
XML не содержит встроенной в язык поддержки типов данных. В нём нет строгой типизации, то есть понятий «целых чисел», «строк», «дат», «булевых значений» и т. д.
1.2.2 Синтаксис XML
XML — это иерархическая структура, предназначенная для хранения любых данных. Визуально структура может быть представлена как дерево. Важнейшее обязательное синтаксическое требование заключается в том, что документ имеет только один корневой элемент (англ. root element). Это означает, что текст или другие данные всего документа должны быть расположены между единственным начальным корневым тегом и соответствующим ему конечным тегом.
Следующий простейший пример — правильно построенный документ XML:
<book>Это книга: "Книжечка"</book>.
Первая строка XML-документа называется объявлением XML (англ. XML declaration) — это необязательная строка, указывающая версию стандарта XML (обычно это 1.0), также здесь может быть указана кодировка символов и внешние зависимости.
<?xml version="1.0" encoding="UTF-8"?>
Спецификация требует, чтобы процессоры XML обязательно поддерживали Юникод-кодировки UTF-8 и UTF-16 (UTF-32 не обязателен). Признаются допустимыми, поддерживаются и широко используются (но не обязательны) другие кодировки, основанные на стандарте ISO/IEC 8859, также допустимы другие кодировки, например, русские Windows-1251, KOI-8.
Комментарий может быть размещен в любом месте дерева. XML комментарии размещаются внутри пары тегов <!-- и -->. Два знака дефис (--) не могут быть применены ни в какой части внутри комментария.
1.2.3 Структура XML
XML-документ состоит из вложенных элементов, некоторые из которых имеют атрибуты и содержимое. Элемент обычно состоит из открывающего и закрывающего тегов, обрамляющих текст и другие элементы. Открывающий тег состоит из имени элемента в угловых скобках, например, «<step>»; закрывающий тег состоит из того же имени в угловых скобках, но перед именем ещё добавляется косая черта, например, «</step>». Содержимым элемента (англ. content) называется всё, что расположено между открывающим и закрывающим тегами, включая текст и другие (вложенные) элементы.
Кроме содержания у элемента могут быть атрибуты — пары имя-значение, добавляемые в открывающий тег после названия элемента. Значения атрибутов всегда заключаются в кавычки (одинарные или двойные), одно и то же имя атрибута не может встречаться дважды в одном элементе. Не рекомендуется использовать разные типы кавычек для значений атрибутов одного тега.
Каждый XML-документ должен содержать в точности один корневой элемент (англ. root element или document element).
Для обозначения элемента без содержания, называемого пустым элементом, необходимо применять особую форму записи, состоящую из одного тега, в котором после имени элемента ставится косая черта.
<foo/>
1.3 Базы данных и системы управления базами данных
1.3.1 Общие понятия о базах данных и системах управления базами данных
База данных (БД) — организованная в соответствии с определёнными правилами и поддерживаемая в памяти компьютера совокупность данных, характеризующая актуальное состояние некоторой предметной области и используемая для удовлетворения информационных потребностей пользователей [19]. Иными словами база данных представляет собой внутренний механизм хранения и обработки данных.
База данных обладает следующими отличительными признаками:
а) база данных хранится и обрабатывается в вычислительной системе. Таким образом, любые внекомпьютерные хранилища информации (архивы, библиотеки, картотеки и т. п.) базами данных не являются;
б) данные в базе данных логически структурированы (систематизированы) с целью обеспечения возможности их эффективного поиска и обработки в вычислительной системе. Структурированность подразумевает явное выделение составных частей (элементов), связей между ними, а также типизацию элементов и связей, при которой с типом элемента (связи) соотносится определённая семантика и допустимые операции;
в) база данных включает метаданные, описывающие логическую структуру БД в формальном виде (в соответствии с некоторой моделью).
Для взаимодействия пользователей с БД пользователей существует система управления базами данных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.
Каждая БД и СУБД строится на основе некоторой модели данных. В классической теории баз данных, модель данных есть формальная теория представления и обработки данных в системе управления базами данных (СУБД), которая включает, по меньшей мере, три аспекта:
а) аспект структуры: методы описания типов и логических структур данных в базе данных;
б) аспект манипуляции: методы манипулирования данными;
в) аспект целостности: методы описания и поддержки целостности базы данных.
Аспект структуры определяет, что из себя логически представляет база данных, аспект целостности определяет средства описаний корректных состояний базы данных, аспект манипуляции определяет способы перехода между состояниями базы данных (то есть способы модификации данных) и способы извлечения данных из базы данных.
Модель данных — это абстрактное, логическое определение объектов, операторов и прочих элементов, в совокупности составляющих абстрактную машину доступа к данным, с которой взаимодействует пользователь. Эти объекты позволяют моделировать структуру данных, а операторы — поведение данных.
В зависимости от модели данных все БД и СУБД делятся на:
иерархические;
сетевые;
объектно-ориентированные;
реляционные.
Иерархическая модель базы данных состоит из объектов с указателями от родительских объектов к потомкам, соединяя вместе связанную информацию.
Иерархические базы данных могут быть представлены как дерево, состоящее из объектов различных уровней. Верхний уровень занимает один объект, второй — объекты второго уровня и т. д.
Сетевые базы данных подобны иерархическим, за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию.
Объектно-ориентированная база данных (ООБД) — база данных, в которой данные оформлены в виде моделей объектов, включающих прикладные программы, которые управляются внешними событиями [22]. Результатом совмещения возможностей (особенностей) баз данных и возможностей объектно-ориентированных языков программирования являются Объектно-ориентированные системы управления базами данных (ООСУБД). ООСУБД позволяет работать с объектами баз данных также, как с объектами в программировании в ООП.
Реляционная база данных — база данных, основанная на реляционной модели данных.
Реляционная модель данных — логическая модель данных, прикладная теория, описывающая структурный аспект, аспект целостности и аспект обработки данных в реляционных базах данных.
а) структурный аспект (составляющая) — данные в базе данных представляют собой набор отношений;
б) аспект (составляющая) целостности — отношения (таблицы) отвечают определенным условиям целостности. РМД поддерживает декларативные ограничения целостности уровня домена (типа данных), уровня отношения и уровня базы данных;
в) аспект (составляющая) обработки (манипулирования) — РМД поддерживает операторы манипулирования отношениями (реляционная алгебра, реляционное исчисление).
Кроме того, в состав реляционной модели данных обычно включают теорию нормализации. Реляционная модель данных является приложением к задачам обработки данных таких разделов математики как теория множеств и формальная логика.
Термин «реляционный» означает, что теория основана на математическом понятии отношение (relation). В качестве неформального синонима термину «отношение» часто встречается слово таблица. Особенностями реляционной модели данных являются:
модель является логической, то есть отношения являются логическими (абстрактными), а не физическими (хранимыми) структурами;
для реляционных баз данных верен информационный принцип: всё информационное наполнение базы данных представлено одним и только одним способом, а именно — явным заданием значений атрибутов в кортежах отношений; в частности, нет никаких указателей (адресов), связывающих одно значение с другим;
наличие реляционной алгебры позволяет реализовать декларативное программирование и декларативное описание ограничений целостности, в дополнение к навигационному (процедурному) программированию и процедурной проверке условий.
1.3.2 Реляционные системы управления базами данных
Реляционная СУБД (РСУБД, иначе система управления реляционными базами данных, СУРБД) — СУБД, управляющая реляционными базами данных. Основана на реляционной модели данных.
Эта модель характеризуется простотой структур данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
каждый элемент таблицы — один элемент данных;
все ячейки в столбце таблицы однородные, то есть все элементы в столбце имеют одинаковый тип (числовой, символьный и т. д.);
каждый столбец имеет уникальное имя;
одинаковые строки в таблице отсутствуют;
порядок следования строк и столбцов может быть произвольным.
Базовыми понятиями реляционных СУБД являются:
атрибут;
отношение;
кортеж.
Отношение — фундаментальное понятие реляционной модели данных. По этой причине модель и называется реляционной (от английского relation — отношение).
N-арным отношением R, или отношением R степени n, называют подмножество декартового произведения множеств (множество, элементами которого являются все возможные упорядоченные пары элементов исходных двух множеств), не обязательно различных. Исходные множества называют в модели доменами (в СУБД используется понятие тип данных).
Отношение имеет простую графическую интерпретацию, оно может быть представлено в виде таблицы, столбцы (поля, атрибуты) которой соответствуют вхождениям доменов в отношение, а строки (записи) — наборам из n значений, взятых из исходных доменов. Под атрибутом здесь понимается вхождение домена в отношение. Строки отношения называются кортежами.
Над отношениями в реляционной модели определены следующие операции:
объединение — тело нового отношения является объединением тел старых;
пересечение — тело нового отношения является пересечением тел старых;
вычитание — тело нового отношения получено вычитанием тел старых;
проекция — частный случай пересечения;
декартово произведение — тело нового отношения является декартовым произведением тел старых;
выборка — из исходного отношения выбираются лишь те кортежи, которые удовлетворяют новым доменам (заданным в условиях выборки);
соединение — выборка над декартовым произведением;
деление — частное — совпадающие части кортежей делимого, перед которыми стоит делитель.
Каждая строка таблицы идентифицируется с помощью уникального первичного ключа. Первичный ключ — это такой набор атрибутов, который однозначно определяет кортеж и минимален среди всех своих подмножеств (то есть нельзя убрать ни один из атрибутов).
1.4 Хранение XML
1.4.1 Задача хранения
Гибкость XML делает его отличным средством решения многих задач. XML повсеместно используется в качестве средства передачи информации. В связи с этим нередко возникают задачи хранения XML-документов. При хранении XML-документов должны быть выполнены следующие условия:
должна быть возможность хранить большие объемы информации;
информация должна быть доступна в любой момент времени;
информация должна быть доступна одновременно нескольким пользователям;
должна быть возможность осуществлять поиск информации по заданному критерию;
должна быть возможность обращаться к конкретному узлу XML-документа так же, как и к целому документу.
1.4.2 Документы и данные
Одним из важнейших факторов, влияющим на выбор базы данных является вид хранимых XML документов. Все документы xml делятся на дата-центричные и документо-центричные.
Дата-центричные документы - это документы, которые используют XML для транспортировки данных. То есть, для приложений или базы данных не имеет значения, что в некоторый момент времени данные хранятся в виде XML. Примерами дата-центричных документов являются торговые заказы, расписания рейсов, научные данные и биржевые индексы.
Дата-центричные документы характеризуются строго регулярной структурой, мелкой зернистостью данных (то есть, самый маленький кусочек данных находится на уровне PCDATA-элементов или атрибутов), они отличаются отсутствием или малым количеством смешанного содержимого. Порядок, в котором следуют соседние элементы или секции PCDATA, обычно не имеет значения.

- Методы хранения рыбы и рыбной продукции
- Методы цветопробы: разновидности, особенности использования отдельных методов
- Методы, цели и задачи управлением производства
- Методы, цели и средства стимулирования сбыта
- Методы ценообразования
- Методы ценообразования
- Методы ценообразования
- Методы формирования цен. Государственное регулирование цен. Расчёт технико-экономических показателей
- Методы, формы и средства подготовки дошкольников к школьному обучению для ребенка-дошкольника
- Методы, формы и технологии целостного педагогического процесса
- Методы, функции и основные направления ЦБ в денежно – кредитной политике
- Методы хеджирования (инструменты и стратегии)
- Методы химического анализа
- Методы химической идентификации