| | August 20158CIOReviewThe general sentiment in the community is SQL versus NoSQL with two polarized camps, each trying to prove one sides' superiority over the other. Which is better? Well, that depends on the application and its requirements. If we remove the polarized lenses, it becomes clear that SQL and NoSQL are complementary technologies, not competing technologies. Each has its strengths and weaknesses and the choice to use one or the other (or both) is what we will briefly delve into below:Let's look at NoSQL first, where the key motivation is to simplify database design and horizontal scalability. With NoSQL there are three main types of databases: key-value, graph, and document. Respective examples include Riak, Neo4j, and MongoDB. While these technologies succeed at simplification, they tend to sacrifice data consistency and ACID transactions. This data inconsistency generally takes the form of eventual consistency, making the argument for simplified database design misleading at best. NoSQL does not remove the necessity of database design; it just moves that burden into the application. Operationally, these databases ease the automation of scaling and managing clusters, but many have immature backup and recovery tools.When it comes to speed, NoSQL databases claim to be significantly faster than SQL databases. Be cautious however, as with all performance claims, your mileage will vary and both systems must be tuned to your specific situation. Which is fastest is largely determined by hardware and the ability to tune each individual system to that hardware and to the application's unique data access patterns. This is important not to overlook since the way in which the application accesses data is quite often the culprit for poor database performance, regardless of whether the database is SQL or NoSQL.Now take SQL, where the key motivation is data consistency, and we find four main relational databases: MySQL, PostgreSQL, Oracle, and SQL server. These databases are well established and well understood. SQL databases provide tools to ensure that the data stored in them is reliable and correct at all times. This has traditionally come at the expense of horizontal scalability, but new advances in these technologies have provided ways to achieve horizontal scalability more easily than before, though still not as easily as most NoSQL databases. The theory here is that by assuming some or all of the burden for database design, that burden is reduced or removed from SQL and NoSQLBy Craig Thayer, VP, Sazze, IncpinionIn My
<
Page 7 |
Page 9 >