Jointures SGBD : types de jointures THETA, interne, externe et d'égalité

⚡ Résumé intelligent

Dans un SGBD, une jointure est une opération binaire qui combine les lignes de deux tables ou plus en utilisant leurs clés primaires et étrangères. On distingue deux types de jointures : les jointures internes, qui ne conservent que les lignes correspondantes, et les jointures externes, qui conservent les lignes non correspondantes et remplacent les valeurs manquantes par des valeurs nulles.

  • 🔗 Objectif principal : Une jointure fusionne des tables liées en un seul ensemble de résultats en fonction d'une condition de jointure.
  • (I.e. Jointure interne: Renvoie uniquement les lignes qui satisfont la condition dans les deux tables ; le type de jointure par défaut.
  • (I.e. Thêta et ÉQUI : Une jointure thêta utilise n'importe quel opérateur de comparaison ; une jointure EQUI utilise uniquement l'égalité.
  • (I.e. Jointure naturelle : Effectue une correspondance sur les attributs portant le même nom et supprime la colonne en double.
  • ⬅️ Jointure externe gauche: Conserve chaque ligne du tableau de gauche, en remplaçant « null » par « null » lorsqu'il n'y a pas de correspondance dans le tableau de droite.
  • ➡️ Jointure extérieure droite : Conserve chaque ligne du tableau de droite, en remplaçant « null » par « null » lorsqu'il n'y a pas de correspondance dans le tableau de gauche.
  • 🌐 Jointure externe complète : Conserve toutes les lignes des deux tables, quelle que soit la correspondance.

Jointures dans un SGBD Gauche Droite

Qu'est-ce qu'une jointure dans un SGBD ?

Rejoignez le SGBD Il s'agit d'une opération binaire qui permet de combiner un produit de jointure et une sélection dans une seule instruction. L'objectif d'une condition de jointure est de combiner les données de deux tables ou plus. Les tables sont associées à l'aide de leurs clés primaires. clés étrangères.

Types de jointure

Il existe principalement deux types de jointures dans les SGBD :

  1. Jointures internes : Thêta, Naturelle, EQUI
  2. Joints extérieurs : Gauche, Droite, Complet

Le tableau ci-dessous présente un aperçu de tous les types de jointure avant que chacun ne soit expliqué par un exemple.

Joignez-vous au Retours de produits Lignes non appariées
Intérieur (Theta / ÉQUI / Naturel) Lignes correspondant à la condition dans les deux tableaux Abandonnés
Extérieur gauche Toutes les rangées de gauche plus les correspondances Conservé à gauche, nul à droite
Extérieur droit Toutes les lignes de droite plus les correspondances Conservé à droite, nul à gauche
Extérieur complet Toutes les lignes des deux tables Conservé des deux côtés, nul là où manquant

Jointure interne

Jointure interne Cette fonction permet de renvoyer les lignes des deux tables qui satisfont à la condition donnée. C'est l'opération de jointure la plus courante et elle peut être considérée comme le type de jointure par défaut.

Une jointure interne, ou équijointure, est une jointure basée sur un comparateur qui utilise des comparaisons d'égalité dans le prédicat de jointure. Cependant, si vous utilisez d'autres opérateurs de comparaison comme « > », il ne s'agit plus d'une équijointure. La jointure interne se divise en trois sous-types :

  • Rejoindre Theta
  • Jointure naturelle
  • Rejoindre EQUI

Rejoindre Thêta

Rejoindre Thêta permet de fusionner deux tables en fonction de la condition représentée par θ. Les jointures θ fonctionnent avec tous les opérateurs de comparaison. Elles sont notées par le symbole θ. θLe cas général d'une opération JOIN est appelé jointure thêta.

syntaxe:

A ⋈θ B

Une jointure thêta peut utiliser n'importe quelles conditions dans les critères de sélection.

Considérez les tableaux suivants.

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

Par exemple :

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

Rejoindre ÉQUI

Rejoindre ÉQUI Cela se produit lorsqu'une jointure thêta utilise uniquement la condition d'équivalence. La jointure EQUI est l'opération la plus difficile à implémenter efficacement dans un RDBMSet c'est l'une des raisons pour lesquelles un SGBDR peut avoir des problèmes de performance.

Par exemple :

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

Jointure naturelle (⋈)

Jointure naturelle N'utilise aucun opérateur de comparaison. Dans ce type de jointure, les attributs doivent avoir le même nom et le même domaine. Dans une jointure naturelle, il doit exister au moins un attribut commun aux deux relations.

Elle effectue une sélection établissant l'égalité des attributs présents dans les deux relations et élimine les attributs dupliqués.

Exemple : Considérez les deux tableaux suivants.

C
En Carrée Réf
2 4
3 9
D
En Cube
2 8
3 18
C ⋈ D
C ⋈ D
En Carrée Réf Cube
2 4 8
3 9 18

Jointure externe

An Jointure externe Ce type de jointure ne requiert pas que chaque enregistrement des deux tables jointes ait un enregistrement correspondant. Dans ce cas, la table conserve chaque enregistrement même s'il n'existe aucun autre enregistrement correspondant. Les trois types de jointure externe sont :

  • Jointure externe gauche
  • Jointure externe droite
  • Jointure externe complète

Jointure externe gauche (A ⟕ B)

Jointure externe gauche Renvoie toutes les lignes du tableau de gauche, même si aucune ligne correspondante n'est trouvée dans le tableau de droite. Si aucune correspondance n'est trouvée à droite, la valeur null est renvoyée.

Jointure externe gauche

Considérons les deux tableaux suivants.

A
En Carrée Réf
2 4
3 9
4 16
B
En Cube
2 8
3 18
5 75
A Left Outer Join B
A ⟕ B
En Carrée Réf Cube
2 4 8
3 9 18
4 16 -

Jointure extérieure droite (A ⟖ B)

Jointure externe droite Renvoie toutes les colonnes de la table de droite, même si aucune ligne correspondante n'est trouvée dans la table de gauche. En l'absence de correspondance dans la table de gauche, la valeur NULL est renvoyée. Une jointure externe droite est l'inverse d'une jointure externe gauche.

Jointure externe droite

A Right Outer Join B
A ⟖ B
En Cube Carrée Réf
2 8 4
3 18 9
5 75 -

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

Dans une Jointure externe complète, tous les tuples des deux relations sont inclus dans le résultat, quelle que soit la condition de correspondance.

Exemple :

A Full Outer Join B
A ⟗ B
En Carrée Réf Cube
2 4 8
3 9 18
4 16 -
5 - 75

FAQ

Une jointure interne ne renvoie que les lignes correspondantes dans les deux tables. Une jointure externe conserve également les lignes non appariées d'une ou des deux tables, en remplaçant les valeurs manquantes par NULL.

Une jointure thêta peut utiliser n'importe quel opérateur de comparaison, comme « supérieur à » ou « inférieur à ». Une jointure EQUI est une jointure thêta limitée à l'opérateur d'égalité ; elle ne correspond donc qu'aux valeurs égales.

Les deux types de jointures s'accordent sur l'égalité, mais une jointure naturelle identifie automatiquement les colonnes portant le même nom et supprime la colonne dupliquée. Une jointure EQUI, quant à elle, spécifie explicitement la condition et conserve les deux colonnes.

Oui. Compte tenu du schéma et de la question, l'IA peut choisir le type de jointure et les clés, par exemple une jointure externe gauche pour conserver les clients sans commande. Vérifiez le résultat, car une jointure incorrecte modifie le nombre de lignes.

Oui. L'IA peut détecter que la clé de jointure n'est pas unique d'un côté, ce qui provoque une explosion de relations plusieurs-à-plusieurs, et suggérer d'ajouter une condition ou d'agréger les données au préalable afin que chaque correspondance ne soit comptabilisée qu'une seule fois.

Résumez cet article avec :