Let's get started.
Huge number of projects are using databases. Sometimes, chosing the database is not easy especially in big projects. Because there are too many databases. After we decide database then we need to specify managing the data and data models.
In this point there are two basic system model: ACID and BASE model. We need to know them firstly. Also we need to know CAP theorem to basic theorem of these models.
CAP theorem explains that a system can not provide consistency, availability and partition tolerance at the same time. System can provide only two of them at the same time.
You can reach the detailed article via : Explanation of CAP Theorem
Seperation of these two models is depends on CAP theorem
BASE model provides the highly availability. So according to CAP theorem BASE selects the consistency or partitioned tolerance. If a system is distributed we need to select the partition tolerance otherwise we need to take care of consistency. With non-relational databases BASE system model is hugely using. We can see BASE system model in MongoDB, Cassandra, etc...
What BASE stands for:
Some examples of BASE System model :Most of social medi applications are using BASE model. NoSql databases are using BASE model like MongoDB, Cassandra, DynamoDB, Redis. A good modeled NoSql database is a very good way to manage huge amount of data.
ACID database model promises the highly consistency of the database. A database model is always respond the last updated data. ACID database model can not be used in distributed systems. Because in distributed systems, data consistency is not 100%. So we can only increase the availability. Before responsing to the request database firstly make sure data is updated.
Some examples of ACID System model :
We can see the ACID model at banking databases. MSSQL, MySql, Oracle, PostgreSQL and other relational databases are examples of ACID model. Some of NoSQL databases are trying to provide the ACID properties. They are trying to increase consistency and also they are providing the Durable property with writing the datas on hard disk.
How to select the good system model for our project
No body can say one of them is the best option without knowing the requirements of the project.
That is all in this article.
Have a good system designing.
Burak Hamdi TUFAN