July 0910

No SQL. An end to relational databases?

The relational database has long been the backbone of applications that need to store data but as Object Oriented Programming has grown in popularity the mismatch between the relational database and the object based program has become more and more apparent.

There have been quite a few attempts to solve this problem, the traditional Data Access Layer that used to be a tedious manual exercise in ‘plumbing’ lead to code generation tools, such as MyGeneration and then to ORMs. While these have made the job of the developer easier by removing the need to keep the object data and the relational schema in sync it is side-stepping the problem and not directly addressing the issue which, as Jon Travis, principal engineer at Java toolmaker SpringSource says is that “Relational databases give you too much. They force you to twist your object data to fit a RDBMS [NoSQL based alternatives] just give you what you need”

The other big problem that must be faced when using a database is the cost, not many start ups can afford Oracle and though there are some free SQL databases such as

they often don’t provide the full power of their paid for equivalents.

An alternative

The NoSQL meet up got together 150 attendees on 11th June to demonstrate open source, distributed, non relational databases to break free from the tyranny of RDBMS’s. Even MySQL is falling out of fashion it seems, Facebook created Cassandra to power a new search feature rather than rely on the MySQL database, Cassandra can write to a data store taking up 50GB on disk in just 0.12 milliseconds, more than 2,500 times faster than MySQL.

What is NoSQL

NoSQL projects are not databases but do share some qualities for example Amazon’s Dynamo is “an incrementally scalable, highly-available key-value storage system” and Google refers to BigTable as “a distributed storage system for managing structured data that is designed to scale to a very large size: petabytes of data across thousands of commodity servers.”

Advantages to NoSQL

Generally they run on clusters of cheap PC servers which means they can be scaled up cheaply and without the complexity or cost of sharding. Though the same performance could be achieved using traditional RDBMSs the cost would not be worth it.

Nearly all code is procedural and that isn’t a good fit for the set based approach of SQL. So Because NOSQL sidesteps the slow process of mapping objects to SQL friendly formats the applications can perform much quicker and there is less time spent on development.

Permalink | Comments (0)
Comments are closed