[Comment heard from an XML afficianado] A: Uh…Yes, lots of them…

User-schema separation always leads to the recollection that “user-schema separation is the way things are defined in ANSI SQL 1999″. Which brings up the subject of standards. Touting the ANSI SQL 1999 standard is passe now, because the ANSI SQL 2003 is out. And SQL 2003 “supercedes and obsoletes all previous ANSI SQL standards”, the standard itself actually states this. Wow, does this make SQL 1992 twice-obsolete then?

Couple of points distinguish between the SQL and XML standards:
1. XML standards are usually hammered out (well version 1.0 is) before there are any/many official implementations to have “backward compatibility” issues. SQL standards began in earnest after the big players implemented RDBMS. ANSI SQL standards are much less rigidly followed.
2. SQL standards have a notion of “partial compliance”, levels of compliance, and optional features much more than XML standards do. Both leave things open for “implementation dependent”.
3. XML standards are freely posted on W3C website, though you must pay money to join the W3C. ANSI SQL, along with other ANSI standards are available at cost. Hmmm… what does this indicate? Dunno.

Standards commitees are fairly political (that’s an understatement). There’s a story that the original ANSI database standard committee was supposed to hammer out a standard for CODASYL databases, and RDBMS companies “stole the show”. That’s probably the tip of the iceburg.

For your edification and enjoyment, here are the official parts of the SQL 2003 specs:

— Part 1: Framework (SQL/Framework)
— Part 2: Foundation (SQL/Foundation)
— Part 3: Call-Level Interface (SQL/CLI)
— Part 4: Persistent Stored Modules (SQL/PSM)
— Part 9: Management of External Data (SQL/MED)
— Part 10: Object Language Bindings (SQL/OLB)
— Part 11: Information and Definition Schema (SQL/Schemata)
— Part 13: Routines and Types Using the Java™ Programming Language (SQL/JRT)
— Part 14: XML-Related Specifications (SQL/XML)

Part 14 is new. And is the basis for SQL Server 2005′s XML data type. There are also parts (XA was part 6, I believe) that moved on to its a different spec series. And SQL/MM (multimedia, used to be part 8?) that has its own whole set of specs now. As does SQL Temporal (time series).

I wonder what happened to Part 5 – SQL Language Bindings? And I always wonder why parts 10 and 13 are couched entirely in terms of a programming language that is not itself an ANSI or even ECMA standard, but a “de facto” standard (rather than a “de jure” standard). Oh well…

The coolest SQL standard books are Jim Melton’s two part series on SQL:1999. And SQL-99, Complete Really. Although they’re both now officially obsolete (wonder if they’ll be a SQL-2003 Complete Really?). Enjoy.