It has been a trend to employ NoSQL database in the modern application system development for either local or cloud platforms. We know that NoSQL stands for “Not the SQL relational database”, but more accurately, it is “Not only the SQL relational database.” NoSQL database can handle structured datasets well in the traditional way, but it does not adhere to the traditional RDMS structure by supporting semi-structured, unstructured data. Let’s do a quick review to see the advantages of NoSQL and to compare some features between CouchDB and Couchbase.
- Why Use NoSQL
We hear a lot about big data and the internet of things. To some extent NoSQL is used to fulfill this need. NoSQL is built upon multiple server nodes, each of which is cheap and easy to scale up and down. This type of architecture is used to ensure good performance, high availability, security, and disaster recovery. More specifically, we can observe several advantages to introducing NoSQL into the development rather than a traditional database.
- Higher performance for the front-end application. With NoSQL database, we will have an ability to add more nodes in the replicated or distributed method.
- It’s easy to manage the semi-structure or unstructured data. The NoSQL database is well designed and optimized to store and manage unstructured datasets. It is easy for application developer to retrieve or save data back to the NoSQL database.
- NoSQL is well suited to fast changing and agile development. In NoSQL, you don’t need a maturely designed schema and can adjust your DB design as needed.
- NoSQL Type
- Column oriented storage, such as Cassandra and HBase to store columns of data together, instead of rows.
- Document databases. It consists of a key plus complex data structure called a document, such as MongoDB, CouchDB and Couchbase.
- Graph stores are used to store network or graph types of data like social networking, such as Neo4J and Giraph.
- Key-value stores, as the simplest NoSQL, each item is stored as key + value. Examples Berkeley DB, Redis.
In fact, some NoSQL databases are being built in hybrid mode. For example, Couchbase has both a key-value store and a key-document store.
- CouchDB vs Couchbase
Initially, we are interested in their similar names. There is a story behind each of these names. Couchbase was started by Damien Katz, who originally created CouchDB. Couchbase is a merge between CouchDB and Membase, aiming to create an easily scalable and high performance database. If you want to learn more about the creator, go to his personal blog: http://damienkatz.net/. From this, we can guess they are strongly related but now separate product.
1.Open Source Type
CouchDB is an Apache open source project written in the Erlang language and is free for the user to download. Couchbase is also open source, but it has enterprise, community and developer editions as a portfolio of components. You can download the community edition.
We know that the traditional DBMS will use lock to ensure the table or a row can’t be modified by different users at the same time. There is no lock in the CouchDB, as it uses a concept called MVCC (Multi Version Concurrency Control). Couchbase, on the other hand, uses pessimistic locking.
Couchbase has its own query language called N1QL, a SQL-like query language for JSON. CouchDB doesn’t have Query language. They both have similar views that is multi-dimensional/geospatial.
The topology of Couchbase is Distributed, which means it is built from scratch and forms a cluster of nodes. Each node in the cluster acts as the owner for a portion of that hash space. But CouchDB is replicated and is master-master replication, making multi-site applications very easy to deploy.
As you may know, MongoDB is also in the form of key-document and widely used in application development. It has advantages and disadvantages over CouchDB & Couchbase. We could discuss this more in a future post.