Lists Home |
Date Index |
While searching for any XQuery APIs besides XQJ, I came across a comment about
XML-enabled databases in an article by Edd Dumbill. Edd quoted Ron Bourret as
mentioning "Oracle 9i release 2 was the first out with "native" XML support,
but their "native" XML support means storing the XML in a CLOB column [snip]".
That requires clarification because there are some persistent misconceptions
about XML and databases.
From the time people first started talking about "native XML databases", there's
been a myth that SQL databases cannot store and index XML documents in their
There's no rocket science involved in preserving a document's native format
(with markup) when stored in an SQL database. One approach is to store a
document in a table using a [CLOB | VARCHAR | NVARCHAR | TEXT ...] column. You
can do it, for example, with a simple Java program that uses a FileInputStream
and an SQL INSERT. That code has been around for years and there are even
examples using a LONG column for older Oracle 7 databases.
When you store a document in a text column, it's searchable using SQL queries.
Those queries use the indexing capabilities of software such as Oracle
interMedia Text Cartridge, DB2 Text Extender and Microsoft Search service.
Before the XML spec was published, people were concerned about using SQL for
text. Consequently, by 1997, Oracle 7 had the ConText option, Informix had the
Text DataBlade and IBM DB2 had the TextExtender. Other notable text searching
software for SQL databases included DIS Omnidex and a Virage DataBlade that
could do text and image searching. There were also products such as Excalibur
RetrievalWare that could search SQL, Lotus Notes, Microsoft Exchange and other
Developers wanted more, of course, such as being able to describe document
structure and shred documents (map document content to columns). That's also
been available for years with SQL platforms such as Microsoft SQL Server,
Oracle, Sybase and DB2 (XML Extender).
Even more desirable is implementing XML as an SQL type. This provides
efficiencies for the SQL engine and query optimizer. Informix was the first to
demonstrate that at XML conferences in 1999. Those demos showed the XML type
gave significantly better performance than XML stored in a CLOB column.
(IBM acquired Informix in 2001).
The SQL standard has evolved to reflect the realities of the marketplace by
adding SQL/XML and an XML type. As for XQuery, we can expect support in the SQL
standard and Java (JSR-222).
Does anyone know of an effort to publish an XQuery API for other languages?