Vous êtes sur la page 1sur 3

L2 Economie-Gestion Informatique : outils avancés et bases de données Dominique Tachat

TD8 : Algèbre relationnelle


Correction

Magasin(num_magasin, nom_magasin, raison_sociale, adresse)

Employe(num_employe, nom, salaire_de_base, commission, num_magasin)

Article(num_article, nom_article, designation, prix)

Stock(num_magasin, num_article, quantite)

Approvisionnement(num_fournisseur, num_magasin, num_article, delai)

Fournisseur(num_fournisseur, nom, adresse)

Catalogue(num_fournisseur, num_magasin, num_article)

1
L2 Economie-Gestion Informatique : outils avancés et bases de données Dominique Tachat

1) Raison sociale et adresse du magasin 3

R1 = SELECTION(Magasin,num_magasin=3)
Res =PROJECTION(R1,raison_sociale,adresse)

2) Nom des employés travaillant dans les magasins 1, 2 ou 3

R1 = SELECTION(Employe,num_magasin=1 OU num_magasin=2 OU num_magasin=3)


Res = PROJECTION(R1, nom)

3) Salaire de base des employés ayant une commission supérieure à leur salaire de base

R1 = SELECTION(Employe,commission>salaire_de_base)
Res = PROJECTION(R1,salaire_de_base)

4) Numéro des magasins qui vendent des articles dont le prix est supérieur à 2000€

R1 = SELECTION(Article,prix>2000)
R2 = JOINTURE(R1, Catalogue, R1.num_article=Catalogue.num_article)
Res = PROJECTION(R2, num_magasin)

5) Noms des employés travaillant dans les magasins de Lyon

R1 = SELECTION(Magasin, adresse='Lyon')
R2 = JOINTURE(R1,Employe,R1.num_magasin=Employe.num_magasin)
Res = PROJECTION(R2, nom)

6) Numéro des magasins et des fournisseurs qui ont des articles manquants (quantité en
stock = 0)

R1 = SELECTION(Stock,quantite=0)
R2 = JOINTURE(R1,Catalogue, R1.num_article=Catalogue.num_article)
R3 = SELECTION(R2, R1.num_magasin=Catalogue.num_magasin)
Res = PROJECTION(R3,R1.num_magasin, num_fournisseur)

7) Nom des articles distribués à la fois dans le magasin « VendeTout » et le magasin


« TrouveTout »

Code des articles distribués par le magasin VendeTout


R1=SELECTION(Magasin, nom_magasin='VendeTout')
R2=JOINTURE(R1,Catalogue,R1.num_magasin=Catalogue.num_magasin)
R3=PROJECTION(R2, num_article)
Code des articles distribués par le magasin TrouveTout
R4=SELECTION(Magasin, nom_magasin='TrouveTout')
R5=JOINTURE(R4,Catalogue,R4.num_magasin=Catalogue.num_magasin)
R6=PROJECTION(R5,num_article)

R7=INTERSECTION(R3,R6)
R8=JOINTURE(R7,Article, R7.num_article=Article.num_article)
Res=PROJECTION(R8, nom_article)

2
L2 Economie-Gestion Informatique : outils avancés et bases de données Dominique Tachat

8) Nom des articles qui ne sont pas distribués par le magasin nommé « VendeTout »

Code des articles distribués par le magasin VendeTout


R1=SELECTION(Magasin, nom_magasin='VendeTout')
R2=JOINTURE(R1,Catalogue,R1.num_magasin=Catalogue.num_magasin)
R3=PROJECTION(R3, num_article)
Code de tous les articles
R4=PROJECTION(Article, num_article)
Code des articles qui ne sont pas distribués par le magasin nommé « VendeTout »
R5=DIFFERENCE(R4, R3)

R6=JOINTURE(R5,Article, R5.num_article=Article.num_article)
Res=PROJECTION(R6, nom_article)

9) Numéro des magasins qui vendent l’article le plus cher.


R1 = AUTO-JOINTURE(Article A1, Article A2, A1.prix=MAX(A2.prix))
R2 = JOINTURE(R1, Catalogue, A1.num_article=Catalogue.num_article)
Res = PROJECTION(R2, num_magasin)

10) Numéro du fournisseur et numéro du magasin qui distribuent l’article ayant le plus
grand délai de livraison

R1 = AUTO-JOINTURE(Approvisionnement A1, Approvisionnement A2,


A1.delai=MAX(A2.delai))
Res = PROJECTION(R1, A1.num_fournisseur,A1.num_magasin)

11) Nom et adresse des fournisseurs qui approvisionnent tous les magasins

R1 = PROJECTION ( Magasin, num_magasin )


R2 = PROJECTION (Approvisionnement, num_magasin, num_fournisseur)
R3 = DIVISION( R2, R1)
R4 = JOINTURE( R3, Fournisseur, R3.num_fournisseur = Fournisseur.num_fournisseur )
Res = PROJECTION( R4, nom, adresse )

12) Numéro des magasins qui ont plusieurs articles approvisionnés par le fournisseur
Durand

R1=SELECTION(Fournisseur, nom='Durand')
R2=JOINTURE(R1,Approvisionnement,
R1.num_fournisseur=approvisionnement.num_fournisseur)
R3=PROJECTION(R2,num_magasin,num_article)
R4=AUTO-JOINTURE(R3 R3-1, R3 R3-2, R3-1.num_magasin=R3-2.num_magasin)
R5=SELECTION(R4, R3-1.num_article<> R3-2.num_article)
Res=PROJECTION(R5,R3-1.num_magasin)

Vous aimerez peut-être aussi