SQL vs NoSQL базы данных



В работе с базами данных используются 2 разных технологии, на которых строится архитектура и работа с данными.



🔎 SQL базы данных работают со структурированными данными, где важна модель данных, типы данных и определенные взаимосвязи между данными.



Также SQL базы данных подчиняются принципам ACID при работе с транзакциями:



- Atomicity (атомарность)

- Consistency (согласованность)

- Isolation (изолированность)

- Durability (долговечность)



Когда применяются SQL базы данных:



- важна определенная модель данных

когда важны описанные взаимосвязи между сущностями (таблицами)

- типы данных каждого атрибута однозначно определены

- нет необходимости гибкого изменения структуры данных

- нет динамичной потребности масштабироваться



🔎 NoSQL базы данных (Not only SQL) применяются в том случае, когда нет определенных требований к структуре данных, либо данные могут динамически менять свою структуру (тип данных, модель данных)



Когда лучше применять NoSQL базы данных:



- данные являются полуструктурированными или неструктурированными

- типы данных могут динамически изменяться

-нет четко сформированных взаимосвязей между сущностями или файлами данных

- данных очень много, нет четких требований к их хранению

- необходимость в быстром масштабировании хранилища



Приведу несколько примеров тех и других БД



SQL базы данных:

MySQL

PostgreSQL

Oracle

SQL Server



NoSQL базы данных:

MongoDB

Hbase

Cassandra

Elasticsearch