Cours 6/11Stockage des donnees

Bases de Donnees

Decouvre les bases de donnees : comment elles organisent, stockent et permettent d'acceder a des millions de donnees en quelques millisecondes.

30 minNiveau Moyen80 XP
1

Qu'est-ce qu'une base de donnees ?

Une base de donnees (BDD) est un ensemble organise de donnees stockees electroniquement, concu pour etre facilement accessible, gere et mis a jour.

Pourquoi une BDD plutot qu'un fichier ?

Fichier (CSV, Excel)
  • - Limite a quelques milliers de lignes
  • - Un seul utilisateur a la fois
  • - Pas de securite integree
  • - Recherche lente sur gros fichiers
Base de Donnees
  • + Millions/milliards de lignes
  • + Acces multi-utilisateurs simultanes
  • + Securite et droits d'acces
  • + Recherche ultra-rapide (index)

Exemples concrets : Facebook stocke plus de 100 petaoctets de donnees. Google traite 8,5 milliards de recherches par jour grace a ses bases de donnees !

2

Le SGBD (Systeme de Gestion)

Un SGBD (Systeme de Gestion de Bases de Donnees) est le logiciel qui permet de creer, gerer et interroger une base de donnees.

SGBD Relationnels (SQL)

  • MySQL / MariaDB
  • PostgreSQL
  • SQLite
  • Oracle, SQL Server

SGBD NoSQL

  • MongoDB (documents)
  • Redis (cle-valeur)
  • Cassandra (colonnes)
  • Neo4j (graphes)
3

Structure d'une BDD relationnelle

Table (Relation)

Ensemble d'enregistrements de meme structure. Ex: table "eleves", table "notes".

Enregistrement (Ligne / Tuple)

Une entite complete. Ex: un eleve avec son nom, age, classe.

Attribut (Colonne / Champ)

Une propriete des entites. Ex: "nom", "age", "classe".

Cle etrangere (Foreign Key)

Lien vers une autre table. Ex: id_classe dans "eleves" pointe vers la table "classes".

Exemple : 2 tables liees

Table: eleves
id | nom | id_classe
1 | Alice | 1
2 | Bob | 2
3 | Clara | 1
Table: classes
id | nom_classe | prof
1 | 2nde3 | M. Dupont
2 | 2nde1 | Mme Martin

id_classe dans "eleves" fait reference a id dans "classes" (cle etrangere)

4

Operations CRUD

CRUD designe les 4 operations fondamentales sur les donnees : Create, Read, Update, Delete.

Create (INSERT)

INSERT INTO eleves (nom, age)
VALUES ('David', 16);

Read (SELECT)

SELECT nom, age FROM eleves
WHERE age >= 16;

Update (UPDATE)

UPDATE eleves
SET age = 17
WHERE nom = 'Alice';

Delete (DELETE)

DELETE FROM eleves
WHERE id = 5;
5

Python et SQLite

SQLite est une BDD legere integree a Python. Parfaite pour apprendre et les petits projets !

Creer et utiliser une BDD SQLite

import sqlite3

# Connexion (cree le fichier si inexistant)
conn = sqlite3.connect('ecole.db')
cursor = conn.cursor()

# Creer une table
cursor.execute('''
    CREATE TABLE IF NOT EXISTS eleves (
        id INTEGER PRIMARY KEY,
        nom TEXT NOT NULL,
        age INTEGER,
        classe TEXT
    )
''')

# Inserer des donnees
cursor.execute("INSERT INTO eleves (nom, age, classe) VALUES (?, ?, ?)",
               ("Alice", 15, "2nde3"))

conn.commit()  # Sauvegarder

Lire et interroger

# Lire tous les eleves
cursor.execute("SELECT * FROM eleves")
tous = cursor.fetchall()
for eleve in tous:
    print(eleve)

# Filtrer
cursor.execute("SELECT nom FROM eleves WHERE age >= ?", (16,))
majeurs = cursor.fetchall()

# Fermer la connexion
conn.close()

Quiz de validation

Question 1: Qu'est-ce qu'une base de donnees ?

Question 2: Que signifie SQL ?

Question 3: Quelle commande SQL permet de lire des donnees ?

Question 4: Qu'est-ce qu'une relation (ou table) dans une base de donnees ?

Question 5: Quelle est la difference principale entre SQL et NoSQL ?

A retenir

  • Une BDD stocke des donnees de maniere organisee et performante.
  • SQL = langage pour interroger les BDD relationnelles.
  • CRUD = Create, Read, Update, Delete (les 4 operations de base).
  • Python + SQLite = solution simple pour apprendre les BDD.

Dans ce cours


Progression du theme

6/11 cours completes

Pixel