|
There are no translations available.
Every now and then the same subject pops up in technical circles. Let's sum it up:
We do not like relational databases. They are too rigid. We do not like SQL. It is not powerful enough.
Of course, all of this very true. Relational databases are rigid in a sense that you need to design your tables and the relations between them. SQL is certainly not a Turing-complete language. The language will only do that much to help you retrieving data from your database; and then you are on your own, and you need to process the result sets in order to get what you want.
Of course, the Java crowd is again leading the pack and are whining the loudest, and repeat the mantra that we know them best for: Our way of building applications is the best, even if our applications are not necessarily that impressive.
Others even hold entire conferences and events on this subject and call themselves the "no to sql" movement:
Have you run into limitations with traditional relational databases? Don't mind trading a query language for scalability?
Wait a second. Scalability is a complex issue, if only, because bottlenecks tend to move place. As soon as you have removed a bottleneck in one place, something else will start hitting its own limits and form a new bottleneck. Therefore, you cannot trade a query language for scalability. Consequently, you will invariably end up with neither. In order words, by sacrificing SQL on the altar of the false god of scalability, you will get most likely not much in return.
So, they say that Google does not use relational databases for extremely large databases that contain indexes for text documents. Of course, they are right again. Unfortunately, their approach sounds like complaining about Newton:
His laws of gravity are limited. They simply do not work when objects are very small or very large. They do not work when the object's speed is very high, when temperatures are very high or extremely low. Newton's laws simply suck.
Of course, all of this is true. Newton's laws are indeed seriously incomplete. However, just whining about it, will obviously not help much. It took someone like Einstein and his General Theory of Relativity (GR) to design a model for gravity that also works in some of the more extreme circumstances.
But then again, Einstein's gravity model does not -- only -- work in these extreme circumstances. No. In normal circumstances, Einstein's GR will simply give the same results as Newton's laws.
This last bit is very important. Gravity laws that only work in extreme circumstances and not in normal ones, are not necessarily what we need. I doubt such model would ever have attained the stature of Einstein's GR.
In order words:
Real progress is incremental, and is usually made by staying compatible with all the horrors of the past.
Another reason why the approach of just whining about the limits of relational databases and SQL does not seem fruitful to me, is because relational databases, no matter how imperfect they are, are built in accordance with, and backed by, the very serious mathematical modeling proposed by Edgar F. Codd in his seminal paper A Relational Model of Data for Large Shared Data Banks. I would be more impressed if the whiners would do the effort to demonstrate the flaws in Codd's work, and propose mathematical alternatives that can do everything that Codd can do -- only more.
It indeed took someone like Einstein to defeat Newton, and it will also take a database theory-Einstein to defeat Codd. It cannot be achieved simply by whining.
|