XML-СУБД Sedna технические особенности и варианты использования

Различные стратегии выполнения XPath-запросов


Использование описывающей схемы в качестве индексной структуры позволяет избежать обхода дерева и ускорить выполнение запроса. Например, рассмотрим XPath -запрос // title к XML -документу, представленному на . Мы называем подобные запросы структурными путевыми запросами , потому что в них используется только информация о структуре XML -документа, и для выполнения запроса не требуется производить какие-либо проверки, связанные с данными. Для выполнения структурных запросов идеально подходит описывающая схема.

Выполнение запроса начнется с обхода описывающей схемы (см. ). В результате обхода будут получены два узла схемы, содержащие указатели на списки блоков с искомыми данными. Если просто пройти сначала по первому списку блоков, а затем – по второму, можно нарушить порядок документа. Поэтому до выдачи результата требуется выполнение операции слияния. Операция слияния получает на входе несколько списков блоков и производит список дескрипторов узлов, упорядоченный в соответствии с порядком документа. Для восстановления порядка документа в операции слияния используются метки нумерующей схемы.

В качестве еще одного примера, рассмотрим возможные стратегии выполнения запроса / library / book [ issue / year =2004]/ title . Как и в случае предыдущего запроса, можно выбрать элементы / library / book с использованием описывающей схемы, а затем применить предикат и выполнить оставшуюся часть запроса с использованием указателей на данные. Но более эффективным является следующий алгоритм. Сначала вычисляется структурная часть запроса: / library / book / issue / year / text () . Затем применяется предикат (выбираются только те узлы, для которых text =2004 ). И, наконец, к результату этого шага применяется запрос ../../../ title .



Содержание раздела