> -----Original Message-----
> From: Linda Grimaldi [mailto:firstname.lastname@example.org]
> Sent: Monday, February 05, 2001 11:05 AM
> To: Benjamin Franz; email@example.com
> Subject: RE: XML versus Relational Database
> Would anyone care to itemize the features they consider essential in a
> "decent" XML database? I have my own, but I am hopelessly biased...
Here's my *personal* list, in rough order of importance/priority, of what an ideal XML DB would support; I'm hopelessly biased too, but Tamino does NOT meet all of them :~) I would be very interested in discussion of which are most useful, what important features I missed, etc. (I'm talking about a low-level DB "engine" architecturally similar to Oracle, DB2, etc. not a full-fledged "Applications Server" with content management, revision control, B2B/EAI/etc. integration ... all that is nice, but could be layered on or bundled with the DB engine).
- XML-like storage model - Does the product logically store data in a way that is compatible with the structure of XML, as opposed to forcing a user-defined normalization to RDBMS format?
- XML view or RDBMS data - Does the product allow a dynamic XML view, or at least an easy way to import into XML, of data in an external RDBMS?
- Transaction support - Is there built-in support for multi-operation transactions that can be committed or rolled back as a unit?
- XML standards for database definition - If a database schema must be defined, is it easy to import an XML DTD or schema to define the database structure?
- XML standards for for queries - Is Xpath or something very similar supported as an XML query language, and/or is there a firm commitment to support the W3C XML Query language as it evolves?
- XML standards for data manipulation - Is the W3C DOM API supported as a means of accessing and manipulating data in the DB?
- Built-in XSLT - Does the database support XSLT transformation within the database engine (or a query language that allows data transformation on retrieval)?
-Data binding support - Is some tool that generates Java or C++ classes to access and manipulate data supported?
- Advanced text search - Does the query system support advanced text searching features, such as proximity searches, fuzzy searches, stemming, or conceptual searches?
- Dynamic format evolution - Is it easy to change the database definition as the original DTD/schema evolves?
- Extended SQL queries - Is a SQL-based query language with extensions for XML supported as a query language?
- Persistent DOM view - Can the database be viewed/manipulated as a huge persistent DOM object?
- SAX API support - Is the SAX API supported?
- Data replication - Is there built-in support for geographically distributing databases and keeping them synchronized?
- Validate on Store - Does the DB optionally prevent XML instances that are not valid against a defined DTD/Schema from being stored?
- Xlink, Xinclude, XML Topic Maps, etc. support in the database - Can the database resolve various linking/inclusion directives and return the selected instance and related instances in a single operation?
- Conventional database API support - Does the DB allow the XML data to be accessed -- to the extent logically possible -- via the Microsoft Active-X Data Objects API, J2EE Connectors, or some other API that will be familiar to experienced database people?