Skip to content

FrankieWilson1/python-backend-storage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🗄️ ALX Backend Storage

Python MySQL MongoDB Redis

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.

📚 Table of Contents

🔍 Project Overview

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.

🛠️ Technologies Used

  • Language: Python 3.x
  • DBMS: MySQL 5.7 / 8.0
  • NoSQL: MongoDB
  • Cache: Redis
  • Libraries:
    • mysql-connector-python
    • pymongo
    • redis

📂 Project Structure

1. MySQL Advanced

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.

2. NoSQL (MongoDB)

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.

3. Redis Basic

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.

⚙️ Installation & Setup

To run the scripts in this repository, ensure you have the necessary services running and Python libraries installed.

Prerequisites

# Update package lists
sudo apt-get update

# Install Python 3 and pip
sudo apt-get install python3 python3-pip

Install Dependencies

pip3 install mysql-connector-python pymongo redis

Service Setup (Linux/Ubuntu)

# MySQL
sudo service mysql start

# MongoDB
sudo service mongod start

# Redis
sudo service redis-server start

🧠 Learning Objectives

By the end of these projects, the following concepts are mastered:

  1. Relational vs. Non-Relational: Understanding when to use SQL vs. NoSQL.
  2. Optimization: How to make queries faster using indexes and caching.
  3. Data Integrity: Enforcing rules directly at the database level.
  4. Automation: Using triggers and stored procedures to reduce application-side logic.

Note:

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

👤 Author

Frankie Wilson

About

Backend storage implementations and database management tools. Covers MySQL Advanced features (indexes, triggers, procedures), NoSQL/MongoDB integration, and Redis operations.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages