- •XML в MS SQL Server 2000 и технологиях доступа к
- •Зачем XML нужен в СУБД?
- •Немного истории
- •Немного истории
- •Появление XML в SQL
- •SELECT ... FOR XML
- •Поддержка XML в SQL
- •SQLXML Managed Classes
- •FOR XML на клиенте Посмотреть код
- •Другие способы получения XML на клиенте. ADO.Net
- •Класс XmlDataDocument
- •Обратное тоже верно
- •Прямые XPath-запросы к объектам SQL Server
- •Аннотированные схемы
- •XPath-запросы через аннотированные схемы
- •Шаблоны
- •Шаблоны
- •Кэширование шаблонов
- •XML-обновление на
- •XML-запросы на
- •XML BulkLoad
- •А как насчет доступа по
- •Организация взаимодействия с SQL
- •То же на картинке – схема публикации БД
- •Как задействовать ISAPI- фильтр?
- •Как упаковать запрос
- •Что такое Web-сервис с точки зрения СОМ-
- •SQL Server как Web-сервис
- •SOAP и Web Services
- •XML в продуктах и
- •XQuery
- •Выводы:
- •Вопросы?
XQuery
Язык запросов XML, приходит на смену XPath
Отличительные черты – явное конструирование элементов, возможность декомпозиции, более пригоден для работы оптимизатора
Планируется ввести в SQL Server 2000 в SQLXML 4.0
Полная поддержка – в MS SQL Server «Yukon»
FOR $b IN //book WHERE
$b/publisher = “Morgan Kaufmann” AND $b/year = “1998”
RETURN $b/title
FOR $p IN //procedure[1],
$e IN //* AFTER ($p//incision)[1]
BEFORE ($p//incision)[2]
RETURN $e
FOR $d IN /dept
WHERE EVERY $e IN $d/emp SATISFIES count($e/skill) >= 2
UPDATE $d/skill_audit WITH <skill_audit> "OK" </skill_audit>31
Выводы:
XML в SQL Server 2000
XML |
|
|
BCP/SQL |
||
XMLBulkload |
|||||
|
|
|
|||
|
|
|
|
SQL update/ |
|
|
|
|
|
||
XML |
|
Updategrams |
insert/ delete |
||
|
|
||||
|
|
|
|
|
Annotated XSD |
|
|
SQL |
|
|
|
Server |
|
|
Mapping Schemas |
|
SQL |
|
|
|
|
|
|
Query |
XQuery |
FOR XML |
Queries |
Rowsets |
|
|
|
||
|
|
|
|
|
|
|
|
FOR XML |
|
SQL |
|
Query Processor |
|
|
|||
XML |
|
|
|
Queries |
|
Queries |
|
XPath |
|
FOR XML |
|||
|
|
|
||||
|
|
|
|
|
Queries |
FOR XML |
|
|
|
|
|
||
|
|
|
|
|
|
32
Вопросы?
33
34