An open API service indexing awesome lists of open source software.

https://github.com/apaichon/db-design

Database Design Course
https://github.com/apaichon/db-design

Last synced: 3 months ago
JSON representation

Database Design Course

Awesome Lists containing this project

README

        

# Database Design Course

A comprehensive course covering database design principles, from fundamental concepts to advanced implementation patterns.

## Course Overview

This course provides in-depth knowledge of database systems, covering both traditional RDBMS and modern NoSQL approaches. Students will learn theoretical foundations and gain practical experience through hands-on workshops and real-world use cases.

## Table of Contents

### I. Introduction to Database Systems
- Course Overview and Learning Objectives
- Brief History of Database Systems
- Database Types Comparison
- Storage Types and Considerations

### II. Relational Databases
- Introduction to Relational Databases
- Database Architecture
- SQL and Relational Model
- Database Schema Design
- Data Types and Constraints
- Normalization and Data Integrity
- SQL Advanced Features
- Best Practices

### III. NoSQL Databases
- Introduction to NoSQL Databases
- MongoDB
- Data Modeling Patterns
- Best Practices

### IV. ACID vs BASE
- ACID Properties
- BASE Properties
- When to Use ACID vs BASE
- Key Differences

### V. Database Modeling
- Business Objectives
- Business Context
- Data Model
- Data Types
- Data Relationships
- Data Modeling Techniques
- Data Governance
- Policy
- Security
- Best Practices
- Common Pitfalls
- Incremental Design for Multiple Versions

### VI. Database Optimization
- Query Performance Statistics
- Database Caching
- SQL Query Optimization
- Schema Optimization
- Database Replication
- Backup and Recovery
- Best Practices
- Common Pitfalls

## Workshops

1. Data Modeling Workshop
- Multi-Tenant Chat App Design
- Schema Design Patterns
- Implementation Examples

2. Optimization Workshop
- Query Optimization
- Indexing Strategies
- Caching Implementation

3. Capacity Planning Workshop
- Metrics Collection
- Growth Projections
- Resource Planning

4. Backup and Recovery Workshop
- Backup Strategies
- Recovery Procedures
- Disaster Recovery Planning

## Use Cases

### System Architecture Design
1. Payment Gateway
2. Concert Ticketing
3. Government Bond Reservation
4. Online Lottery
5. Mixed Election System

## Prerequisites
- Basic understanding of programming concepts
- Familiarity with SQL syntax
- Basic command line knowledge

## Learning Outcomes
Upon completion, students will be able to:
- Design efficient and scalable database schemas
- Implement proper data modeling techniques
- Optimize database performance
- Choose appropriate database types for different scenarios
- Implement security best practices
- Plan for capacity and growth