Research SQL NoSQL - mikehov/Dating-app GitHub Wiki
SQL and NoSQL Research
Mike Hovenier | Tech-4
SQL and NoSQL
SQL stands for Structured Query Language
- Structure: Tables with rows and columns. A primary key, attirbute and Foreign key. | ACCOUNTS | | Primary key | Attribute | Foreign key | | ----------------- |:----------------:| ----------------:| | AccountId | CreationDate | 1 | | A1 | 2019-10-05 | 1 | | A2 | 2019-10-06 | 2 | | A3 | 2019-10-07 | 3 | | VARCHAR | DATE | INT |
| COUNTRY |
| CountryId | Attribut |
|---|---|
| 1 | GERMANY |
| 2 | USA |
| 3 | CANADA |
| 4 | NETHERLANDS |
| INT | VARCHAR |
- Storage: Concentrated, copy of your data.
- Scale: Vertical (better machine), Horizontal (more machines)
- Access: RAW SQL - Direct Database connection- Object Relational Mappers
NoSQL stands for Non relational SQL.
- Structure: Tables, documents, graphs, they relay on key value stores.
- Storage: Hashing punt
- Scale: Add more partitions
- Access: REST APIs, crud in vendor specific language.
Difference between SQL and NoSQL
| SQL | NoSQL |
|---|---|
| When you access patterns aren't defined | When you access pattern is defined |
| When you want to perform flexible queries | When you primary key is known |
| When you want to perform relational queries | When your data model fits (graphs) |
| When you want to enforce field constraints | When you need high performance and low latency |
| When you want to use a well documented access language (SQL) |
Small project + Low calse + Unknown access patterns (SQL) Large project + High Scale + Relational Queries (SQL) with read replicas Medium/Large project + High Scale + High Performance (NoSQL)
MongoDB
MongoDB is a database.
Source
AWS Simplified. (2020, February 10). SQL vs NoSQL Explained [Video file]. YouTube. Retrieved from https://www.youtube.com/watch?v=ruz-vK8IesE&t=310s