Jointures SGBD : types de jointure internes, THETA, externes et Equi Operations
Qu’est-ce que Join dans le SGBD ?
Rejoignez le SGBD est une opération binaire qui vous permet de combiner le produit de jointure et la sélection en une seule instruction. L'objectif de la création d'une condition de jointure est qu'elle vous aide à combiner les données de deux ou plusieurs tables SGBD. Les tables du SGBD sont associées à l'aide de la clé primaire et des clés étrangères.
Types de jointure
Il existe principalement deux types de jointures dans les SGBD :
- Jointures internes : Thêta, Naturelle, EQUI
- Jointure externe : gauche, droite, complète
Voyons-les en détail :
Jointure interne
Jointure interne est utilisé pour renvoyer les lignes des deux tables qui satisfont à la condition donnée. Il s'agit de l'opération de jointure la plus largement utilisée et peut être considérée comme un type de jointure par défaut.
Une jointure interne ou équijoin 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 « > », cela ne peut pas être appelé équijointure.
Inner Join divisé en trois sous-types :
- Rejoindre Theta
- Jointure naturelle
- Rejoindre EQUI
Rejoindre Thêta
Rejoindre Thêta vous permet de fusionner deux tables en fonction de la condition représentée par theta. Theta rejoint le travail de tous les opérateurs de comparaison. Il est désigné par le symbole θ. Le cas général de l’opération JOIN est appelé jointure Theta.
syntaxe:
A ⋈θ B
La jointure thêta peut utiliser n'importe quelle condition 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 est effectué lorsqu'une jointure Theta utilise uniquement la condition d'équivalence. La jointure EQUI est l'opération la plus difficile à mettre en œuvre efficacement dans un RDBMS, et l'une des raisons pour lesquelles les SGBDR ont des problèmes de performances essentiels.
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 des opérateurs de comparaison. Dans ce type de jointure, les attributs doivent avoir le même nom et le même domaine. Dans Natural Join, il doit y avoir au moins un attribut commun entre deux relations.
Il effectue une sélection formant égalité sur les attributs qui apparaissent dans les deux relations et élimine les attributs en double.
Exemple :
Considérez les deux tableaux suivants
C | |
---|---|
En | Carré |
2 | 4 |
3 | 9 |
D | |
---|---|
En | Cube |
2 | 8 |
3 | 18 |
C ⋈ D
C ⋈ D | ||
---|---|---|
En | Carré | Cube |
2 | 4 | 8 |
3 | 9 | 18 |
Jointure externe
An Jointure externe ne nécessite pas que chaque enregistrement des deux tables de jointure ait un enregistrement correspondant. Dans ce type de jointure, la table conserve chaque enregistrement même s'il n'existe aucun autre enregistrement correspondant.
Il existe trois types de jointures externes :
- 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'a été trouvée dans le tableau de droite. Lorsqu'aucun enregistrement correspondant n'est trouvé dans la table de droite, NULL est renvoyé.
Considérez les 2 tableaux suivants
A | |
---|---|
En | Carré |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
---|---|
En | Cube |
2 | 8 |
3 | 18 |
5 | 75 |
AB
UNE ⋈B | ||
---|---|---|
En | Carré | Cube |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Jointure externe droite ( A ⟖ B )
Jointure externe droite renvoie toutes les colonnes du tableau de droite même si aucune ligne correspondante n'a été trouvée dans le tableau de gauche. Lorsqu'aucune correspondance n'a été trouvée dans le tableau de gauche, NULL est renvoyé. RIGHT external JOIN est l’opposé de LEFT JOIN
Dans notre exemple, supposons que vous ayez besoin d'obtenir les noms des membres et les films qu'ils ont loués. Nous avons maintenant un nouveau membre qui n'a encore loué aucun film.
AB
UNE ⋈B | ||
---|---|---|
En | Cube | Carré |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Jointure externe complète ( A ⟗ B)
Dans un Jointure externe complète , tous les tuples des deux relations sont inclus dans le résultat, quelle que soit la condition de correspondance.
Exemple :
AB
UNE ⋈B | ||
---|---|---|
En | Carré | Cube |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Résumé
- Il existe principalement deux types de jointures dans SGBD 1) Jointure interne 2) Jointure externe
- Une jointure interne est l’opération de jointure largement utilisée et peut être considérée comme un type de jointure par défaut.
- Inner Join est divisé en trois sous-types : 1) Jointure thêta 2) Jointure naturelle 3) Jointure EQUI
- Theta Join vous permet de fusionner deux tables en fonction de la condition représentée par theta
- Lorsqu'une jointure thêta utilise uniquement une condition d'équivalence, elle devient une jointure équi.
- La jointure naturelle n'utilise aucun des opérateurs de comparaison.
- Une jointure externe ne nécessite pas que chaque enregistrement des deux tables de jointure ait un enregistrement correspondant.
- La jointure externe est divisée en trois sous-types : 1) Jointure externe gauche 2) Jointure externe droite 3) Jointure externe complète
- La jointure externe LEFT renvoie toutes les lignes du tableau de gauche, même si aucune ligne correspondante n'a été trouvée dans le tableau de droite.
- La jointure externe RIGHT renvoie toutes les colonnes du tableau de droite, même si aucune ligne correspondante n'a été trouvée dans le tableau de gauche.
- 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.