Tuesday, March 9, 2010

The "Database is a Bucket" Mentality

Front and center again...I just woke up from a nap, I'm grumpy, so I must write. Besides, I haven't had a good rant in quite some time.

Friend of mine asked me last week for some advice, specifically asking if there was a tool to convert Oracle SQL Syntax to the ANSI SQL syntax. (A quick search turned up this (it was the first result), if you're interested).

I had to ask why.

Client is switching to an open source database, i.e. "free." Oracle licensing is way too pricey.

I'm sure Oracle costs a lot of money, it's pretty darn good software. Quite possibly the best in the world especially in the database realm. I've written about the incredibly feature rich goodness that is the Oracle database here here...actually, just trust me. It's in my name.

Why is there even a comparison?

Could it be that everyone out there believes that the sole purpose of a database is to store data? That it can't do anything else? The storage and retrieval of data...that's all it does of course.

It's like saying the Democrats and Republicans are the same...at face value, perhaps, but the devil is in the details.

This, this "Bit Bucket" mentality is what is so incredibly frustrating.

I am no position to argue the differences between the various flavors of database, I lack the experience. But if I were using SQL Server, I would leverage the shit out of it's capabilities. If I were using MySQL, I would leverage the shit out of it's capabilities. If I were using Firebird, I would leverage the shit out of it's capabilities. Same goes for every single flavor out there. Get my point here?

The database is NOT a bit bucket!

Do I need to use more 4-letter words?

I know that Oracle is feature rich and that 99% percent of your code can live in the database...think APEX and PL/SQL. You could probably put ALL of your code inside the database if you wanted to put the javascript in BLOBs as well.

Please, please please quit telling me they are the same...they are not.

Follow up rant by Mr. O'Neill can be found on this following post Everything is a Bit Bucket


kcin1204 said...

understand your frustration... don't understand your reasons :(

Maybe a breakdown on the differences that are applicable in this case would be helpful...


sent from reddit

oraclenerd said...

It's definitely not about a specific case, it's that many people don't seem to understand what it is a database is, and can do, either through ignorance or laziness.

I have this working, unproven theory that the proliferation of ORM tools such as Hibernate and (aspects of) the NoSQL movement are just work-arounds for learning the database. Maybe the developer has had very bad expereiences with DBAs who won't help the developer, accessing their database, understand how best to do it.


Noons said...

It used to be that folks who invested in general purpose computers actually sought to differentiate themselves from the crowd by implementing unique and highly optimized custom (I think the newspeak term is "bespoke"...) applications that gave their business the edge.

Ie: one would differentiate their use of a generic computing facility by the efficiency and suitability of their in-house use of that (espensive) hardware.

Nowadays of course what they want is a "one-size-fits-all" solution so that everyone can be equally inefficient for everyone.

Apparently, that "saves money" because "you don't need dbas"...

And the idiot's show rolls on...

oraclenerd said...


Long time no see! Hope all is well on your side of the world.

DBAs are completely unnecessary...I think that's in part (again) due to a serious lack of understanding of what it is you do.

I remember being so overwhelmed with the "Oracle" when I first encountered it. I thought I would never get over that conceptual hurdle. I did though, with quite a bit of hard work. I don't do DBA well (yet), but I do understand what is involved.

I was going to say, "How can you expect the decision makers to know and understand?" but then I thought better of it...it's their job to know and understand. Of course you wouldn't expect them to know how to identify a bottleneck or something...but the general principle? Hell yes they should know.

Tom said...

It really depends on the clients needs, but if it is simply a "cost" decision, then why not Standard Edition licensing?

You still get Oracle support, instrumentation, tons of tools to help troubleshoot and (yes it has fewer features than EE, but so do the "free" Open Source databases).

Martin Berger said...

I totally agree with your article.
Just a small comment on How can you expect the decision makers to know and understand?
For every decision maker it's a balance between need more data (to fulfill your know and understand) and be brave, act fast.
If I do not accept both needs, I always argue they are wrong.

DomBrooks said...

Ah... this old chestnut. You know where I stand.

Maybe the "database as not just a bit bucket" will join a long list of things which generally were a better idea but just got left by the wayside...

I find these days that you always have to qualify this argument with the caveats:
1. For data-centric applications
2. For non-database independent third party products (and even then...)

There are so many things influencing this situation:

- That 2 years experience seems to qualify you as a Senior Developer these days. How many of these get to see the consequences of their actions in data-centric applications?

- Cheap Outsourcing: build it, bung it over the fence, run away!

- Poor implementations of Agile.
- "quick give me a new application in two weeks"
- "database design isn't agile"
- "Bung everything in that table called data, we'll sort it out in the middle tier because that's the technogy I know"

- Ever decreasing price of memory: more often than not you can suck all of that data into memory and make sense of it there and get away with it (for a while)

- Oracle Licensing costs: it is very expensive, especially if you over license and they make it very difficult to reduce those costs.

- A general trend of not doing things properly.

Fact is that people stick with what they know, and these days not very many people know Oracle or even SQL.

We database-focused probably do stuff in the database sometimes that maybe shouldn't be there in an ideal world, but it's what we know and it's cheap and easy.

Most of the time, there's not a lot you can do about it.

I try to make a stand about such things whenever I can. Of course, you get labelled as a troublemaker, sidelined, or moved on, etc.

There are so many applications developed and out of the door these days - which is a good thing, right?
But how many of these have yet to experience the pain of other middle tier technologies needing to use the same data, mining and warehousing of the data, etc.

Ease today, pain tomorrow.

DomBrooks said...

-- ****************************
-- Start of comment (see your post yesterday)

Alternatively, look at it this way:

The consequences of this database bit bucket mentality (standard caveats apply - for data-centric, non-database independent third party products (and even then...)) are likely to keep us database specialist "dinosaurs" in demand for years to come.

Our future depends on it.

-- ****************************
-- End of comment

Noons said...


Couldn't agree more. Particularly the bit at the end about sharing middle-tier data, warehousing and so on.

The problem is the "hit and run" mentality of modern development and the idiots who foster it and think it's "great value".

It is truly staggering, the number of applications we've had dumped on us in the last 3 years which:

1- do not integrate into any of our existing processing.
2- do not work well other than in the vanilla "powerpoint demo" state.
3- are impossible to modify or extend in any usable shape or format.
4- are impossible to extract data from for further processing.

But, oh boy!, they are so cheap and such "great value for money"!

Of course the morons rsponsible for this will be long gone by the time the chooks come home to roost and someone higher up realizes they've been swindled at a very high rate...

And the situation will remain like this until those higher up realize that IT is not a field for amateurs.

oraclenerd said...

I deleted the previous comment by mcohen01 because it will become a post on it's own. Will post a link as soon as it's available.


oraclenerd said...

Mr. Cohen's comments in post form can be found here.