Chapitre 2 - Révision : Bases de données relationnelles
1. Modèle relationnel
Section intitulée « 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)
| 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é
Section intitulée « 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)
Section intitulée « 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
Section intitulée « 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
Section intitulée « 6. SQL - Interrogation »-- Sélection de colonnesSELECT col1, col2 FROM Table;SELECT * FROM Table;
-- FiltreSELECT * FROM Table WHERE condition;
-- Sans doublonsSELECT DISTINCT col FROM Table;
-- TriSELECT * FROM Table ORDER BY col ASC; -- croissantSELECT * FROM Table ORDER BY col DESC; -- décroissant
-- AgrégationSELECT COUNT(*) FROM Table;SELECT AVG(col), MIN(col), MAX(col), SUM(col) FROM Table;
-- Jointure (combiner deux tables)SELECT t1.col, t2.colFROM Table1 t1JOIN Table2 t2 ON t1.cle = t2.cle_etrangere;Ordre des clauses : SELECT → FROM → JOIN → WHERE → ORDER BY
7. SQL - Mise à jour
Section intitulée « 7. SQL - Mise à jour »-- InsertionINSERT INTO Table (col1, col2) VALUES (val1, val2);
-- ModificationUPDATE Table SET col = nouvelle_valeur WHERE condition;
-- SuppressionDELETE FROM Table WHERE condition;8. Opérateurs de comparaison
Section intitulée « 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
Section intitulée « 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/DELETEconn.close()Utiliser ? pour les paramètres (protection contre l'injection SQL).
© 2026 Corentin Dupont - LyCode
Créé avec Astro Starlight