In my latest role, as well as CF development, I have been asked to adopt more of a DBA role, as there is only one other guy here, who’s done everything for several years (so he probably has a few bad habits that I’ll need to deal with – we all do, don’t we?) and he’ll soon be moving to another project for a while, leaving me holding the baby, so to speak.
So, while I have almost 20 years of experience with various DBMS’, I have very little experience with the client’s choice of database engine, Oracle.
Some history: I started my development career (back in the stone age that was the mid 80’s) building very complex spreadsheets in Lotus 123 for a merchant bank, but soon convinced them to consider ‘proper’ databases, as Lotus wasn’t up to the job of handling such large datasets. The demo I set up to illustrate the differences literally shocked a few folks there – they had no idea you could do this kind of processing outside of a spreadsheet!
So we moved to dBase, then Paradox (which I continued to develop with for quite a few years), then Turbo Pascal and Visual Basic.
Fast forward to 1995 and I’d started developing pure HTML web pages, quickly employing VB again to create static HTML from form inputs in a VB app – elementary stuff now, I know, but a lot of folks I worked with at the time thought it was revolutionary! B->
In the meantime I had to develop for MS Access and Lotus Notes – these can hardly be filed under databases IMHO, but this was what I had to deal with.
By ‘97 I’d discovered CF and I honestly haven’t looked back. Of course, using CF pretty much requires a database to make it dance and sing, so MS Access soon gave way to MS SQL Server and eventually MySQL. On occasion I’ve needed to interface with Ingres and a couple of other less mainstream DBMS’.
My Oracle experience has been restricted to one short term contract for a particular client, where there was a DBA – one of the old school, who wouldn’t let the ‘pleb’ developers create anything in ‘his’ database and had to review and manually create everything himself from a command line – I’m sure you’ve all come across the type.
So, on the desk next to me are several books on Oracle – two on the DBA aspect, two on the SQL syntax etc. I’ve spent the past few weeks learning Oracle in some depth and I’m both impressed and horrified by some of the things I’ve found. I’m impressed that Oracle has been built to be such a resilient, hard-working beast, but am horrified by how cryptic and complex (and sometimes damnably infuriating!) even small things can be.
I don’t expect to become an Oracle DBA overnight, but I expect it to start becoming easier, now I have my reference library here and now I’ve been digging under the hood a bit. I’m sure it will be a useful skill in the long term, even if I don’t get a chance to use Oracle again, purely from the discipline I’ll need to deal with this beast and the need to learn how to do things ‘properly’.
On a related note, here’s a great blog post from Ben Forta on the subject of letting the database do what it’s intended for.