From e596fd90394857b7a9cfe04b94e38ce1d57e279c Mon Sep 17 00:00:00 2001 From: Donne Martin Date: Tue, 28 Feb 2017 05:01:31 -0800 Subject: [PATCH] Add Relational database management system section --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index 3fcd140..e9aa655 100644 --- a/README.md +++ b/README.md @@ -882,3 +882,24 @@ Systems such as [Zookeeper](http://www.slideshare.net/sauravhaloi/introduction-t * [Service oriented architecture](https://en.wikipedia.org/wiki/Service-oriented_architecture) * [Introduction to Zookeeper](http://www.slideshare.net/sauravhaloi/introduction-to-apache-zookeeper) * [Here's what you need to know about building microservices](https://cloudncode.wordpress.com/2016/07/22/msa-getting-started/) + +## Database + +

+ +
+ Source: Scaling up to your first 10 million users +

+ +### Relational database management system (RDBMS) + +A relational database like SQL is a collection of data items organized in tables. + +**ACID** is a set of properties of relational database [transactions](https://en.wikipedia.org/wiki/Database_transaction). + +* **Atomicity** - Each transaction is all or nothing +* **Consistency** - Any tranaction will bring the database from one valid state to another +* **Isolation** - Excuting transactions concurrently has the same results as if the transactions were executed serially +* **Durability** - Once a transaction has been committed, it will remain so + +There are many techniques to scale a relational database: **master-slave replication**, **master-master replication**, **federation**, **sharding**, **denormalization**, and **SQL tuning**.