Vous êtes sur la page 1sur 64

Je tiens à remercier M. Faouzi BOUFARÈS, à l'origine de ce support de cours.

1
L’ALGEBRE RELATIONNELLE (AR)
L’algèbre relationnelle est composée de plusieurs opérations sur des tables :

- la projection (garder des colonnes à partir d’une table) ;


- la sélection (restriction) (garder des lignes à partir d’une table) ;

- le produit cartésien entre plusieurs tables (croiser les données de plusieurs tables) ;
- la jointure entre plusieurs tables (rapprocher plusieurs tables sur des critères) ;
- la division ;

- l’union de 2 tables :
- l’intersection entre 2 tables ;
- la différence entre 2 tables ;

Le langage SQL (voir TP): est l’un des langages qui permet d’exprimer ces opérations.

2
1. La projection

Définition

La projection de la relation R1 sur l'ensemble des attributs A:


est une relation R dont les tuples sont obtenus:
1. par élimination des valeurs des attributs de R1 n'appartenant pas à
A
2. et par suppression des tuples en double.

L'objectif de cette opération est de supprimer des attributs de la relation R1.

Notation:
R = Projection ( R1, { A } )

[A] (R1) 3
1.1. Exemple de la projection

CODES = Projection ( CLIENTS, { CodeClient } )

CLIENTS CODES
CodeClient NomClient AdresseClient
007
005
Boufarès
Le Bon
TUNIS
MONASTIR

003 Faouzi MONASTIR

4
1.1. Exemple de la projection

CODES = Projection ( CLIENTS, { CodeClient } )

CODES = [CodeClient] (CLIENTS)

CLIENTS CODES
CodeClient NomClient AdresseClient CodeClient
007
005
Boufarès
Le Bon
TUNIS
MONASTIR
 007
005
003 Faouzi MONASTIR 003

En SQL : SELECT CodeClient FROM Clients ;

5
1.2. Exemple de la projection
ADRESSES = Projection ( CLIENTS, { AdresseClient } )

ADRESSES = […?] (…?)

CLIENTS ADRESSES
CodeClient NomClient AdresseClient
007
005
Boufarès
Le Bon
TUNIS
MONASTIR

003 Faouzi MONASTIR

6
1.2. Exemple de la projection

ADRESSES = Projection ( CLIENTS, { AdresseClient } )

ADRESSES = [AdresseClient] (CLIENTS)

CLIENTS ADRESSES
CodeClient NomClient AdresseClient AdresseClient
007
005
Boufarès
Le Bon
TUNIS
MONASTIR
 TUNIS
MONASTIR
003 Faouzi MONASTIR

En SQL : SELECT DISTINCT AdresseClient FROM Clients ;

7
2. La sélection

Définition:

La sélection dans la relation R1, selon un critère C :


• donne une relation R de même schéma que R1 :
• Les tuples de R sont ceux de R1 qui vérifient la condition
logique C (le critère de sélection).

Notation:
R = Sélection ( R1, { C } )

R = [C] (R1)

8
2.1. Exemple de la sélection

LESMONASTIRIENS = Sélection ( CLIENTS, { AdresseClient = ‘MONASTIR’})

CLIENTS
CodeClient NomClient AdresseClient
007
005
Boufarès
Le Bon
TUNIS
MONASTIR

LESMONASTIRIENS
003 Faouzi MONASTIR
CodeClient NomClient AdresseClient

9
2.1. Exemple de la sélection

LESMONASTIRIENS = Sélection ( CLIENTS, { AdresseClient = ‘MONASTIR’})

[AdresseClient = ‘MONASTIR’] (CLIENTS)


CLIENTS
CodeClient NomClient AdresseClient
007
005
Boufarès
Le Bon
TUNIS
MONASTIR

LESMONASTIRIENS
003 Faouzi MONASTIR
CodeClient NomClient AdresseClient

005 Le Bon MONASTIR


003 Faouzi MONASTIR

En SQL : SELECT CodeClient, Nomclient, AdresseClient


FROM Clients WHERE AdresseClient = ‘MONASTIR’ ;

10
2.2. Le critère de sélection [C] Critère Simple

Attribut Opérateur Valeur

Un attribut de la relation <, <=, >, >=, =, <> Une constante selon le type de donnée :
Numérique, Caractère, Date, Logique ...

VILLE = "MONASTIR" ‘MONASTIR’


DATENAISSANCE > #01/01/2004# ‘01-JAN-2004’
COUT <= 270,00

Attribut Opérateur Attribut

Un attribut de la relation <, <=, >, >=, =, <> Un (autre) attribut de la relation

VILLEDEPART <> VILLEARRIVEE


DATELIVRAISON >= DATEDECOMMANDE

11
2.2. Le critère de sélection Critère Simple

Attribut Opérateur Expression

Un attribut de la relation <, <=, >, >=, =, <> Une expression arithmétique, ...

PRIXVENTE >= 2 * PRIXACHAT

COUT > MOYENNE ( COUT )

12
2.2. Le critère de sélection Critère Complexe

( Critère Simple ) Opérateur ( Critère Simple )

( Critère Complexe ) Opérateur ( Critère Simple )

( Critère Complexe ) Opérateur ( Critère Complexe )

ET, OU, NON


AND, OR, NOT

13
3. Le produit cartésien
Définition

Le produit cartésien de deux relations R1 et R2 (de schémas


quelconques):
• est une relation R définie sur l'union (la concaténation)
des attributs de R1 et de R2.

• Les tuples de R sont toutes les concaténations d'un tuple


de R1 à un tuple de R2.

Notation:
R = Produit ( R1, R2 )

R1  R2
14
7.1. Exemple du produit cartésien

R = Produit ( R1, R2 )

R1  R2

R1 R2
A1 A2
B1 B2 B3
a
b
17
10
16 10 96 
22 11 69
c 58

15
3.1. Exemple du produit cartésien

R = Produit ( R1, R2 )

R1  R2
R
A1 A2 B1 B2 B3
R1 R2
a 17 16 10 96
A1 A2
B1 B2 B3


a 17 22 11 69
a 17
16 10 96 b 10 16 10 96
b 10
22 11 69 b 10 22 11 69
c 58
c 58 16 10 96
c 58 22 11 69
En SQL : SELECT * FROM R1, R2 ;

16
3.2. Exemple du produit cartésien

R = Produit (PERSONNE , CADEAU)

R = PERSONNE CADEAU

R1 R2
A1 A2
B1 B2 B3
a
b
17
10
16 10 96  Exercice : calculer le résultat ?

22 11 69
c 58

17
3.2. Exemple du produit cartésien

R = Produit (PERSONNE , CADEAU)

R = PERSONNE CADEAU

R1 R2
A1 A2
B1 B2 B3
a
b
17
10
16 10 96 
22 11 69
c 58

18
4. La Jointure

Définition

La jointure de deux relations R1 et R2 selon une condition Q


est l'ensemble des tuples du produit cartésien R1  R2
satisfaisant à cette condition Q.

Notation:
R = Jointure ( R1, R2, { Q } )

R1 [Q] R2

19
4.1. Exemple de la jointure =
R = Jointure ( R1, R2, { R1.A2 = R2.B2 } )
R1 [R1.A2 = R2.B2] R2

R1 R2
A1 A2
B1 B2 B3
a
b
17
10
16 10 96 
22 11 69
c 58

20
4.1. Exemple de la jointure =
R = Jointure ( R1, R2, { R1.A2 = R2.B2 } )
R1 [R1.A2 = R2.B2] R2
R
A1 A2 B1 B2 B3
R1 R2
A1 A2
B1 B2 B3
a
b
17
10
16 10 96  b 10 16 10 96

22 11 69
c 58

En SQL : SELECT * FROM R1, R2 WHERE R1.A2 = R2.B2;

21
4.1. Exemple de la jointure =
R = Jointure ( R1, R2, { R1.A2 = R2.B2 } )
R1 [R1.A2 = R2.B2] R2
R1 R2
R
A1 A2
B1 B2 B3
a
b
17
10
16 10 96  A1
b
A2
10
B1
16
B2
10
B3
96
22 11 69
c 58

En SQL : SELECT * FROM R1, R2 WHERE R1.A2 = R2.B2;

22
4.2. Exemple de la jointure >

R = Jointure ( R1, R2, { R1.A2 > R2.B2 } )

R1 [R1.A2 > R2.B2] R2


R1 R2
A1 A2
B1 B2 B3
a
b
17
10
16 10 96 
22 11 69
c 58

23
4.2. Exemple de la jointure >
R = Jointure ( R1, R2, { R1.A2 > R2.B2 } )
R1 [R1.A2 > R2.B2] R2
R
R1 R2 A1 A2 B1 B2 B3
A1 A2
B1 B2 B3


a 17 16 10 96
a 17
16 10 96 a 17 22 11 69
b 10
22 11 69 c 58 16 10 96
c 58
c 58 22 11 69

En SQL : SELECT * FROM R1, R2 WHERE R1.A2 > R2.B2;

24
4.3. Exemple de jointure

Exercice : calculer le résultat de la jointure suivante :


R = Jointure (PERSONNE , CADEAU, {(âge ≤ âgeC) ET (prix ≤ 50)) } )

Cette jointure permet de calculer toutes les possibilités d’association


entre une personne et un cadeau en respectant l’âge maximum
conseillé pour un cadeau et la somme de 50 à ne pas dépasser.

25
4.3. Exemple de jointure

R = Jointure (PERSONNE , CADEAU, {(âge ≤ âgeC) ET (prix ≤ 50)) } )

26
5. La Division

Définition

Le quotient de la relation R1 par la relation R2 est la relation R:


Tous les tuples de R concaténés à chacun des tuples de R2 doivent
appartenir à R1.

Notation:

R = Division ( R1, R2 )

R = (R1  R2)

27
5.1. Exemple de la division
R = Division ( R1, R2 )

R = (R1  R2)
R1
A B
a x
b x R2 R


b y B
c y x
d z y
e x
e y
e z

28
5.1. Exemple de la division
R = Division ( R1, R2 )

R = (R1  R2)
R1
A B
a x
b x R2 R


b y B A
c y x b
d z y e

e x
e y
e z

29
5.2. Un autre exemple de division
R = Division ( R1, R2 )

R = (R1  R2)
R1
A B C
a c 1 R2
B C R
a c 2

a c 3
c

c
2

3

b c 3

b f 1

i b 3

30
5.2. Un autre exemple de division
R = Division ( R1, R2 )

R = (R1  R2)
R1
A B C
a c 1 R2
B C R
a c 2

a c 3
c

c
2

3
 A
a

b c 3

b f 1

i b 3

31
Ci-dessous, un exemple de division (ENSEIGNEMENT ÷ ETUDIANT) qui
permet de calculer la table R contenant les enseignants de la relation
ENSEIGNEMENT qui enseignent à tous les étudiants de la relation ETUDIANT

R = Division (ENSEIGNEMENT , ETUDIANT )

Exercice : calculer le résultat ?

32
Ci-dessous, un exemple de division (ENSEIGNEMENT ÷ ETUDIANT) qui
permet de calculer la table R contenant les enseignants de la relation
ENSEIGNEMENT qui enseignent à tous les étudiants de la relation ETUDIANT

R = Division (ENSEIGNEMENT , ETUDIANT )

33
6. Les relations compatibles

Définition

Deux relations sont compatibles si et seulement si elles ont le même


schéma :
- Elles ont le même nombre d'attributs ;
- Les attributs sont comparables deux à deux, c'est à dire définis sur
les mêmes domaines.

R ( A1, A2, …, An)


S ( B1, B2, …, Bn)
Les Ai et Bi sont définis sur les mêmes domaines pour tout i = 1,…,n

34
6.1. Exemple de relations non compatibles
Les deux schémas relationnels ci-dessous ne sont pas compatibles car les
attributs NUM_CENTRE et NUM_CLIENT ne sont pas comparables (ne
désignent pas la même information). Il en est de même pour la pair (NOMC,
PREN)...

CENTRE ( NUM_CENTRE, NOMC, VILLEC, COUT_INSC )


CLIENT( NUM_CLIENT, PREN, NOM, VILLE )

6.2. Exemple de relations compatibles

Les deux schémas relationnels ci-dessous sont compatibles :

ART_ROUGE ( CODE_ARTICLE )
ART_SEPTEMBRE (CODE_ARTICLE )

35
7. L’Union

Définition

L'union de deux relations R1 et R2 compatibles:


• est une relation R de même schéma
• contenant l'ensemble des tuples appartenant à R1 ou R2 ou
aux deux relations.

Notation:

R = Union ( R1, R2 )

R1  R2

36
7.1. Exemple de l’Union

ROUGEouSEP = Union ( ART_ROUGE, ART_SEPTEMBRE )

ART_ROUGE  ART_SEPTEMBRE

ART_ROUGE ART_SEPTEMBRE ROUGEouSEP


CodeArticle CodeArticle CodeArticle
A100
A200
FB50
FB51  A100
A200
FB50
FB50
FB51

En SQL : SELECT CodeArticle FROM ART_ROUGE


UNION
SELECT CodeArticle FROM ART_SEPTEMBRE ;

37
8. L’Intersection

Définition

L'intersection de deux relations R1 et R2 compatibles:


• est une relation R de même schéma
• contenant les tuples appartenant à la fois à R1 et R2.

Notation

R = Intersection ( R1, R2 )

R1  R2

38
8.1. Exemple de l’Intersection

ROUGEetSEP = Intersection ( ART_ROUGE, ART_SEPTEMBRE )

ART_ROUGE  ART_SEPTEMBRE
ART_ROUGE ART_SEPTEMBRE ROUGEetSEP
CodeArticle CodeArticle CodeArticle
A100
A200
FB50
FB51  FB50

FB50

En SQL : SELECT CodeArticle FROM ART_ROUGE


INTERSECT
SELECT CodeArticle FROM ART_SEPTEMBRE ;

39
9. La différence

Définition

La différence de deux relations R1 et R2 compatibles, (dans l'ordre R1 - R2):


• est une relation R de même schéma
• contenant les tuples appartenant à R1 et n'appartenant pas à R2.

Notation:
R = Différence ( R1, R2 )

R1 - R2

40
9.1. Exemple de la différence

ROUGEnonSEP = Différence ( ART_ROUGE, ART_SEPTEMBRE )

ART_ROUGE - ART_SEPTEMBRE

ART_ROUGE ART_SEPTEMBRE ROUGEnonSEP


CodeArticle CodeArticle CodeArticle
A100
A200
FB50
FB51  A100
A200
FB50

En SQL : SELECT CodeArticle FROM ART_ROUGE


MINUS
SELECT CodeArticle FROM ART_SEPTEMBRE ;

41
9.2. Exemple de la différence

RGnonSEPBis = Différence (ART_SEPTEMBRE, ART_ROUGE )

ART_SEPTEMBRE - ART_ROUGE
ART_SEPTEMBRE ART_ROUGE RGnonSEPBis
CodeArticle CodeArticle CodeArticle
FB50
FB51
A100
A200  FB51

FB50

En SQL : SELECT CodeArticle FROM ART_SEPTEMBRE


MINUS
SELECT CodeArticle FROM ART_ROUGE ;

42
Exercices

Exemples Algèbre Relationnelle :


BD ‘Sport Activities’ = SPORACT

43
Exemples Algèbre Relationnelle : BD ‘Sport Activities’ = SPORACT
Un exemple d'occurrences de la Base de Données SPORACT est donné ci-dessous :

44
Exemples Algèbre Relationnelle : BD ‘Sport Activities’ = SPORACT

45
11.1. Projection SPORACT

Requête 1 : Afficher la liste des sports proposés.


T1 = Projection ( PROPOSE, {SPORT} )
T1
SPORT
BASKETBALL
EQUITATION
FOOTBALL

 GOLF
HANDBALL
JUDO
KARATE
KARTING
NATATION
PLONGEE
TENNIS
YOGA

46
11.2. Projection SPORACT

Requête 2: Afficher la liste des noms des centres sportifs et des villes où ils se
trouvent.
T2 = Projection ( CENTRE, {NOMC, VILC} )

T2
NOMC VILC
Green Park VILLETANEUSE

Marouchka CANNES

 Nannou Center

Nannou Center
NICE

PARIS

Pleine Forme EPINAY

Pleine Forme MONASTIR

Remarque :
Les tuples (les lignes) en double sont éliminés dans le résultat.
Ils sont présentés dans l'ordre des attributs et triés de façon croissante.

47
11.3. Sélection SPORACT

Requête 3 : Afficher la liste des centres sportifs de Paris

T3 = Sélection ( CENTRE, {VILC = ‘Paris’} )

T3
NUMC NOMC VILC COUTINSC

 1O3
1O7
Pleine Forme Paris
Nannou Center Paris
340
400

48
11.4. Sélection + Projection SPORACT
Requête 4 : Afficher la liste des noms des centres sportifs de Paris

T41 = Sélection ( CENTRE, {VILC = ‘Paris’} )


T4 = Projection ( T41, {NOMC} )

T4 = Projection ( Sélection ( CENTRE, {VILC = ‘Paris’} ), {NOMC} )

T41
NUMC NOMC VILC COUTINSC
1
1O3 Pleine Forme Paris 340
1O7 Nannou Center Paris 400

T4

2 NOMC
Nannou Center
Pleine Forme
49
11.5. Union + Sélection + Projection SPORACT
Requête 5 : Afficher la liste des numéros des centres sportifs qui proposent le football ou
le handball ou ceux qui se trouvent à villetaneuse.

T51 = Sélection ( PROPOSE, {SPORT = ‘FOOTBALL’ OU SPORT = ‘HANDBALL’} )


T52 = Sélection ( CENTRE, {VILC = ‘VILLETANEUSE’} )
T53 = Projection ( T51, {NUMC} )
T54 = Projection ( T52, {NUMC} )
T5 = Union ( T53, T54 )
T51
NUMC SPORT T52
1O1 FOOTBALL NUMC NOMC VILC COUTINSC
1O3 FOOTBALL 1O1 Green Park VILLETANEUSE 300
1O3 HANDBALL
T53 T5


T54
NUMC NUMC
NUMC
1O1 1O1
1O1
1O3 1O3

50
11.6. Différence + Sélection + Projection SPORACT
Requête 6 : Afficher la liste des numéros des centres sportifs qui ne proposent que la
natation (pas d'autres sports).

T61 = Sélection ( PROPOSE, {SPORT = ‘NATATION’} )


T62 = Sélection ( PROPOSE, {SPORT <> ‘NATATION’} )
T63 = Projection ( T61, {NUMC} )
T64 = Projection ( T62, {NUMC} )
T6 = Différence ( T63, T64 )

???
 T6
NUMC
1O2

51
11.6. Différence + Sélection + Projection SPORACT
Requête 6 : Afficher la liste des numéros des centres sportifs qui ne proposent que la
natation (pas d'autres sports).

T62 T61 = Sélection ( PROPOSE, {SPORT = ‘NATATION’} )


NUMC SPORT
T62 = Sélection ( PROPOSE, {SPORT <> ‘NATATION’} )
1O1 FOOTBALL
1O1 KARTING T63 = Projection ( T61, {NUMC} )
1O1 TENNIS T64 = Projection ( T62, {NUMC} )
1O3 FOOTBALL
T6 = Différence ( T63, T64 )
1O3 HANDBALL
1O3 BASKETBALL
1O4 KARATE
T64

1O4 YOGA NUMC


T61 T63


1O4 JUDO 1O1
NUMC SPORT NUMC
1O7 GOLF 1O3
1O2 NATATION 1O2
1O7 KARTING
1O4 T6
1O7 TENNIS 1O8 NATATION 1O8
1O7 NUMC
1O7 EQUITATION
1O8 PLONGEE
1O8 1O2

52
11.7. Intersection + Sélection + Projection SPORACT
Requête 7 : Afficher la liste des numéros des centres sportifs qui proposent à la fois le
Golf et le Tennis.
T71 = Sélection ( PROPOSE, {SPORT = ‘GOLF’} )
T72 = Sélection ( PROPOSE, {SPORT = ‘TENNIS’} )
T73 = Projection ( T71, {NUMC} )
T74 = Projection ( T72, {NUMC} )
T75 = Intersection ( T73, T74 )

T72 T74
T71 T73 T7


NUMC SPORT NUMC
NUMC SPORT NUMC NUMC
1O1 TENNIS 1O1
1O7 GOLF 1O7 1O7
1O7 TENNIS 1O7

53
11.8. Produit Cartésien SPORACT
Requête 8 : Afficher toutes les coordonnées des centres sportifs avec la liste des sports
qu'ils proposent.
T8 = Produit ( CENTRE, PROPOSE )

T8
NUMC NOMC VILC COUTINSC P.NUMC SPORT
1O1 Green Park VILLETANEUSE 300 1O1 FOOTBALL
1O1 Green Park VILLETANEUSE 300 1O1 KARTING
1O1 Green Park VILLETANEUSE 300 1O1 TENNIS
1O1 Green Park VILLETANEUSE 300 1O2 NATATION
1O1 Green Park VILLETANEUSE 300 1O3 FOOTBALL
Etc. Etc.
1O8 Nannou Center NICE 380 1O1 FOOTBALL
Etc. Etc.
1O8 Nannou Center NICE 380 1O8 PLONGEE

54
11.9. Jointure + Sélection + Projection SPORACT
Requête 9 : Afficher la liste des numéros, des noms et des villes des centres sportifs qui
proposent le karting.
T91 = Sélection ( PROPOSE, {SPORT = ‘KARTING’} )
T92 = Jointure ( T91, CENTRE {T91.NUMC = CENTRE.NUMC} ) ?

T91
NUMC SPORT
1O1 KARTING
1O7 KARTING

55
11.9. Jointure + Sélection + Projection SPORACT
Requête 9 : Afficher la liste des numéros, des noms et des villes des centres sportifs qui
proposent le karting.
T91 = Sélection ( PROPOSE, {SPORT = ‘KARTING’} )
T92 = Jointure ( T91, CENTRE {T91.NUMC = CENTRE.NUMC} )
T9 = Projection ( T92, {C.NUMC,NOMC,VILC} )

T9 = Projection ( Jointure ( Sélection ( PROPOSE, {SPORT = ‘KARTING’} ), CENTRE,


{C.NUMC=P.NUMC} ), {C.NUMC, NOMC, VILC} )

T91 T92

NUMC SPORT P.NUMC SPORT C.NUMC NOMC VILC COUTINSC


1O1 KARTING 1O1 Green Park VILLETANEUSE 300
1O1 KARTING
1O7 KARTING 1O7 Nannou Center Paris 400
1O7 KARTING

T92

 C.NUMC
1O1
1O7
NOMC
Green Park
VILC
VILLETANEUSE
Nannou Center Paris

56
11.10. Division + Sélection + Projection SPORACT
Requête 10 : Afficher la liste des numéros des acteurs qui pratiquent tous les sports
proposés par le centre sportif de numéro 104 (les acteurs concernés doivent les pratiquer
dans le centre 104).
???

??  ??

57
11.10. Division + Sélection + Projection SPORACT
Requête 10 : Afficher la liste des numéros des acteurs qui pratiquent tous les sports
proposés par le centre sportif de numéro 104 (les acteurs concernés doivent les pratiquer
dans le centre 104).
T101 = Sélection ( PROPOSE, {NUMC = ‘104’} )
T10 = Division ( PRATIQUE, T101 )

T10 = Division ( PRATIQUE, Sélection ( PROPOSE, {NUMC = ‘104’} )

T101
NUMC SPORT T10
1O4
1O4
KARATE
YOPGA
 NUMA
OO7
1O4 JUDO

58
11.11. Division + Sélection + Projection SPORACT
Requête 11 : Afficher la liste des numéros des acteurs qui
pratiquent tous les sports proposés par le centre sportif de numéro
104 (les acteurs concernés ne les pratiquent pas forcément dans le
centre 104).
???

??  ??

59
11.11. Division + Sélection + Projection SPORACT
Requête 11 : Afficher la liste des numéros des acteurs qui pratiquent tous les sports
proposés par le centre sportif de numéro 104 (les acteurs concernés ne les pratiquent pas
forcément dans le centre 104).
T111 = Sélection ( PROPOSE, {NUMC = ‘104’} )
T112 = Projection ( T111, {SPORT} )
T113 = Projection ( PRATIQUE, {NUMA, SPORT} )

T11 = Division ( T113, T112 )


T113
NUMA SPORT
OO1 TENNIS
OO1 NATATION T111 T112
OO2 FOOTBALL NUMC SPORT SPORT T11


OO2 KARTING
OO7 KARATE 1O4 KARATE KARATE NUMA
OO7 YOPGA 1O4 YOPGA YOPGA OO7
OO7 JUDO
OO7 KARTING 1O4 JUDO JUDO
OO7 PLONGEE
OO8 GOLF
OO8 TENNIS

60
11.12. Calcul + Projection SPORACT

Requête 12 : Afficher la liste des numéros des centres sportifs, les villes où ils se
trouvent et le coût d'inscription réduit de 10%.

T12 = Projection ( CENTRE, {NUMC, VILC, COUTINSC, COUTINSC*0,9 CoûtRéduit )

T12

 NUMC VILC
1O3
1O7
Paris
Paris
COUTINSC
340
400
CoûtRéduit
306
360

61
11.13. Agrégat SPORACT

Requête 13 : Afficher la valeur maximale du coût d'inscription dans un centre


sportif.

R = Agrégat ( CENTRE, MAXIMUM(COUTINSC) CoûtMax )

 CoûtRMax
400

62
11.14. Agrégat SPORACT

Requête 14 : Afficher la valeur moyenne du coût d'inscription.

R = Agrégat ( CENTRE, MOYENNE(COUTINSC) CoûtMoyen )

 CoûtRMoyen
346,666667

63
11.15. Agrégat + (Calcul + Groupement) SPORACT

Requête 15 : Compter le nombre de sport(s) proposé(s) par chacun des centres


sportifs.

R = Agrégat ( PROPOSE, { NUMC, COMPTE(SPORT) NombreSports } )

R
NUMC NombreSports
1O1 3


1O2 1
1O3 3
1O4 3
1O7 4
1O8 2

64

Vous aimerez peut-être aussi