Lecture 6 of Advanced Databases XML Querying & Transformation Instructor: Mr.Eyad Almassri.

Slides:



Advertisements
Similar presentations
XML Examples. Bank Information Basic structure: A-101 Downtown 500 … Johnson Alma Surrey … A-101 Johnson …
Advertisements

Chapter 23: XML.
XML: Extensible Markup Language
Chapter 10: XML. ©Silberschatz, Korth and Sudarshan10.2Database System ConceptsIntroduction XML: Extensible Markup Language Defined by the WWW Consortium.
©Silberschatz, Korth and Sudarshan10.1Database System Concepts W3C Activities HTML: is the lingua franca for publishing on the Web XHTML: an XML application.
Database System Concepts ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 10: XML.
1 COS 425: Database and Information Management Systems XML and information exchange.
Storage of XML Data XML data can be stored in –Non-relational data stores Flat files –Natural for storing XML –But has all problems discussed in Chapter.
©Silberschatz, Korth and Sudarshan8.1Database System Concepts Chapter 8: Object-Oriented Databases Need for Complex Data Types The Object-Oriented Data.
L13-S1 XML 2003 SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José State.
XML –Query Languages, Extracting from Relational Databases ADVANCED DATABASES Khawaja Mohiuddin Assistant Professor Department of Computer Sciences Bahria.
1 Advanced Topics XML and Databases. 2 XML u Overview u Structure of XML Data –XML Document Type Definition DTD –Namespaces –XML Schema u Query and Transformation.
XMLII XSchema XSchema XQuery XQuery. XML Schema XML Schema is a more sophisticated schema language which addresses the drawbacks of DTDs. Supports XML.
XML Query Languages Notes Based on Chapter 10 of Database System Concepts.
XML Databases and introducing their languages, XQuery, XSLT, and XPath
XMLII XSchema XSchema XQuery XQuery Oracle XSU Oracle XSU.
XML Anisha K J Jerrin Thomas. Outline  Introduction  Structure of an XML Page  Well-formed & Valid XML Documents  DTD – Elements, Attributes, Entities.
Chapter 10: XML. ©Silberschatz, Korth and Sudarshan10.2Database System ConceptsIntroduction XML: Extensible Markup Language Defined by the WWW Consortium.
Computing & Information Sciences Kansas State University Monday. 20 Oct 2008CIS 560: Database System Concepts Lecture 21 of 42 Monday, 20 October 2008.
Lecture 7 of Advanced Databases XML Querying & Transformation Instructor: Mr.Ahmed Al Astal.
 Structure of XML Data  XML Document Schema  Querying and Transformation  Application Program Interfaces to XML  Storage of XML Data  XML Applications.
Lecture 21 XML querying. 2 XSL (eXtensible Stylesheet Language) In HTML, default styling is built into browsers as tag set for HTML is predefined and.
Lecture 6 of Advanced Databases XML Schema, Querying & Transformation Instructor: Mr.Ahmed Al Astal.
©Silberschatz, Korth and Sudarshan10.1Database System ConceptsIntroduction XML: Extensible Markup Language Defined by the WWW Consortium (W3C) Originally.
XML By Dr.S.Sridhar, Ph.D.(JNUD), RACI(Paris, NICE), RMR(USA), RZFM(Germany) DIRECTOR ARUNAI ENGINEERING COLLEGE TIRUVANNAMALAI.
Computing & Information Sciences Kansas State University Friday, 17 Oct 2007CIS 560: Database System Concepts Lecture 21 of 42 Friday, 17 October 2008.
Chapter 10: XML XML Structure of XML Data XML Document Schema Querying and Transformation Application Program Interfaces to XML Storage of XML Data.
XMLI Structure of XML Data Structure of XML Data XML Document Schema XML Document Schema XPATH XPATH.
1 Chapter 10: XML What is XML What is XML Basic Components of XML Basic Components of XML XPath XPath XQuery XQuery.
1 CIS336 Website design, implementation and management (also Semester 2 of CIS219, CIS221 and IT226) Lecture 6 XSLT (Based on Møller and Schwartzbach,
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.
Computing & Information Sciences Kansas State University Thursday, 15 Mar 2007CIS 560: Database System Concepts Lecture 24 of 42 Thursday, 15 March 2007.
Temple University – CIS Dept. CIS616– Principles of Data Management V. Megalooikonomou XML ( based on slides by Silberschatz, Korth and Sudarshan at Bell.
XML Name: Niki Sardjono Class: CS 157A Instructor : Prof. S. M. Lee.
[ Part III of The XML seminar ] Presenter: Xiaogeng Zhao A Introduction of XQL.
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.
Chapter 23 XML. 2 Introduction  XML: eXtensible Markup Language (What is a Markup language?)  Defined by the WWW Consortium (W3C)  Originally intended.
XP New Perspectives on XML, 2 nd Edition Tutorial 8 1 TUTORIAL 8 CREATING ELEMENT GROUPS.
XML and Database.
Database System Concepts Bin Mu at Tongji University Chapter 10: XML.
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 4 1COMP9321, 15s2, Week.
CIS750 – Seminar in Advanced Topics in Computer Science Advanced topics in databases – Multimedia Databases V. Megalooikonomou XML ( based on slides by.
More XML XPATH, XSLT CS 431 – February 23, 2005 Carl Lagoze – Cornell University.
©Silberschatz, Korth and Sudarshan10.1Database System Concepts XML Query Languages Notes Based on Chapter 10 of Database System Concepts.
1. XML Structure of XML Data XML Document Schema Querying and Transformation Application Program Interfaces to XML Storage of XML Data XML Applications.
Computing & Information Sciences Kansas State University Friday, 20 Oct 2006CIS 560: Database System Concepts Lecture 24 of 42 Friday, 20 October 2006.
©Silberschatz, Korth and Sudarshan10.1Database System Concepts W3C - The World Wide Web Consortium W3C - The World Wide Web Consortium.
Database System Concepts ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 10: XML.
Chapter 10: XML. XML Structure of XML Data XML Document Schema Querying and Transformation Application Program Interfaces to XML Storage of XML Data XML.
Chapter 8: XML. 2 XML Structure of XML Data XML Document Schema Querying and Transformation Application Program Interfaces to XML Storage of XML Data.
Database System Concepts ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 10: XML.
Chapter 10: XML. ©Silberschatz, Korth and Sudarshan10.2Database System ConceptsIntroduction XML: Extensible Markup Language Defined by the WWW Consortium.
Chapter 10: XML. ©Silberschatz, Korth and Sudarshan10.2Database System ConceptsIntroduction XML: Extensible Markup Language Defined by the WWW Consortium.
L14-S1 XML 2003 SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José State.
Chapter 10: XML Introduction  XML: Extensible Markup Language  Defined by the WWW Consortium (W3C)  Originally intended as a document.
XML Schema – XSLT Week 8 Web site:
Rendering XML Documents ©NIITeXtensible Markup Language/Lesson 5/Slide 1 of 46 Objectives In this session, you will learn to: * Define rendering * Identify.
ADT 2010 Introduction to (XML, XPath &) XQuery Chapter 10 in Silberschatz, Korth, Sudarshan “Database System Concepts” Stefan Manegold
10.1 Chapter 10: XML Sections Problems 10.1, 10.2, 10.7 Find an example of using XML in a field of interest to you and describe it to the class.
Database System Concepts ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 10: XML.
XML: Extensible Markup Language
Querying and Transforming XML Data
XML By Dr.S.Sridhar, Ph.D.(JNUD), RACI(Paris, NICE), RMR(USA), RZFM(Germany)
Chapter 23: XML Database System concepts,6th Ed.
CS 480: Database Systems Lecture 28 March 22, 2013.
{ XML Technologies } BY: DR. M’HAMED MATAOUI
XML in Web Technologies
Chapter 10: XML.
Chapter 10: XML.
More XML XML schema, XPATH, XSLT
Presentation transcript:

Lecture 6 of Advanced Databases XML Querying & Transformation Instructor: Mr.Eyad Almassri

 Page 2 XML Querying & Transformation 1.Querying and Transformation 2.Application Program Interfaces to XML 3.Storage of XML Data 4.XML Applications Agenda

 Page 3 XML Querying & Transformation The XML Path Language, is a query language for selecting nodes from an XML document. In addition, XPath may be used to compute values (e.g., strings, numbers, or Boolean values) from the content of an XML documentquery language nodesXMLstringsBoolean  XPath is a syntax for defining parts of an XML document  XPath uses path expressions to navigate in XML documents  XPath contains a library of standard functions  XPath is a major element in XSLT  XPath is a W3C recommendation What is XPath?

 Page 4 XML Querying & Transformation XPath is used to address (select) parts of documents using path expressions A path expression is a sequence of steps separated by “/” Think of file names in a directory hierarchy Result of path expression: set of values that along with their containing elements/attributes match the specified path E.g. /bank-2/customer/customer_name evaluated on the bank-2 data we saw earlier returns Joe Mary E.g. /bank-2/customer/customer_name/text( ) returns the same names, but without the enclosing tags XPath

 Page 5 XML Querying & Transformation XPath uses path expressions to select nodes in an XML document. The node is selected by following a path or steps. The most useful path expressions are listed below: Selecting Nodes

 Page 6 Selecting Nodes cont. In the table below we have listed some path expressions and the result of the expressions:

 Page 7 XML Querying & Transformation The initial “/” denotes root of the document (above the top-level tag) Path expressions are evaluated left to right Each step operates on the set of instances produced by the previous step Selection predicates may follow any step in a path, in [ ] E.g. /bank-2/account[balance > 400]  returns account elements with a balance value greater than 400  /bank-2/account[balance] returns account elements containing a balance subelement Attributes are accessed using E.g. /bank-2/account[balance >  returns the account numbers of accounts with balance > 400 IDREF attributes are not dereferenced automatically (more on this later) XPath (Cont.)

 Page 8 XML Querying & Transformation XPath provides several functions The function count() at the end of a path counts the number of elements in the set generated by the path  E.g. /bank-2/account[count(./customer) > 2] Returns accounts with > 2 customers Also function for testing position (1, 2,..) of node w.r.t. siblings Boolean connectives and and or and function not() can be used in predicates IDREFs can be referenced using function id() id() can also be applied to sets of references such as IDREFS and even to strings containing multiple references separated by blanks E.g. returns all customers referred to from the owners attribute of account elements. Functions in XPath

 Page 9 XML Querying & Transformation Operator “|” used to implement union E.g. | “//” can be used to skip multiple levels of nodes E.g. /bank-2//customer_name  finds any customer_name element anywhere under the /bank-2 element, regardless of the element in which it is contained.  doc(name) returns the root of a named document More XPath Features

 Page 10 XML Querying & Transformation XQuery is a general purpose query language for XML data Currently being standardized by the World Wide Web Consortium (W3C) XQuery is derived from the Quilt query language, which itself borrows from SQL, XQL and XML-QL XQuery uses a for … let … where … order by …result … syntax for SQL from where SQL where order by SQL order by result SQL select let allows temporary variables, and has no equivalent in SQL XQuery

 Page 11 XML Querying & Transformation For clause uses XPath expressions, and variable in for clause ranges over values in the set returned by XPath Simple FLWOR expression in XQuery find all accounts with balance > 400, with each result enclosed in an.. tag for $x in /bank-2/account let $acctno := where $x/balance > 400 return { $acctno } Items in the return clause are XML text unless enclosed in {}, in which case they are evaluated FLWOR Syntax in XQuery

 Page 12 XML Querying & Transformation Let clause not really needed in this query, and selection can be done In XPath. Query can be written as: for $x in /bank-2/account[balance>400] return { } FLWOR Syntax in XQuery

 Page 13 XML Querying & Transformation Joins are specified in a manner very similar to SQL for $a in /bank/account, $c in /bank/customer, $d in /bank/depositor where $a/account_number = $d/account_number and $c/customer_name = $d/customer_name return { $c $a } The same query can be expressed with the selections specified as XPath selections: for $a in /bank/account $c in /bank/customer $d in /bank/depositor[ account_number = $a/account_number and customer_name = $c/customer_name] return { $c $a } Joins

 Page 14 XML Querying & Transformation The order by clause can be used at the end of any expression. E.g. to return customers sorted by name for $c in /bank/customer order by $c/customer_name return { $c/* }  Use order by $c/customer_name to sort in descending order  $c/* denotes all the children of the node to which $c is bound, without the enclosing top-level tag  $c/text() gives text content of an element without any subelements / tags Sorting in XQuery

 Page 15 XML Querying & Transformation A stylesheet stores formatting options for a document, usually separately from document E.g. an HTML style sheet may specify font colors and sizes for headings, etc. The XML Stylesheet Language (XSL) was originally designed for generating HTML from XML XSLT is a general-purpose transformation language Can translate XML to XML, and XML to HTML XSLT transformations are expressed using rules called templates Templates combine selection using XPath with construction of results XSLT

 Page 16 XML Querying & Transformation  There are two standard application program interfaces to XML data: -SAX (Simple API for XML) -Based on parser model, user provides event handlers for parsing events -E.g. start of element, end of element -Not suitable for database applications -DOM (Document Object Model) -XML data is parsed into a tree representation -Variety of functions provided for traversing the DOM tree -E.g.: Java DOM API provides Node class with methods getParentNode( ), getFirstChild( ), getNextSibling( ) getAttribute( ), getData( ) (for text node) getElementsByTagName( ), … -Also provides functions for updating DOM tree Application Program Interface

 Page 17 XML Querying & Transformation  XML data can be stored in -Non-relational data stores -Flat files -Natural for storing XML -But has all problems discussed in Chapter 1 (no concurrency, no recovery, …) -XML database -Database built specifically for storing XML data, supporting DOM model and declarative querying -Currently no commercial-grade systems -Relational databases -Data must be translated into relational form -Advantage: mature database systems -Disadvantages: overhead of translating data and queries Storage of XML Data

 Page 18 XML Querying & Transformation  Alternatives: -String Representation -Tree Representation -Map to relations Storage of XML in Relational Databases

 Page 19 XML Querying & Transformation  Store each top level element as a string field of a tuple in a relational database -Use a single relation to store all elements, or -Use a separate relation for each top-level element type -E.g. account, customer, depositor relations -Each with a string-valued attribute to store the element  Indexing: -Store values of subelements/attributes to be indexed as extra fields of the relation, and build indices on these fields -E.g. customer_name or account_number -Some database systems support function indices, which use the result of a function as the key value. -The function should return the value of the required subelement/attribute String Representation

 Page 20 XML Querying & Transformation  Benefits: -Can store any XML data even without DTD -As long as there are many top-level elements in a document, strings are small compared to full document -Allows fast access to individual elements.  Drawback: Need to parse strings to access values inside the elements -Parsing is slow. String Representation (Cont.)

 Page 21 XML Querying & Transformation  Tree representation: model XML data as tree and store using relations nodes(id, type, label, value) child (child_id, parent_id)  Each element/attribute is given a unique identifier  Type indicates element/attribute  Label specifies the tag name of the element/name of attribute  Value is the text value of the element/attribute  The relation child notes the parent-child relationships in the tree -Can add an extra attribute to child to record ordering of children Tree Representation bank (id:1) customer (id:2) account (id: 5) customer_name (id: 3) account_number (id: 7)

 Page 22 XML Querying & Transformation  Benefit: Can store any XML data, even without DTD  Drawbacks: -Data is broken up into too many pieces, increasing space overheads -Even simple queries require a large number of joins, which can be slow Tree Representation (Cont.)

 Page 23 XML Querying & Transformation  Relation created for each element type whose schema is known: -An id attribute to store a unique id for each element -A relation attribute corresponding to each element attribute -A parent_id attribute to keep track of parent element -As in the tree representation -Position information (i th child) can be store too  All subelements that occur only once can become relation attributes -For text-valued subelements, store the text as attribute value -For complex subelements, can store the id of the subelement  Subelements that can occur multiple times represented in a separate table -Similar to handling of multivalued attributes when converting ER diagrams to tables Mapping XML Data to Relations

 Page 24 XML Querying & Transformation  Publishing: process of converting relational data to an XML format  Shredding: process of converting an XML document into a set of tuples to be inserted into one or more relations  XML-enabled database systems support automated publishing and shredding  Some systems offer native storage of XML data using the xml data type. Special internal data structures and indices are used for efficiency Mapping XML Data to Relations