Bridging Relational Technology and XML Jayavel Shanmugasundaram University of Wisconsin & IBM Almaden Research Center.

Slides:



Advertisements
Similar presentations
Chapter 10: Designing Databases
Advertisements

IMPLEMENTATION OF INFORMATION RETRIEVAL SYSTEMS VIA RDBMS.
1 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
By Daniela Floresu Donald Kossmann
Introduction to Structured Query Language (SQL)
CMPT 354, Simon Fraser University, Fall 2008, Martin Ester 52 Database Systems I Relational Algebra.
Fundamentals, Design, and Implementation, 9/e Chapter 12 ODBC, OLE DB, ADO, and ASP.
CS263 Lecture 19 Query Optimisation.  Motivation for Query Optimisation  Phases of Query Processing  Query Trees  RA Transformation Rules  Heuristic.
Introduction to Structured Query Language (SQL)
XML Views El Hazoui Ilias Supervised by: Dr. Haddouti Advanced XML data management.
1 C. Shahabi Application Programming for Relational Databases Cyrus Shahabi Computer Science Department University of Southern California
Introduction XML: an emerging standard for exchanging data on the WWW. Relational database: most wildly used DBMS. Goal: how to map the relational data.
2005rel-xml-i1 Relational to XML Transformations  Background & Issues  Preliminaries  Execution strategies  The SilkRoute System.
Database Systems and XML David Wu CS 632 April 23, 2001.
Chapter 7 Advanced SQL Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel.
Introduction to Structured Query Language (SQL)
Chapter 1 Program Design
Efficiently Publishing Relational Data as XML Documents Jayavel Shanmugasundaram University of Wisconsin-Madison/ IBM Almaden Research Center Joint work.
Phil Brewster  One of the first steps – identify the proper data types  Decide how data (in columns) should be stored and used.
Query Processing Presented by Aung S. Win.
8/17/20151 Querying XML Database Using Relational Database System Rucha Patel MS CS (Spring 2008) Advanced Database Systems CSc 8712 Instructor : Dr. Yingshu.
XML, distributed databases, and OLAP/warehousing The semantic web and a lot more.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
ระบบฐานข้อมูลขั้นสูง (Advanced Database Systems) Lecturer AJ. Suwan Janin Phone:
XML-to-Relational Schema Mapping Algorithm ODTDMap Speaker: Artem Chebotko* Wayne State University Joint work with Mustafa Atay,
CSC2012 Database Technology & CSC2513 Database Systems.
Introduction to Databases Chapter 7: Data Access and Manipulation.
The Relational Model. Review Why use a DBMS? OS provides RAM and disk.
Context Tailoring the DBMS –To support particular applications Beyond alphanumerical data Beyond retrieve + process –To support particular hardware New.
Chapter 7 Advanced SQL Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel.
Chapter 27 The World Wide Web and XML. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.27-2 Topics in this Chapter The Web and the Internet.
Query Optimization (CB Chapter ) CPSC 356 Database Ellen Walker Hiram College (Includes figures from Database Systems: An Application Oriented.
1 CS 430 Database Theory Winter 2005 Lecture 17: Objects, XML, and DBMSs.
5/24/01 Leveraging SQL Server 2000 in ColdFusion Applications December 9, 2003 Chris Lomvardias SRA International
Object Persistence Design Chapter 13. Key Definitions Object persistence involves the selection of a storage format and optimization for performance.
7 1 Chapter 7 Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Publishing Relational Data in XML David McWherter.
Component 4: Introduction to Information and Computer Science Unit 6: Databases and SQL Lecture 3 This material was developed by Oregon Health & Science.
Component 4/Unit 6c Topic III Structured Query Language Background information What can SQL do? How is SQL executed? SQL statement characteristics What.
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
1 Relational Algebra & Calculus Chapter 4, Part A (Relational Algebra)
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 8 Advanced SQL.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
Lecture A/18-849B/95-811A/19-729A Internet-Scale Sensor Systems: Design and Policy Lecture 24 – Part 2 XML Query Processing Phil Gibbons April.
Efficient RDF Storage and Retrieval in Jena2 Written by: Kevin Wilkinson, Craig Sayers, Harumi Kuno, Dave Reynolds Presented by: Umer Fareed 파리드.
Chapter 27 The World Wide Web and XML. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.27-2 Topics in this Chapter The Web and the Internet.
Efficiently Publishing Relational Data as XML Documents Jayavel Shanmugasundaram et al. Proceedings -VLDB 2000, Cairo.
Chapter 4: SQL Complex Queries Complex Queries Views Views Modification of the Database Modification of the Database Joined Relations Joined Relations.
Basics of JDBC Session 14.
CPT-S Advanced Databases 11 Yinghui Wu EME 49.
Query Execution. Where are we? File organizations: sorted, hashed, heaps. Indexes: hash index, B+-tree Indexes can be clustered or not. Data can be stored.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Module 3: Using XML. Overview Retrieving XML by Using FOR XML Shredding XML by Using OPENXML Introducing XQuery Using the xml Data Type.
Chapter 13: Query Processing
Database Systems, 8 th Edition SQL Performance Tuning Evaluated from client perspective –Most current relational DBMSs perform automatic query optimization.
Retele de senzori Curs 2 - 1st edition UNIVERSITATEA „ TRANSILVANIA ” DIN BRAŞOV FACULTATEA DE INGINERIE ELECTRICĂ ŞI ŞTIINŢA CALCULATOARELOR.
Chapter 3 The Relational Model. Why Study the Relational Model? Most widely used model. Vendors: IBM, Informix, Microsoft, Oracle, Sybase, etc. “Legacy.
Efficiently Publishing Relational Data as XML Documents IBM Almaden Research Center Eugene Shekita Rimon Barr Michael Carey Bruce Lindsay Hamid Pirahesh.
Partial Query-Evaluation in Internet Query Engines Jayavel Shanmugasundaram Kristin Tufte David DeWitt David Maier Jeffrey Naughton University of Wisconsin.
Overview of XML Data Management Research at Cornell Jayavel Shanmugasundaram Cornell University.
XPERANTO: A Middleware for Publishing Object-Relational Data as XML Documents Michael Carey Daniela Florescu Zachary Ives Ying Lu Jayavel Shanmugasundaram.
Bridging Relational Technology and XML Jayavel Shanmugasundaram Cornell University (Joint work with Catalina Fan, John Funderburk, Jerry Kiernan, Eugene.
Bridging Relational Technology and XML Jayavel Shanmugasundaram University of Wisconsin & IBM Almaden Research Center.
Efficiently Publishing Relational Data as XML Documents
Database Systems: Design, Implementation, and Management Tenth Edition
Chapter 8 Advanced SQL.
Database Systems: Design, Implementation, and Management Tenth Edition
Wednesday, May 22, 2002 XML Publishing, Storage
Presentation transcript:

Bridging Relational Technology and XML Jayavel Shanmugasundaram University of Wisconsin & IBM Almaden Research Center

Business to Business Interactions Tires R Us Cars R Us Order Fulfillment Application Purchasing Application Internet eXtensible Markup Language (XML) Relational Database System

Shift in Application Developers’ Conceptual Data Model XML Relations Code to convert XML data to relational data Relational data manipulation Code to convert relational data to XML data XML application development

Are XML Database Systems the Answer? Tires R Us Cars R Us XML Database System Order Fulfillment Application XML Database System Purchasing Application Internet eXtensible Markup Language (XML)

Why use Relational Database Systems? Highly reliable, scalable, optimized for performance, advanced functionality –Result of 30+ years of Research & Development –XML database systems are not “industrial strength” … and not expected to be in the foreseeable future Existing data and applications –XML applications have to inter-operate with existing relational data and applications –Not enough incentive to move all existing business applications to XML database systems Remember object-oriented database systems?

A Solution Tires R Us Cars R Us Relational Database System Order Fulfillment Application Purchasing Application Internet eXtensible Markup Language (XML) XML Translation Layer Relational Database System

XML Translation Layer (Contributions) Store and query XML documents –Harnesses relational database technology for this purpose Publish existing relational data as XML documents –Allows relational data to be viewed in XML terms

Bridging Relational Technology and XML XML Relations Code to convert XML data to relational data Relational data manipulation Code to convert relational data to XML data XML application development XML Translation Layer

Outline Motivation & High-level Solution Background (Relations, XML) Storing and Querying XML Documents Publishing Relational Data as XML Documents Conclusion

Relational Schema and Data PurchaseOrder IdCustomer 200I YearMonth Cars R Us10June I Day Bikes R UsnullJuly1999 Item Name 200I Cost Firestone Tire I Quantity Goodyear Tire Pid 300I Trek Tire20 300ISchwinn Tire100 Payment Installment 40% Percentage Pid 300I 100% 200I 60% I

Self-describing tags XML Document 10 June % 60%

XML Document 10 June % 60% Nested structure Self-describing tags

XML Document 10 June % 60% Nested structure Self-describing tags Nested sets

XML Document 10 June % 60% Nested structure Self-describing tags Nested sets Order

XML Schema Date (Item)* (Payment)* PurchaseOrder Date Day? Month Year Day {integer} Month {string} Year {integer} Item Quantity … and so on

XML Schema (contd.) Date? (Item | Payment)* PurchaseOrder (Date | Payment*) (Item (Item Item)* Payment)* PurchaseOrder Date Item (PurchaseOrder)* Payment PurchaseOrder

XML Query Find all the items bought by “Cars R Us” in 1999 For $po in /PurchaseOrder Where = “Cars R Us” and $po/date/year = 1999 Return $po/Item

XML Query (contd.) //Item /(Item/(Item/Payment)*/(Payment | Item))*/Date //Item[5] //Item Before //Payment

Outline Motivation & High-level Solution Background (Relations, XML) Storing and Querying XML Documents Publishing Relational Data as XML Documents Conclusion

Storing and Querying XML Documents [Shanmugasundaram et. al., VLDB’99] Relational Database System XML Translation Layer XML Schema Relational Schema Translation Information XML Documents Tuples XML Query SQL Query Relational Result XML Result

Outline Motivation & High-level Solution Background (Relations, XML) Storing and Querying XML Documents –Relational Schema Design and XML Storage –Query Mapping and Result Construction Publishing Relational Data as XML Documents Conclusion

XML Schema (Date | (Payment)*) (Item (Item Item)* Payment)* PurchaseOrder

Desired Properties of Generated Relational Schema R All XML documents conforming to XML schema should be “mappable” to tuples in R All queries over XML documents should be “mappable” to SQL queries over R Not Required: Ability to re-generate XML schema from R

Simplifying XML Schemas XML schemas can be “simplified” for translation purposes All without undermining storage and query functionality! Date? (Item)* (Payment)* PurchaseOrder (Date | (Payment)*) (Item (Item Item)* Payment)* PurchaseOrder

Why is Simplification Possible? Structure in XML schemas can be captured: –Partly in relational schema –Partly as data values Date? (Item)* (Payment)* PurchaseOrder Order field to capture order among siblings Sufficient to answer ordered XML queries –PurchaseOrder/Item[5] –PurchaseOrder/Item AFTER PurchaseOrder/Payment Sufficient to reconstruct XML document

Simplification Desiderata Simplify structure, but preserve differences that matter in relational model –Single occurrence (attribute) –Zero or one occurrences (nullable attribute) –Zero or more occurrences (relation) (Date | (Payment)*) (Item (Item Item)* Payment)* PurchaseOrder Date? (Item)* (Payment)* PurchaseOrder

Translation Normal Form An XML schema production is either of the form: a 1 … a p a p+1 ? … a q ? a q+1 *… a r * P … or of the form: {type} P where a i  a j

Example Simplification Rules (e 1 | e 2 )e 1 ? e 2 ? (Date | (Payment)*) (Item (Item Item)* Payment)* Date? (Item)*? (Item (Item Item)* Payment)* e*?e* Date? (Payment)*? (Item (Item Item)* Payment)* Date? (Item)* (Item (Item Item)* Payment)*

Simplified XML Schema Date (Item)* (Payment)* PurchaseOrder Date Day? Month Year Day {integer} Month {string} Year {integer} Item Quantity … and so on

Relational Schema Generation PurchaseOrder (id, customer) Date DayMonthYear Item (name, cost) Quantity Payment 1 ?11 ** 1 Minimize: Number of joins for path expressions Satisfy: Fourth normal form

Generated Relational Schema and Shredded XML Document PurchaseOrder IdCustomer 200I YearMonth Cars R Us10June1999 Day Item Order Name 200I Cost Firestone Tire I Quantity Goodyear Tire Pid 1 3 Payment Order 40% Value Pid 200I 60% I

Recursive XML Schema PurchaseOrder (id, customer) Item (name) Quantity * 1 * PurchaseOrder IdCustomer 200ICars R Us Item Order Name 200IFirestone Tire I Quantity Goodyear Tire200 Pid 1 2 Id 5 6 Pid null Order null 5900IUs Again1

Relational Schema Generation and XML Document Shredding (Completeness and Optimality) Any XML Schema X can be mapped to a relational schema R, and … Any XML document XD conforming to X can be converted to tuples in R Further, XD can be recovered from the tuples in R Also minimizes the number of joins for path expressions (given fourth normal form)

Outline Motivation & High-level Solution Background (Relations, XML) Storing and Querying XML Documents –Relational Schema Design and XML Storage –Query Mapping and Result Construction Publishing Relational Data as XML Documents Conclusion

XML Query Find all the items bought by “Cars R Us” in 1999 For $po in /PurchaseOrder Where = “Cars R Us” and $po/date/year = 1999 Return $po/Item

Path Expression Automata (Moore Machines) /PurchaseOrder/Item PurchaseOrder Item //Item Item #

XML Schema Automaton (Mealy Machine) PurchaseOrder (id, customer) Date DayMonthYear Item (name, cost) Quantity Payment

Intersected Automaton PurchaseOrder (customer) Date Year Item (name, cost) Quantity = “Cars R Us” = 1999

Generated SQL Query Select i.name, i.cost, i.quantity From PurchaseOrder p, Item i Where p.customer = “Cars R Us” and p.year = 1999 and p.id = i.pid Predicates Join condition

Recursive XML Query PurchaseOrder (id, customer) Item (name) Quantity Find all items (directly or indirectly) under a “Cars R Us” purchase order For $po in /PurchaseOrder Where = “Cars R Us” Return $po//Item

Recursive Automata Intersection PurchaseOrder (customer)PurchaseOrder (id, customer) Item (name) Quantity PurchaseOrder = “Cars R Us” Item (name) Quantity

Recursive SQL Generation PurchaseOrder (customer) PurchaseOrder = “Cars R Us” Item (name) Quantity ResultItems (id, name, quantity) as ( Select it.id, it.name, it.quantity From PurchaseOrder po, Item it Where po.customer = “Cars R Us” and po.id = it.pid ) Union all Select it.id, it.name, it.quantity From ResultItems rit, PurchaseOrder po, Item it Where rit.id = po.pid and po.id = it.pid

SQL Generation for Path Expressions (Completeness) (Almost) all path expressions can be translated to SQL SQL does not support seamless querying across data and meta-data (schema) –SQL based on first-order logic (with least fix- point recursion) Meta-data query capability provided in the XML translation layer –Implemented and optimized using a higher-order operator

Constructing XML Results (“Firestone Tire”, , 50) (“Goodyear Tire”, , 200)

Complex XML Construction PurchaseOrder (id, customer) Date DayMonthYear Item (name, cost) Quantity Payment = “Cars R Us” = 1999

Outline Motivation & High-level Solution Background (Relations, XML) Storing and Querying XML Documents Publishing Relational Data as XML Documents Conclusion

Relational Schema and Data PurchaseOrder IdCustomer 200I YearMonth Cars R Us10June1999 Day Item Name 200I Cost Firestone Tire I Quantity Goodyear Tire Pid Payment Installment 40% Percentage Pid 200I 60% I

XML Document 10 June % 60%

Naïve Approach Issue many SQL queries that mirror the structure of the XML document to be constructed Tag nested structures as they are produced DBMS Engine PurchaseOrder Item Payment Problem 1: Too many SQL queries (200I, “Cars R Us”, 10, June, 1999) (40%) (60%) (“Firestone Tire”, , 50) (“Goodyear Tire”, , 200) Problem 2: Fixed (nested loop) join strategy

Relations to XML: Issues [Shanmugasundaram et. al., VLDB’00] Two main differences: –Ordered nested structures –Self-describing tags Space of alternatives: Late TaggingEarly Tagging Late Structuring Early Structuring Inside Engine Outside Engine

Naïve (Stored Procedure) Approach Issue queries for sub-structures and tag them Could be a Stored Procedure to maximize performance DBMS Engine PurchaseOrder Item Payment Problem 1: Too many SQL queries (200I, “Cars R Us”, 10, June, 1999) (40%) (60%) (“Firestone Tire”, , 50) (“Goodyear Tire”, , 200) Problem 2: Fixed (nested loop) join strategy Early Tagging, Early Structuring, Outside Engine

CLOB Approach Problem: CLOBs during query execution (storage, size estimation, copying) Early Tagging, Early Structuring, Inside Engine Push down computation inside engine Use extensibility features of SQL –Scalar functions for tagging –Aggregate functions for creating nested structures Character Large Objects (CLOBs) to hold intermediate tagged results

Late Tagging, Late Structuring XML document content produced without tags or structure (in arbitrary order) Tagger adds tags and structure as final step Relational Query Processing Unstructured content Tagging Result XML Document

Outer Union Approach PurchaseOrder ItemPayment (200I, 2, 60%) (200I, 1, 40%) (200I, “Firestone Tire”, , 50) (200I, “Goodyear Tire”, , 200) (200I, “Cars R Us”, 10, June, 1999) (200I, null, null, null, null, null, null, null, 1, 40%, 2) (200I, “Cars R Us”, 10, June, 1999, null, null, null, null, null, 0) (200I, null, null, null, null, null, null, null, 2, 60%, 2) (200I, null, null, null, null, “Firestone Tire”, , 50, null, null, 1) (200I, null, null, null, null, “Goodyear Tire”, , 200, null, null, 1) Union Problem: Wide tuples (having many columns) Late Tagging, Late Structuring

Hash-based Tagger Outer union results not structured early –In arbitrary order Tagger has to enforce nesting order during tagging –Essentially a nested group-by operation Hash-based approach –Hash on ancestor ids –Group siblings together and tag them Inside/Outside engine tagger Late Tagging, Late Structuring Problem: Requires memory for entire document

Late Tagging, Early Structuring Structured XML document content produced –In document order –“Sorted Outer Union” approach Tagger just adds tags –In constant space –Inside/outside engine Relational Query Processing Structured content Tagging Result XML Document

Sorted Outer Union Approach PurchaseOrder ItemPayment (200I, 2, 60%) (200I, 1, 40%) (200I, “Firestone Tire”, , 50) (200I, “Goodyear Tire”, , 200) (200I, “Cars R Us”, 10, June, 1999) (200I, null, null, null, null, null, null, null, 1, 40%, 2) (200I, “Cars R Us”, 10, June, 1999, null, null, null, null, null, 0) (200I, null, null, null, null, null, null, null, 2, 60%, 2) (200I, null, null, null, null, “Firestone Tire”, , 50, null, null, 1) (200I, null, null, null, null, “Goodyear Tire”, , 200, null, null, 1) Union Sort 123 Late Tagging, Late Structuring

PurchaseOrder ItemPayment (200I, 2, 60%) (200I, 1, 40%) (200I, “Firestone Tire”, , 50) (200I, “Goodyear Tire”, , 200) (200I, “Cars R Us”, 10, June, 1999) (200I, “Cars R Us”, 10, June, 1999, null, null, null, null, null, 0) (200I, null, null, null, null, “Firestone Tire”, , 50, null, null, 1) (200I, null, null, null, null, “Goodyear Tire”, , 200, null, null, 1) (200I, null, null, null, null, null, null, null, 1, 40%, 2) (200I, null, null, null, null, null, null, null, 2, 60%, 2) Union Sort 123 Sorted Outer Union Approach Late Tagging, Late Structuring Problem: Enforces Total Order

Classification of Alternatives Late TaggingEarly Tagging Late Structuring Early Structuring Inside Engine Outside Engine Stored Procedure Inside Engine Outside Engine Sorted Outer Union (Tagging inside) Sorted Outer Union (Tagging outside) Unsorted Outer Union (Tagging inside) Unsorted Outer Union (Tagging outside) Outside Engine CLOB

Performance Evaluation Query Depth Query Fan Out Database Size = 10MB – 100MB 366 MHz Pentium II, 256MB

Where Does Time Go? Database Size = 10MB, Query Fan Out = 2, Query Depth = 2

Effect of Query Depth Database Size = 10MB, Query Fan Out = 2

Memory Considerations Sufficient memory –Unsorted outer union is method of choice –Efficient hash-based tagger Limited memory (large documents) –Sorted outer union is method of choice –Relational sort is highly scalable

XML Document Construction (Completeness and Performance) Any nested XML document can be constructed using “outer union” approaches 9x faster than previous approaches –10 MB of data –17 seconds for sorted outer union approach –160 seconds for “naïve XML application developer” approach

Outline Motivation & High-level Solution Background (Relations, XML) Storing and Querying XML Documents Publishing Relational Data as XML Documents Conclusion

XML has emerged as the Internet data format But relational database systems will continue to be used for data management tasks Internet application developers currently have to explicitly bridge this “data model gap” Can we design a system that automatically bridges this gap for application developers?

For $cust in /Customer Where $cust/name = “Jack” Return $cust

// First prepare all the SQL statements to be executed and create cursors for them Exec SQL Prepare CustStmt From “select cust.id, cust.name from Customer cust where cust.name = ‘Jack’“ Exec SQL Declare CustCursor Cursor For CustStmt Exec SQL Prepare AcctStmt From “select acct.id, acct.acctnum from Account acct where acct.custId = ?“ Exec SQL Declare AcctCursor Cursor For AcctStmt Exec SQL Prepare PorderStmt From “select porder.id, porder.acct, porder.date from PurchOrder porder where porder.custId = ?“ Exec SQL Declare PorderCursor Cursor For PorderStmt Exec SQL Prepare ItemStmt From “select item.id, item.desc from Item item where item.poId = ?“ Exec SQL Declare ItemCursor Cursor For ItemStmt Exec SQL Prepare PayStmt From “select pay.id, pay.desc from Payment pay where item.poId = ?“ Exec SQL Declare PayCursor Cursor For PayStmt // Now execute SQL statements in nested order of XML document result. Start with customer XMLresult = ““ Exec SQL Open CustCursor while (CustCursor has more rows) { Exec SQL Fetch CustCursor Into :custId, :custName XMLResult += “ “ + custName + “ “ // For each customer, issue sub-query to get account information and add to custAccts Exec SQL Open AcctCursor Using :custId while (AcctCursor has more rows) { Exec SQL Fetch AcctCursor Into :acctId, :acctNum XMLResult += “ “ + acctNum + “ “ } XMLResult += “ “ // For each customer, issue sub-query to get purchase order information and add to custPorders Exec SQL Open PorderCursor Using :custId while (PorderCursor has more rows) { Exec SQL Fetch PorderCursor Into :poId, :poAcct, :poDate XMLResult += “ “+poDate +“ “ // For each purchase order, issue a sub-query to get item information and add to porderItems Exec SQL Open ItemCursor Using :poId while (ItemCursor has more rows) { Exec SQL Fetch ItemCursor Into :itemId, :itemDesc XMLResult += “ “ + itemDesc + “ “ } XMLResult += “ “ // For each purchase order, issue a sub-query to get payment information and add to porderPays Exec SQL Open PayCursor Using :poId while (PayCursor has more rows) { Exec SQL Fetch PayCursor Into :payId, :payDesc XMLResult += “ “ + payDesc + “ “ } XMLResult += “ “ } // End of looping over all purchase orders associated with a customer XMLResult += “ “ Return XMLResult as one result row; reset XMLResult = ““ } // loop until all customers are tagged and output

Conclusion (Contd.) Yes! XPERANTO is the first such system Allows users to … –Store and query XML documents using a relational database system –Publish existing relational data as XML documents … using a high-level XML query language Also provides a dramatic improvement in performance

Relational Database System Vendors IBM, Microsoft, Oracle, Informix, … –SQL extensions for XML XML Translation Layer –“Pure XML” philosophy … provides high-level XML query interface SQL extensions for XML, while better than writing applications, is still low-level –More powerful than XML-extended SQL SQL just not designed with nifty XML features in mind

Related Research Storing and querying “schema-less” XML documents using a relational database system –STORED [Deutsch et. al.] –Binary decomposition [Florescu & Kossmann] XML Views of relational databases –SilkRoute [Fernandez et. al.] –Mediators

Future Work Functionality –Update XML documents –Insert/Update XML views of relational data –Information-retrieval style queries Performance –Query-aware relational schema generation –Caching –Relational engine extensions