170 likes | 299 Vues
This guide provides an insight into semistructured data models, emphasizing their flexibility and self-describing nature. Unlike relational databases, semistructured data, represented in formats like XML, allows for hierarchical structures and schema-less data. The document discusses key concepts such as XML's extensibility, well-formed versus valid XML, and querying methods including XPath and XQuery. With semistructured data becoming essential for information integration and data exchange, this resource highlights its applications across various systems and databases.
E N D
The Semistructured-Data Model Programming Languages for XML Spring 2011 Instructor: Hassan Khosravi
Semistructured Data • Another data model, based on trees. • Self-describing: • The data implicitly carries information about what its schema is. • May only carry the names of attributes (so possibly untyped), and has a lower degree of organization than the data in a relational database. • May have no associated schema (i.e. may be schema-less) • Motivation: • flexible representation of data. • sharing of documents among systems and databases. • Information integration • E.g. want to “merge” or query two databases. • Data exchange • E.g. two enterprises may want to exchange data (such as buyers and sellers)
Comparison with Relational Data • Inefficient: tags, which in effect represent schema information, are repeated • Access: data is structured hierarchically. • Better than relational tuples as a data-exchange format • Unlike relational tuples, semistructured data is self-documenting due to presence of tags • Flexible, non-rigid format: tags can be added • Allows nested structures • Wide acceptance, not only in database systems, but also in browsers, tools, and applications
XML • XML : Extensible Markup Language • A standard adopted in 1998 • While HTML uses tags for formatting (e.g., “italic”), XML uses tags for semantics (e.g., indicating “this is an address” or “this is a title”). • Key idea: create tag sets for a domain (e.g., genomics), and translate all data into properly tagged XML documents. • There are two different modes of use of XML: • Well-Formed XML allows you to invent your own tags. • No predefined schema • Valid XML conforms to a certain Document Type Descriptor DTD. • The DTD describes allowable tags and their nesting. • But still reasonably flexible – e.g. may allow optional or missing fields
Well-Formed XML • Begins with a declaration that it is XML • It has a root element that is the entire body of the text
Well-Formed XML Valid XML
Valid XML • Document Type Descriptor (DTD) • Grammar-like language for specifying elements, attributes, nesting, ordering, #occurrences • Special attribute types ID and IDREF • Example
Querying XML • Not nearly as mature as Querying relational • Newer • No underlying theory as in relational models • Sequence of development • Xpath – path expressions + conditions • Xquery – Xpath + full featured query language
XPath • Think of XML as a tree • path expressions + conditions
Xpath Syntax • Axes (to navigate around tree 13) • Parent:: • Following-sibling:: • Descendants:: • Self:: • / root element • name of element “book” • Use name as * to match everything • @ISBN • // matches all descendant • conditions [@price < 50] • [N] nth child author [2]
Xpath Demo • Example
XQuery Demo • Example