Aller au contenu

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 : SELECTFROMJOINWHEREORDER 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).