Когда выполнены запросы, время выполнено в DTD подход и в Edge подход меньше чем в тип XML и в XQuery. Поскольку в DTD и Edge подходы, когда данные в таблицах, тогда в СУБД имеет поддержка очень хорошо для реляционных баз. А для типа XML и XQuery – Это новые возможности, которые применены в СУБД, поэтому их поддержка может не лучше чем, реляционных баз.
Edge подход – это самый простой метод хранения XML в реляционных базах. Но при выполнении запросов, нам надо дать сложнее запросы чем, в DTD подходе. И время выполнения запросов тоже более чем, в DTD подходе. Например: В запросе Q7, если мы хотим найти имя, улицы, город, страна людей, у которых имеют education =”College”. Начала нам надо найти ‘source’ в Edge таблице имеет ‘target’ = “College”,потом мы найдем ‘target’ соотношение ‘source’, который мы нашли. Если значение ‘target’ является порядковым (ordinal), тогда мы повторяем, когда target не является порядковым. Но в DTD подходе, мы только делаем ссылку двух таблиц- People_person и Profile. Поэтому время выполнения запросов DTD похода меньше чем, Edge подхода.
И в SQL Server в тип XML, который применит Xpath 1.0, а XQuery, который применит Xpath 2.0, поэтому время выполнения запросов в XQuery меньше чем, в тип XML. Кроме этого, когда мы дадим запросы в XQuery проще, чем в тип XML. Но в Oracle не так, время выполнения запросов тип XML подход меньше чем, времени выполнения запросов XQuery подход. В Oracle 10.0.2g, XQuery поддержит ‘let’ выражение, а в SQL Server 2005 XQuery не поддержит ‘let’ выражение.
Итог: Как мы видим, время погрузки данных DTD и Edge подходов меньше чем много раз (более чем 2000 раз) типа XML и XQuery подходов, но время выполнения запросов у них меньше чем, типа XML и XQuery. Если XML данных имеет элемент далеко от корня более 3 степени, тогда мы лучше используем DTD подход, но если меньше 2 степени, тогда мы лучше используем Edge подход.
3.2 Сравнение хранения XML в разных системах: SQL Server и Oracle
с 110 Mb XML дата (время s).
110 Mb | 11Mb | |||
Oracle | SQL Server | Oracle | SQL Server | |
Q1 | 2107 | 8 | 300 | 2 |
Q2 | 2018 | 14 | 250 | 3 |
Q3 | 2201 | 2500 | 312 | 360 |
Q5 | 1767 | 25 | 180 | 4 |
Q6 | 3124 | 5 | 400 | 1 |
Q7 | 10992 | 126 | 1200 | 17 |
Q8 | 1713 | 2500 | 175 | 370 |
Q11 | 1636 | 2000 | 150 | 290 |
Q13 | 4395 | 20 | 437 | 6 |
Q17 | 1666 | 500 | 156 | 15 |
В таблице результата мы видим так, для запросов выбора из данных, время запроса в SQL Server меньше чем в Oracle много раз. В SQL Server, для запросов конкретного значения, время выполнения меньше чем в Oracle много раз. Например, запросы Q1,Q2,Q7,Q5,Q13,Q17.Однако, если запросы имеют сравнения значения между тэгами, время выполнения запросов прямо пропорциональны количеству тэгов, поэтому в SQL Server время выполнения запросов больше чем в Oracle. Например, запросы Q3,Q8,Q11.Мы получим это результат потому-то:
- В Oracle: хранение XML документов в CLOB XMLTypes приводит к дорогой избыточной обработке при запросе XML конвента такими функциями, как XMLType.Extract() или XMLType.ExistsNode(), поскольку эти операции требуют во время обработки построения в оперативной памяти дерева XML DOM и выполнения функциональных Xpath оценок.
Поэтому, как правило, следует избегать использования XMLType функций при выполнении незначительных XML обновлений или запросов с задействованием Xpath при действиях с CLOB XMLTypes.
- В SQL Server: Методы типа данных XML поддерживают XQuery, который является стандартом языка W3C и включает язык навигации XPath 2.0.
Команда SQL обрабатывается анализатором SQL. Когда он обнаруживает выражение XQuery, управление передается компилятору XQuery, который затем компилирует выражение XQuery. Это порождает дерево запросов.
Общее дерево запросов выполняет оптимизацию запросов и строит физический план запросов, основанный на оценке затрат
4.Заключение
Из результатов раздела Эксперимента:
- Если мы только храним данных и выполним простые запросы, тогда мы можем использовать тип XML и XQuery подходы, потому что память хранения данных из одного файла этих подходов меньше чем, DTD и Edge подходов, но время выполнения не очень различные.
- Если мы делаем с много запросов и сложные запросы, мы можем использовать DTD или Edge подход, поскольку время выполнения запросов DTD и Edge подходов меньше чем более 10 раз, XQuery подхода и меньше чем 1000 раз тип XML подхода, например: запросы Q4, Q6, Q7, Q8, Q9 в разделе 3.1.3. Хотя время загрузки данных этих подходов более чем много раз двух остальных подходов, но если мы загрузим данные, когда мы начала создать XML данных, тогда проблема времени загрузки данных не важно.
- Если мы делаем с данных, у которых есть элемент далеко от корня более 3 элемента, мы лучше используем DTD подход. Поскольку из результатов раздела 3.1.3 мы видим что, когда запросы с элементами, которые имеют позиции далеко от корня более 3 степени, то время выполнения запросов Edge подхода больше чем , DTD подхода. Например: Из раздела 3.1.3, вопросы Q5, Q6, Q7, Q9,Q10, которые выполнены запросами с имеющими более 3 степени от корня элементами, тогда время выполнения запросов DTD подхода больше чем, времени выполнения запросов Edge подхода.
- Когда я делала с Oracle и SQL Server, я видела так: для подхода тип XML данных, время выполнения конкретных запросов в SQL Server меньше чем в Oracle. Например: из результатов раздела 3.2, запросы Q1, Q2, Q5,Q6,Q7,Q13,Q17, которые выполнены с конкретных значений, тогда время выполнения запросов в SQL Server меньше чем много раз в Oracle. Но если мы делали с запросами, у которых есть сравнение значения между элементами, то время выполнения запросов в Oracle меньше чем в SQL Server. Например: запросы Q3,Q8,Q11 из раздела 3.2, время выполнения запросов в Oracle меньше чем в SQL Server.
- В этом дипломе, я только смотрела некоторые методы хранения XML данных в реляционных базах и в системах только в Oracle и в SQL Server. Поэтому я буду развивать диплом так: Буду смотреть ещё не которые методы, особенно применяющие xml схемы (xsd) методы, которые близки похоже методы DTD, но время меньше чем. Кроме этого, смотреть ещё в других системах (DB2…). Для DTD подход и Edge подход, я не смотрела в Oracle, потому что время загрузки данных из XML в реляционных базах в этой системе очень долго и у меня не достаточно время, поэтому развития этого диплома может ещё рассмотреть в Oracle для DTD и Edge подходов. А размер данных, я только смотрела 110Mb и 10Mb, развития этого направления будет так: рассмотрим разные размеры и одинаковые размеры, но различные количества элементов (узлов).
- И последний, я хочу благодарить профессору Б.А.Новикову, который поможет мной много в процессе выполнения диплома. Он руководил мной самоотверженно и проверил ошибки в дипломе, и я знаю, что руководил иностранным студентом труднее, чем русским студентом. И мне тоже спасибо всем преподавателям математико-механического факультета Санкт-петербургского Государственного Университета, которые учили меня и помогли мне много, когда я училась в России.
Список литературы
[1] Extensible Markup Language
http://www.w3c.org/XML/Overview.html
[2] Хабибуллин И. Ш. - Самоучитель XML.
СПб.: БХВ - Петербург, 2003.- 336с.
[3] K.Williams, M. Brundage, P. Dengler, J. Gabriel, A. Hoskinson, M. Kay, Th. Maxwell, M. Ochoa, J. Papa, M. Vanmane.
Professional XML Databases
Wrox Press Ltd.
[4] A.B. Chaudhri, A. Rashid, R. Zicari.
XML Data Management – Native XML and XML-Enabled Database Systems
[5] XQuery 1.0: An XML Query Language
http://www.w3c.org/TR/xquery.
[6] Michael Brundage.
XQuery: The XML Query Language.
Publisher: Addison Wesley. ISBN: 0-321-16581-0. Pages: 544.
[7] A. Schimidt, F. Waas, M. Kersten, M. J. Carey, I. Manolesco, R. Busse.
XMark : A Benchmark for XML Data Management.
Proceedings of the 28th VLDB Conference, Hong Kong, China, 2002.
[8] XMark – The XML benchmark project.
http://monetdb.cwi.n/xml/index.html.
[9] Shankar Pal, Mark Fussell, and Irwin Dolobowsky - Microsoft Corporation.
XML Support in Microsoft SQL Server 2005.
http://msdn2.microsoft.com/en-us/library/ms345117.aspx
[10] Bill Hamilton.
Programming SQL Server 2005.
Publisher: O’Reilly. Print ISBN-10: 0-596-00479-6.
Print ISBN-13: 978-0-59-600479-8.Pages:586.
[11] Using XQuery with Oracle XML DB
Oracle® XML DB Developer's Guide 10g Release 2 (10.2),
Part Number B14259-02
[12] Using Oracle XML DB.
Oracle® XML DB Developer's Guide 10g Release 1 (10.1),
Part Number B10790-01
[13] Марк Скандина, Бен Чанг, Джайню Ванг
Хранение XML данных (Storing XML Data)
Глава 9 из книги "Oracle Database 10g XML & SQL: Design, Build, & Manage XML Applications in Java, C, C++, & PL/SQL" by Mark Scardina, Ben Chang, Jinyu Wang , изд. Osborne, ISBN: 0072229527, 2004, 600 стр.
[14] Daniela Florescu, Donald Kossmann
A Performance Evaluation of Alternative Mapping Schemes for Storing XML Data in a Relational Database
Rapport de Recherche No. 3680 INRIA, Rocquencourt, France, May 1999.
[15] Jayavel Shanmugasundaram, Kristin Tufte, Gang He, Chun Zhang, David DeWitt, Jeffrey Naughton.
Relational Databases for Querying XML Documents : Limitations and Opportunities.
Proceedings of the 25th VLDB Conference, Edinburgh, Scotland, 1999.
[16] Feng Tian, David J.DeWitt, Jianjun Chen, Chun Zhang.
The Design and Performance Evauation of Alternative XML Storage Strategies.
[17] Daniela Florescu, Donald Kossmann.
Storing and Querying XML Data using an RDMBS.
Bulletin of the IEEE Computer Society Technical Committee on Data Engineering.