July 01, 2010, 8:09 PM — Last week, I wrote a brief tip about usage of the Oracle RDBMS. I've had a lot of database business to do since then; here are highlights worth sharing:
- What computing language is it most important for you to learn? My best answer to this oh-so-frequently-asked question is, "if you don't know it already, SQL." Here's why:
- It's supremely important commercially;
- It's an interesting declarative alternative to the dominant imperative fashion;
- The barriers to entry are low, and lower than they ever have been. I've written about this before: whereas a couple of decades ago, it could cost tens of thousands of dollars just to practice with a reliable database, now developers can install high-quality ones for free, and you can even visit SQLzoo for no-charge, live, interactive sessions. Don't wait another day.
- Yes, yes, I know about NoSQL and OODBMS and plenty more. I'll summarize what you need to know about those: learn SQL.
- I emphasize one of those last points: for no charge, developers can install highly-capable RDBMSs that do quite amazing things. "Amazing" here means "technically impressive": available RDBMSs in 2010 perform quite well, and boast features that provide an education that, a short time ago, would have been doctorate-level. While DB2 was the last major hold-out, several weeks ago it announced its own no-charge version.
- PostgreSQL is a remarkable achievement, and it's entirely free. Check out what the 9.0 release offers.
- SQLite is, if anything, even more noteworthy: not only is it free, but it's easy. It's also ubiquitous: there are at least dozens of copies of SQLite within a few feet of you right now:
- Every major smartphone embeds SQLite;
- Every major Web browser other than Internet Explorer embeds SQLite;
- Skype, iTunes, Playstation, Photoshop, Acroread, AIR, ... embed SQLite;
- Automotive devices, household appliances, networking equipment, ... embed SQLite; and
- It's almost certainly built in to many items that don't advertise its presence. The population of SQLite installations probably hasn't passed the human population yet, but it's no more than a few years off.
With release 3.7.0, you get write-ahead logs, nested transactions, and constrained foreign keys. In a stunning move just a couple of weeks ago, Oracle joined the SQLite Consortium. It's like Christmas, except better.
- Although DBMS is an old technology, it's also a fresh one, as the numerous implementation advancements just described attest. It's also a vital business; several billion-dollar acquisitions of the last year or so, including that of Sybase, have been founded on database.
- If last week's tip about configuration-free Oracle connections was meaningful to you, you might also like TOra and SQLRelay, two open-source projects with related uses. All of them mediate network connections in some sense, just as jeweler's pliers, a hammer, a sledge-hammer, a trip-hammer, and a hydraulic press are all for bendng things; my grandfather had a place for each of them in his blacksmith shop, though, and different development situations fit each of the technologies mentioned above. My thanks to Mike Johnson for alerting me to TOra: he summarizes its benefit as "no messing with configuration files, ever". SQLRelay consolidates configuration files down to one, even when working with different RDBMSs and/or for different users.