NoSQL is a non-relational database system, which means it is not an SQL database, which has developed getting most from the UNIX system and for its user interface; it has used the UNIX shell language. In addition, the object databases can be classified as ‘NoSQL’ databases.
When working on complex operations with a large set of data using a table-based database system, it needs more resources and time consuming and it is actually an incredible piece of software but it might not be the best tool for every stored procedures. NoSQL is easy to use database system, its performance is fast, and it is a portable without any limitations other than the memory and the processor speed. It uses key, value pair to store data so, if you want to keep your data in a persistent state and have access to them, then this would be an ideal database system. The object databases are been based on client-centric architecture rather than server-centric architecture and the queries are performed on the client. In addition, without bound to server hardware limitation, the data can be partition and scaled easily. However, if you have to work with around 10 gigabyte of data table that must be update each second from various clients, you cannot rely on the NoSQL since it lacks of performance on very big tables. At the same time some NoSQL databases do not even support a basic feature like automatic partitioning, but they provide reliability features like distribution, replication, snapshot, record-level version history, and MVC. Those are the reasons people like NoSQL most.
It is closely integrated and an extension of the UNIX environment. When using NoSQL, a database is just a regular UNIX ASCII file and you can use, move and maintain it as any other files that you have access. In addition, it does not need a fixed schema or data type, it does not have the ‘JOIN’ query, and ACID (Atomicity, Consistency, Isolation and Durability) properties are not important here. Moreover, queries are relatively simple than relational database system. Moreover, when using the table-based database system, there will be problems regarding the versions, but in this NoSQL database, you do not have to care about which version you are developing and which version the clients have.
There are some well know companies use the NoSQL databases as their storage and retrieval database system. Facebook’s Cassandara, LinkedIn’s Project Voldemort, Google’s BigTable and Amazon’s Dynamo are some of them. Chordless, CouchDB, Db4o, GT.M, Hbase, Hypertable, Memcachedb, Mnesia, MongoDB and Redis are some popular open source NoSQL projects.
Nowadays, the web community is more developed than it was. Therefore, it needs more technology with high performance rather than the traditional way of RDBMS to store and retrieve data. To meet the requirements of many ecommerce applications it needs an object database such as NoSQL where you can work with your own preferred language. If you have problems related to the scalability like reaching the limit of the write capacity of a single database server, amount of data is greater than a single server can hold or your page loading is being slow as well as structure related problems like tables with lots of columns and a little of them are actually used, and have a lot of join queries to deal with or your schema have a large number of many to many join tables you can think about to change to NoSQL.
- (n.d.). Retrieved January 2010, from Ycombinator.com: http://news.ycombinator.com/item?id=859468
- (n.d.). Retrieved January 2010, from Odbms.org: http://www.odbms.org/blog/
- (n.d.). Retrieved January 2010, from Eflorenzano.com: http://www.eflorenzano.com/blog/post/my-thoughts-nosql/
- (n.d.). Retrieved January 2010, from Buytaert.net: http://buytaert.net/nosql-and-sql
- (n.d.). Retrieved January 2010, from Carsonified.com: http://carsonified.com/blog/dev/should-you-go-beyond-relational-databases/
- (n.d.). Retrieved from http://1.bp.blogspot.com/_j6mB7TMmJJY/SxKcnXYD5GI/AAAAAAAAAX0/5uC0_Uo1fU8/s1600/p1.png