In system design, relational databases are a traditional choice for data storage, offering structured schema and powerful query capabilities, contrasted with NoSQL databases’ flexible schemes and scalability. By Aleksandr Gavrilenko.
The article then dives into following topics, each is explained from various points of view and with cons and pros mentioned:
- Terminology
- Database design strategies
- ER (Entity Relationship) diagram
- Design patterns
- Normalization
- Denormalization
- Entity-Attribute-Value (EAV)
- Master-detail
- Table inheritance
- Snowflake
- Audit logging
- Versioning
- Scaling and fault tolerance
- Master-slave (primary-secondary) replication
- Multi-master (master-master, primary-primary ) replication
- Sharding
- Federation
Design patterns for relational databases are reusable solutions to common problems encountered when designing database schemas, querying data, and implementing database-related functionalities. Scaling and fault tolerance are critical aspects of managing relational databases, especially in environments that require high availability, performance, and consistency. These concepts ensure that a database can handle growing amounts of work and recover from hardware or software failures without data loss. Nice one!
[Read More]