<style>
.reveal {
font-size: 24px
}
</style>
### Relational Databases - The Basics
<img src="https://hackmd.io/_uploads/HkD-pWFca.jpg" height="300" />
- Relational databases structure data into tables, which are connected to one another through relationships.
- They follow a model called the relational model and use a language called SQL (Structured Query Language) for database interaction.
---
### Key Features of Relational Databases
<img src="https://hackmd.io/_uploads/BJsMXMKqT.png" height="300" />
- **ACID Properties**: Atomicity, Consistency, Isolation, Durability.
- **Structured Data**: Highly organized, allowing complex queries (SQL shines for complex queries)
- **Data Integrity**: Ensures accuracy and consistency of data through constraints.
---
### Popular Relational Database Examples
<img src="https://hackmd.io/_uploads/HJiTVGtca.jpg" height="300" />
- MySQL
- PostgreSQL
- Oracle Database
- Microsoft SQL Server
---
### When to Use Relational Databases?
- Perfect for transactional applications.
- Ideal for applications requiring complex queries.
- When data integrity and accuracy are paramount (ie finance).
---
### Introduction to Non-Relational Databases
- Non-Relational Databases, or NoSQL databases, store data in formats other than the tabular relations used in relational databases.
- They are designed for scalability, flexibility, and handling large volumes of unstructured data.
<img src="https://hackmd.io/_uploads/BJLdsiyja.png" height="250" />
---
### Key Features of Non-Relational Databases
- **Flexibility**: Easily accommodate changes and a variety of data types.
- **Scalability**: Designed to scale out by distributing data across multiple servers.
- **BASE principles**: a set of guidelines that non-relational databases follow to provide more flexibility compared to the strict ACID principles. BASE stands for Basically Available, Soft state, and Eventually consistent.
<img src="https://hackmd.io/_uploads/Skk6soJo6.png" height="250" />
---
### Types of Non-Relational Databases
- **Document**: MongoDB, Couchbase
- **Key-Value**: Redis, DynamoDB
- **Graph**: Neo4j, Amazon Neptune
---
### When to Use Non-Relational Databases?
- When dealing with large volumes of unstructured data.
- For applications requiring rapid development and flexibility.
- Where scalability is a critical concern.
---
### Combining Both Worlds
- Modern applications often leverage both relational and non-relational databases, choosing based on specific needs.
- Polyglot persistence: Using multiple database types within a single application to take advantage of the unique features of each.
{"title":"database ccc session","description":"Title Slide: Understanding Database Principles","contributors":"[{\"id\":\"8a2b9d3f-73af-48e2-bb38-13888be4577f\",\"add\":4591,\"del\":1919}]"}