As they say “Necessity is the mother of invention”. There would have been no RDBMS kind of databases like Oracle if there was no computers.
Similarly there would have been no need of NoSQL kind of databases if there was no Internet explosion, no Facebook/social media, no cell phones etc. etc. All these new “trends” generated such huge data at such fast pace that RDMBS was simply not able to cope up. NoSQL helped in solving this problem of this new/huge/versatile/fast generating data.
Most NoSQL are distributed kind of database, means it runs on multiple machine to handle the heavy data load requirement. The goal of NoSQL database is to provide results faster, unlike RDBMS kind of databases where goal is to have well structured and modeled database.
NoSQL databases can be categorized into four main kinds:
- Key-Value Databases
Here keys are the identifiers to look up data, and the values are the data associated with the keys. So here there are NO tables/columns/constraints etc. Also you can not use SQL to query such databases.
Example: Amazon’s DynamoDB, Oracle BerkeleyDB
- Document Databases
As name suggests it stores “documents” but those are not normal kind of documents that you are aware of. A document here simply means a data structure. Document can be a standard format such as JavaScript Object Notation (JSON) or Extensible Markup Language (XML). Multiple attributes can be stored in single “document”
There is no fixed “schema” here in these kind of databases.
Example: MongoDB, CouchDB
- Column Family Databases
These kind of databases have columns so these have some similarity with RDBMS databases. But similarity are limited and differences are more. Example the rows here in a column family database can have different columns which can never be possible in RDBMS kind of databases. You can group columns into sets of related
Columns and name them “column families”
Here also, there is no fixed “schema” in these kind of databases
One familiar thing here is that you use SQL type language to query data. For an Oracle DBA, it is easy to learn the command syntax used here because of previous working with SQL.
Example: Apache Cassandra, Apache Hbase
- Graph Databases
First thing to keep in mind is that it has no relation with the “Graph” that we refer in daily life. Here the “Graph” word is coming from Mathematics graph theory.
A graph database uses “nodes” and “relationships”. A node in the graph database contains pointers to objects that are adjacent to it.
As such this is not very popular NoSQL database.
Example: Neo4j
- Oracle Multitenant DB 4 : Parameters/SGA/PGA management in CDB-PDB - July 18, 2020
- Details of running concurrent requests in Oracle EBS - May 26, 2020
- Oracle Multitenant DB 3 : Data Dictionary Architecture in CDB-PDB - March 20, 2020