Le langage relationnel
I-Introduction :
La modélisation des données est indépendante des techniques mises au point pour gérer les données. Actuellement, on dispose des différents modèles de système de gestion de bases de donnée (SGBD) :
- Le modèle hiérarchique
- Le modèle réseau ou codasyl
- Le modèle relationnel
Le plus récent de ces modèles, le modèle relationnel, permet de mémoriser les données sous la forme de tableaux valeurs, encore appelés relations. Les opérations qui manipulent les données sous la forme de tableaux constituent le langage relationnel. Parmi les opérations du langage relationnel, on distingue les opérations de la théorie des ensembles, les opérations de l’algèbre relationnelle, les opérations de calcul.
II-Relation (tableau) :
1. Présentation :
Toute entité ou association du schéma conceptuel se transforme en une relation ou tableau dans lequel les occurrences représentent les lignes et les propriétés représentent les colonnes.
Exemple détaillé : La relation épreuve
EPREUVE |
|||
Propriété |
Codep |
Désignation |
Coef |
Occurrences |
3 |
Maths |
3 |
|
6 |
Economie |
3 |
|
2 |
Français |
2 |
2. Formalisme :
Une relation est notée par son nom en majuscules est suivre de la liste de ses propriétés appelées attributs. Elle est encadrée par des parenthèses. L’identifiant est souligné
EPREUVE (Code épreuve, Description, Coefficient)
NOTER (Code epreuve, N° candidat, Note)
CANDIDAT (N° candidat, Nom candidat, Code etab#)
ETABLISSEMENT (Code etab, Nom etab)
III-Opérations de la théories des ensembles :
Parmi les opérations de la théorie des ensembles, on distingue l’intersection, la différence, le produit cartésien et l’union
1. Opération union :
A. Présentation :
L’opération Union consiste à unir les lignes de 2 relations R1 et R2 pour constituer une 3ème relation (R3) dans laquelle les lignes identiques de R1 et R2 ne sont présentes qu’une seule fois.
B. Formalisme :
R3 = Union (R1, R2)
C. Exemple :
Soit 2 relation R1 : Etablissement A et R2 : Etablissement B.
R1 Etablissement A |
|
Code etab |
Nom etab |
0435 |
Lycée Jean Mermoz |
0560 |
Lycée Joffre |
0230 |
Jean Monnet |
R2 Etablissement B |
|
Code etab |
Nom etab |
0127 |
Lycée Léonard de Vinci |
0435 |
Lycée Jean Mermoz |
0310 |
Lycée Clémonceau |
0230 |
Lycée Jean Monnet |
0099 |
Lycée JP Sartre |
R3 = Union (Etablissement A, Etablissement B)
R3 |
|
Code etab |
Nom etab |
0435 |
Lycée Jean Mermoz |
0560 |
Lycée Joffre |
0230 |
Lycée Jean Monnet |
0127 |
Lycée Léonard de Vinci |
0390 |
Lycée Clémonceau |
0099 |
JP Sartre |
2. Opération intersection :
A. Présentation :
L’opération intersection consiste à créer une 3ème relation (R3) dans laquelle ne sont présentes que les lignes identiques (celles qui appartiennent à la fois à la relation R1 et à relation R2).
B. Formalisme :
R3 = Intersection (R1, R2)
R3 = Intersection (Etablissement A, Etablissement B)
R3 |
|
Code etab |
Nom etab |
0435 |
Lycée Jean Mermoz |
0230 |
Lycée Jean Monnet |
3. Opération de la différence :
A. Présentation :
Elle consiste à prélever d’une relation R1 les lignes qui soit identiques à celles d’une relation R2. Les lignes restantes constituent une 3ème relation R3.
B. Formalisme :
R3 = Différence (R1, R2)
R3 |
|
Code etab |
Nom etab |
0560 |
Lycée Joffre |
Remarques : L’union, l’intersection et la différence ne se réalisent que sur des relations qui ont la même description (même propriétés).
4. Opération du produit cartésien :
A. Présentation :
L’opération produit cartésien consiste à associer à toutes lignes d’une relation R1 chaque ligne d’une relation R2 afin de constituer une 3ème relation R3.
B. Formalise :
R3 = Produit (R1, R2)
C. Exemple :
Soit 2 relations suivantes :
R1 Candidat |
||
N° |
Nom |
Code etab |
04 |
Pourtalier |
0435 |
05 |
Arroyo |
0230 |
R2 Epreuve |
||
Code |
Désignation |
Coef |
3 |
Maths |
3 |
6 |
Economie |
3 |
2 |
Français |
2 |
R3 = Produit (R1, R2) |
|||||
N° |
Nom |
Code etab |
Code |
Designation |
Coef |
04 |
Pourtalier |
0435 |
3 |
Maths |
3 |
04 |
6 |
Economie |
3 |
||
04 |
2 |
Français |
2 |
||
05 |
Arroyo |
0230 |
3 |
Maths |
3 |
05 |
6 |
Economie |
3 |
||
05 |
2 |
Français |
2 |
IV-Opération de l’algèbre relationnelle :
Les principales opérations de l’analyse relationnelle sont : la projection, la sélection est la jointure.
1. Opération de projection :
A. Présentation :
Elle consiste à retenir certains attributs ou (colonnes) d’une relation R1 pour constituer une nouvelle relation R2 dans laquelle les lignes identiques ne sont présentes qu’une seule fois.
B. Formalisme :
R2 = Projection (R1 liste attributs à conserver)
R2 = Projection (R1, Nom, Code etab)
R2 |
|
Nom |
Code etab |
Pourtalier |
0435 |
Arroyo |
0230 |
2. Opération de sélection :
A. Présentation :
L’opération de sélection consiste à choisir les occurrences (ou lignes) d’une relation R1 qui satisfont à une certaine condition pour constituer une nouvelle relation R2.
B. Formalisme :
R3 = Produit (R1, R2) |
|||||
N° |
Nom |
Code etab |
Code |
Designation |
Coef |
04 |
Pourtalier |
0435 |
3 |
Maths |
3 |
04 |
6 |
Economie |
3 |
||
04 |
2 |
Français |
2 |
||
05 |
Arroyo |
0230 |
3 |
Maths |
3 |
05 |
6 |
Economie |
3 |
||
06 |
Barbero |
2 |
Français |
2 |
R2 = Sélection (R1, condition )
R2 = Sélection (R1, code etab = 0230)
R2 |
|||||
N° |
Nom |
Code etab |
Code |
Désignation |
Coef |
05 |
Arroyo |
0230 |
3 |
Maths |
3 |
05 |
6 |
Economie |
3 |
||
06 |
Barbero |
2 |
Française |
2 |
3. Opération de jointure :
A. Présentation :
L’opération de jointure consiste à créer une relation R3 à partir d’une relation R1 et d’une relation R2 ayant un attribut commun dans laquelle on retourne les lignes qui satisfont à une condition portant sur l’attribut commun. La relation résultante possède les attributs de 2 relations.
B. Formalisme :
R3 = Jointure (R1, R2, Condition)
C. Exemple :
R1 Candidat |
|
Nom |
Code etab |
Bru |
0230 |
Pourtalier |
0435 |
Arroyo |
0230 |
R2 Note |
||
Nom |
Code |
Note |
Hort |
6 |
12 |
Pourtalier |
3 |
10 |
3 |
12 |
|
6 |
12 |
|
2 |
08 |
|
Arroyo |
6 |
08 |
2 |
10 |
|
Delaude |
3 |
12 |
R3 = Jointure (R1, R2, R1.Nom = R2.Nom)
R3 |
|||
Nom |
Code etab |
Code |
Note |
Pourtalier |
0435 |
3 |
10 |
3 |
12 |
||
6 |
12 |
||
2 |
08 |
||
Arroyo |
0230 |
6 |
08 |
2 |
10 |
Remarque : L’opération de jointure peut être assimilée à une opération produit cartésien suivie d’une opération de sélection.
V-Opération calcul :
Parmi les opération de calcul, considère les opérations courantes de comptage et de cumul.
1. Compte :
A. Présentation :
Cette opération permet de dénombrer les lignes d’une relation qui ont une même valeur d’attribut commun. La relation résultante ne contient que l’attribut et le compte.
B. Formalisme :
R2 = Compte (R1, Attribut)
R3 |
||||
N° |
Nom |
Code etab |
Code |
Note |
04 |
Pourtalier |
0435 |
3 |
10 |
04 |
2 |
08 |
||
05 |
Arroyo |
0230 |
6 |
08 |
04 |
Pourtalier |
0435 |
3 |
12 |
06 |
Gascia |
0256 |
2 |
10 |
05 |
Arroyo |
0230 |
2 |
10 |
04 |
Pourtalier |
0435 |
6 |
12 |
R2 = Compte (R1, code etab)
R2 |
|
Code etab |
Compte |
0230 |
2 |
0256 |
1 |
0435 |
4 |
2. Opération de cumul :
A. Présentation :
Cette opération permet de faire la somme des valeurs d’un attribut A1 des lignes qui ont une même valeur d’attribut A2 en commun. La relation résultante ne contient que l’attribut et le cumul de l’attribut A1.
B. Formalisme :
R2=Cumul (R1, Attribut_2, Attribut_1)
R2 = Cumul (R1, Nom,Note)
R2 |
|
Nom |
Cumul |
Arroyo |
18 |
Pourtalier |
42 |
R3 |
||||
N° |
Nom |
Code etab |
Code |
Note |
04 |
Pourtalier |
0435 |
3 |
10 |
04 |
|
|
2 |
08 |
05 |
Arroyo |
0230 |
6 |
08 |
04 |
Pourtalier |
0435 |
3 |
12 |
05 |
Arroyo |
0230 |
2 |
10 |
04 |
Pourtalier |
0435 |
6 |
12 |
EXERCICE D’APPLICATION
Exercice :
Une requête est une interrogation de la base de donnée relationnelle. Plusieurs opérations judicieusement enchaînées permettent de répondre à la plupart des requêtes que l’on peut adresser. Soit la base de donnée suivante :
EPREUVE (Code épreuve, Désignation, Coefficient)
NOTER (Code épreuve, N° candidat, Note)
CANDIDAT (N° candidat, Nom candidat, Code étab)
Requête N°1 : Donner la liste des noms des candidats et leurs notes à l’épreuve de mathématiques.
R1 = Sélection (EPREUVE, Désignation = « Maths »)
R2 = Jointure (R1, NOTER, R1.Code épreuve=NOTER.Code épreuve
R3 = Jointure (R2, Candidat, R2.N°Candidat = Candidat.N°Candidat)
R4 = Projection (R3, Non candidat, Note)
Arbre syntaxique :
Exercice :
Soit la base de données suivante :
SPECTALE (N° spectacle, Tite spectacle, Nom lieu, Non chorégraphe, Commentaire)
DANSEUR (Nom danseur, N° spectacle#)
REPRESENTATION (Date, Heure, N° spectacle, Tarif)
Travail demandé (AR+AS)
a) Donner la liste des titres de spectacle.
b) Donner la liste des titres de spectacle joués à louer la cour des Ursulines.
c) Donner la liste des noms de danseur ainsi que le titre du spectacle auquel chacun participe.
d) Donner la liste des titres de spectacles, les lieux et les tarifs pour la journée du 30/05/2003.
a) R1 = Projection (Spectacle, Tire spectacle)
b) R1 = Sélection (Spectacle, Non lieu = Cours Ursuline)
R2 = Projection (R1, Total spectacle)
c) R1 = Jointure (Danseur, Spectacle, Danseur.N° spectacle = Spectacle.N° spectacle)
R2 = Projection (R1, Titre spectacle)
d) R1 = Jointure (Spectacle, Représenter, Spectacle.N°spectacle = Représenter, N° spectacle)
R2 = Sélection ( R1, Date, = 30/05/2003)
R3 = Projection (R2, Titre spectacle, Nom lieu, Tarif)
Exercice :
Soit la base de donnée suivant :
CANDIDAT (Nom candidat, Nom syndicat, Désignation, Libellé)
VOTER (Nom candidat, Nom bureau, Nombre suffrages)
a) Donner le nombre de suffrages par candidat (quelque soit le bureau de vote)
b) Donner le nombre de suffrages par bureau de vote (quelque soit le candidat)
c) Donner la liste des candidats inscrits qui n’ont obtenu aucun vote (lorsqu’un candidat n’a pas obtenu de suffrage, il n’existe pas d’occurrence dans la relation voter)
d) Donner le nombre total de suffrages par nom de syndicat
Exercice 7.1
1) R1 = Projection (Auteur ; Numaut, Nomaut, Nataut)
2) R1 = Sélection (Auteur ; Nataut = « Espagnole »)
R2 = Sélection (Auteur ; Nataut = « Portugaise »)
R3 = Union (R1 ; R2)
R4 = Projection (R3 ; Nomaut)
3) R1 = Sélection (Lecteur ; Datenais = <1983 et Catprof = « Etudiant »)
R2 = Projection (R1 ; Nomlect ; Adlect)
4) R1 = Jointure (Ouvrage ; Emprunter ; Ouvrage.Numouv = Emprunter.Numouv)
R2 = Jointure (R1 ; Lecteur ; Emprunter.Numlect = Lecteur.Numlect)
R3 = Sélection (R2 ; Nomlect = AUBIN)
R4 = Projection (R3 ; Titouv)
Exercice 7.2
1) R1 = Projection (Film ; Nomfilm)
2) R1 = Jointure (Film ; Jouer ; Film.Numfilm = Jouer.Numfilm)
R2 = Jointure (R1 ; Acteur ; Jouer.Numacteur = Acteur.Numacteur)
R3 = Sélection (R2 ; Nomacteur = « DEPARDIEU » et Préacteur = « Gérard »)
R4 = Projection (R3 ; Numfilm ; Nomfilm ; Anfilm
3) R1 = Jointure (Film, Jouer ; Film.Numfilm = Jouer.Numfilm)
R2 = Jointure (R1 ; Acteur ; Jouer.Numacteur = Acteur.Numacteur)
R3 = Sélection (R2 ; Nomacteur = « ADJANI » et Préacteur = « Isabelle »)
R4 = Sélection (R3 ; Anfilm < 1990)
R5 = Projection (R4, Numfilm ; Nomfilm ; Anfilm)
4) R1 = Jointure (Acteur ; Jouer ; Acteur.Numacteur = Joeur.Numacteur)
R2 = Jointure (R1 ; Film ; Jouer.Numfil = Film.Numfilm)
R3 = Jointure (R2 ; Réalis ; Film.Numfilm = Réalis.Numréalis)
R4 = Sélection (R3 ; Nomréalis = « LELOUCH » et Préréalis = « Claude »)
R5 = Projection (R4 ; Nomacteur ; Préacteur)
5) R1 = Jointure (Film ; Louer ; Film.Numfilm = Louer.Numfilm)
R2 = Jointure (R1 ; Client ; Louer.Numclient = Client.Numclient)
R3 = Sélection (R2 ; Nomclient = « LEON » et Préclient = « VIDEO »
R4 = Sélection (R3 ; 1990 < Année < 1993)
R5 = Projection (R4 ; Nomfilm)
Exercice 7.3
1) R1 = Sélection (Client ; Advclt = « DAMGAN »
R2 = Projection (R1 ; Nomclt)
2) R1 = Jointure (Client ; Louer ; Client.Numclt = Louer.Numclt)
R2 = Jointure (R1 ; Voilier ; Louer.Numvoil = Voilier.Numvoil)
R3 = Sélection (R2 ; Typevoil = « DERIVEUR »
R4 = Projection (R3, Nomclt)
3) R1 = Projection (Voilier ; Numvoil)
R2 = Projection (Louer ; Numvoil)
R3 = Différence (R1, R2)
R4 = Jointure (R3, Voilier, R3.Numvoil = Voilier.Numvoil)
R5 = Projection (R4 ; Nomvoil)
4) R1 = Projection (Client ; Numclt)
R2 = Projection (Louer ; Numclt)
R3 = Intersection (R1, R2)
R4 = Jointure (R3, Client, R3.Numclt = Client.Numclt)
R5 = Projection (R4 ; Nomclt)