return to index
xsdb project page with download links
xFeedMe xsdb resources

Overview

The purpose of this section is to provide a short technical overview of the main features of the xsdb system. The intended audience of this section are technical people with some knowledge of database technology.

The xsdb model views databases as primarily collections of descriptions where descriptions are mappings of names to values. This allies the xsdb model closely with the relational model, but the xsdb model does not group descriptions into tables, distinguishing descriptions only by the content they contain.

All xsdb syntactic constructs are specified using XML conventions. The advantages of using XML are that XML is well understood, XML is somewhat human readable, and all programming environments of interest provide methods for parsing and manipulating XML.

Database documents, queries, and replies are interpreted as logical assertions. The meaning of a database document and the meaning of a database query are defined in terms of the set of models of the assertions using standard model theoretic methods. For example a simple relational table may be represented as a disjunction of conjunctions of atomic attribute assignments like the one given below

<context> <title>Supplier information</title>
    <and>
        <i at="snum">1</i>
        <s at="sname">Smith</s>
        <i at="status">20</i>
        <s at="city">London</s>
    </and>
    <and>
        <i at="snum">2</i>
        <s at="sname">Jones</s>
        <i at="status">10</i>
        <s at="city">Paris</s>
    </and>
    <and>
        <i at="snum">3</i>
        <s at="sname">Blake</s>
        <i at="status">30</i>
        <s at="city">Paris</s>
    </and>
    <and>
        <i at="snum">4</i>
        <s at="sname">Clark</s>
        <i at="status">20</i>
        <s at="city">London</s>
    </and>
    <and>
        <i at="snum">5</i>
        <s at="sname">Adams</s>
        <i at="status">30</i>
        <s at="city">Athens</s>
    </and>
</context>
The expression above represents the rows from the Supplier table from C. J. Date's canonical Supplier-Parts database.

The primary interaction with an xsdb database D is the query which proceeds as follows: A client program poses a query expression Q to a database context D and the context replies with a response expression R. A query response is correct if the conjunction Q and R is logically equivalent to the conjunction Q and D. In particulary this will be the case for the trivial response where R is the same document as D. A query response is complete if R is equivalent to Q and D. A special class of complete query responses are called normal because they are easy to manipulate. For example the following query extracts rows from the Supplier table.

<query>
<title> Suppliers not in London </title>
<and>
    <exclude>
        <s at="city">London</s>
    </exclude>
<consult
 href="http://athos.rutgers.edu/~aaron/supplier.xsdb"/>
</and>
</query>
The above query presumes the supplier table document is located at the URI http://athos.rutgers.edu/~aaron/supplier.xsdb. The response to the query combines the table expression with the query restrictions to produce the expression
<or>
    <and>
       <s at="city">Paris</s>
       <s at="sname">Jones</s>
       <i at="snum">2</i>
       <i at="status">10</i>
    </and>
    <and>
       <s at="city">Athens</s>
       <s at="sname">Adams</s>
       <i at="snum">5</i>
       <i at="status">30</i>
    </and>
    <and>
       <s at="city">Paris</s>
       <s at="sname">Blake</s>
       <i at="snum">3</i>
       <i at="status">30</i>
    </and>
</or>

Database documents may be distributed using web protocols such as HTTP. HTTP Responses to queries may be delivered as unmodified XML source documents to be processed by the client or via query servers which construct specific responses to each query.

Server query responses are permitted to contain too much information and the client is expected to complete the query by eliminating any unneeded information, if needed. For example if a query requests the prices for widgets within a context, the server may reply by providing all prices for all items -- the client is expected to complete the query by choosing only the prices for widgets.

A database assertion may refer to another database assertion document in a similar manner to the way a hypertext document may link to another document -- in this manner large databases may be built from small components and specialized databases may be built as restrictions placed on more general databases.

End of Overview
return to index