SGBD - Jointures

Nous comprenons les avantages de prendre un produit cartésien de deux relations, ce qui nous donne tous les tuples possibles qui sont appariés. Mais il n'est peut-être pas possible pour nous dans certains cas de prendre un produit cartésien où nous rencontrons d'énormes relations avec des milliers de tuples ayant un nombre considérable d'attributs.

Joinest une combinaison d'un produit cartésien suivi d'un processus de sélection. Une opération de jointure associe deux tuples de relations différentes, si et seulement si une condition de jointure donnée est satisfaite.

Nous décrirons brièvement les différents types de jointures dans les sections suivantes.

Rejoindre Thêta (θ)

La jointure thêta combine des tuples de différentes relations à condition qu'ils satisfassent à la condition thêta. La condition de jointure est indiquée par le symboleθ.

Notation

R1 ⋈θ R2

R1 et R2 sont des relations ayant des attributs (A1, A2, .., An) et (B1, B2, .., Bn) tels que les attributs n'ont rien en commun, c'est-à-dire R1 ∩ R2 = Φ.

La jointure thêta peut utiliser toutes sortes d'opérateurs de comparaison.

Étudiant
SID Nom Std
101 Alex dix
102 Maria 11
Sujets
Classe Matière
dix Math
dix Anglais
11 La musique
11 Des sports

Détails_étudiant -

STUDENT Student.Std = Subject.Class SUBJECT

Student_detail
SID Nom Std Classe Matière
101 Alex dix dix Math
101 Alex dix dix Anglais
102 Maria 11 11 La musique
102 Maria 11 11 Des sports

Equijoint

Lorsque la jointure Thêta utilise uniquement equalityopérateur de comparaison, il est dit équijoint. L'exemple ci-dessus correspond à l'équijointure.

Jointure naturelle ( )

La jointure naturelle n'utilise aucun opérateur de comparaison. Il ne concatène pas comme le fait un produit cartésien. Nous ne pouvons effectuer une jointure naturelle que s'il existe au moins un attribut commun entre deux relations. De plus, les attributs doivent avoir le même nom et le même domaine.

La jointure naturelle agit sur les attributs correspondants où les valeurs des attributs dans les deux relations sont identiques.

Cours
CID Cours Département
CS01 Base de données CS
ME01 Mécanique MOI
EE01 Électronique EE
Hotte
Département Tête
CS Alex
MOI Maya
EE Mira
Cours ⋈ HoD
Département CID Cours Tête
CS CS01 Base de données Alex
MOI ME01 Mécanique Maya
EE EE01 Électronique Mira

Jointures externes

La jointure thêta, la jointure équidistante et la jointure naturelle sont appelées jointures internes. Une jointure interne inclut uniquement les tuples avec des attributs correspondants et le reste est ignoré dans la relation résultante. Par conséquent, nous devons utiliser des jointures externes pour inclure tous les tuples des relations participantes dans la relation résultante. Il existe trois types de jointures externes: jointure externe gauche, jointure externe droite et jointure externe complète.

Jointure externe gauche (R S)

Tous les tuples de la relation Left, R, sont inclus dans la relation résultante. S'il y a des tuples dans R sans aucun tuple correspondant dans la relation Right S, alors les attributs S de la relation résultante sont rendus NULL.

La gauche
UNE B
100 Base de données
101 Mécanique
102 Électronique
Droite
UNE B
100 Alex
102 Maya
104 Mira
Cours HoD
UNE B C
100 Base de données 100 Alex
101 Mécanique --- ---
102 Électronique 102 Maya

Jointure externe droite: (R S)

Tous les tuples de la relation Right, S, sont inclus dans la relation résultante. S'il y a des tuples dans S sans aucun tuple correspondant dans R, alors les attributs R de la relation résultante sont rendus NULL.

Cours HoD
UNE B C
100 Base de données 100 Alex
102 Électronique 102 Maya
--- --- 104 Mira

Jointure externe complète: (R S)

Tous les tuples des deux relations participantes sont inclus dans la relation résultante. S'il n'y a pas de tuples correspondants pour les deux relations, leurs attributs respectifs sans correspondance sont rendus NULL.

Cours HoD
UNE B C
100 Base de données 100 Alex
101 Mécanique --- ---
102 Électronique 102 Maya
--- --- 104 Mira