XML and Web Databases

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 58

XML AND WEB DATABASES

GROUP 6 PRESENTATION
Full Name Programme Reg Number
 
Loveton Simanyiwa MISM R213638Z
     
Kudzayi Kuremba MISM R2012685V
 
Ngwenya Shadreck MISM R0432780
 
Tariro Sally Redzo MISM R215115A
 
Kenneth Francis Nyamuka MISM R211542N
 
Professor Tawandirwa MISM R159938G
CONTENT TO BE COVERED

• Overview
• Storing and Extracting XML from Databases
• XML Languages
• Extracting XML documents from relational Databases
• XML Hierarchical Tree and Data mode
Introduction to XML
XML is a software- and hardware-independent tool for storing and transporting
data.

What is XML?
 XML stands for eXtensible Markup Language
 XML is a markup language much like HTML
 XML was designed to store and transport data
 XML was designed to be self-descriptive
 XML is a W3C Recommendation
XML Does Not DO Anything
This note is a note to Tove from Jani, stored as XML:

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

The XML above is quite self-descriptive:

 It has sender information.


 It has receiver information
 It has a heading
 It has a message body.

But still, the XML above does not DO anything. XML is just information wrapped in tags.

Someone must write a piece of software to send, receive, store, or display it:
Note
To: Tove

From: Jani

Reminder
Don't forget me this weekend!
The Difference Between XML and HTML
XML and HTML were designed with different goals:

 XML was designed to carry data - with focus on what data is


 HTML was designed to display data - with focus on how data looks
 XML tags are not predefined like HTML tags are
XML Does Not Use Predefined Tags
The XML language has no predefined tags.
The tags in the example above (like <to> and <from>) are not defined in any XML
standard. These tags are "invented" by the author of the XML document.
HTML works with predefined tags like <p>, <h1>, <table>, etc.
With XML, the author must define both the tags and the document structure.
XML is Extensible
Most XML applications will work as expected even if new data is
added (or removed).
Imagine an application designed to display the original version of
note.xml (<to> <from> <heading> <body>).
Then imagine a newer version of note.xml with added <date> and
<hour> elements, and a removed <heading>.
The way XML is constructed, older version of the application can still
work.
XML Simplifies Things
 It simplifies data sharing
 It simplifies data transport
 It simplifies platform changes
 It simplifies data availability
Many computer systems contain data in incompatible formats. Exchanging
data between incompatible systems (or upgraded systems) is a time-
consuming task for web developers. Large amounts of data must be
converted, and incompatible data is often lost.
XML stores data in plain text format. This provides a software- and
hardware-independent way of storing, transporting, and sharing data.
XML also makes it easier to expand or upgrade to new operating systems,
new applications, or new browsers, without losing data.
With a few lines of JavaScript code, you can read an XML file and update
the data content of any HTML page.
With XML, data can be available to all kinds of "reading machines"
like people, computers, voice machines, news feeds, etc.
________________________________________
XML is a W3C Recommendation
XML became a W3C Recommendation as early as in February 1998.
How Can XML be Used?
XML is used in many aspects of web development.
XML is often used to separate data from presentation.
________________________________________
XML Separates Data from Presentation
XML does not carry any information about how to be displayed.
The same XML data can be used in many different presentation scenarios.
Because of this, with XML, there is a full separation between data and
presentation.
XML is Often a Complement to HTML
In many HTML applications, XML is used to store or transport data, while
HTML is used to format and display the same data.
________________________________________
XML Separates Data from HTML
When displaying data in HTML, you should not have to edit the HTML file
when the data changes.
With XML, the data can be stored in separate XML files.
Transaction Data

Thousands of XML formats exist, in many different industries, to


describe day-to-day data transactions:
• Stocks and Shares
• Financial transactions
• Medical data
• Mathematical data
• Scientific measurements
• News information
• Weather services
________________________________________
Example: XML News
XMLNews is a specification for exchanging news and other information. An example
XMLNews document:
<?xml version="1.0" encoding="UTF-8"?>
<nitf>
  <head>
    <title>Colombia Earthquake</title>
  </head>
  <body>
    <headline>
      <hl1>143 Dead in Colombia Earthquake</hl1>
    </headline>
    <byline>
      <bytag>By Jared Kotler, Associated Press Writer</bytag>
    </byline>
    <dateline>
      <location>Bogota, Colombia</location>
      <date>Monday January 25 1999 7:28 ET</date>
    </dateline>
  </body>
</nitf>
7.2 STORING AND EXTRACTING XML
DOCUMENTS FROM DATABASES
 MOST COMMON APPROACHES
 USING A DBMS TO STORE THE DOCUMENTS AS TEXT
• CAN BE USED IF DBMS HAS A SPECIAL MODULE FOR DOCUMENT PROCESSING
 USING A DBMS TO STORE DOCUMENT CONTENTS AS DATA ELEMENTS
• REQUIRE MAPPING ALGORITHMS TO DESIGN A DATABASE SCHEMA THAT IS
COMPATIBLE WITH XML DOCUMENT STRUCTURE
STORING AND EXTRACTING XML
DOCUMENTS FROM DATABASES
(CONT’D.)
 DESIGNING A SPECIALIZED SYSTEM FOR STORING NATIVE XML
DATA
• CALLED NATIVE XML DBMSS
 CREATING OR PUBLISHING CUSTOMIZED XML DOCUMENTS FROM
PREEXISTING RELATIONAL DATABASES
• USE A SEPARATE MIDDLEWARE SOFTWARE LAYER TO HANDLE
CONVERSIONS
STORING XML DATA FROM XML FILE USING OPENROWSET IN SQL SERVER
 NOW IN ORDER TO STORE DATA FROM THE XML FILE TO A TABLE IN SQL SERVER,
WE ARE USING THE OPENROWSET FUNCTION AS ILLUSTRATED BELOW.
 IN THE SCRIPT BELOW, WE ARE CREATING A TABLE WITH A COLUMN OF DATA
TYPE XML AND THEN READING THE XML DATA FROM THE FILE USING THE
OPENROWSET FUNCTION BY SPECIFYING THE FILE LOCATION AND NAME OF THE
XML FILE AS ILLUSTRATED BELOW: 
 WHEN I QUERY THE TABLE IN WHICH I HAVE IMPORTED THE XML DATA, IT LOOKS
LIKE THIS. THE XMLDATA COLUMN IS AN XML DATA TYPE, IT WILL OUTPUT A
HYPERLINK AS SHOWN BELOW:
 CLICKING ON THE HYPERLINK, IN THE ABOVE IMAGE, WILL OPEN
ANOTHER TAB WITHIN SSMS WITH THE XML DATA DISPLAYED AS
SHOWN BELOW.
EXTRACTING XML DATA USING OPENXML FUNCTION IN SQL SERVER

 XML DATA STORED IN A COLUMN OF DATA TYPE XML CAN BE PROCESSED EITHER BY
USING XML FUNCTIONS AVAILABLE IN SQL SERVER OR BY USING
THE SP_XML_PREPAREDOCUMENT STORED PROCEDURE ALONG WITH
THE OPENXML FUNCTION.
 WE WILL FIRST CALL THE SP_XML_PREPAREDOCUMENT STORED PROCEDURE BY
SPECIFYING THE XML DATA WHICH WILL THEN OUTPUT THE HANDLE OF THE XML DATA
THAT IT HAS PREPARED AND STORED IN INTERNAL CACHE.
 THEN WE WILL USE THE HANDLE RETURNED BY
THE SP_XML_PREPAREDOCUMENT STORED PROCEDURE IN THE OPENXML FUNCTION TO
OPEN THE XML DATA AND READ IT.
 NOTE: THE SP_XML_PREPAREDOCUMENT STORED PROCEDURE STORES THE XML DATA IN
SQL SERVER'S INTERNAL CACHE, IT IS ESSENTIAL TO RELEASE THIS STORED XML DATA
FROM INTERNAL CACHE BY CALLING THE SP_XML_REMOVEDOCUMENT STORED
PROCEDURE. WE SHOULD CALL THE SP_XML_REMOVEDOCUMENT STORED PROCEDURE AS
EARLY POSSIBLE, SO THAT INTERNAL CACHE CAN BE FREED FOR OTHER USAGE.
 FROM THE ABOVE XML DATA, WE WANT TO RETRIEVE ALL THE
CUSTOMER INFORMATION ALONG WITH ORDERID AND ORDERDATE
PLACED BY EACH INDIVIDUAL CUSTOMER AND HENCE WE ARE
NAVIGATING TO THE ORDER ELEMENT AND THEN QUERYING ORDERID
AND ORDERDATE ATTRIBUTES.
 IF WE WANT TO NAVIGATE BACK TO THE PARENT OR GRAND PARENT
LEVEL AND GET DATA FROM THERE, WE NEED TO USE "../" TO READ THE
PARENT'S DATA AND "../../" TO READ THE GRAND PARENT'S DATA AND
SO ON.
 THE RESULT OF THE ABOVE QUERY CAN BE SEEN IN THE IMAGE
BELOW. YOU CAN SEE BELOW ALL THE CUSTOMERS AND ALL THE
ORDERS PLACED BY EACH CUSTOMER.
 WE CAN EVEN DRILL DOWN AND GO ONE LEVEL DEEPER. THIS TIME
FROM THE ABOVE XML DATA, WE WANT TO RETRIEVE ALL THE
CUSTOMER INFORMATION AND THEIR ORDERS ALONG WITH PRODUCTID
AND QUANTITY FROM EACH ORDER PLACED.
 AND HENCE, AS YOU CAN SEE BELOW WE ARE NAVIGATING TO THE
ORDERDETAIL AND RETRIEVING THE PRODUCTID AND QUANTITY
ATTRIBUTES' VALUES.
 AT THE SAME TIME WE ARE USING "../" TO REACH THE PARENT LEVEL TO
GET ORDER INFORMATION AVAILABLE AT THE PARENT LEVEL WHEREAS
WE ARE USING "../../../" TO REACH TO THE GREAT GRAND PARENT LEVEL
TO GRAB CUSTOMER INFORMATION AS SHOWN BELOW:
 THE RESULT OF THE ABOVE QUERY CAN BE SEEN IN THE IMAGE
BELOW. YOU CAN SEE ALL THE CUSTOMER INFORMATION AND THEIR
ORDERS ALONG WITH PRODUCTID AND QUANTITY FROM EACH ORDER
PLACED.
7.3 XML LANGUAGES

 TWO QUERY LANGUAGE STANDARDS


 XPATH
• SPECIFY PATH EXPRESSIONS TO IDENTIFY CERTAIN NODES (ELEMENTS)
OR ATTRIBUTES WITHIN AN XML DOCUMENT THAT MATCH SPECIFIC
PATTERNS
 XQUERY
• USES XPATH EXPRESSIONS BUT HAS ADDITIONAL CONSTRUCTS
7.3.1 XPATH: SPECIFYING PATH EXPRESSIONS
IN XML
 XPATH EXPRESSION
 RETURNS A SEQUENCE OF ITEMS THAT SATISFY A CERTAIN PATTERN AS
SPECIFIED BY THE EXPRESSION
 EITHER VALUES (FROM LEAF NODES) OR ELEMENTS OR ATTRIBUTES
 QUALIFIER CONDITIONS
• FURTHER RESTRICT NODES THAT SATISFY PATTERN
 SEPARATORS USED WHEN SPECIFYING A PATH:
 SINGLE SLASH (/) AND DOUBLE SLASH (//)
XPATH: SPECIFYING PATH EXPRESSIONS IN
XML (CONT’D.)
XPATH: SPECIFYING PATH EXPRESSIONS IN
XML (CONT’D.)
 ATTRIBUTE NAME PREFIXED BY THE @ SYMBOL
 WILDCARD SYMBOL *
 STANDS FOR ANY ELEMENT
 EXAMPLE: /COMPANY/*
XPATH: SPECIFYING PATH EXPRESSIONS IN
XML (CONT’D.)
 AXES
 MOVE IN MULTIPLE DIRECTIONS FROM CURRENT NODE IN PATH EXPRESSION
 INCLUDE SELF, CHILD, DESCENDENT, ATTRIBUTE, PARENT, ANCESTOR,
PREVIOUS SIBLING, AND NEXT SIBLING
XPATH: SPECIFYING PATH EXPRESSIONS IN
XML (CONT’D.)
 MAIN RESTRICTION OF XPATH PATH EXPRESSIONS
 PATH THAT SPECIFIES THE PATTERN ALSO SPECIFIES THE ITEMS TO BE
RETRIEVED
 DIFFICULT TO SPECIFY CERTAIN CONDITIONS ON THE PATTERN WHILE
SEPARATELY SPECIFYING WHICH RESULT ITEMS SHOULD BE RETRIEVED
7.3.2 XQUERY: SPECIFYING QUERIES IN XML

 XQUERY FLWR EXPRESSION


 FOUR MAIN CLAUSES OF XQUERY
 FORM:
FOR <VARIABLE BINDINGS TO INDIVIDUAL NODES (ELEMENTS)>
LET <VARIABLE BINDINGS TO COLLECTIONS OF NODES (ELEMENTS)>
WHERE <QUALIFIER CONDITIONS>
RETURN <QUERY RESULT SPECIFICATION>
 ZERO OR MORE INSTANCES OF FOR AND LET CLAUSES
XQUERY: SPECIFYING QUERIES IN XML
(CONT’D.)

 XQUERY CONTAINS POWERFUL CONSTRUCTS TO SPECIFY COMPLEX QUERIES


 WWW.W3.ORG
 CONTAINS DOCUMENTS DESCRIBING THE LATEST STANDARDS RELATED TO
XML AND XQUERY
OTHER LANGUAGES AND PROTOCOLS
RELATED TO XML
 EXTENSIBLE STYLESHEET LANGUAGE (XSL)
 DEFINE HOW A DOCUMENT SHOULD BE RENDERED FOR DISPLAY BY A WEB
BROWSER
 EXTENSIBLE STYLESHEET LANGUAGE FOR TRANSFORMATIONS (XSLT)
 TRANSFORM ONE STRUCTURE INTO DIFFERENT STRUCTURE
 WEB SERVICES DESCRIPTION LANGUAGE (WSDL)
 DESCRIPTION OF WEB SERVICES IN XML
OTHER LANGUAGES AND PROTOCOLS
RELATED TO XML (CONT’D.)
 SIMPLE OBJECT ACCESS PROTOCOL (SOAP)
 PLATFORM-INDEPENDENT AND PROGRAMMING LANGUAGE-INDEPENDENT
PROTOCOL FOR MESSAGING AND REMOTE PROCEDURE CALLS
 RESOURCE DESCRIPTION FRAMEWORK (RDF)
 LANGUAGES AND TOOLS FOR EXCHANGING AND PROCESSING OF META-DATA
(SCHEMA) DESCRIPTIONS AND SPECIFICATIONS OVER THE WEB
OTHER LANGUAGES AND PROTOCOLS
RELATED TO XML (CONT’D.)
X3D
 EXTENSIBLE 3D (X3D) IS AN INTERNATIONAL STANDARD FOR REAL-TIME 3D COMPUTER
GRAPHICS, THE SUCCESSOR TO VIRTUAL REALITY MODELING LANGUAGE (VRML).
XAML
 A DECLARATIVE XML-BASED VECTOR GRAPHICS MARKUP LANGUAGE.
XHTML
 A MARKUP LANGUAGE THAT HAS THE SAME DEPTH OF EXPRESSION AS HTML, BUT WITH A
SYNTAX CONFORMING TO XML.
XDI
 SHARING, LINKING, AND SYNCHRONIZING DATA USING MACHINE-READABLE STRUCTURED
DOCUMENTS THAT USE AN RDF VOCABULARY BASED ON XRI STRUCTURED IDENTIFIERS
XDUCE
 AN XML TRANSFORMATION LANGUAGE
OTHER LANGUAGES AND PROTOCOLS
RELATED TO XML (CONT’D.)
XUL
 A XML USER INTERFACE MARKUP LANGUAGE DEVELOPED BY
THE MOZILLA PROJECT.
XUPDATE
 A LIGHTWEIGHT QUERY LANGUAGE FOR MODIFYING XML DATA
VOICEXML
FORMAT FOR SPECIFYING INTERACTIVE VOICE DIALOGUES BETWEEN A HUMAN
AND A COMPUTER
ADSML
  MARKUP LANGUAGE USED FOR INTERCHANGE OF DATA BETWEEN ADVERTISING
SYSTEMS.
OTHER LANGUAGES AND PROTOCOLS
RELATED TO XML (CONT’D.)

MUSICXML
AN XML-BASED MUSIC NOTATION FILE FORMAT.
XML SIGNATURE
 AN XML SYNTAX FOR DIGITAL SIGNATURES
XML FOR ANALYSIS
 DATA ACCESS IN ANALYTICAL SYSTEMS, SUCH AS OLAP AND DATA MINING
XOXO
 AN XML MICROFORMAT FOR PUBLISHING OUTLINES, LISTS, AND BLOGROLLS ON
THE WEB
7.4 EXTRACTING XML DOCUMENTS FROM
RELATIONAL DATABASES
 CREATING HIERARCHICAL XML VIEWS OVER FLAT OR GRAPH-BASED DATA
 REPRESENTATIONAL ISSUES ARISE WHEN CONVERTING DATA FROM A
DATABASE SYSTEM INTO XML DOCUMENTS
 UNIVERSITY DATABASE
EXAMPLE
BREAKING CYCLES TO CONVERT GRAPHS
INTO TREES
 COMPLEX SUBSET WITH ONE OR MORE CYCLES
 INDICATE MULTIPLE RELATIONSHIPS AMONG THE ENTITIES
 DIFFICULT TO DECIDE HOW TO CREATE THE DOCUMENT HIERARCHIES

 CAN REPLICATE THE ENTITY TYPES INVOLVED TO BREAK THE CYCLES


OTHER STEPS FOR EXTRACTING XML
DOCUMENTS FROM DATABASES
 CREATE CORRECT QUERY IN SQL TO EXTRACT DESIRED INFORMATION FOR XML
DOCUMENT
 RESTRUCTURE QUERY RESULT FROM FLAT RELATIONAL FORM TO XML TREE
STRUCTURE
 CUSTOMIZE QUERY TO SELECT EITHER A SINGLE OBJECT OR MULTIPLE OBJECTS
INTO DOCUMENT
7.5 XML TREE (HIERARCHICAL)

 XML DOCUMENTS FORM A TREE STRUCTURE THAT STARTS AT "THE


ROOT" AND BRANCHES TO "THE LEAVES".
XML Tree
________________________________________
XML documents form a tree structure that starts at "the root" and
branches to "the leaves".
An Example XML Document
The image above represents books in this XML:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="web">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>
XML Tree Structure
XML documents are formed as element trees.

An XML tree starts at a root element and branches from the root to child elements.

All elements can have sub elements (child elements):

<root>
  <child>
    <subchild>.....</subchild>
  </child>
</root>

The terms parent, child, and sibling are used to describe the relationships between elements.

Parents have children. Children have parents. Siblings are children on the same level (brothers
and sisters).

All elements can have text content (Harry Potter) and attributes (category="cooking").
Self-Describing Syntax
XML uses a much self-describing syntax.

A prolog defines the XML version and the character encoding:

<?xml version="1.0" encoding="UTF-8"?>

The next line is the root element of the document:


<bookstore>

The next line starts a <book> element:

<book category="cooking">
The <book> elements have 4 child elements: <title>, <author>, <year>,
<price>.

<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>

The next line ends the book element:

</book>

You can assume, from this example, that the XML document contains
information about books in a bookstore.
The XML Prolog

This line is called the XML prolog:


<?xml version="1.0" encoding="UTF-8"?>
The XML prolog is optional. If it exists, it must come first in the
document.
XML documents can contain international characters, like
Norwegian øæå or French êèé.
To avoid errors, you should specify the encoding used, or save your
XML files as UTF-8.
UTF-8 is the default character encoding for XML documents.
Character encoding can be studied in our Character Set Tutorial.
UTF-8 is also the default encoding for HTML5, CSS, JavaScript,
PHP, and SQL.
________________________________________
XML Attributes

XML elements can have attributes, just like HTML.

Attributes are designed to contain data related to a specific element.

XML Attributes Must be Quoted


Attribute values must always be quoted. Either single or double quotes can be used.

For a person's gender, the <person> element can be written like this:

<person gender="female">

or like this:

<person gender='female'>
THE END
THANK YOU

You might also like