Type: Classification Essays
Sample donated: Roosevelt Sharp
Last updated: September 28, 2019
Relational databases are those databases that rely on tables, columns, rows or schemas to organize and retrieve data. A NoSQL originally refers to non-Structured Query Language or non relational database giveing a structure for storing and getting data that is presented in means other than the tabular form or relations likewise used in “relational databases”.Such databases existed from late 90’s, but didn’t obtain the NoSQL brand until a rise of popularity in the early twenty-first century, caused by the needs of Web 2.0 companies such as Yahoo, Facebook, Google, and Amazon. NoSQL databases are increasingly used in big data and real-time web applications. These are called “Not only SQL” for the fact that they may support SQL-like query languages.Why the need of NoSQL?RDBMSs operate with a relational model defined by schema, where each table is a strictly defined collection of rows and columns and a relationship can then be established between each row in one table and a row in another table.
Relational data can be queried and manipulated by using SQL query language. But what if it is inconvenient to store data in the form of table(s) or we have other kind of relationships between records and want to quickly access the data? The emerging alternative is NoSQL. In an many of the cases, how the use of RDBMSs leads to problems due to fixed schema, which makes them ill-suited for changing business requirements, as schema changes are problematic and time-consuming, causing insufficient performance and latency for the new requirements and limited ability to scale cost-effectively. The data structures used e.
g. key-value, wide column, graph, or document are different from those used by default in relational databases, making some operations faster and more flexible sometimes.The main reason not to use an SQL database is scalability, especially given the write-heavy workloads generated by modern web applications. An app like Facebook can’t be made to work on a straightforward SQL database, except by massive partitioning and sharding, which requires significant adjustments to the app logic as well. That’s why Facebook developed Cassandra. Types of nosql databases model and their classification with examples:Wide-Column:This type of databases store data in tables with rows and columns similar to RDBMS, but names and formats of columns can vary from row to row across the table. Wide-column databases group columns of related data together.
E.g. Accumulo, Cassandra, Druid, HBase, Vertica.Document:This type of databases typically store self-describing JSON, XML, and BSON documents.
E.g. Apache CouchDB, ArangoDB, BaseX, Clusterpoint, Couchbase, Cosmos DB, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDBKey-value: This type of databases emphasize simplicity and are very useful in accelerating an application to support high-speed read and write processing of non-transactional data. e.g. Aerospike, Apache Ignite, ArangoDB, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, InfinityDB, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB, SDBM/Flat File dbmGraph: This type of databases uses graph structures to store, map, and query relationships.
They provide index-free adjacency, so that adjacent elements are linked together without using an index. E.g.
AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, VirtuosoMulti-model: This type of databases leverage some combination of the four types described above and therefore can support a wider range of applications. E.g. Apache Ignite, FoundationDB, ArangoDB, Couchbase, MarkLogic, InfinityDB, OrientDBKey benefits:NoSQL supported by column oriented databases where RDBMS is row oriented database. It seems to work better on both unstructured and unrelated data.
NoSQL databases give up some features of the traditional databases for speed and horizontal scalability.NoSQL databases on the other hand are perceived to be cheaper, faster and safer to extend a pre-existing program to do a new job than to implement something from scratch.Today’s applications are expected to run non-stop and must efficiently manage continuously growing amounts of multi structured data in order to do so.
This has caused NoSQL to grow from something to a serious consideration for every database, from small shops to the enterprise.