ScholarGate
Assistant

SQL et Algèbre Relationnelle

L'algèbre relationnelle est un langage procédural d'opérateurs sur des relations qui confère au modèle relationnel sa sémantique formelle, tandis que SQL est le langage déclaratif standard que les systèmes de bases de données compilent en plans d'exécution de type algébrique.

Trouver un sujet avec PaperMindBientôtFind papers & topics
Tools & resources
Télécharger les diapositives
Learn & explore
VidéoBientôt

Definition

L'algèbre relationnelle est un ensemble d'opérateurs qui prennent des relations en entrée et produisent des relations en sortie ; SQL (Structured Query Language) est le langage déclaratif standard ISO pour définir, interroger et mettre à jour les bases de données relationnelles, dont la sémantique des requêtes correspond étroitement à l'algèbre relationnelle étendue avec le regroupement, l'agrégation et la sémantique de sac (bag semantics).

Scope

Ce sujet couvre les opérateurs de l'algèbre relationnelle — sélection, projection, produit cartésien, jointure, union, différence et renommage — et leur utilisation comme base formelle pour les requêtes et l'optimisation des requêtes. Il aborde le cœur de SQL : les requêtes SELECT-FROM-WHERE, les jointures, le regroupement et l'agrégation, les sous-requêtes, les opérations ensemblistes, ainsi que les instructions de définition et de manipulation de données, avec la sémantique multi-ensemble de SQL et la logique à trois valeurs pour les valeurs nulles. Il exclut la manière dont les requêtes sont physiquement exécutées et optimisées (couvert dans le traitement et l'optimisation des requêtes).

Core questions

  • Quels sont les opérateurs primitifs et dérivés de l'algèbre relationnelle ?
  • Comment une requête SQL SELECT-FROM-WHERE se traduit-elle en opérations d'algèbre relationnelle ?
  • Comment le regroupement et l'agrégation étendent-ils l'algèbre de base ?
  • Comment les valeurs nulles et la logique à trois valeurs affectent-elles les résultats des requêtes ?
  • Pourquoi SQL utilise-t-il une sémantique multi-ensemble (sac) plutôt qu'une sémantique d'ensemble ?

Key concepts

  • sélection, projection, jointure
  • union, différence, produit cartésien
  • SELECT-FROM-WHERE
  • regroupement et agrégation
  • sous-requêtes et corrélation
  • opérations ensemblistes et multi-ensemblistes
  • logique à trois valeurs et valeurs nulles
  • langage de définition et de manipulation de données

Key theories

Opérateurs de l'algèbre relationnelle
La sélection, la projection, l'union, la différence ensembliste, le produit cartésien et le renommage forment un ensemble complet à partir duquel la jointure, l'intersection et la division sont dérivées ; les identités algébriques entre eux justifient les optimisations de réécriture de requêtes.
Requêtes déclaratives et complétude relationnelle
SQL permet aux utilisateurs de spécifier les données qu'ils souhaitent plutôt que la manière de les récupérer ; parce qu'il peut exprimer toutes les requêtes d'algèbre relationnelle (et plus encore), il est relationnellement complet, et le système est libre de choisir une stratégie d'exécution efficace.
Logique à trois valeurs pour les valeurs nulles
SQL évalue les conditions sur vrai, faux et inconnu pour gérer les valeurs nulles ; cela affecte les comparaisons, le filtrage WHERE et l'agrégation, et est une source fréquente d'erreurs de requêtes subtiles.

Clinical relevance

SQL est l'un des langages les plus largement utilisés en informatique : il constitue l'interface de pratiquement toutes les bases de données relationnelles alimentant les applications commerciales, l'analyse de données et les services web, et l'algèbre relationnelle est l'outil théorique que les optimiseurs de requêtes utilisent pour réécrire et planifier efficacement ces requêtes SQL.

History

L'article de Codd de 1970 a introduit l'algèbre et le calcul relationnels. Au sein du projet System R d'IBM, Chamberlin et Boyce ont conçu SEQUEL (1974), rebaptisé plus tard SQL, comme un langage déclaratif plus accessible. SQL a été normalisé par l'ANSI et l'ISO à partir de 1986 et a été étendu par des normes successives tout en restant ancré dans l'algèbre relationnelle.

Key figures

  • Edgar F. Codd
  • Donald D. Chamberlin
  • Raymond F. Boyce

Related topics

Seminal works

  • codd1970
  • chamberlin1974
  • garciamolina2008

Frequently asked questions

SQL est-il exactement l'algèbre relationnelle ?
Non. SQL est basé sur l'algèbre et le calcul relationnels, mais diffère de manière significative : il utilise une sémantique multi-ensemble (sac) permettant les doublons, ajoute le regroupement et l'agrégation, prend en charge les valeurs nulles avec une logique à trois valeurs, et inclut des fonctionnalités procédurales et de définition de données que l'algèbre pure ne possède pas.
Pourquoi apprendre l'algèbre relationnelle si SQL est ce qui est utilisé en pratique ?
L'algèbre relationnelle est le modèle formel sous-jacent à l'optimisation des requêtes : les systèmes de bases de données traduisent SQL en expressions de type algébrique et appliquent des règles d'équivalence pour trouver des plans efficaces. Comprendre l'algèbre explique pourquoi certaines réécritures de requêtes sont valides et aide à raisonner sur l'équivalence et le coût des requêtes.

Methods for this concept

Related concepts