Title: Bases de donn
1Calculs relationnels(chapitre 7)
- Bases de données relationnelles
2LMD relationnels algèbriques (rappel)
- Lalgèbre relationnelle permet de spécifier
quelles sont les opérations à exécuter pour
calculer le résultat de la requête - Limplantation des opérateurs algébriques
définit un moteur algèbrique pour lexécution des
requêtes - Ce composant "moteur algèbrique" constitue le
noyau des SGBD relationels - SQL est une version orientée utilisateur de
lalgèbre relationnelle
3LMD prédicatifs
- Un langage prédicatif permet de ne spécifier que
le résultat cherché (pas comment le calculer) - spécification des prédicats qui doivent être
vérifiés par les données pour former le résultat - Ces langages sont dits prédicatifs car il sont
basés sur le calcul de prédicats (logique 1er
ordre) - Un langage prédicatif est donc plus simple quune
algèbre ... si on a un esprit logique
4LMD relationnels prédicatifs
- Il existe deux types de langages prédicatifs
relationnels - calcul de tuples les variables dans les
expressions logiques portent sur les tuples des
relations (QUEL) - x ? Etudiant
- calcul de domaines les variables dans les
expressions logiques portent sur les attributs
des relations (QBE) - x ? Etudiant.Nom
5(No Transcript)
6Requête multi-relation
- Etudiant (nom, prénom, année, no)
- Inscription (noét, nomC, note1, note2)
- Requête no, prénom, notes des étudiants de nom
"Rochat" inscrits dans le cours
"BD" - e ? Etudiant, i ? Inscription
- e.no, e.prénom, i.note1, i.note2
- e.nom "Rochat" ? i.nomC "BD" ? e.no
i.noét - ?? ET ? OU
7(No Transcript)
8Quantificateur " il existe"
- Etudiant (nom, prénom, année, no)
- Inscription (noét, nomC, note1, note2)
- Requête nom, prénom des étudiants ayant
réussi brillament un cours - e ? Etudiant, i ? Inscription
- e.nom, e.prénom
- ? i (e.no i.noét ? i.note1 10 ? i.note2
10)
9Quantificateur "pour tous"
- Requête nom, prénom des étudiants ayant
réussi brillament tous les cours - e ? Etudiant, i ? Inscription
- e.nom, e.prénom
- ? i (e.no ? i.noét ? (i.note1 10 ??i.note2
10)) - ?? ? i (e.no i.noét)
? x (??A ? B) ? ??x (A ? B)
10(No Transcript)
11Formalisation
- x ? R, y ? S ? T
- déclaration de variable
- x.A, y.B, ... ƒx,y,...
- ƒx,y,... WFF (well-formed formula)
- toutes les variables sont déclarées
- x.A
- A est un attribut de R si x ? R est déclarée
12(No Transcript)
13Well-formed formula
- WFF
- x ? a ou x ? y ? , ?, lt, ...
- ƒ1 , ƒ2 WFF ? ƒ1 ???ƒ2
- ƒ1 ???ƒ2
- ?ƒ1
- ƒx est WFF, x variable libre
- ????????? x (ƒx) , ? x (ƒx)
14Variable libre et liée
- x.A, y.B, ..., z.D / ƒx, y, ..., z
- ƒx, y,...z
- est une formule valide ayant pour variables
libres exactement x, y, ...,z - WFF
- si ƒx est une formule valide où x est une
variable libre - alors ? x ƒ(x) ? x ƒ(x) sont des WFF avec x
liée
15(No Transcript)
16Normalisation
- Pour mieux comprendre
- La structure du predicat (variables libre et
lieé, occurrence de relations) - La semantique du predicat
forme prenexe pas d'occurrence de
quantificateurs dans ƒx1, ..., xn Q1x1, Q2x2,
...Qnxn (ƒx1, ..., xn) Q ? ou ?
17(No Transcript)
18(No Transcript)
19(No Transcript)
20(No Transcript)
21(No Transcript)
22(No Transcript)
23Exemple-2
- Employé (Prénom, NomFamille, DateNaissance,
- Adresse, NoAvs, Salaire, NoDep, SupérieurNoAvs)
- Département (nomDep, NoDep, DirecteurNoAvs)
- Département Sites (NoDep, DepLieu)
- Projet (ProNom, NoPro, ProLieu, NoDep)
- TravailleSur (NoAvs, NoPro, Heures)
e ? Employé d ? Département p ? Projet t ?
TravailleSur
p.ProNom ?d ?e ?t (e.NoDepd.NoDep
? e.NoAvst.NoAvs ? t.NoProp.noPro)
24(No Transcript)
25Calcul de domaines
- Etudiant (nom, prénom, année, no) Inscription
(noét, nomC, note1, note2) - Requête nom, prénom des étudiants nés après
1969 - n ? Etudiant.nom
- p ? Etudiant.prénom
- a ? Etudiant.année
- n, p ?a (Etudiant(nom n, prénom p, année
a) ? agt1969
26Calcul de domaines jointure
- Requête numéro, prénom, notes des étudiants de
nom Rochat inscrits en BD - n0 ??Etudiant.no ? Inscription.noét
- p ??Etudiant.prénom
- n1 ??Inscription.note1
- n2 ??Inscription.note2
- n0, p, n1, n2 Etudiant (nom 'Rochat',
prénom p,no n0) ?Inscription (noét n0, nomC
'BD', note1 n1, note2 n2)
27Calcul de domaines il existe
- Requête nom, prénom des étudiants ayant
brillament réussi un cours - n0 ??Etudiant.nom
- p ??Etudiant.prénom
- n ??Etudiant.no ? Inscription.noét
- n, p ?n0 (Etudiant (nom n, prénom p, no
n0)??Inscription (noét n0, note1 10, note2
10)
28Calcul de domaines pour tous
- Requête nom, prénom des étudiants ayant
brillament réussi tous leurs cours - n0 ??Etudiant.nom
- p ??Etudiant.prénom
- n ??Etudiant.no ? Inscription.noét
- c ??Inscription.nomC
- n, p ?n0 (Etudiant (nom n, prénom p, no n0)
? - ? c
- (? Inscription (noét n0, nomC c) ?
- ??(Inscription (noét n0, nomC c, note110,
note210)) - ????????c (Inscription (noét n0, nomC c??
29Information
- Jan 8
- Lecture "Introduction into Oracle" given by
Mohamad Tahor Mehagar - Exercise practical work with Oracle
- Jan 15 Practical Query Languages
- QBE
- Quel
- SQL
30- Merry Christmas and a Happy New Year !