Go to home page mail me! RSS Feed

I'm done with RDBMS, I'm going NoSQL - Part 1

Saturday, February 06, 2010 12:35 AM

Yep, the title is right, I’ve been working for years and years building a toolset that will help me develop applications very fast without the setup delay. I want to be able to focus on the application itself rather than the entities around it and one of the most irritating bottlenecks is the database. I mean don’t get me wrong, I’ve worked out a way of speeding up that arena a bit such as using active record and other ORM tools. At this point after designing my database I can simply run my tool and it will create Active Record classes for that database and all the needy-greedy things that I need. However, time has to be allocated for architecting the database and implementing it and blah blah blah.

So, I may have eliminated the time it takes to use ADO and etc to get and put data into my database but the time of creating one is still there. Lets look at a very simple development life cycle, you start off with a project and you perform the discovery and research needed and you then head off to development which for the web, entails the following (design, code and data). Lets say you are building an ecommerce site, the database has to have numerous tables such as products, categories, etc and their relationships and store procedures, views, etc.. gracious – it doesn’t get any easier and the more complex the application gets the more complex your database gets.

Little bit off topic here but I’ll make my active record tool available to the public, as soon as I can find the time to publish it and write up a getting started guide of some nature.

Ok, I know you are probably wiggling your head and saying huh? If I don’t have a database, how should I store my data – I’m not saying no database, I say NOSQL, I just don’t believe in RDBMS’s anymore, why do we need them. I’ve been thinking about this for a while and asking myself, do I really need a RDBMS, I do need a place to persist my data but does it have to be an RDBMS, why are all the developers hooked on some sort of RDBMS. So, I set out to discuss with my team and some developer friends and I’ve yet to find a valid reason for an RDBMS, granted I have a few that stated ease of reporting – I’ll get to that point soon.

I’m done, tired of RDBMS and I demand a faster, smarter and easier solution, I want something that just works and scales as needed. We see new technologies everyday, new versions of everything - CSS, HTML, .NET, etc…everything is changing but there is at least one area that has remain constant for a long time, wait – two things. Commercial flight and Data Persistent. Well flight is a topic for another day, so let’s focus on data persistent; The way and means that we persist data hasn’t changed, the mindset of most developers haven’t change on how to store and retrieve their data and I am demanding that we change!!!

There are layers and layers or tools such as ORM that you can use to add just another layer on top of your database but at the end its only simulating simplicity and not really making it simple. You DON’T need an RDBMS, there are other ways of persistent your data such as object databases, key values stores, etc. The only people that tend to use light weight solutions like these days are the Google’s (http://labs.google.com/papers/bigtable.html), FaceBook’s(http://www.facebook.com/note.php?note_id=24413138919) and Amazon’s(http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html) – why don’t we all do the same? Why do we have to wait until we need to handle 5,000,000 page views before we start spinning the wheel. There are also object database such as db4o, object store or PERST – why not use them?

One of the most relevant points that I’m about to make is probably the key to the problem – developers and corporations are not aware that there are other means. Think outside the box people! The enterprises these days will not bulge if a certain system wasn’t built or used by Microsoft, why? Microsoft and the big dogs have our brains crushed on RDBMS but I don’t get free investment shares for using them!

I believe developers should start thinking databases only when they are needed, they should be implemented easily and quickly and in a very light weight fashion. I know so many smart people that have awesome ideas that they will like to build but they spend so much time in data structure that by the time they get it right, the idea is old and its 12 years later. Pun intended!

I’m I going crazy or do I have people that are thinking the same thing?

DotNetKicks Image

Your Comments.

  • # re: I'm done with RDBMS, I'm going NoSQL - Part 1

    GravatarI agree with your posting about moving to a NoSQL database solution. Like you said, why wait until you reach 5M hits/day to move to a database solution that mirrors that of Google (Google Bigtable) or Facebook's (Cassandra)? My concern is the lack of any kind of structured query - if you have a KVS or document store for your database, how can you access the information without knowing the key? If that can be solved efficiently, I think NoSQL could be a hugely popular alternative to RDBMS.

    great post!

    Braden
    nedarb at gmail.com

    Left by Braden at 2/18/2010 1:26 AM
  • # re: I'm done with RDBMS, I'm going NoSQL - Part 1

    GravatarThanks Braden but at the same time its no different from an RDBMS, how can you query an RDBMS database without knowing the table names or column names. Basically the RDBMS keeps track of those meta data items using a local store, therefore, with a KVS you could simply simulate that design by storing your keys in another key that is fixed and in essence storing your own meta data.

    Left by Rydal at 2/18/2010 1:21 PM

Your Reply.

Comment Form.

Fields denoted with a "*" are required.

You may also like to leave your email or website.

 
Please add 7 and 8 and type the answer here:

Preview Your Comment.

 
Next entries »