XML Databases by Sebastian Graf. Table of Contents XML Database Overview XML Database Example XPath...
-
Upload
ashlie-stephens -
Category
Documents
-
view
244 -
download
0
Transcript of XML Databases by Sebastian Graf. Table of Contents XML Database Overview XML Database Example XPath...
XML Databases
by Sebastian Graf
Table of Contents
XML Database OverviewXML Database ExampleXPathXML-QLXQueryStoring of XML DatabasesRelational DB vs. XMLXML based Systems
XML Database Overview
XML DBTree structureThink in nodes & axes
Navigation in Tree XPath
XML Database Example<europe>
<country car_code = D memberships = org-eu org-nato …>
<name>Germany</name>
<capital>Berlin</capital>
<poulation> 82 440 134</population>
<country code>de</country code>
<bundesland>
<name>NRW</name>
<capital>Düsseldorf</captial>
<population>18 052 000 </population>
</bundesland>
</country>
</europe>
XPath
Describes how to process XML items logical path to a node (location path)
Provides abstraction for XML languagesXSLTXPointerXQuery
XPath
/europe/country/name
Selects all namesWith predecessor „country“
With predecessor „europe“
XPath examples
/europe/country[population > 50 000 000]
All countries with population > 50 000 000
/europe/country/@car_code
All car_codes of Europe
/europe/country[name = Germany]//capital
All captials in Germany
XPath Conclusion
XPath offers basics navigation and selection features
However it is no complete XML Query LanguageNo joins possible
Table of Contents
XML Database OverviewXML Database ExampleXPathXML-QLXQueryStoring of XML DatabasesRelational DB vs. XMLXML based Systems
XML-QL
Early proposal for XML Query languageStructure:
<Selection part> <construction part>WHERE #### IN #### CONSTRUCT ####
Result : XML Document
XML-QL Example
WHERE <country car_code=$id><name>$name</>
</>IN “…/europe.xml“CONSTRUCT <country car_code=$id name=$name</>
<result><country car_code=“D” name=“Germany”></><country car_code=“F” name=“France”></>…..
</result>
XQuery
XQuery should extend functionality of XML-QL
Design was related to SQLXQueries are of the form :
FOR ### LET ### WHERE ### RETURN ###
FLWR or FlowerAlso possible:
FOR-IN (FLWR) WHERE … (FLWR) … RETURN … (FLWR)…
XQuery example
Task : find all countires, that have a population > 1 000 000 and have at least 10 cities
FOR $c IN document(„europe.xml“) // countryLET $cities := $c // cityWHERE $c/@population > 1 000 000
AND count($cities) > 10RETURN <bigcountry population = {$c/@population}>
<name>{$c/@name}</name>{$cities}
</bigcountry>
XQuery Join example
Task : find all pairs of countires and cities, that have the same name
FOR $country IN //country, $city IN //city
WHERE $country/name/text() = $city/name/text()
RETURN <pair name={$country/name/text()}
country={$country/@car_code}
city={$city/@country}>
XQuery – what is missing?
No data manipulation in version 1.0Raw Data has to be accessed for data
manipulation
Planned for later versions: Delete Rename Insert Replace
Table of Contents
XML Database OverviewXML Database ExampleXPathXML-QLXQueryStoring of XML DatabasesRelational DB vs. XMLXML based Systems
Storing of XML Databases
First Approach : one CLOBWhole Database stored as valueVery easy to implementSQL statements cannot be used for query
Second Approach : transformationTransformation to RelationsSQL statements can be usedHigh transformation effort
Relational DB vs. XML
The SilkRouteAutomatic transformation : relations XMLPredefined DTD
XperantoMapping of relational Database to XMLAdds XML functionality to DB2
XML based Systems (B2B)
Software AGTamino
XML platform Storing Development Integreation
eXcelon Query interface for XPath
More about XML databases
Web & Datenbanken
dpunkt.verlag
by Erhard Rahm & Gottfried Vossen
ISBN : 3-89864-189-9
BA Library : INF G 5100.62
THE END
Thanks for your attention