четверг, 26 августа 2010 г.

Часть 3: Реализация механизмов поддержки и порождения ссылок уровня хранения на базе системы хранения XML данных XSS

Обзор средств хранения данных

Каждая база данных (БД) и система управления базами данных (СУБД) строится на основе некоторой явной или неявной модели данных. Все СУБД, построенные на одной и той же модели данных, относят к одному типу. Например, основой реляционных СУБД является реляционная модель данных, сетевых СУБД – сетевая модель данных, иерархических СУБД – иерархическая модель данных и так далее.

Microsoft SQL Server
Microsoft SQL Server – система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов – Transact-SQL
Microsoft SQL Server 2005 является полноценной платформой интеллектуальной обработки данных, предоставляющей возможности, инструменты и функциональность для создания и классических, и инновационных аналитических приложений. SQL Server 2005 предоставляет набор инструментов, которые снижают сложность создания, развертывания, управления и использования приложений обработки и анализа данных предприятия на целом ряде платформ, от мобильных устройств до систем хранения данных масштаба предприятия. Благодаря исчерпывающему набору функций, взаимодействию с существующими системами и автоматизации типовых задач, SQL Server 2005 предоставляет полное решение в области хранения данных для предприятий различных масштабов.
Microsoft SQL Server 2005 представляет собой платформу обработки данных, построенную вокруг ядра, обеспечивающего функциональность реляционной базы данных, а также большого набора сервисов, расширяющих эту функциональность.
Ядро реляционной базы данных обеспечивает безопасные, надежные, масштабируемые, высокодоступные операции над реляционными данными и позволяет работать как со структурированными, так и с неструктурированными XML-данными. Ядро базы данных обеспечивает поддержку .NET CLR (возможность создания хранимых процедур, функций и триггеров, реализованных на управляемом коде, а также определяемых пользователем типов и агрегатных функций) и расширений ADO.
Реляционное ядро БД хранит подробные записи о транзакциях, генерируемых системами оперативной обработки транзакций, а также осуществляет оперативную аналитическую обработку данных по запросу специализированных хранилищ данных. Реляционное ядро БД обеспечивает достоверность и защиту хранимых данных, отказоустойчивость, динамически оптимизирует производительность, а также налагает блокировки для реализации параллелизма.
Ядро реляционной базы данных SQL Server 2005 включает несколько интересных возможностей для создания и поддержки различных приложений с хранилищами данных:
· табличные секции, обеспечивающие быструю загрузку данных и упрощенную поддержку очень больших таблиц
· простое создание сервера отчетности
· улучшения в Transact-SQL, включая новые типы данных и новые аналитические функции
· выполнение онлайновых операций над индексами
· гранулированные операции резервного копирования/восстановления
· быстрая инициализация файлов
Для хранения XML данных в SQL Server 2005 был реализован новый внутренний тип данных. SQL Server 2000 позволяет хранить XML на сервере в виде текста в поле BLOB (Binary Large Objects – бинарные большие объекты), поэтому нет возможности работать с XML или ссылаться на XML на сервере. Для того чтобы работать с данными XML, его нужно было извлечь его на уровень приложения, затем воспользоваться стандартным анализатором XML или Document Object Model (DOM) – программным объектом для обработки документов XML. Microsoft SQL Server 2005 предоставляет принципиально новый подход к использованию XML. Введен новый одноименный тип данных – XML. В этом типе используются методы query(), exist(), value(), nodes() и modify(), которые представляют собой подмножество спецификации XML Query (XQuery). XML-документ перестал быть чем-то неделимым. Благодаря новому типу данных механизм SQL Server понимает данные XML точно так же, как он понимает целые числа или строковые данные. Тип данных XML позволяет создавать как таблицы, которые хранят только XML, так и таблицы, которые хранят и XML, и реляционные данные. Эта гибкость позволяет получить максимальную отдачу от реляционной модели для структурированных данных и пополнить эти данные слабоструктурированными данными XML.
Чтобы извлечь максимальную пользу из этой комбинации слабоструктурированных и реляционных данных, внутренний тип данных SQL Server 2005 XML поддерживает несколько встроенных методов, позволяющих запрашивать и модифицировать данные XML. Эти методы воспринимают XQuery, новый стандартный язык консорциума World Wide Web Consortium (W3C), а также навигационный язык XPath 2.0 и язык модификации данных XML. Язык запросов XML, или XQuery, является развитым и гибким языком запросов над всеми типами данных XML. Он разрабатывался именно как язык запросов для иерархической среды XML и обеспечивает оптимальный поиск в такой среде. В языке манипуляции XML DML SQL Server 2005 XQuery расширен возможностями внесения изменения в данные. При этом учитываются все особенности XML, в частности, возможность использования схемы документа. Имеется возможность комбинировать запросы к методам типа данных XML со стандартным T-SQL, создавая запросы, которые возвращают и реляционные данные, и данные XML.
Для поддержки типа данных XML были добавлены ключевые слова для регистрации и управления схемами XML. Центральные инструменты для работы с XML, FOR XML и OPENXML расширены поддержкой типа данных XML, что позволяет делать запросы к части XML-документа и проверять, что документ соответствует схеме XML. Для большей структурированности или целостности XML-данных SQL Server позволяет связывать схему с конкретным столбцом XML. Если некоторая схема XML связана с некоторым столбцом XML, схема проверяет, правильно ли данные XML вставлены в поле. Но SQL Server 2005 поддерживает несколько схем, сгруппированных в коллекцию, что позволяет применять к столбцу XML разные схемы. Сервер будет проверять правильность всех входящих данных XML по всем схемам. Если XML верен с точки зрения любой из схем коллекции, он может быть сохранен в поле XML.
Для улучшения производительности при наличии XML SQL Server 2005 позволяет создавать индексы по данным XML. Эти индексы работают так же, как стандартные индексы SQL Server и могут существенно увеличить производительность системы во время работы с XML-данными.
Внутренний тип данных XML в SQL Server 2005 позволяет создавать более качественные модели данных, имеющих структуру естественного происхождения. В реальной жизни никакой определенности нет; но сегодня, благодаря комбинированию XML и реляционных данных, мы имеем возможность учесть эту неизбежную неопределенность, что позволит системам более чутко реагировать на изменения и продлит их жизненный цикл. Теперь с содержимым XML-документа можно работать непосредственно, обращаясь к нему по правилам работы с XML-документом, выполнять поиск информации по правилам XQuery и, при этом, пользоваться всей мощью системы индексации SQL Server.

Tamino XML Server
Альтернативный подход в хранении XML данных заключается в том, чтобы создать СУБД, изначально ориентированную на хранение и поиск данных в формате XML, поскольку полная поддержка XML требует применения иных методик, которые выходят за рамки традиционных реализаций баз данных. Такие хранилища называются native XML базами данных.
Термин native XML база данных используется в различных смыслах разными группами. Native XML база данных имеет следующий три характеристики:
· она определяет логическую модель для XML-документа. Данные хранятся и выбираются в соответствии с этой моделью. Модель должна включать в себя элементы, атрибуты и порядок документа;
· XML-документ является базовой единицей логического хранения;
· не требуется никакая специфическая физическая модель хранения. Это означает, что она может быть основана на реляционных, иерархических или объектно-ориентированной базе данных.
В частности, это определение допускает преобразование данных из модели данных XML в другие модели данных для их хранения и обработки. Таким образом, требуется, чтобы native XML база данных также имела следующие два свойства:
· модель данных XML – фундаментальная логическая модель данных, которая и используется внутри базы данных и предоставляется пользователям базы данных, если XML является типом данных;
· модель данных XML является основной единицей физического хранения всех XML-данных, без отображения в другую модель данных.
Это краткое определение означает, что XML – уже не просто расширенный тип данных, это то, как данные обрабатываются, как логически, так и физически. Данные, представленные в XML, соответствуют физической схеме хранения на диске. Эта модель является лучшей для эффективного поиска XML-данных.
Именно такой подход применила компания Software AG в своем продукте Tamino XML Server, реализующем модель хранения и обработки данных в соответствии со стандартами XML:
· XML-документ является, как правило, фундаментальной единицей хранения;
· DTD (Document Type Definition) или XML-схемы используются как «язык определения данных» для описания свойств коллекций документов;
· языки запросов XML (например, XPath) используются для поиска документов;
· клиентские приложения могут обрабатывать XML-данные с помощью SAX, DOM, XSTL и других стандартов на самом ядре сервера, а не посредством внешних утилит.
С практической точки зрения обе стратегии – реляционные СУБД с поддержкой XML и XML-ориентированные СУБД имеют свою нишу. Первый вариант принято применять для доступа к существующим системам обработки данных, а второй - для обработки документов, изначально создаваемых в XML-формате. Однако, учитывая современные тенденции развития информационных систем, можно утверждать, что специализированные XML-серверы оптимальным образом подходят для решения задач интеграции гетерогенных приложений, выступая в роли виртуальных СУБД и управляя данными в формате XML, хранимыми в различных источниках информации.
Tamino XML Server – это продукт, предназначенный для хранения, обслуживания, публикации и обмена документами в формате XML.
Общая схема архитектуры Tamino представлена на рис 1. Физически сервер состоит из набора сервисов, в котором выделяется два уровня - базовый (ядро) и вспомогательный. Сервисы ядра - это неотъемлемая часть Tamino, они доступны сразу после установки продукта. Вспомогательные сервисы включают средства и инструменты для эффективной разработки решений на базе Tamino. Их состав может расширяться за счет продуктов независимых разработчиков.
clip_image002
Рис. 1. Схема работы программной системы с использованием Tamino.
Tamino предназначена для поддержки XML-документов, то есть для хранения XML-данных и извлечения их в наборах, а также реализации обширных возможностей выполнения запросов и полной поддержки транзакций.
Подразумевается, что в Tamino документы хранятся целиком. Чтобы предоставить доступ к имеющимся источникам данных и объединить данные, поступающие из различных источников (в том числе и из Tamino) в один XML-документ, Tamino поддерживает доступ к внешним источникам через компонент X-Node.
Для обработки или выборки частей XML-документов может применяться любой предоставленный пользователем код. Компонент X-Tension позволяет определять расширения для сервера Tamino. Серверные расширения могут передавать XML-документы или части этих документов в функции, предоставленные пользователем, или считывать данные из этих функций для добавления их в XML-документ.
Доступ к Tamino осуществляется посредством протокола HTTP. Документы и команды передаются на сервер Tamino через расширение Web-сервера, называемое X-Port. Ядро XML принимает эти команды и анализирует их с учетом метаданных, находящихся в специальном хранилище Tamino, который называют картой данных.

Комментариев нет:

Отправить комментарий