Skip to content

📐 2. ThĂ©orĂšmes fondamentaux & DĂ©monstrations clĂ©s

📐 2. ThĂ©orĂšmes fondamentaux & DĂ©monstrations clĂ©s

Section titled “📐 2. ThĂ©orĂšmes fondamentaux & DĂ©monstrations clĂ©s”

L’algĂšbre relationnelle est un ensemble fermĂ© d’opĂ©rateurs formels manipulant des relations pour en produire de nouvelles. On distingue les opĂ©rateurs fondamentaux et les opĂ©rateurs dĂ©rivĂ©s.

  1. SĂ©lection (σ\sigma) : Soit rr une relation sur RR et ϕ\phi une formule logique (prĂ©dicat) sur les attributs de RR. σϕ(r)={t∈râˆŁÏ•(t) est vrai}\sigma_{\phi}(r) = \{ t \in r \mid \phi(t) \text{ est vrai} \}
  2. Projection (π\pi) : Soit X⊆RX \subseteq R un ensemble d’attributs. πX(r)={t[X]∣t∈r avec t[X] la restriction de t a X}\pi_X(r) = \{ t[X] \mid t \in r \text{ avec } t[X] \text{ la restriction de } t \text{ a } X \}
  3. Produit cartĂ©sien (×\times) : Soit r1r_1 sur R1R_1 et r2r_2 sur R2R_2 avec R1∩R2=∅R_1 \cap R_2 = \emptyset. r1×r2={t1âˆȘt2∣t1∈r1∧t2∈r2}\text{r}_1 \times r_2 = \{ t_1 \cup t_2 \mid t_1 \in r_1 \land t_2 \in r_2 \}
  4. Renommage (ρ\rho) : Permet de modifier le nom des attributs ou de la relation. ρA→B(r)\rho_{A \to B}(r)
  5. Union (âˆȘ\cup) et DiffĂ©rence (−-) : NĂ©cessitent des relations compatibles (mĂȘme schĂ©ma).

ThĂ©orĂšme d’exprimabilitĂ© des opĂ©rateurs dĂ©rivĂ©s

Section titled “ThĂ©orĂšme d’exprimabilitĂ© des opĂ©rateurs dĂ©rivĂ©s”

La jointure naturelle (⋈\bowtie), l’intersection (∩\cap) et la division (Ă·\div) ne sont pas fondamentales car elles s’expriment Ă  partir des 5 opĂ©rateurs de base.

DĂ©monstration (Cas de la jointure naturelle) : Soit r1(A,B)r_1(A, B) et r2(B,C)r_2(B, C). La jointure naturelle r1⋈r2r_1 \bowtie r_2 se dĂ©finit formellement par : r1⋈r2=πA,r1.B,C(σr1.B=r2.B(r1Ă—ÏB→r2.B(r2)))r_1 \bowtie r_2 = \pi_{A, r_1.B, C} (\sigma_{r_1.B = r_2.B} (r_1 \times \rho_{B \to r_2.B}(r_2))) Cette construction prouve que l’opĂ©rateur de jointure naturelle est redondant vis-Ă -vis du produit cartĂ©sien, de la sĂ©lection et de la projection. ■\blacksquare


Pour manipuler efficacement les bases de données, en particulier dans le contexte du modÚle relationnel et du langage SQL (Structured Query Language) :

  • Traduction AlgĂšbre →\to SQL :

    • σcond(r)\sigma_{\text{cond}}(r) ↔\leftrightarrow SELECT * FROM r WHERE cond
    • πA,B(r)\pi_{A, B}(r) ↔\leftrightarrow SELECT DISTINCT A, B FROM r
    • r1⋈r1.id=r2.idr2r_1 \bowtie_{r_1.id = r_2.id} r_2 ↔\leftrightarrow SELECT * FROM r1 JOIN r2 ON r1.id = r2.id
  • Optimisation naĂŻve de requĂȘtes :

    1. Pousser les sĂ©lections le plus bas possible dans l’arbre syntaxique (avant les produits cartĂ©siens) pour rĂ©duire la taille des relations intermĂ©diaires.
    2. Pousser les projections pour éliminer au plus tÎt les attributs inutiles.

  1. Duplicatas et ModĂšle Relationnel : Par dĂ©finition mathĂ©matique, une relation est un ensemble (pas de tuples en double, pas d’ordre). En SQL, par dĂ©faut, les tables sont des multisacs (ou sacs), et les doublons sont conservĂ©s sauf si l’on utilise DISTINCT. Attention aux questions de concours piĂ©geant sur cette distinction.
  2. CompatibilitĂ© pour l’union : Appliquer une union (âˆȘ\cup) sur deux relations n’ayant pas exactement les mĂȘmes types d’attributs et le mĂȘme nombre d’attributs conduit Ă  une erreur sĂ©mantique majeure.
  3. Division relationnelle (Ă·\div) : Mal comprendre la division. Si r(A,B)r(A, B) et s(B)s(B), alors rĂ·sr \div s retourne l’ensemble des valeurs AA associĂ©es Ă  toutes les valeurs de ss dans rr. Souvent confondue Ă  tort avec une simple projection.
  4. Valeurs NULL : L’utilisation de la logique tri-valuĂ©e (Vrai, Faux, Inconnu) en SQL avec les valeurs NULL contredit l’algĂšbre relationnelle classique. Une condition comparant un NULL avec = renvoie UNKNOWN, ce qui Ă©limine la ligne de la sĂ©lection (contrairement Ă  une logique boolĂ©enne stricte).