Objectives Objectives � How XML generalizes relational databases An Introduction to XML and Web Technologies An Introduction to XML and Web Technologies � The XQuery language Querying XML Documents Querying XML Documents � How XML may be supported in databases with XQuery XQuery with Anders Møller & Michael I. Schwartzbach 2006 Addison-Wesley An Introduction to XML and Web Technologies 2 XQuery 1.0 From Relations to Trees XQuery 1.0 From Relations to Trees � XML documents naturally generalize database relations � XQuery is the corresponding generalization of SQL An Introduction to XML and Web Technologies 3 An Introduction to XML and Web Technologies 4 1
Only Some Trees are Relations Trees Are Not Relations Only Some Trees are Relations Trees Are Not Relations � They have height two � Not all trees satisfy the previous characterization � The root has an unbounded number of children � Trees are ordered , while both rows and columns of tables may be permuted without changing the � All nodes in the second layer (records) have a meaning of the data fixed number of child nodes (fields) An Introduction to XML and Web Technologies 5 An Introduction to XML and Web Technologies 6 A Student Database A More Natural Model (1/2) A Student Database A More Natural Model (1/2) <students> <student id="100026"> <name>Joe Average</name> <age>21</age> <major>Biology</major> <results> <result course="Math 101" grade="C-"/> <result course="Biology 101" grade="C+"/> <result course="Statistics 101" grade="D"/> </results> </student> An Introduction to XML and Web Technologies 7 An Introduction to XML and Web Technologies 8 2
A More Natural Model (2/2) Usage Scenario: Data- -Oriented Oriented A More Natural Model (2/2) Usage Scenario: Data � We want to carry over the kinds of queries that we <student id="100078"> <name>Jack Doe</name> performed in the original relational model <age>18</age> <major>Physics</major> <major>XML Science</major> <results> <result course="Math 101" grade="A"/> <result course="XML 101" grade="A-"/> <result course="Physics 101" grade="B+"/> <result course="XML 102" grade="A"/> </results> </student> </students> An Introduction to XML and Web Technologies 9 An Introduction to XML and Web Technologies 10 Usage Scenario: Document- -Oriented Oriented Usage Scenario: Programming Usage Scenario: Document Usage Scenario: Programming � Queries could be used � Queries could be used to automatically generate documentation • to retrieve parts of documents • to provide dynamic indexes • to perform context-sensitive searching • to generate new documents as combinations of existing documents An Introduction to XML and Web Technologies 11 An Introduction to XML and Web Technologies 12 3
Usage Scenario: Hybrid XQuery Design Requirements Usage Scenario: Hybrid XQuery Design Requirements � Queries could be used to data mine hybrid data, � Must have at least one XML syntax and at least such as patient records one human-readable syntax � Must be declarative � Must be namespace aware � Must coordinate with XML Schema � Must support simple and complex datatypes � Must combine information from multiple documents � Must be able to transform and create XML trees An Introduction to XML and Web Technologies 13 An Introduction to XML and Web Technologies 14 Relationship to XPath Relationship to XSLT Relationship to XPath Relationship to XSLT � XQuery 1.0 is a strict superset of XPath 2.0 � XQuery and XSLT are both domain-specific � Every XPath 2.0 expression is directly an XQuery languages for combining and transforming XML 1.0 expression (a query) data from multiple sources � The extra expressive power is the ability to � They are vastly different in design , partly for • join information from different sources and historical reasons • generate new XML fragments � XQuery is designed from scratch, XSLT is an intellectual descendant of CSS � Technically, they may emulate each other An Introduction to XML and Web Technologies 15 An Introduction to XML and Web Technologies 16 4
XQuery Prolog More From the Prolog XQuery Prolog More From the Prolog � Like XPath expressions, XQuery expressions are declare default element namespace URI; declare default function namespace URI; evaluated relatively to a context import schema at URI; � This is explicitly provided by a prolog declare namespace NCName = URI; � Settings define various parameters for the XQuery processor language, such as: xquery version "1.0"; declare xmlspace preserve; declare xmlspace strip; An Introduction to XML and Web Technologies 17 An Introduction to XML and Web Technologies 18 Implicit Declarations XPath Expressions Implicit Declarations XPath Expressions declare namespace xml = � XPath expressions are also XQuery expressions "http://www.w3.org/XML/1998/namespace"; � The XQuery prolog gives the required static declare namespace xs = context "http://www.w3.org/2001/XMLSchema"; declare namespace xsi = � The initial context node, position, and size are "http://www.w3.org/2001/XMLSchema-instance"; undefined declare namespace fn = "http://www.w3.org/2005/11/xpath-functions"; declare namespace xdt = "http://www.w3.org/2005/11/xpath-datatypes"; declare namespace local = "http://www.w3.org/2005/11/xquery-local-functions"; An Introduction to XML and Web Technologies 19 An Introduction to XML and Web Technologies 20 5
Datatype Expressions XML Expressions Datatype Expressions XML Expressions � Same atomic values as XPath 2.0 � XQuery expressions may compute new XML nodes � Also lots of primitive simple values: � Expressions may denote element, character data, xs:string("XML is fun") xs:boolean("true") comment, and processing instruction nodes xs:decimal("3.1415") xs:float("6.02214199E23") � Each node is created with a unique node identity xs:dateTime("1999-05-31T13:20:00-05:00") � Constructors may be either direct or computed xs:time("13:20:00-05:00") xs:date("1999-05-31") xs:gYearMonth("1999-05") xs:gYear("1999") xs:hexBinary("48656c6c6f0a") xs:base64Binary("SGVsbG8K") xs:anyURI("http://www.brics.dk/ixwt/") xs:QName("rcp:recipe") An Introduction to XML and Web Technologies 21 An Introduction to XML and Web Technologies 22 Direct Constructors Namespaces in Constructors (1/3) Direct Constructors Namespaces in Constructors (1/3) � Uses the standard XML syntax dec decla lare re de defa fault ult el elem ement ent n namesp espace ace " "htt http: p:// //bus busine iness sscar card. d.or org"; g"; <card> � The expression <name>John Doe</name> <title>CEO, Widget Inc.</title> <foo><bar/>baz</foo> <email>john.doe@widget.com</email> <phone>(202) 555-1414</phone> � evaluates to the given XML fragment <logo uri="widget.gif"/> � Note that </card> <foo/> is <foo/> � evaluates to false An Introduction to XML and Web Technologies 23 An Introduction to XML and Web Technologies 24 6
Recommend
More recommend