Wednesday, April 23, 2008
Bashing RDBMS
Please review the following interesting article by Jonathan Holland.
Why Relational Databases end up being the bottleneck
For the appropriate context of this debate, you can review this forum discussion on Joel's web site as just one example.
Stored Proc to avoid frequent builds
As is evident from the title and content of my blog, I'm a database professional. Nevertheless, I try to stay as objective as possible when evaluating this debate. I think you'll agree that my earlier article on J2EE vs RDBMS was as dispassionate and even-handed as possible.
That being said, the author makes an excellent point that's valid on more levels than merely the most direct.
I'll concede that many people strongly object to leveraging the RDBMS based on ignorance. They program poorly, resulting in poor solutions, so they blame the technology that is so darn hard to understand.
Without a good, solid foundation in RDBMS I can certainly understand how every schema you design and all the PL/SQL you hatch-patch together is probably going to compare quite unfavourably to what you designed in your more familiar language.
I'll also concede that getting the necessary foundation in RDBMS to leverage its power and to design superior solutions (depending on the situation) requires a real investment in time and study.
My final concession is that, generally speaking, while slapping something together in .Net or Java with only the basics under your belt isn't likely going to result in an award-winning application, I'd consider it reasonable to expect that it would probably still wind up being superior than something you slapped together in PL/SQL with a similar domain unfamiliarity.
My point? To leverage the power of RDBMS you obviously need developers with good, solid understandings of RDBMS, and they can be very hard to find. On the other hand, if you do as much as possible in Java or .Net not only would it be easier to find experienced developers, but you could probably get away with a higher ratio of less experienced developers. That won't always get you the best end result, but it will save you time and money.
Of course, I'm not advocating avoiding RDBMS simply because it's harder to find experienced specialists. I've seen how quickly people can become very proficient with even advanced RDBMS like Oracle (by reading awesome blogs, for instance). Furthermore, I've seen the vastly superior solutions you can sometimes come up with when designing database applications after having made that investment.
So while it is valid to claim that the benefits of a technology don't outweigh the investment required to use it properly, it isn't valid to dismiss a technology as being inferior just because you didn't make that investment.
As always I've enabled comments and I'd love to hear your thoughts on Jonathan Holland's article, the debate on Joel's web site, my response, and any of your feelings on this topic. Thanks in advance.
Why Relational Databases end up being the bottleneck
For the appropriate context of this debate, you can review this forum discussion on Joel's web site as just one example.
Stored Proc to avoid frequent builds
As is evident from the title and content of my blog, I'm a database professional. Nevertheless, I try to stay as objective as possible when evaluating this debate. I think you'll agree that my earlier article on J2EE vs RDBMS was as dispassionate and even-handed as possible.
That being said, the author makes an excellent point that's valid on more levels than merely the most direct.
I'll concede that many people strongly object to leveraging the RDBMS based on ignorance. They program poorly, resulting in poor solutions, so they blame the technology that is so darn hard to understand.
Without a good, solid foundation in RDBMS I can certainly understand how every schema you design and all the PL/SQL you hatch-patch together is probably going to compare quite unfavourably to what you designed in your more familiar language.
I'll also concede that getting the necessary foundation in RDBMS to leverage its power and to design superior solutions (depending on the situation) requires a real investment in time and study.
My final concession is that, generally speaking, while slapping something together in .Net or Java with only the basics under your belt isn't likely going to result in an award-winning application, I'd consider it reasonable to expect that it would probably still wind up being superior than something you slapped together in PL/SQL with a similar domain unfamiliarity.
My point? To leverage the power of RDBMS you obviously need developers with good, solid understandings of RDBMS, and they can be very hard to find. On the other hand, if you do as much as possible in Java or .Net not only would it be easier to find experienced developers, but you could probably get away with a higher ratio of less experienced developers. That won't always get you the best end result, but it will save you time and money.
Of course, I'm not advocating avoiding RDBMS simply because it's harder to find experienced specialists. I've seen how quickly people can become very proficient with even advanced RDBMS like Oracle (by reading awesome blogs, for instance). Furthermore, I've seen the vastly superior solutions you can sometimes come up with when designing database applications after having made that investment.
So while it is valid to claim that the benefits of a technology don't outweigh the investment required to use it properly, it isn't valid to dismiss a technology as being inferior just because you didn't make that investment.
As always I've enabled comments and I'd love to hear your thoughts on Jonathan Holland's article, the debate on Joel's web site, my response, and any of your feelings on this topic. Thanks in advance.
Comments:
<< Home
Good points well made, in both articles.
I had thought that the overall war for the heretical pragmatic use of the database was lost and that there were only a few pockets of resistance left.
But suddenly the tide seems to be turning slightly against ORM, even by seasoned database antipathists.
But is the new party line that you must use SimpleDB / Couch DB / BigTable?
There's a time and place for most approaches - logic-heavy RDBMS, ORM and/or the attribute:value approach of SimpleDB / Couch DB / BigTable.
But, as you say, if you don't have people who know what their doing you're going to struggle, as with anything.
Pragmaticism, people.
I had thought that the overall war for the heretical pragmatic use of the database was lost and that there were only a few pockets of resistance left.
But suddenly the tide seems to be turning slightly against ORM, even by seasoned database antipathists.
But is the new party line that you must use SimpleDB / Couch DB / BigTable?
There's a time and place for most approaches - logic-heavy RDBMS, ORM and/or the attribute:value approach of SimpleDB / Couch DB / BigTable.
But, as you say, if you don't have people who know what their doing you're going to struggle, as with anything.
Pragmaticism, people.
Thanks for (indirectly) explaining why wordpress blogs are so slow. I was just assuming proxy server problems. So why did so many Oracle blogs jump on the wordpress bandwagon?
word: ccsnxvnt
2nd word: funne
word: ccsnxvnt
2nd word: funne
Joel,
I would differ in your inference that wordpress blogs are slow. Wordpress is a nicely written application leveraging open source tools. The reason you may feel it is slow because of the plugins that people throw it left and right on the basic install.
regards
Nilesh
Dashboards
Post a Comment
I would differ in your inference that wordpress blogs are slow. Wordpress is a nicely written application leveraging open source tools. The reason you may feel it is slow because of the plugins that people throw it left and right on the basic install.
regards
Nilesh
Dashboards
<< Home