The following table shows the comparison of SQL-92, JDBC, SQLJ, SQL:1999, ODMG 3.0, and JDO on their respective models, data definition languages, query languages, and data manipulation languages. The table is completed with the idea you will be using an object programming language such as Java or C++.
This table is not a comparison of database management systems (DBMSs). It is really a comparison of application program interfaces (APIs). This is because any of these APIs can be used with virtually any DBMS. For example, SQL-92 and JDBC are often associated with relational DBMSs. Both APIs, however, are also used with various object DBMSs. Conversely, ODMG 3.0 is often associated with object DBMSs, but in reality, it is also used with object-relational mapping products for relational DBMSs.
An important term to know is transparent persistence. You can see the term used in the table for the ODMG 3.0 and JDO specifications. For more information on transparent persistence, see:
- Transparent persistence for object databases (new window)
- Transparent persistence for relational databases using object-relational mapping products (new window)
For more information on each of the specifications, see the menu choices at the right on the bottom of the page.
| Feature | SQL-92 | JDBC | SQLJ | SQL:1999 | ODMG 3.0 | JDO |
| Model | relational model | relational model | Parts 0 & 1:
relational model
Part 2: SQL:1999 object model |
SQL:1999 object
model (more) |
Java, C++, and
Smalltalk object models enhanced for transparent persistence
The model with the transparent persistence enhancements is a superset of the OMG Common Object Model |
Java object model enhanced for transparent persistence |
| Data Definition Language | SQL | SQL | SQL | SQL | Object Definition Language (ODL) which is a superset of the OMG Interface Definition Language (IDL) | Java & XML |
| Query Language | Embedded SQL, Dynamic SQL, and Call-level interface | Call-level interface for SQL | Embedded SQL | Embedded SQL, Dynamic SQL, and Call-level interface | Object Query Language (OQL) which is based on SQL-92 | JDO Query Language
(JDOQL) (more) |
| Data Manipulation Language | Embedded SQL, Dynamic SQL, and Call-level interface | Call-level interface for SQL and Java | Embedded SQL and Java | Embedded SQL, Dynamic SQL, and Call-level interface | Java, C++, or Smalltalk | Java |
From the table, you can see that SQL differs from the other specifications because it defines its own model, data definition language, query language, and data manipulation language. Both SQL-92 and SQL:1999 do not build on any specifications other than versions of SQL. See the table below:
| SQL-92 | JDBC | SQLJ | SQL:1999 | ODMG 3.0 | JDO | |
| Specification based on: | SQL-89 | Java & SQL-92 | Java, JDBC & SQL:1999 | SQL-92 | OMG Common Object Model, OMG IDL, SQL-92, Java, C++, and Smalltallk | Java & XML |
![]()
More on the general topic: DBMS standards


based on 22 reviews.
based on 7 reviews.

based on 2 reviews.
based on 5 reviews.