Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Декабрь 2004 → | ||||||
1
|
2
|
3
|
4
|
5
|
||
---|---|---|---|---|---|---|
7
|
8
|
9
|
10
|
11
|
12
|
|
14
|
15
|
16
|
17
|
18
|
19
|
|
20
|
22
|
23
|
24
|
25
|
26
|
|
27
|
28
|
29
|
31
|
Статистика
-20 за неделю
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#225<< #226 |
СОДЕРЖАНИЕ Поддержка XML в Microsoft SQL Server 2005 (начало)
По материалам статьи
XML Support in Microsoft SQL Server 2005
Shankar Pal, Mark Fussell, and Irwin Dolobowsky В этой статье рассматривается добавленная в SQL Server 2005 поддержка XML. В статье также показано, как эта поддержка интегрируется с программной поддержкой со стороны клиента в .NET Framework V2.0 и в родном коде, как OLEDB и SQLXML. Расширенный язык разметки (eXtensible Markup Language, XML) широко распространен как платформо-независимый формат представления данных. Он полезен для обмена информацией между различными слабосвязанными системами, как в приложениях business-to-business (B2B), так и в других ситуациях. Обмен данными был главным двигателем развития технологий XML. XML все больше используется в приложениях уровня предприятия для моделирования частично структурированных и неструктурированных данных. Одно из таких приложений - это управление документами. Документы, такие, как e-mail, являются изначально частично структурированными. Если документы хранятся внутри сервера базы данных в виде XML, то достаточно мощные приложения могут быть разработаны для получения документов, основанные на содержимом документов, объединении документов, и запросах на получение части содержимого документа, как, например, поиск главы документа с заголовком, содержащим слово "background". Такие сценарии становятся все более возможными с ростом количества приложений, которые генерируют и потребляют XML. Например, система Microsoft Office 2003 позволяет пользователям создавать документы Word, Excel, Visio и Infopath в виде XML. Почему для данных XML используются реляционные базы данных? - Хранение данных XML в реляционной базе данных имеет свои преимущества при управлении данными и обработке запросов. SQL Server обеспечивает большие возможности для выполнения запросов по реляционным данным и изменения этих данных, которые были расширены для выполнения запросов по данным XML и их изменения. Это позволяет увеличить отдачу от инвестиций, как, например, в областях оптимизации затрат ресурсов и хранилищ данных. Например, методы индексирования в реляционной базе данных хорошо известны, и они были расширены для индексирования данных XML так, чтобы запросы могли быть оптимизированы с учетом затрат ресурсов. - Данные XML могут взаимодействовать с существующими реляционными данными и приложениями SQL так, чтобы XML мог быть добавлен в систему при возникновении новых потребностей без серьезного изменения существующих приложений. Сервер базы данных также обеспечивает административную функциональность для управления данными XML (например, резервное копирование, восстановление и репликация). - Эти возможности породили потребность в поддержке встроенного XML в SQL Server 2005 для отражения увеличивающегося использования XML. Разработка приложений уровня предприятия сильно выиграет от поддержки XML в SQL Server 2005. - Следующие главы дают обзор поддержки XML в SQL Server 2000 и 2005, описывают некоторые сценарии использования XML и углубляются в детали использования XML на стороне сервера и клиента. Поддержка XML в SQL Server 2000 Эта глава предоставляет краткий обзор поддержки XML в SQL Server 2000 и в последующих сетевых релизах платформы программирования SQLXML на клиентской стороне, что обеспечивает широкую поддержку конвертации реляционных данных в XML, и наоборот. Поддержка XML на стороне сервера На сервере данные XML могут быть сгенерированы из таблиц и результатов запросов, используя выражение FOR XML в команде SELECT. Это идеально подходит для обмена данными и для приложений Web-сервисов. Обратной операцией для FOR XML является функция генератора реляционного набора строк OpenXML; она заносит значения из данных XML в столбцы набора строк, используя выражения XPath 1.0. OpenXML используется приложениями, которые заносят входные данные XML в таблицы или выполняют запросы, используя T-SQL. Поддержка XML на стороне клиента Поддержка программирования на стороне клиента для SQL Server 2000 относится к SQLXML. Центральное место этой технологии - представление XML, которое является двусторонней конвертацией схемы XML в реляционные таблицы. SQL Server 2000 поддерживает только конвертацию схем XDR, хотя поддержка XSD была добавлена в более поздние web-релизы. Представление XML позволяет выполнять запросы, используя подмножество XPath 1.0, где конвертация используется для перевода выражений пути в запросы SQL на таблицах, и где результаты запроса вставляются в результат XML. SQLXML также позволяет создавать шаблоны XML, которые позволяют создавать документ XML с динамическими секциями. В документ XML вы можете встраивать запросы FOR XML и/или выражения XPath 1.0 при помощи запросов конвертации. Когда выполняется шаблон XML, блок запроса заменяется результатом этого запроса. Т.е. Вы можете создавать документы XML со статическим содержанием и с динамическим содержанием, управляемым данными. В SQL Server 2000 есть два пути доступа к функциональности SQLXML: - SQLXMLOLEDB Provider - провайдер SQLXMLOLEDB, это провайдер OLE DB, который обеспечивает функциональность Microsoft SQLXML через ADO. - HTTP Access - функциональность SQLXML в SQL Server 2000 может также быть достигнута через HTTP, используя фильтр SQLXML ISAPI. Используя инструмент конфигурации, вы можете настроить веб-сайт на прием входящих запросов на выполнение шаблонов XML и команд FOR XML и XPath 1.0 с помощью представлений XML через HTTP. Ограничения в поддержке XML Серверная и клиентская платформы программирования обеспечивают широкую поддержку для генерации и потребления данных XML, основанных на конвертации между табличными данными и данными XML. Это позволяет хорошо управлять структурированными данными XML. В SQLXML язык запросов является подмножеством XPath 1.0 и имеет некоторые ограничения. Например, не поддерживается descendant-or-self axis (//). Следовательно, существуют ограничения при разработке определенных решений. Например, может не сохраниться порядок документа XML, что так критично для таких приложений, как приложения управления документами. Более того, не поддерживаются рекурсивные схемы XML. Несмотря на эти ограничения, функциональность клиентского SQLXML и серверного XML широко используется при разработке приложений. SQL Server 2005 устраняет многие из этих ограничений, расширяет обмен между реляционными данными и данными XML и обеспечивает поддержку встроенного XML. Обзор поддержки XML в SQL Server 2005 Эта глава предоставляет обзор поддержки XML, добавленной в SQL Server 2005, которая дополняется поддержкой XML в .NET Framework V2.0 и клиентским доступом к встроенному XML через OLE DB. Тип данных XML Модель данных XML имеет такие характеристики, которые затрудняют, если вообще не делают невозможным процесс ее конвертации в реляционную модель данных. Данные XML имеют иерархическую структуру, которая может быть рекурсивной; реляционные базы данных обеспечивают слабую поддержку для иерархических данных (в виде внешних ключей). Порядок документа является одним из основных свойств XML и должен быть сохранен в результате запроса. Это контрастирует с реляционными данными, которые неупорядочены, и их порядок указывается с помощью дополнительных столбцов. Получение результата выполнения запроса достаточно затратно для реальных схем XML, которые распределяют данные XML по большому количеству таблиц. В SQL Server 2005 появился встроенный тип данных - XML. Пользователь может создавать таблицу с одним или более столбцом типа XML помимо столбцов с реляционными данными; также разрешены переменные и параметры типа XML. Значения XML хранятся во внутреннем формате как большие бинарные объекты (BLOB) для лучшей поддержки характеристик модели XML, таких, как порядок документа и рекурсивные структуры. SQL Server 2005 обеспечивает набор схем XML в качестве средства по управлению схемами W3C XML как метаданными. Тип данных XML может быть сопоставлен с набором схемы XML, чтобы наложить ограничения на экземпляры XML. Когда данные типа XML сопоставляются с набором схем XML, они называются типизированными данными XML; иначе они называются нетипизированными данными XML. И типизированные, и нетипизированные данные XML в одной структуре, модель данных XML защищена, и обработка запроса использует семантику XML. Для этого в значительной степени используется имеющаяся реляционная инфраструктура. Она обеспечивает взаимодействие между реляционными данными и данными XML, давая возможность для более широкого использования XML. Запрос данных XML и модификация данных Экземпляры XML могут быть получены с помощью команды SELECT языка T-SQL. Пять встроенных методов на типе данных XML обеспечивают выполнение запросов и изменение экземпляров XML. Методы типа данных XML поддерживают XQuery, который является стандартом языка W3C и включает язык навигации XPath 2.0. Язык также доступен для изменения данных XML, например, для добавления или удаления поддеревьев и обновления скалярных значений. Вместе с большим набором функций, встроенный XQuery и языки изменения данных обеспечивают богатую поддержку управления данными XML. Система типов XQuery соответствует типам схем XML у W3C. Большинство типов SQL совместимы с системой типов XQuery (например, десятичный тип). Несколько типов (например, xs:duration) хранятся во внутреннем формате и они соответственно интерпретируются, чтобы быть совместимыми с системой типов XQuery. На фазе компиляции происходит проверка правильности статического типа выражений XQuery и команд модификации и используются схемы XML для ссылки на типы в случае типизированных данных XML. Ошибки статического типа возникают, если выражение не срабатывает во время работы из-за нарушения типа. Индексирование XML При выполнении запроса каждый экземпляр XML обрабатывается во время работы; это может являться достаточно затратным, если значение XML имеет больший размер или когда запрос возращает большое количество строк из таблицы. Для ускорения запросов создан механизм индексирования столбцов XML. Сбалансированные деревья интенсивно используются для индексирования реляционных данных. Первичный индекс XML по столбцам XML создает индекс со сбалансированным деревом по всем тэгам, значениям и путям экземпляров XML в столбце. Это обеспечивает эффективную оценку запросов данных XML и сборку результата XML из сбалансированного дерева, сохраняя порядок документа и его структуру. Вторичные индексы XML могут быть созданы по столбцу XML для ускорения различных классов типичных запросов: индекс PATH для основанных на пути запросов, индекс PROPERTY для сценариев свойств и индекс VALUE для основанных на значениях запросов. Обработка схем XML Столбцы, переменные и параметры XML могут быть типизированы в соответствии с набором схем XML, которые могут быть связаны (например, используя <xs:import>) или не связаны друг с другом. Каждый типизированный экземпляр XML устанавливает пространство имен из набора схем XML, относящихся к нему. Движок базы данных проверяет экземпляр в соответствии со схемой XML во время изменения данных. Информация схемы XML используется при хранении и оптимизации запросов. Типизированные экземпляры XML содержат типизированные значения во внутреннем, двоичном представлении, как и в индексах XML. Это обеспечивает эффективную обработку типизированных данных XML. Интеграция реляционных данных и данных XML Пользователи могут хранить и реляционные данные, и данные XML в одной и той же базе данных. Т.е. движок базы данных знает, как работать с моделью данных XML в добавление к работе с моделью реляционных данных. Реляционные данные и приложения SQL продолжают работать правильно при их обновлении до SQL Server 2005. Данные XML, находящиеся в файлах и в столбцах text или image, могут быть перемещены в столбцы типа XML на сервере. Столбец XML может быть проиндексирован, запрошен и изменен с использованием методов типа данных XML. База данных улучшает существующую реляционную инфраструктуру и компоненты движка, такие, как движок хранения и обработчик запросов для обработки XML. Например, индексы XML создают сбалансированные деревья, и можно видеть планы выполнения запросов. Встроенная в реляционную структуру, такая функциональность управления данными, как резервное копирование/восстановление и репликация, доступна и для данных XML. Новые возможности управления данными, такие, как зеркалирование базы данных и снапшотный уровень изоляции, также работают с типом данных XML. Структурированные данные должны храниться в таблицах и реляционных столбцах. Тип данных XML - это подходящий выбор для частично структурированных данных и данных с разметкой XML, когда приложение должно выполнять запросы по этим данным и их изменение. Улучшения в FOR XML и OpenXML Существующая функциональность FOR XML была улучшена несколькими путями. Теперь можно работать с экземплярами данных XML и с другими новыми типами SQL, например, с [n]varchar(max). Новая директива TYPE генерирует экземпляр типа данных XML, который может быть присвоен столбцу, переменной или параметру XML, или запрошен с использованием методов типа данных XML. Это позволяет вызывать команды SELECT ... FOR XML TYPE одну из другой. Режим PATH позволяет пользователям определять путь в дереве XML, где должно находиться значение столбца, что вместе с с вышеупомянутой вложенностью команд является более удобным, чем FOR XML EXPLICIT. Директива XSINIL, использующаяся вместе с ELEMENTS, конвертирует NULL в элемент с атрибутом xsi:nil="true". Также, новая директива ROOT позволяет определить корневой узел во всех режимах FOR XML. Новая директива XMLSCHEMA генерирует внутреннюю схему XSD. Функциональные улучшения OpenXML состоят из использования типа данных XML в sp_preparedocument и генерирования столбцов с типом XML и другими новыми типами SQL в результирующем наборе данных. Клиентский доступ к типу данных XML Клиенты могут получать доступ к данным XML на сервере несколькими путями. Встроенный клиентский доступ к SQL, использующий ODBC и OLE DB, передает тип данных XML как строку Unicode. OLE DB также обеспечивает доступ ISequentialStream к данным XML для передачи данных Unicode. Управляемый доступ с помощью ADO.NET в .NET Framework V2.0 передает данные XML как новый класс SqlXml. Он поддерживает метод CreateReader(), который возвращает экземпляр XmlReader для чтения возвращенного XML. Также DataSet может загружать экземпляры типа XML в столбцы на среднем уровне, которые могут быть отредактированы, как XML документ, и сохранены в SQL Server. Оба этих метода позволяют запросам SQL быть выполненными на сервере для получения столбцов XML для дальнейшей работы с ними на среднем уровне. SOAP, который имеет прямой доступ к HTTP в SQL Server 2005, может быть использован для выполнения запросов, получения и изменения данных XML. И встроенные, и управляемые клиентские технологии обеспечивают новые интерфейсы для получения набора схем XML, которые определяют тип столбца XML. Поддержка XML при помощи XQuery на стороне клиента В дополнение к использованию ADO.NET для получения таблиц в реляционный DataSet, Вы можете напрямую загружать реляционные данные в документ XML на среднем уровне, используя класс XQueryCommand. Этот класс обеспечивает обработку XQuery на среднем уровне с возможностью встраивания команд T-SQL как части языка XQuery. В этом случае вы можете запрашивать как локальные файлы XML, так и получать данные из SQL Server напрямую из таблицы или через хранимую процедуру базы данных, и загружать их в документ XML на среднем уровне. Это значительно упрощает запросы в SQL Server, выдает результат запроса в специфическом формате XML, и передает его бизнес-партнеру без необходимости загрузки данных в DataSet для выполнения изменений над данными. ПРОДОЛЖЕНИЕ СЛЕДУЕТ Статьи на русском языке
Row-Level Security в РСУБД
The Microsoft Security Debate, Part One Самые популярные темы недели
Новые упражнения на http://sql.ipps.ru
Вопросы кодировки: NTEXT -> windows-1251 SQL для "чайников". 5-е издание
|
#225<< #226 |
Вопросы, предложения, коментарии, замечания, критику и т.п. оставляйте Виталию Степаненко и Александру Гладченко в форуме: Обсуждение рассылки
|
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.winsoft.sqlhelpyouself |
Отписаться |
В избранное | ||