Algèbre Relationnelle

Ludovic Deneuville

Algèbre Relationnelle

Principaux opérateurs

Opérateur Description
σ (Sélection) Filtrer les lignes selon une condition
π (Projection) Sélectionner des colonnes spécifiques
U (Union) Combiner les lignes de deux relations
− (Différence) Retourner les lignes présentes dans une relation mais pas dans l’autre
∩ (Intersection) Trouver les lignes communes aux deux relations
⨝ (Jointure) Combiner deux relations basées sur une condition
x (Produit Cartésien) Combinaison des colonnes

Sélection

  • Permet de filtrer les lignes d’une table selon une condition
  • ⚠️ Mot clé SQL associé : WHERE
SELECT *
  FROM echecs.joueuse
 WHERE elo < 2400;

Projection

  • Permet de sélectionner certaines colonnes d’une table.
  • Mot clé SQL associé : SELECT
SELECT nom,
       prenom
  FROM echecs.joueuse;

Union

  • Combine les lignes de deux tables ayant le même nombre de colonnes et des types compatibles
SELECT nom,
       prenom
  FROM echecs.joueuse

UNION

SELECT nom,
       prenom
  FROM echecs.joueur;

Tip

  • UNION : Combine les résultats des requêtes et supprime les doublons
  • UNION ALL : Combine les résultats des requêtes et garde tous les doublons

Différence

  • Lignes qui se trouvent dans la première relation mais pas dans la seconde
-- Joueuses évoluant dans un club français et pas dans un club belge
SELECT nom,
       prenom
  FROM echecs.joueuse_club_fr

EXCEPT

SELECT nom,
       prenom
  FROM echecs.joueuse_club_be;

Intersection

  • Lignes communes aux deux tables
-- Joueuses évoluant dans un club francais et dans un club belge
SELECT nom,
       prenom
  FROM echecs.joueuse_club_fr

INTERSECT

SELECT nom,
       prenom
  FROM echecs.joueuse_club_be;

Jointure

  • Permet de combiner deux tables en se basant sur une correspondance entre les colonnes
SELECT j.nom,
       j.prenom,
       c.nom AS club
  FROM echecs.joueuse j
  JOIN echecs.club c USING (id_club);

Produit Cartésien

SELECT *
  FROM echecs.joueuse j,
       echecs.club c;
-- WHERE j.id_club = c.id_club