Nowadays, there are two different kinds of databases:
- relational databases (aka, Oracle, Microsoft MS, IBM DB 2)
- document oriented databases (some lectures call them NO-SQL databases) (aka, Mongo DB, FileNet)
Let’s go to the subject,
Scaling a relational database
There are three operations involved in scaling a relational database:
- sharding. Represents the process of splitting a table into two ore more tables; Simply putting, sharding is the answer to scalability
- replication. Replication can take place at the database, or at the table level. When apply to the database, replication represents the process of synchronizing data across multiple servers. While at the table level, replication represents the process of copy the entire table and store it in different databases;
- partitioning. Represents the process of dividing the database into two ore more databases.
Replication provides redundancy and increases data availability with multiple copies of data on different database servers. It also provides the capability to recover from hardware failure and service interruptions.
The main purposes of why data partitioning is done are for enhanced performance and convenient management of backup and recovery processes. The partitioning is done through several techniques:
- data partitioning based on common affinity involved
- data partitioning based on the size of tables.
Scaling a document oriented database
Scaling a document oriented database is more simple. It implies only the process of sharding (aka, splitting a collection of documents into multiple servers).