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

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)

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)

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

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

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

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)