Computers">
TI Chap2
TI Chap2
TI Chap2
U.E. BDW1
Bases de Données et programmation WEB
Pourquoi ? Comment ?
R S U V W
A B C D E F G H D I J K L M M
1 2 3 4 1 2 3 4 2 3 4 1 2 1 1
2 3 1 4 2 4 1 3 3 1 2 1 2 2 2
3 4 1 2 3 4 1 2 4 2 3 2 1 1 3
4 3 1 2 4 2 1 3 2 1 2
2 1 3
3 2 1
Instance du résultat :
L’UNION : R ∪ S T
A B C D
Condition: R et S doivent être compatibles à l’union 1 2 3 4
(même nombre d’attributs, même type d’attributs). 2 3 1 4
3 4 1 2
Ce qui est retourné: l’ensemble des tuples qui appa- 4 3 1 2
tiennent à R ou qui appartiennent à S. 1 2 3 4
2 4 1 3
Schéma du résultat : T(A,B,C,D) 3 4 1 2
4 2 1 3
La DIFFERENCE : R − S
L’INTERSECTION : R ∩ S
Si on considère : Si on considère :
F : C > F, F : C > F ∧ D != H,
alors on aura : alors on aura :
T T
A B C D E F G H A B C D E F G H
1 2 3 4 1 2 3 4 1 2 3 4 4 2 1 3
1 2 3 4 4 2 1 3
La SEMI-JOINTURE : R B<F S
Si on considère : Si on considère :
F : C > F, F : C > F ∧ D != H,
alors on aura : alors on aura :
T T
A B C D A B C D
1 2 3 4 1 2 3 4
BCA=E
R σF >1
On suppose que : AnNaiss représente l’année de naissance d’un joueur, qu’il n’y a pas d’homonymes
dans la base de données, que la taille est exprimée en centimètre et que le poids est exprimé en kilogramme.
Ecrire en algèbre relationnelle, quand cela est possible, les requêtes suivantes :
1. Donner les joueurs nés avant 1987 (inclus) et faisant plus de 78kg (strict).
2. Donner les nationalités présentes dans la table.
3. Donner le nom des joueurs de plus 1m80. Le résultat aura pour nom "NomDesGrands".
4. Donner le nom et le prénom des joueurs ayant eu un palmarès en 2014.
5. Donner le nom des joueurs sans palmarès.
6. Donner le nom des joueurs titré en 2010 et 2014.
7. Donner le nom des joueurs titré tous les ans (i.e. pour toutes les années stockées dans la base)
8. Donner le nom du/des joueurs le(s) plus jeune(s) stocké(s) dans la base.
9. Donner le nombre de titre obtenu par le joueur le plus titré.
6. ΠN om (σT itre=0 ChampiondeF rance0 ∧T itre=0 CoupedeF rance0 ∧Annee=0 20140 (P ALM ARES)) :
retourne le nom des joueurs ayant obtenu à la fois le titre de ’Champion de France’ et le titre de
’Coupe de France’ en 2014.
2. ΠN ation (JOU EU R)
8. ΠN om,P renom (JOU EU R) − ΠN om,P renom (ρAnN aiss/A1 (JOU EU R) B<A1<A2 ρAnN aiss/A2 (JOU EU R))
car la semi-jointure ne retourne que les joueurs pour lesquels il existe au moins un autre joueur plus
jeune et en faisant la différence, il ne reste plus que les noms et prénoms des joueurs pour lesquels il
n’existe pas d’autre joueurs plus jeune : donc ce sont les plus jeunes !
9. Impossible car pas d’opérateur d’agrégation dans cette version de l’algèbre relationnelle.
3. Erreur : La projection sur le nom est appliquée avant la sélection qui ne peut pas s’appliquer car
AnNaiss n’existe plus.
ΠN om (σAnN aiss>1983 (JOU EU R))
4. La requête proposée retourne le nom des joueurs ayant obtenu au moins une fois un titre différent de
celui de ’Champion de France’.
ΠN om (JOU EU R) − ΠN om (σT itre=0 Champion de F rance0 (P ALM ARES))
5. La requête proposée ne retourne rien : un attribut ne peut pas avoir deux valeurs différentes en même
temps. Dans le modèle relationnel est les attributs sont mono-valués.
ΠN om,P renom (σN ation=0 F rance0 ∨N ation=0 Argentine0 (JOU EU R))