230 likes | 377 Views
XML Databases. by Sebastian Graf. Table of Contents. XML Database Overview XML Database Example XPath XML-QL XQuery Storing of XML Databases Relational DB vs. XML XML based Systems. XML Database Overview. XML DB Tree structure Think in nodes & axes Navigation in Tree XPath.
E N D
XML Databases by Sebastian Graf
Table of Contents • XML Database Overview • XML Database Example • XPath • XML-QL • XQuery • Storing of XML Databases • Relational DB vs. XML • XML based Systems
XML Database Overview • XML DB • Tree structure • Think 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 languages • XSLT • XPointer • XQuery
XPath /europe/country/name Selects all names • With 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 Language • No joins possible
Table of Contents • XML Database Overview • XML Database Example • XPath • XML-QL • XQuery • Storing of XML Databases • Relational DB vs. XML • XML based Systems
XML-QL • Early proposal for XML Query language • Structure: • <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 SQL • XQueries are of the form : FOR ### LET ### WHERE ### RETURN ### FLWR or Flower • Also 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“) // country LET $cities := $c // city WHERE $c/@population > 1 000 000 AND count($cities) > 10 RETURN <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.0 • Raw Data has to be accessed for data manipulation • Planned for later versions: • Delete • Rename • Insert • Replace
Table of Contents • XML Database Overview • XML Database Example • XPath • XML-QL • XQuery • Storing of XML Databases • Relational DB vs. XML • XML based Systems
Storing of XML Databases • First Approach : one CLOB • Whole Database stored as value • Very easy to implement • SQL statements cannot be used for query • Second Approach : transformation • Transformation to Relations • SQL statements can be used • High transformation effort
Relational DB vs. XML • The SilkRoute • Automatic transformation : relations XML • Predefined DTD • Xperanto • Mapping of relational Database to XML • Adds XML functionality to DB2
XML based Systems (B2B) • Software AG • Tamino • 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