Image

Listens: Art Of Noise - Paranoimia

RDBMS-world here I come...

I'm installing Oracle for my first time.

I have a bit of an RDBMS-phobia, so this is a major step in the right direction.

Object-Oriented Databases (ODBMS) have always been my area of expertise. For about 5 years, during the most profitable of my life so far, that's all I did. I am an expert in an ODBMS called Objectivity, but I've also worked in another one called ObjectStore.

Unlike Relational Databases (RDBMSs), an ODBMS stores objects directly in the database without mapping them to tables. All relational databases (such as Oracle) store their data in tables, and most commonly access the data via SQL, a "Standard Query Language" designed for querying tabular data.



If you want to organize your data in non-tabular formats, it becomes very difficult to use SQL to access them. Nor would you want to since all the interesting relationships between objects can not be described adequately.

With an ODBMS, you can store any kind of data type directly. Attach a java method on the object that you want, and you have a customized query that can do just about anything. You want a class hierarchy 6 levels deep and polymorphic method invocation on a sorted b-tree of pointers to persistent objects? No problem. You want many-to-many associations? That's what's what we do best. Massively scalable trees and hash tables? No problemo.

There are graduate level courses on Data Warehousing which go into great detail on Dimensional Modeling. Dimensional Modeling is a hack - a way of representing non-tabular data so that you can do these "star joins" and get all sorts of interesting insights into data. It is elegant considering the underlying technology, but it requires you to structure your data warehouse around maintaining redundant data stores of historical snapshots.

There is a lot of expertise and trusted technology involved, so Objectivity has had great difficulty breaking into this market. Let's face it - ODBMSs are really hard to use, and are not for the masses. Further, most of them are not very scalable or reliable. Objectivity, in contrast, is a very expensive, high-performance ODBMS that scales and distributes better than any of its competitors. Many of their customers are in the scientific community, doing physics experiments on huge amounts of data collected from scientific instruments. Deployed applications can add terabytes of data each day. For many years, it was Objectivity that gave ODBMSs a good reputation.

I keep thinking that once I am really good in an RDBMS, I can put together all the technologies I already know, I then I should be able to build something impressive. Why have I been avoiding RDBMSs all this time? People kept telling me "don't bother - you don't need RDBMSs - ODBMSs are the way of the future."

Unfortunately, the industry kept going SQL, JDBC, and built layers on top of that. There are so many creative solutions to this whole tabular data types limitation. I bet on the wrong horse.

So you'd think I would have no problem learning RDBMSs, right? And you're probably right.
Except that to install an Oracle database and test it, I need a really big-ass computer to work on, and I need to secure it. I have just an insecure Linux box with all my personal data on it too. I use it for so many other things, I feel rather uncomfortable putting such a monster application on it.

Well, my fears were well-founded. Running the root install script had it "stat"-ing all my directories everywhere. I still don't know why. Got lots of errors - missing libraries all through the install process. And in the end, I had dozens of expensive processes eating up all my memory and bringing my system to a crawl.

Rebooted. The processes are all gone. Phew! I'll get back to trying to figure out why the install failed later.

I think I'd rather use Oracle on a computer at the university. I am not a DBA, or even a sysadmin, and I just want to learn how to use it first!