Skip to content

Latest commit

 

History

History
42 lines (33 loc) · 1.9 KB

readme.md

File metadata and controls

42 lines (33 loc) · 1.9 KB

repo for the intermediate database course - Epita Fall 2024

This repo contains

  • the lessons slides and exercices
  • solutions to exercices
  • resources

The course discord channel is accessible at https://discord.gg/FQtE7GuFrz

Questions should be sent to [email protected]

Note: this is a work in progress

Scope

  • Advanced Database Design: understanding of normalization and denormalization concepts to optimize database structure
  • SQL Query Optimization: write high-performance SQL queries, execution plan analysis, index usage, optimization of joins and subqueries.
  • Index Creation and Management:
    • Understand the importance of indexes in improving database performance
    • learn to create and manage different types of indexes (B-tree, hash, etc.).
  • Views and Stored Functions:
    • create views to simplify complex queries
    • use stored functions to encapsulate complex business logic within the database.
  • Transactions and Concurrency Control: ensure data integrity in multi-user environments.
  • Database Security: Introduce database security concepts,
    • access control,
    • roles and permissions,
    • best practices for protecting sensitive data.
  • Maintenance and Monitoring: Implement preventive maintenance techniques and monitoring to ensure database availability and performance.
  • Cloud: how to setup a db on GCP / Azure / AWS and what are the common cloud services

Goals

By the end of this course, you will be able to:

  1. Design optimized relational databases for various applications.
  2. Write efficient and high-performance SQL queries.
  3. Create and manage indexes to improve query performance.
  4. Use views and stored functions to simplify and optimize data processing.
  5. Manage transactions and implement concurrency control mechanisms.
  6. Apply security measures to protect data.
  7. Ensure regular maintenance and monitoring of databases to prevent performance issues.