® IBM Software Group © IBM Corporation QUY Thai Duy – ITFac DLU Lesson 15: pureXML – SQL/XML & XQuery.

Slides:



Advertisements
Similar presentations
Chungnam National University DataBase System Lab
Advertisements

Data Definition and Integrity Constraints
XML Examples. Bank Information Basic structure: A-101 Downtown 500 … Johnson Alma Surrey … A-101 Johnson …
XML: Extensible Markup Language
® IBM Software Group © IBM Corporation QUY Thai Duy – ITFac DLU Lesson 7: Movement, backup and restore data.
® IBM Software Group © IBM Corporation QUY Thai Duy – ITFac DLU Lesson 12: SQL PL Stored Procedures.
® IBM Software Group © IBM Corporation QUY Thai Duy – ITFac DLU Lesson 2: The DB2 Environment.
1 XQuery Web and Database Management System. 2 XQuery XQuery is to XML what SQL is to database tables XQuery is designed to query XML data What is XQuery?
Paper by: A. Balmin, T. Eliaz, J. Hornibrook, L. Lim, G. M. Lohman, D. Simmen, M. Wang, C. Zhang Slides and Presentation By: Justin Weaver.
Instructor: Craig Duckett CASE, ORDER BY, GROUP BY, HAVING, Subqueries
XSLT XML DBs, and Schemas Week 18 DSA. The Whisky Case study XSLT can be applied in the client. –Add a xml processing instruction to the xml to bind to.
Introduction to Structured Query Language (SQL)
Course materials may not be reproduced in whole or in part without the prior written permission of IBM. 5.1 © Copyright IBM Corporation 2008 DB2 9 Fundamentals.
1 COS 425: Database and Information Management Systems XML and information exchange.
XML and The Relational Data Model
XML –Query Languages, Extracting from Relational Databases ADVANCED DATABASES Khawaja Mohiuddin Assistant Professor Department of Computer Sciences Bahria.
Introduction to Structured Query Language (SQL)
Module 9 Designing an XML Strategy. Module 9: Designing an XML Strategy Designing XML Storage Designing a Data Conversion Strategy Designing an XML Query.
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.
Introduction to XPath Bun Yue Professor, CS/CIS UHCL.
XMLII XSchema XSchema XQuery XQuery. XML Schema XML Schema is a more sophisticated schema language which addresses the drawbacks of DTDs. Supports XML.
4/20/2017.
Module 17 Storing XML Data in SQL Server® 2008 R2.
2.2 SQL Server 2005 的 XML 支援功能. Overview XML Enhancements in SQL Server 2005 The xml Data Type Using XQuery.
XML, distributed databases, and OLAP/warehousing The semantic web and a lot more.
Structured Query Language (SQL) A2 Teacher Up skilling LECTURE 2.
Using XML in SQL Server 2005 NameTitleCompany. XML Overview Business Opportunity The majority of all data transmitted electronically between organizations.
AL-MAAREFA COLLEGE FOR SCIENCE AND TECHNOLOGY INFO 232: DATABASE SYSTEMS CHAPTER 7 INTRODUCTION TO STRUCTURED QUERY LANGUAGE (SQL) Instructor Ms. Arwa.
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.
TDDD43 XML and RDF Slides based on slides by Lena Strömbäck and Fang Wei-Kleiner 1.
WORKING WITH XSLT AND XPATH
XML Overview. Chapter 8 © 2011 Pearson Education 2 Extensible Markup Language (XML) A text-based markup language (like HTML) A text-based markup language.
Extensible Markup and Beyond
Sofia, Bulgaria | 9-10 October Using XQuery to Query and Manipulate XML Data Stephen Forte CTO, Corzen Inc Microsoft Regional Director NY/NJ (USA) Stephen.
IBM Almaden Research Center © 2006 IBM Corporation On the Path to Efficient XML Queries Andrey Balmin, Kevin Beyer, Fatma Özcan IBM Almaden Research Center.
Company LOGO OODB and XML Database Management Systems – Fall 2012 Matthew Moccaro.
CHAPTER:14 Simple Queries in SQL Prepared By Prepared By : VINAY ALEXANDER ( विनय अलेक्सजेंड़र ) PGT(CS),KV JHAGRAKHAND.
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.
JSTL, XML and XSLT An introduction to JSP Standard Tag Library and XML/XSLT transformation for Web layout.
Structure Query Language SQL. Database Terminology Employee ID 3 3 Last name Small First name Tony 5 5 Smith James
IBM Software Group ® Native XML Support in DB2 Universal Database Matthias Nicola, Bert van der Linden IBM Silicon Valley Lab Sept 1,
7 1 Chapter 7 Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Database Systems Part VII: XML Querying Software School of Hunan University
Module 18 Querying XML Data in SQL Server® 2008 R2.
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
XML Name: Niki Sardjono Class: CS 157A Instructor : Prof. S. M. Lee.
SQL Basics. What is SQL? SQL stands for Structured Query Language. SQL lets you access and manipulate databases.
Copyright© 2005 Oracle Corp.1 SQL/XML Jim Melton USA: Oracle Corp. JTC1 SC32N1632.
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.
XML query. introduction An XML document can represent almost anything, and users of an XML query language expect it to perform useful queries on whatever.
DT228/3 Web Development Databases. Querying a database: Partial info Search engines, on-line catalogues often need to allow user to search a database.
Visual Programing SQL Overview Section 1.
XML and Database.
Week 8-9 SQL-1. SQL Components: DDL, DCL, & DML SQL is a very large and powerful language, but every type of SQL statement falls within one of three main.
XPath --XML Path Language Motivation of XPath Data Model and Data Types Node Types Location Steps Functions XPath 2.0 Additional Functionality and its.
Module 3: Using XML. Overview Retrieving XML by Using FOR XML Shredding XML by Using OPENXML Introducing XQuery Using the xml Data Type.
5 Copyright © 2004, Oracle. All rights reserved. Navigating XML Documents by Using XPath.
11 Copyright © 2004, Oracle. All rights reserved. Managing XML Data in an Oracle 10g Database.
Pure XML Pertemuan 10 Matakuliah: T0413 Tahun: 2009.
COM621: Advanced Interactive Web Development Lecture 11 MySQL – Data Manipulation Language.
XML: Extensible Markup Language
Querying and Transforming XML Data
DB2 for Linux, Unix, and Windows
{ XML Technologies } BY: DR. M’HAMED MATAOUI
XML in Web Technologies
SQL-1 Week 8-9.
Contents Preface I Introduction Lesson Objectives I-2
IST 318 Database Administration
Structured Query Language Path from Unorganized to Organized….
Presentation transcript:

® IBM Software Group © IBM Corporation QUY Thai Duy – ITFac DLU Lesson 15: pureXML – SQL/XML & XQuery

IBM Software Group Agenda  Overview  Inserting XML data  XPath  XQuery  Querying XML data using SQL/XML  Querying XML data using XQuery  Update & Delete operations with XML  XML Indexes  Other XML support

IBM Software Group  DB2: The big picture

IBM Software Group What is pureXML?  Two main characteristics:  XML is stored in parsed-hierarchical format in the database  DB2 has a native XML interface to the engine  The storage format = the processing format  For details, refer to:  Speech #2 (Part 2) of the DB2 on Campus Lecture Series: “The role of DB2 in Web 2.0 and in the information on demand world”

IBM Software Group Table definitions with XML columns create table items ( id int primary key not null, brandname varchar(30), itemname varchar(30), sku int, srp decimal(7,2), comments xml ); create table clients( id int primary key not null, name varchar(50), status varchar(10), contact xml );

IBM Software Group Insert & Import of XML data INSERT INTO clients VALUES (77, 'John Smith', 'Gold', ' 111 Main St.,Dallas, TX, ') ; IMPORT from "C:\DB2workshop\Quicklabs\quicklab14a\clients.del"of del xml from "C:\DB2workshop\Quicklabs\quicklab14a" INSERT INTO CLIENTS (ID, NAME, STATUS, CONTACT); IMPORT from "C:\DB2workshop\Quicklabs\quicklab14a\items.del" of del xml from "C:\DB2workshop\Quicklabs\quicklab14a" INSERT INTO ITEMS (ID, BRANDNAME, ITEMNAME, SKU, SRP, COMMENTS);

IBM Software Group XPath John Doe Peter Pan

IBM Software Group XPath: Simple XPath Expressions  Use fully qualified paths to specify elements/attributes  is used to specify an attribute  use “text()” to specify the text node under an element John Doe Peter Pan John Doe Peter Pan XPathResult 902 /dept/employee/name Peter Pan John Doe /dept/employee/name/text()Peter Pan John Doe

IBM Software Group Xpath:Wildcards  * matches any tag name  // is the “descendent-or-self” wildcard John Doe Peter Pan John Doe Peter Pan XPathResult /dept/employee/*/text() John Doe Peter Pan //name/text() Peter Pan John Doe /dept//phone Peter Pan John Doe

IBM Software Group XPath: Predicates  Predicates are enclosed in square brackets […]  Can have multiple predicates in one XPath  Positional predicates: [n] selects the n-th child John Doe Peter Pan John Doe Peter Pan XPathResult Peter Pan >“300”]/name John Doe //employee[office=“344” OR

IBM Software Group XPath: The Parent Axis  Current context: “.”  Parent context: “..” John Doe Peter Pan John Doe Peter Pan XPathResult Peter Pan /dept/employee/office[.>“300”] 344 /dept/employee[office > “300”]/office 344 /dept/employee[name=“John /dept/employee/name[.=“John

IBM Software Group What is XQuery?

IBM Software Group XQuery  XQuery supports path expressions to navigate XML hierarchical structure  XQuery supports both typed and untyped data  XQuery lacks null values because XML documents omit missing or unknown data  XQuery returns sequences of XML data

IBM Software Group FLWOR and PATH expressions  Like SELECT-FROM-WHERE expression in SQL an XQuery FLWORexpression may contain several clauses that begin with certain keywords.  for  let  where  order  Return  A Path expression in XQuery consists of a series of “steps” separated by slash characters

IBM Software Group XQuery: The FLWOR Expression  FOR: iterates through a sequence, bind variable to items  LET: binds a variable to a sequence  WHERE: eliminates items of the iteration  ORDER: reorders items of the iteration  RETURN: constructs query results create table dept(deptID char(8),deptdoc xml); xquery for $d in db2-fn:xmlcolumn(‘DEPT.DEPTDOC')/dept let $emp := $d//employee/name where > 95 order by return $emp} John Doe Peter Pan John Doe Peter Pan

IBM Software Group Two Worlds

IBM Software Group What you can and can’t do with SQL  Plain SQL statements enable you to retrieve full XML documents but:  You cannot specify XML-based query predicates  You cannot retrieve partial XML documents  You cannot join, aggregate or order by fragments of XML documents using plain SQL

IBM Software Group SQL/XML queries  SQL/XML is designed to bridge between the SQL and XML worlds.  Part of the SQL standard includes specifications for embedding XQuery or Xpath expressions within SQL statements  XPATH is a language for navigating XML documents to find elements or attributes  XQuery includes support for XPATH

IBM Software Group New SQL/XML Functions in SQL 2006  XMLPARSE  parses character/BLOB data, produces XML value  XMLSERIALIZE  converts an XML value into character/BLOB data  XMLVALIDATE  validates XML value against an XML schema and type-annotates the XML value  XMLEXISTS  determines if an XQuery returns a results (i.e. a sequence of one or more items)  XMLQUERY  executes an XQuery and returns the result sequence  XMLTABLE  executes an XQuery, returns the result sequence as a relational table (if possible)  XMLCAST  cast to or from an XML type

IBM Software Group xmlexists function  Restricts results based on an XML element value  Syntax required prior to DB2 9.5:  New syntax allowed with DB2 9.5: select name from clients where xmlexists('$c/Client/Address[zip="95116"]' passing CLIENTS.CONTACT as "c") select name from clients where xmlexists('$CONTACT/Client/Address[zip="95116"]')

IBM Software Group Case sensitivity - Caution!  SQL is not case sensitive  XPath and XQuery are case sensitive!  DB2 objects (tables/columns) need to be put in upper case.  Example: select name from clients where xmlexists('$contact/Client/Address[zip="95116"]') select name from clients where xmlexists('$CONTACT/Client/Address[zip="95116"]')

IBM Software Group xmlquery function  Retrieve one or more element values from our XML document select xmlquery('$CONTACT/Client/ ') from clients where status = 'Gold'

IBM Software Group Retrieving XML data using “for” and “return” clauses of XQuery SELECT name, xmlquery ('for $e in $CONTACT/Client/ [1] return $e') FROM clients WHERE status = 'Gold'

IBM Software Group Retrieving and transforming XML into HTML SELECT xmlquery('for $e in $CONTACT/Client/ [1]/text() return {$e} ') FROM clients WHERE status = 'Gold'

IBM Software Group xmltable function: From XML to Relational select t.comment#,i.itemname,t.customerID,Message from items i, xmltable('$COMMENTS/Comments/Comment' columns Comment# integer path 'CommentID', CustomerID integer path 'CustomerID', Message varchar(100) path 'Message') as t

IBM Software Group xmlelement function: From Relational to XML select xmlelement (name "item",itemname), xmlelement (name "id", id), xmlelement (name "brand",brandname), xmlelement (name "sku",sku) from items where srp < 100

IBM Software Group Review: XMLTABLE vs XMLELEMENT

IBM Software Group Two Worlds

IBM Software Group Simple XQuery to return customer contact data  db2-fn:xmlcolumn is a function with a parameter that identifies the table name and column name of an XML column. xquery db2-fn:xmlcolumn('CLIENTS.CONTACT')

IBM Software Group FLWOR expression to retrieve client fax data xquery for $y in db2- fn:xmlcolumn('CLIENTS.CONTACT')/Client/fax return $y

IBM Software Group Path expression with additional filtering predicate xquery db2-fn:xmlcolumn('CLIENTS.CONTACT')/Client/Address[zip="95116"]

IBM Software Group Querying DB2 XML data and returning results as HTML Xquery { for $y in db2- fn:xmlcolumn('CLIENTS.CONTACT')/Client/Address order by $y/zip return {$y} }

IBM Software Group Sample HTML 9407 Los Gatos lvd. Los Gatos ca El Camino Real Mountain View CA …

IBM Software Group Embedded SQL within XQuery  db2-fn:sqlquery  A function which executes an SQL query and returns only the selected data  The SQL Query passed to db2-fn:sqlquery must return X xquery for $y in db2-fn:sqlquery('select comments from items where srp > 100')/Comments/Comment where $y/ResponseRequested='Yes' return ( {$y//ProductID} {$y//CustomerID} {$y//Message} )

IBM Software Group Joins with SQL/XML  create table dept (unitID char(8), deptdoc xml)  create table unit (unitID char(8) primary key not null,  name char(20),  manager varchar(20), ...  ) select u.unitID from dept d, unit u where XMLEXISTS ('$e//employee[name = $m] ' passing d.deptdoc as "e", u.manager as "m") select u.unitID from dept d, unit u where u.manager = XMLCAST(XMLQUERY('$e//employee/name' passing d.deptdoc as "e") as char(20))

IBM Software Group Joins with SQL/XML & Xquery  create table dept (unitID char(8), deptdoc xml)  create table project(projectDoc xml) With SQL/XML: select XMLQUERY ('$d/dept/employee' passing d.deptdoc as "d") from dept d, project p where XMLEXISTS passing d.deptdoc as "e", p.projectDoc as "p") Equivalent with Xquery: XQUERY for $dept in db2-fn:xmlcolumn("DEPT.DEPTDOC")/dept for $proj in db2-fn:xmlcolumn("PROJECT.PROJECTDOC")/project where = $proj/deptID return $dept/employee

IBM Software Group Update and Delete Operations  U pdate and Delete XML Data can be done in one of two ways:  SQL UPDATE and DELETE Statements  Using the XQuery TRANSFORM expression

IBM Software Group Update example using SQL Update UPDATE clients SET contact=(xmlparse(document ‘ 5401 Julio ave. San Jose CA ')) where id = 3227

IBM Software Group Update example using XQuery TRANSFORM UPDATE customers SET contactinfo = xmlquery( 'declare default element namespace transform copy $newinfo := $c modify do insert my2 .gm.com as last into $newinfo/customerinfo return $newinfo' passing CONTACTINFO as "c") WHERE id = 100

IBM Software Group XML Indexing Examples  create unique index idx1 on customer(info)  generate key using  xmlpattern  as sql double;  create index idx2 on customer(info)  generate key using  xmlpattern '/customerinfo/name'  as sql varchar(40);  create index idx3 on customer(info)  generate key using  xmlpattern '//name'  as sql varchar(40); Matt Foreman 1596 Baseline Toronto Ontario M3Z-5H Peter Smith create table customer( info XML);

IBM Software Group XML Indexing Examples create index idx4 on customer(info) generate key using xmlpattern '//text()' as sql varchar(40); Matt Foreman 1596 Baseline Toronto Ontario M3Z-5H Peter Smith create table customer( info XML);

IBM Software Group Other XML support  Based-table inlining and compression of small XML documents  Can transform XML documents using XSLT functions  XML Validation:  XML Schema support using XML Schema repositories  XMLVALIDATE function during an INSERT  BEFORE Trigger  “IS VALIDATED” predicate on a CHECK constraint  Compatible XML Schema evolution using the UPDATE XMLSCHEMA command  pureXML supported for UNICODE or non-UNICODE dbs with DB2 9.5  Annotated XML Schema Decomposition

IBM Software Group What’s Next?