Posts for: #Database-Theory

Data Normalization in Relational Databases

As software engineers, we deal with data abstraction every day. We try to make sense of fuzzy real-world concepts and turn them into structured information, such as variables, functions, classes, and structs, that software can process. Working with data almost always involves storing it somewhere. One common option is a relational database, often called a SQL database. In this post, we will explore the normal forms of relational databases, what they are, and their benefits and drawbacks. We will cover only the first three because they are the most common in modern software engineering.

Read more →

CAP vs ACID vs BASE?!

CAP vs ACID vs BASE?!

Have you ever studied or worked with databases, come across abbreviations such as ACID, BASE, and CAP, and wondered what they mean? I have, and this post is the result of my research into them.

Is CAP a type of headwear?

CAP stands for Consistency, Availability, Partition-tolerance. Eric Brewer introduced it in a talk in 2000. He argued that when a partition disrupts network communication between nodes in a distributed system, the system must choose between consistency and availability. It cannot guarantee both. What are these properties, and why can we not have both?

Read more →