This repository contains projects and exercises for the ALX Software Engineering Program, specifically focusing on backend storage technologies. It covers the implementation, management, and interaction with Relational Databases (MySQL), NoSQL Databases (MongoDB), and In-memory Data Stores (Redis) using Python.
- Project Overview
- Technologies Used
- Project Structure
- Installation & Setup
- Learning Objectives
- Author
The goal of this repository is to demonstrate proficiency in backend data management. It progresses from advanced SQL concepts (optimization and automation) to modern NoSQL document storage, and finally to high-performance caching mechanisms using Redis.
- Language: Python 3.x
- DBMS: MySQL 5.7 / 8.0
- NoSQL: MongoDB
- Cache: Redis
- Libraries:
mysql-connector-pythonpymongoredis
Focuses on optimizing database performance and automating tasks within the database engine.
- Key Concepts:
- Constraints: Ensuring data integrity.
- Indexes: Optimizing query performance.
- Stored Procedures & Functions: Encapsulating logic on the DB side.
- Views: Creating virtual tables for simplified access.
- Triggers: Automating responses to data changes.
Introduction to non-relational databases and document storage.
- Key Concepts:
- ACID vs BASE models.
- CAP Theorem.
- Creating, Reading, Updating, and Deleting (CRUD) documents.
- Advanced querying and aggregation in MongoDB.
Implementation of caching and basic data structure manipulation in memory.
- Key Concepts:
- Redis strings, lists, sets, and hashes.
- Caching strategies.
- Python integration using
redis-py.
To run the scripts in this repository, ensure you have the necessary services running and Python libraries installed.
# Update package lists
sudo apt-get update
# Install Python 3 and pip
sudo apt-get install python3 python3-pippip3 install mysql-connector-python pymongo redis# MySQL
sudo service mysql start
# MongoDB
sudo service mongod start
# Redis
sudo service redis-server startBy the end of these projects, the following concepts are mastered:
- Relational vs. Non-Relational: Understanding when to use SQL vs. NoSQL.
- Optimization: How to make queries faster using indexes and caching.
- Data Integrity: Enforcing rules directly at the database level.
- Automation: Using triggers and stored procedures to reduce application-side logic.
Migrated from early ALX backend specialization (2024). Demonstrates practical implementations organized into three main modules: MySQL Advanced (covering constraints, indexes, stored procedures, views, and triggers), NoSQL fundamentals (covering NoSQL concepts, document storage, MongoDB), and Redis basic operations
Frankie Wilson
- GitHub: @realFrankieWilson