Documents, Data, and Databases

Web Architecture [./]
Fall 2009 — INFO 290 (CCN 42593)

Erik Wilde, UC Berkeley School of Information
2009-10-01

Creative Commons License [http://creativecommons.org/licenses/by/3.0/]

This work is licensed under a CC
Attribution 3.0 Unported License
[http://creativecommons.org/licenses/by/3.0/]

Contents E. Wilde: Documents, Data, and Databases

Contents

E. Wilde: Documents, Data, and Databases

(2) Abstract

XML databases often are a good solution for managing document-oriented content, but frequently it is necessary or dictated by existing solutions to use non-XML databases for managing document content. In most cases, these databases will be relational databases. There a two major approaches of how to manage document-oriented content in a relational database. The first approach is to define a mapping between document and relational structures and work with this mapping. The second approach is to use the XML-specific functionality, which is increasingly provided by relational databases, turning them into XML-aware databases.



E. Wilde: Documents, Data, and Databases

(3) Documents are Trees



E. Wilde: Documents, Data, and Databases

(4) Document Content vs. Document Metadata

  • Document content
    • title and abstract
    • chapters and sections
    • tables, lists, figures
    • footnotes, endnotes, sidenotes
    • bibliographic references
    • annotations
    • cross-references
  • Document metadata
    • title
    • creation date
    • author
    • affiliation (document and/or author)
    • version/revision information
    • keywords
    • summary and/or abstract


E. Wilde: Documents, Data, and Databases

(5) Metadata Metamodels



E. Wilde: Documents, Data, and Databases

(6) Storing XML



Relational Databases

Outline (Relational Databases)

  1. Relational Databases [2]
  2. Database Support for XML [4]
  3. XML Storage in Databases [9]
  4. XML in Relational Databases [5]
    1. SQL/XML [3]
  5. Conclusions [2]
Relational Databases E. Wilde: Documents, Data, and Databases

(8) Generic XML Storage



Relational Databases E. Wilde: Documents, Data, and Databases

(9) Tree Table

tree-table.png
ID Type Name Value Parent Left
1 Root
2 Element a 1
3 Element b 2
4 Element c 2 3
5 Text Text 3
6 Attribute att 42 4


Database Support for XML

Outline (Database Support for XML)

  1. Relational Databases [2]
  2. Database Support for XML [4]
  3. XML Storage in Databases [9]
  4. XML in Relational Databases [5]
    1. SQL/XML [3]
  5. Conclusions [2]
Database Support for XML E. Wilde: Documents, Data, and Databases

(11) Why XML and Databases?



Database Support for XML E. Wilde: Documents, Data, and Databases

(12) XML Interchange

xml-dbms-application.png

Database Support for XML E. Wilde: Documents, Data, and Databases

(13) XML Support in DBMS

xml-dbms-xmlsupport.png

Database Support for XML E. Wilde: Documents, Data, and Databases

(14) XML DBMS

xml-dbms-xdbms.png

XML Storage in Databases

Outline (XML Storage in Databases)

  1. Relational Databases [2]
  2. Database Support for XML [4]
  3. XML Storage in Databases [9]
  4. XML in Relational Databases [5]
    1. SQL/XML [3]
  5. Conclusions [2]
XML Storage in Databases E. Wilde: Documents, Data, and Databases

(16) Model Mapping



XML Storage in Databases E. Wilde: Documents, Data, and Databases

(17) XML is Text



XML Storage in Databases E. Wilde: Documents, Data, and Databases

(18) XML → ∗LOB

xml-storage-lob.png

XML Storage in Databases E. Wilde: Documents, Data, and Databases

(19) XML as a Datatype



XML Storage in Databases E. Wilde: Documents, Data, and Databases

(20) XML Datatype

xml-storage-datatype.png

XML Storage in Databases E. Wilde: Documents, Data, and Databases

(21) Mapping XML to Models



XML Storage in Databases E. Wilde: Documents, Data, and Databases

(22) Shredding (XML → Columns)

xml-storage-shredding.png

XML Storage in Databases E. Wilde: Documents, Data, and Databases

(23) XML as First-Class Citizen



XML Storage in Databases E. Wilde: Documents, Data, and Databases

(24) XML DBMS

xml-storage-xdbms.png

XML in Relational Databases

Outline (XML in Relational Databases)

  1. Relational Databases [2]
  2. Database Support for XML [4]
  3. XML Storage in Databases [9]
  4. XML in Relational Databases [5]
    1. SQL/XML [3]
  5. Conclusions [2]
XML in Relational Databases E. Wilde: Documents, Data, and Databases

(26) RDBish XML



XML in Relational Databases E. Wilde: Documents, Data, and Databases

(27) Problematic XML



SQL/XML

SQL/XML E. Wilde: Documents, Data, and Databases

(29) SQL/XML:2003

  • SQL/XML provides XML Support in DBMS [XML Support in DBMS (1)]s
    • it introduces XML as a Datatype [XML as a Datatype (1)]
    • it introduces a number of operations for generating XML from query results
    • it defines mappings to bridge both worlds (SQL and XML)
  • SQL/XML does not change anything about the database model
    • data is still stored in tables only
    • a column of a table may use the XML type
    • queries may return results in XML rather than as SQL result sets


SQL/XML E. Wilde: Documents, Data, and Databases

(30) SQL/XML Example

SELECT
  e.EmpId,
  e.FirstName,
  e.LastName,
  e.StartDate,
  e.EndDate
FROM Employees e WHERE e.EmpId = 12
SELECT
  XMLELEMENT (NAME "employee",
    XMLATTRIBUTES(e.EmpId as "id"),
    XMLELEMENT(NAME "names",
    XMLELEMENT(NAME "first", e.FirstName),
    XMLELEMENT(NAME "last", e.LastName)),
    XMLELEMENT(NAME "hire-dates",
      XMLATTRIBUTES(e.StartDate as "start", e.EndDate as "end")))
FROM Employees e WHERE e.EmpId = 12


SQL/XML E. Wilde: Documents, Data, and Databases

(31) SQL/XML:2007

  • Adds the concept of XML Tables
  • XML Tables are not tables, they are containers for XML
  • SQL/XML:2007 changes the database's data model
    • it is now possible to have a database with no tables
    • likely use cases are to have both: traditional and XML tables
  • SQL/XML:2007 defines a hybrid database: relational and XML database


Conclusions

Outline (Conclusions)

  1. Relational Databases [2]
  2. Database Support for XML [4]
  3. XML Storage in Databases [9]
  4. XML in Relational Databases [5]
    1. SQL/XML [3]
  5. Conclusions [2]
Conclusions E. Wilde: Documents, Data, and Databases

(33) Tables and Trees don't Mix



Conclusions E. Wilde: Documents, Data, and Databases

(34) Database Technologies do Mix



2009-10-01 Web Architecture [./]
Fall 2009 — INFO 290 (CCN 42593)