What are the major differences between databases? What are the major differences between databases? database database

What are the major differences between databases?


Oracle's CONNECT BY is a limited version of standard SQL's recursive SQL. DB2s and MSSQLs recursive "common table expressions" are a bit harder to code but offer more power than Oracle's CONNECT BY. (The next version of Oracle's database should get real recursive SQL, though.)

Flash back is a truly unique Oracle feature which reflects how deep MVCC is built into Oracle. MVCC is how Oracle deals with concurrency, as opposed to traditional pessimistic locking; and concurrency handling is one of the places where there is a lot of difference between databases (although most DBMSes are moving away from concurrency solely based on pessimistic locking). The fact that Oracle builds to firmly on MVCC is a significant advantage, in my opinion.

Regarding TOP results: All DBMSes have ways to do this.

Apart from that:

SQL-wise: Oracle has the most advanced and standards-compliant datetime handling. Oracle is strong on OLAP-related functions (but so are both DB2 and MSSQL; OLAP functions is an area where the open source DBMSes have had some trouble keeping up). Lately, Oracle seems to have basically ignored the SQL standard, in that its standards compliance is stagnating (in contrast to MSSQL, for example, which has improved a lot here); I blame this on arrogance due to Oracle's large market share.

Conceptually: Oracle and MySQL are examples of two very different ways of handling databases. In Oracle, it takes forever to create a database, and a database is a very heavy weight object, so in the Oracle world, a database tends to contain a lot of tables, possibly in different "schemas". In MySQL, a database is a very light-weight object, so MySQLers tend to have many databases which comparably fewer tables in each (which is probably why they don't seem to complain about MySQL's lack of schemas).

Oracle (like DB2) is an example of an DBMS which almost includes an entire operating system: It performs many features that a DBMS like MSSQL/MySQL/PostgreSQL would let the operating system's filesystem and virtual memory systems handle. Personally, I prefer the latter approach, but Oracle's way makes Oracle perform very much the same no matter which operating system is being used.

Compared to MSSQL, Oracle runs on many more platforms (like most other DBMSes; MSSQL is probably the only important DBMS which only runs on Windows).

Oracle offers an other way of clustering than most other DBMSes: RAC. I've heard many horror stories about RAC, but if you can get it working, it's probably fair to say that you have a very powerful (and expensive) clustering solution.

Regarding management, I find Oracle to be surprisingly complex to manage, compared to most other DBMSes.

Then, there are serious pricing differences, of course: Oracle's pricing is very high, and rising.


SQL Server has a built in Auto Incrementing feature you can add to a column when you want a simple incrementing integer for a table.

In Oracle, you need to create a sequence and apply the appropriate trigger to have it increment itself.