Algèbre relationnelle dans les SGBD avec exemples

⚡ Résumé intelligent

L'algèbre relationnelle dans les SGBD est un langage de requêtes procédural qui prend des relations en entrée et produit de nouvelles relations en sortie. Elle regroupe les opérateurs en trois catégories : unaires, ensemblistes et binaires, fournissant ainsi le cadre théorique que les moteurs SQL traduisent en plans d'exécution de requêtes.

  • 🔍 Commencez par les opérateurs unaires : Les fonctions SELECT, PROJECT et RENAME permettent de filtrer les lignes, de sélectionner les colonnes et de renommer les attributs d'une relation unique.
  • 📚 Appliquer la théorie des ensembles : L'UNION, l'INTERSECTION, la DIFFÉRENCE et le PRODUIT CARTÉSIEN combinent des relations compatibles avec l'union en de nouveaux résultats.
  • 🔗 Adhérez de manière intentionnelle : Les jointures Theta, Equi et Natural gèrent les correspondances internes, tandis que les jointures Left, Right et Full Outer conservent les tuples non appariés avec des valeurs nulles.
  • (I.e. Compatibilité de la montre : Vérifiez toujours que l'arité, les noms d'attributs et les domaines correspondent avant toute opération d'ensemble ou d'union.
  • 🤖 Utiliser l'IA pour traduire : Les assistants IA convertissent les expressions algébriques en SQL, expliquent la priorité des opérateurs et signalent les conditions de jointure manquantes en langage clair.

Algèbre relationnelle dans les SGBD

Qu’est-ce que l’algèbre relationnelle ?

Algèbre relationnelle SQL est un langage de requêtes procédural qui accepte des instances de relations en entrée et renvoie de nouvelles instances de relations en sortie. Il applique récursivement un ensemble fixe d'opérateurs sur une ou plusieurs relations, et le résultat de chaque opérateur est lui-même une relation pouvant être utilisée comme entrée pour l'opération suivante. Les moteurs SQL s'appuient sur cette algèbre pour planifier et exécuter les requêtes.

Algèbre relationnelle de base Operations

Les opérateurs d'algèbre relationnelle se répartissent en trois groupes.

Relationnel Unaire Operations

  • SÉLECTIONNER (σ)
  • PROJET (π)
  • RENOMMER (ρ)

Operations de la théorie des ensembles

  • UNION (∪)
  • INTERSECTION (∩)
  • DIFFÉRENCE (−)
  • PRODUIT CARTÉSIEN (×)

Relationnel Binaire Operations

  • INSCRIPTION
  • DIVISION

Les sections ci-dessous présentent chaque opérateur à l'aide d'exemples concrets.

SÉLECTIONNER (σ)

Le SELECT L'opération sélectionne un sous-ensemble de tuples qui satisfont un prédicat donné. Le symbole sigma σ le désigne :

σp(r)

σ est l'opérateur, p est la condition propositionnelle, et r est la relation (table). SELECT préserve le schéma et ignore les lignes qui ne satisfont pas au prédicat.

Exemple 1

σ topic = "Database" (Tutorials)

Sélectionne des tuples à partir de Tutoriels où le sujet est égal à « Base de données ».

Exemple 2

σ topic = "Database" AND author = "guru99" (Tutorials)

Sélectionne des tuples à partir de Tutoriels où le sujet est « Base de données » et l'auteur est guru99.

Exemple 3

σ sales > 50000 (Customers)

Sélectionne des tuples à partir de Clients dont la valeur des ventes est supérieure à 50 000.

Projection (π)

Le projection L'opérateur de projection supprime tous les attributs de la relation d'entrée, à l'exception de ceux listés, produisant ainsi un sous-ensemble vertical. La projection élimine également les lignes dupliquées résultant de la suppression.ping attributs. Le symbole pi π le désigne.

Exemple : Considérez le tableau suivant.

N ° de client Nom du client Statut
1 Google Active
2 Amazon Active
3 Apple Inactif
4 Alibaba Active

Projection basée sur le nom et le statut du client :

π CustomerName, Status (Customers)
Nom du client Statut
Google Active
Amazon Active
Apple Inactif
Alibaba Active

Renommer (ρ)

Le rebaptiser L'opérateur est une opération unaire qui attribue un nouveau nom à un attribut (ou à une relation entière). Par exemple, ρ(a/b) R renomme l'attribut b de relation R à aLa fonction Renommer est particulièrement utile lorsque vous devez effectuer une auto-jointure ou joindre deux relations qui partagent des noms d'attributs.

syndicat Operation (∪)

Le UNION opérateur, noté par , renvoie tous les tuples qui apparaissent dans la relation A ou la relation B, en supprimant automatiquement les doublons.

Result ← A ∪ B

Pour qu'une union soit valide :

  • A et B doivent avoir le même nombre d'attributs (même arité).
  • Les domaines d'attributs correspondants doivent être compatibles.
  • Les tuples en double sont supprimés automatiquement.

Exemple. Considérons ces deux tableaux :

Tableau A Tableau b
colonne 1 colonne 2 colonne 1 colonne 2
1 1 1 1
1 2 1 3

A ∪ B donne:

colonne 1 colonne 2
1 1
1 2
1 3

Différence d'ensemble (−)

Le symbole moins désigne différence d'ensemble. Le résultat de A − B est une relation contenant tous les tuples qui sont dans A mais pas dans B.

  • A et B doivent être compatibles avec l'union.
  • Les noms et les domaines des attributs doivent correspondre.

Exemple : A − B

colonne 1 colonne 2
1 2

Intersection (∩)

Le intersection opérateur, noté par , définit une relation contenant chaque tuple qui apparaît à la fois dans A et B. A et B doivent être compatibles par union.

Définition visuelle de l'intersection

Définition visuelle d'une intersection.

Exemple : A ∩ B

colonne 1 colonne 2
1 1

Produit cartésien (×) dans un SGBD

Le produit cartésien Cette opération combine tous les tuples d'une relation avec tous les tuples d'une autre, en fusionnant leurs colonnes. Le résultat, pris isolément, est rarement utile, mais combiné à un prédicat SELECT, il constitue la base d'une jointure. On l'appelle également produit cartésien ou jointure croisée.

Exemple : σ colonne 2 = '1' (A × B)

L'expression renvoie chaque ligne de A × B dont column 2 la valeur est 1.

colonne 1 colonne 2
1 1
1 1

Joignez-vous au Operations

A rejoindre est un produit cartésien suivi d'un prédicat de sélection. Les jointures sont notées par le ce symbole vous permet de combiner de manière significative des tuples apparentés issus de différentes relations.

Types de jointure :

  • Jointures internes : Jointure thêta, jointure équi, jointure naturelle.
  • Jointures externes : Joints gauche, droit et extérieur complet.

Jointure interne

Dans une jointure intérieureSeuls les tuples qui satisfont aux critères de correspondance sont inclus ; les autres sont écartés.

Rejoindre Thêta

La forme générale de JOIN est la suivante : Rejoindre Theta, noté θ. La jointure Theta peut utiliser n'importe quelle condition de comparaison dans ses critères de sélection.

A ⋈θ B

Par exemple :

A ⋈ A.column 2 > B.column 2 (B)
colonne 1 colonne 2
1 2

Equi Join

Lorsqu'une jointure Theta utilise uniquement des conditions d'égalité, elle devient une Equi join.

A ⋈ A.column 2 = B.column 2 (B)
colonne 1 colonne 2
1 1

L'assemblage en équivalence est l'un des styles d'assemblage les plus utilisés, et RDBMS L'optimiseur de requêtes consacre généralement des efforts considérables à son optimisation.

Jointure naturelle (⋈)

A Jointure naturelle Nécessite un attribut (colonne) commun aux relations. Cet attribut partagé doit avoir le même nom et le même domaine. Le résultat contient une copie de la colonne correspondante.

Considérons ces deux tableaux.

Tableau C
En Carrée Réf
2 4
3 9
Tableau D
En Cube
2 8
3 27

C ⋈ D produit:

En Carrée Réf Cube
2 4 8
3 9 27

Jointure externe

An jointure externe conserve les tuples qui satisfont aux critères de correspondance et Les tuples qui ne le font pas, en remplissant les colonnes manquantes avec NULL.

Jointure externe gauche (A ⟕ B)

La jointure externe gauche conserve tous les tuples de la relation de gauche. Si une ligne de A n'a pas de ligne correspondante dans B, les attributs fournis par B sont remplis avec la valeur NULL.

Jointure externe gauche

Considérez les tableaux suivants :

Tableau A
En Carrée Réf
2 4
3 9
4 16
Tableau b
En Cube
2 8
3 18
5 75

A ⟕ B donne:

En Carrée Réf Cube
2 4 8
3 9 18
4 16 NULL

Jointure extérieure droite (A ⟖ B)

La jointure externe droite conserve chaque tuple dans la relation appropriée. Si une ligne de B n'a pas de correspondance dans A, les colonnes fournies par A sont remplies avec la valeur NULL.

Jointure externe droite

A ⟖ B donne:

En Cube Carrée Réf
2 8 4
3 18 9
5 75 NULL

Jointure extérieure complète (A ⟗ B)

La jointure externe complète conserve tous les tuples des deux relations, que la condition de jointure soit remplie ou non. Les valeurs manquantes de part et d'autre deviennent NULL.

A ⟗ B donne:

En Carrée Réf Cube
2 4 8
3 9 18
4 16 NULL
5 NULL 75

OperaRésumé de référence du tore

Utilisez ce tableau de référence pour vous rappeler en un coup d'œil le rôle de chaque opérateur.

Operation (Symbole) Interet
SÉLECTIONNER (σ) Sélectionne un sous-ensemble de tuples qui satisfont un prédicat donné.
PROJET (π) Ne conserve que les attributs listés et supprime les lignes en double.
UNION (∪) Renvoie tous les tuples apparaissant dans A ou B sans doublons.
DIFFÉRENCE D'ENSEMBLE (−) Renvoie les tuples de A qui ne sont pas dans B.
INTERSECTION (∩) Renvoie les tuples apparaissant à la fois dans A et B.
PRODUIT CARTÉSIEN (×) Combine chaque tuple de A avec chaque tuple de B.
JOINTURE INTERNE Ne conserve que les tuples qui correspondent à la condition de jointure.
JONCTION THÊTA (θ) Jointure de forme générale utilisant n'importe quel prédicat de comparaison.
REJOINDRE ÉQUI Jointure thêta utilisant uniquement des comparaisons d'égalité.
JONCTION NATURELLE (⋈) Fusionne les relations sur les attributs qui partagent le même nom et le même domaine.
JONCTION EXTÉRIEURE GAUCHE (⟕) Conserve tous les tuples de la relation de gauche, remplit ceux de droite avec NULL.
JONCTION EXTÉRIEURE DROITE (⟖) Conserve tous les tuples de la relation de droite, remplit ceux de gauche avec NULL.
Jonction extérieure complète (⟗) Conserve tous les tuples des deux relations, en remplaçant les valeurs manquantes par NULL.

FAQ

L'algèbre relationnelle est un langage mathématique procédural utilisé pour définir des opérations sur les relations. SQL est un langage de requêtes déclaratif que les moteurs de bases de données traduisent en interne en plans d'exécution de type algébrique.

Deux relations sont compatibles par union lorsqu'elles possèdent le même nombre d'attributs et que chaque attribut correspondant partage le même domaine. Les opérations UNION, INTERSECTION et DIFFÉRENCE requièrent toutes la compatibilité par union.

Un produit cartésien multiplie chaque ligne de A par chaque ligne de B, générant ainsi d'immenses relations intermédiaires peu significatives. Il est généralement suivi d'un prédicat SELECT pour former une jointure utile.

Non. L'algèbre relationnelle pure traite les relations comme des ensembles, les doublons sont donc automatiquement éliminés après chaque opération. SQL fonctionne différemment : il opère sur des multiensembles et ne supprime les doublons que lorsque DISTINCT est utilisé.

L'opérateur DIVISION répond aux requêtes « pour tous » — par exemple, trouver les clients qui ont commandé tous les produits d'un catalogue. Il renvoie les tuples d'une relation qui correspondent à tous les tuples d'une autre.

Utilisez une jointure externe lorsque les lignes non appariées conservent une signification, par exemple pour lister tous les clients et leurs commandes (facultatives). Les jointures internes suppriment ces lignes non appariées ; les jointures externes les conservent en les remplaçant par des valeurs NULL.

Les assistants IA traduisent les expressions algébriques en SQL et inversement, expliquent la priorité des opérateurs étape par étape et signalent les prédicats de jointure manquants qui transformeraient autrement une requête en un produit cartésien lent.

Oui. Les outils d'IA transforment des questions en langage clair telles que « les clients indiens qui ont acheté tous les produits » en arbres algébriques avec les opérateurs SELECT, PROJECT et DIVISION, puis les convertissent en requêtes SQL exécutables.

Résumez cet article avec :