Fiche de révision - Bases de données¶
1. Modèle relationnel¶
- Relation = table (lignes × colonnes)
- Attribut = colonne (avec un nom et un domaine/type)
- Enregistrement = ligne (n-uplet de valeurs)
- Domaine = type de l'attribut (INT, VARCHAR, FLOAT, DATE, etc.)
- Schéma = structure d'une relation (nom + attributs + domaines + clés)
2. Clés¶
| Type | Rôle |
|---|---|
| Clé primaire | Identifie de manière unique chaque enregistrement (unique, non NULL) |
| Clé étrangère | Fait référence à la clé primaire d'une autre table (lien entre tables) |
3. Contraintes d'intégrité¶
| Contrainte | Signification |
|---|---|
| Domaine | Chaque valeur respecte le type de son attribut |
| Entité | La clé primaire est unique et non nulle |
| Référence | Toute clé étrangère correspond à une clé primaire existante |
4. Anomalies (mauvaise conception)¶
| Anomalie | Problème |
|---|---|
| Redondance | Information dupliquée → incohérence possible |
| Insertion | Impossible d'ajouter sans données annexes |
| Suppression | Perte d'informations involontaire |
| Mise à jour | Oubli de modifier toutes les copies |
Solution : normaliser en décomposant en plusieurs tables liées par des clés étrangères.
5. SGBD - Services rendus¶
| Service | Description |
|---|---|
| Persistance | Données conservées sur disque, survivent aux pannes |
| Accès concurrents | Plusieurs utilisateurs simultanés, sans conflit |
| Efficacité | Optimisation des requêtes, index, cache |
| Sécurisation | Authentification, droits d'accès, audit |
6. SQL - Interrogation¶
-- Sélection de colonnes
SELECT col1, col2 FROM Table;
SELECT * FROM Table;
-- Filtre
SELECT * FROM Table WHERE condition;
-- Sans doublons
SELECT DISTINCT col FROM Table;
-- Tri
SELECT * FROM Table ORDER BY col ASC; -- croissant
SELECT * FROM Table ORDER BY col DESC; -- décroissant
-- Agrégation
SELECT COUNT(*) FROM Table;
SELECT AVG(col), MIN(col), MAX(col), SUM(col) FROM Table;
-- Jointure (combiner deux tables)
SELECT t1.col, t2.col
FROM Table1 t1
JOIN Table2 t2 ON t1.cle = t2.cle_etrangere;
Ordre des clauses : SELECT → FROM → JOIN → WHERE → ORDER BY
7. SQL - Mise à jour¶
-- Insertion
INSERT INTO Table (col1, col2) VALUES (val1, val2);
-- Modification
UPDATE Table SET col = nouvelle_valeur WHERE condition;
-- Suppression
DELETE FROM Table WHERE condition;
Toujours vérifier le WHERE
UPDATE ou DELETE sans WHERE affecte toutes les lignes.
8. Opérateurs de comparaison¶
| Opérateur | Signification |
|---|---|
=, <> |
Égal, différent |
<, >, <=, >= |
Comparaison |
BETWEEN a AND b |
Entre a et b |
LIKE 'motif' |
Motif (% = tout, _ = 1 car.) |
IN (a, b, c) |
Appartient à l'ensemble |
IS NULL / IS NOT NULL |
Vide / non vide |
AND, OR, NOT |
Combinaison logique |
9. Python et SQLite¶
import sqlite3
conn = sqlite3.connect("base.db")
c = conn.cursor()
c.execute("SELECT * FROM Table WHERE col = ?", (valeur,))
resultats = c.fetchall()
conn.commit() # après INSERT/UPDATE/DELETE
conn.close()
Utiliser ? pour les paramètres (protection contre l'injection SQL).