"Free Database" Comparison
This isn't meant to be a comprehensive discussion of all databases. Instead, its a comparison of key features[^1] in the free offerings from commercial vendors.
Oracle XE | MS SQL Express | IBM DB2 Express-C | ||
---|---|---|---|---|
Feature | Free | Commercial | ||
Vendor-provided patches & updates | No | Yearly | Fixpacks | |
Free for production environments | Yes | Yes | Yes | Yes |
Max data size | 4gb | 4gb | Unlimited | |
Max RAM usable | 1gb | 1gb | 2gb | 4gb |
Max # CPUs | 1 | 1 | 2 | 4 |
Max # concurrent connections | none 1 | 5 | none | none |
Vendor 24/7 support | No | No | No | Yes |
Non-disruptive DB upgrade | No | Yes | Yes | n/a |
Clustering available | No | No | No | Yes |
Hi availability | No | No | No | Yes |
DB Upgrade price | $5800/cpu/yr | $3500/svr/yr | $3k/svr/year | |
DB Upgrade complexity | Medium | Medium | Low | |
XML capabilities | Low | High | High | |
XML-based data mapping to code | Low | ?? | ?? |
default=20↩︎
Notes:
- I gave DB2 two columns because it has an interesting licensing model. All of the commercial features exist in the free database; they're just disabled by default. Purchasing a licence key activates them.
- DB2 Express-C allows more RAM, disk, and CPU to be used by the database than its competition. That means I can run larger queries against more data with DB2 than with other products.
- All three databases support XML processing. Oracle XE seems to have the lowest-level support, meaning that I must do more work to setup and run an XML-based project. DB2 and MS SQL seem to have much better support, with the ability to map XML elements to table columns, and the ability to use XQuery to retrieve data. (I'm unsure about the complexity of round-trip engineering from business objects to the database and back).
[^1] the key features that I am personally interested in