A quick overview of the differences between SQL and NoSQL.
SQL
Structured Query Language (SQL) is used for relational databases, which are table based. For example, an column in table A (e.g. User_ID) may have a relation with a column in table B (e.g. Order_Ref) and table B may have a relation to a column in table C (e.g. Item_ID).
SQL databases are vertically scalable and good for complex queries environments. SQL follows the ACID (Atomicity, Consistency, Isolation, Durability) model.
SQL database software includes:
- mySQL (https://www.mysql.com)
- Microsoft SQL (https://www.microsoft.com/en-gb/sql-server/sql-server-downloads)
- PostgreSQL (https://www.postgresql.org)
- Oracle Database (https://www.oracle.com/uk/database/technologies/appdev/sqldeveloper-landing.html)
SQL software comes in a variety of closed source (Microsoft SQL, Oracle) and open source (PostgreSQL).
NoSQL
NoSQL can mean Not Only SQL, or NOt SQL. NoSQL is used in non-relational or distributed database systems to store structured, semi-structured or unstructured data.
NoSQL databases are horizontally scalable and excel at non-complex queries. NoSQL databases can be document based, key-value pair based or graph based. NoSQL databases use the BASE (Basically Available, Soft state, Eventually consistent) model.
NoSQL software includes:
- Redis (https://redis.com/)
- MongoDB (https://www.mongodb.com)
- Cassandra (https://cassandra.apache.org/_/index.html)
- Apache HBase (https://hbase.apache.org/)
- ElasticSearch (https://www.elastic.co)
ACID vs BASE
Medium covered ACID vs BASE in an article at: https://medium.com/geekculture/acid-vs-base-in-databases-1bcad774da26