РЕЦЕНЗИИ

Малкольм Грим. Программирование для Microsoft SQL Server 2000 с использованием XML. Пер. с англ. М.: Русская Редакция, 2002. - 320 с.

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

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

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

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

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

О реализации такого подхода работы с БД подробно рассказывается в книге Грима Малкольма. Ее первая половина (первые шесть глав) посвящена обсуждению методов извлечения данных в XML-форматах - с помощью встроенной в SQL Server 2000 поддержки языка Transact-SQL, средств HTML-публикации (автономное приложение SQLISAPI в составе SQL Server), а также механизмов ADO и XML Parser.

В седьмой главе рассматривается процедура вставки XML-данных в БД с помощью функции OpenXML. Эта операция - гораздо сложнее, чем выборка информации (как любая обратная задача по сравнению с прямой) и требует существенных усилий программиста. В следующей главе рассказывается о пакете XML For SQL Server 2000 Web Release, предоставляющем дополнительные функции изменения содержимого БД с помощью XML-кода, в том числе для вставки больших объемов XML-кода с применением объекта XML bulk load.

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

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

Мне кажется, что название “Введение в XML для разработчиков баз данных (на примере MS SQL Server)” более точно отразило бы содержание книги и ее целевую аудиторию. Данная публикация предполагает, что читатель обладает лишь базовыми знаниями XML-технологии (у кого их вовсе нет, могут изучать книгу с приложения в конце, где кратко и очень понятно изложены основы XML) и весьма ограниченным опытом работы с SQL Server. В задачу автора не входила демонстрация тонкостей XML или СУБД Microsoft.

Версия для печати