[go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
9 vues6 pages

Leçon 2 - La Jointure en Algèbre Relationnelle

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1/ 6

LA JOINTURE EN ALGÈBRE

RELATIONNELLE
Table des matières

I - JOINTURE DE DEUX TABLES 3


II - APPLICATION 1 4
III - JOINTURE DE PLUSIEURS TABLES 5

2
JOINTURE DE DEUX TABLES I

Définition

• Cet opérateur porte sur 2 relations (2 tables) qui doivent avoir un attribut commun.
• La condition de jointure peut porter sur l'égalité d'un ou de plusieurs attributs définis dans le même
domaine (mais n'ayant pas forcément le même nom).
• Les n-uplets de la relation résultat sont formés par la concaténation des n-uplets des relations
d'origine qui vérifient la condition de jointure.

SYNTAXE Définition

R = JOINTURE (R1, R2, condition d'égalité entre attributs)

EXEMPLES
Soient les tables suivantes :
PRODUIT(refprod, libprod, prixprod,#typrodid)
TYPE_PRODUIT(typrodid,libtyprod)
Écrire une requête qui affiche chaque produit avec son type de produit
R=JOINTURE(PRODUIT, TYPE_PRODUIT, PRODUIT.typrodid=TYPE_PRODUIT.typrodid)
Soient les tables suivantes :
PRODUIT(refprod, libprod, prixprod,#typrodid)
TYPE_PRODUIT(typrodid,libtyprod)
Écrire une requête qui affiche la référence, le nom et le libellé du type de chaque produit.
R1=JOINTURE(PRODUIT, TYPE_PRODUIT, PRODUIT.typrodid=TYPE_PRODUIT.typrodid)
R2=PROJECTION.R1(refprod, libprod, libtyprod)
Soient les tables suivantes :
PRODUIT(refprod, libprod, prixprod,#typrodid)
TYPE_PRODUIT(typrodid,libtyprod)
Écrire une requête qui affiche la référence, le nom et le prix des produits laitiers.
R1=JOINTURE(PRODUIT, TYPE_PRODUIT, PRODUIT.typrodid=TYPE_PRODUIT.typrodid)
R2=SELECTION.R1(libtyprod='PRODUIT LAITIER')
R3=PROJECTION.R1(refprod, libprod, prixprod)

3
II
OK

APPLICATION 1

Exercice 1
Soient les tables suivantes :
COMMANDE(refcom, libellecom, datecom,#matcli)
CLIENT(matcli, nomcli, pnomcli)
Écrire une requête qui affiche la liste des commandes passées par le client 'CL001'
R1= (COMMANDE, ,
COMMANDE. = . )
R2= . ( =' ')
R3= . (refcom, libellecom)

Exercice 2
Soient les tables suivantes :
COMMANDE(refcom, libellecom, datecom,#matcli)
CLIENT(matcli, nomcli, pnomcli)
Écrire une requête qui affiche la liste des clients qui ont passé des commandes le 30/05/2023
R1= (COMMANDE, ,
COMMANDE. = . )
R2= . ( =' ')
R3= . ( , , )

4
JOINTURE DE PLUSIEURS TABLES III

Définition

La jointure de plusieurs tables consiste à les joindre deux par deux.


La condition de jointure peut porter également sur l'égalité d'un ou de plusieurs attributs définis
dans le même domaine (mais n'ayant pas forcément le même nom).
Même si les attributs ne portent pas le même nom, leurs paramétrages doivent être identiques
(égalité de type et de taille)
Les n-uplets de la relation résultat sont formés par la concaténation des n-uplets des relations
d'origine qui vérifient la condition de jointure.

SYNTAXE Définition

R1 = JOINTURE (R, R2, condition d'égalité entre attributs de R et R2)


R3 = JOINTURE (R1, R4, condition d'égalité entre attributs de R1 et R4)
etc.

EXEMPLES
Soient les tables suivantes :
PRODUIT(refprod, libprod, prixprod,#typrodid)
COMMANDE(refcom, libellecom, datecom)
LIGNE_COMMANDE(#refcom, #refprod, qtecom)
Écrire une requête qui affiche la liste des produits commandés le 13/06/2023'
R1=JOINTURE(PRODUIT, LIGNE_COMMANDE, PRODUIT.refprod=LIGNE_COMMANDE.refprod)
R2=JOINTURE(R1,COMMANDE, R1.refcom=COMMANDE.refcom)
R3=SELECTION.R2(datecom='13/06/2023')
R3=PROJECTION.R3(refprod, libprod)
Soient les tables suivantes :
PRODUIT(refprod, libprod, prixprod,#typrodid)
COMMANDE(refcom, libellecom, datecom)
LIGNE_COMMANDE(#refcom, #refprod, qtecom)
Écrire une requête qui affiche la liste des commandes de produits référencés 'PROD002'
R1=JOINTURE(PRODUIT, LIGNE_COMMANDE, PRODUIT.refprod=LIGNE_COMMANDE.refprod)
R2=JOINTURE(R1,COMMANDE, R1.refcom=COMMANDE.refcom)
R3=SELECTION.R2(refprod='PROD002')
R3=PROJECTION.R3(refcom, libellecom)

5
Exercice 1
Soient les tables suivantes :
COMMANDE(refcom, libellecom, datecom,#matcli)
CLIENT(matcli, nomcli, pnomcli)
PRODUIT(refprod, libprod, prixprod,#typrodid)
TYPE_PRODUIT(typrodid,libtyprod)
LIGNE_COMMANDE(#refcom, #refprod, qtecom)
Écrire une requête qui affiche la liste des produits commandés par le client KONAN CHARLES le
25/05/2023
R1= (COMMANDE, ,
COMMANDE. = . )
R2= ( , , COMMANDE.refcom= . )
R3= ( , , .refprod= . )
R4= . (nomcli=' ' ET =' ')
R5= . (refprod, libprod, prixprod)

Vous aimerez peut-être aussi