Cours 4 Langage SQL Algbre relationnelle Nguyen Tuan
Cours 4 : Langage SQL & Algèbre relationnelle Nguyen Tuan. Loc
l Rappel sur l’algèbre relationnel Normalisation – Forme conjonctive (p 11 ν p 12 v…v p 1 n) Λ (pm 1 ν pm 2 v…v pmn) – Forme disjonctive (p 11 Λ p 12Λ … Λp 1 n) v (pm 1 Λ pm 2Λ…Λ pmn) (souvent disjonctive)
Exemple: schéma de la base de données pour les étudiants de la MIAGE Paris 12
Conjonctive SELECT ENSEIGNANTS. nom, ENSEIGNANTS. prenom, MATIERES. nommat FROM MATIERES INNER JOIN (ENSEIGNANTS INNER JOIN ENSEIGN_MAT ON ENSEIGNANTS. codens = ENSEIGN_MAT. codens) ON MATIERES. codemat = ENSEIGN_MAT. codemat WHERE (((ENSEIGNANTS. nom)="NGUYEN") AND ((MATIERES. nommat)="ACCESS" Or (MATIERES. nommat)="BASE DE DONNEES"));
Disjonctive SELECT ENSEIGNANTS. nom, ENSEIGNANTS. prenom, MATIERES. nommat FROM MATIERES INNER JOIN (ENSEIGNANTS INNER JOIN ENSEIGN_MAT ON ENSEIGNANTS. codens = ENSEIGN_MAT. codens) ON MATIERES. codemat = ENSEIGN_MAT. codemat WHERE ( ( (ENSEIGNANTS. nom)="NGUYEN" AND (MATIERES. nommat)="BASE DE DONNEES") OR ( (MATIERES. nommat)="ACCESS" AND (MATIERES. nommat)="BASE DE DONNEES"));
Normalisation de requête 1. 2. 3. 4. 5. 6. 7. 8. p 1 Λ p 2 < => p 2 Λ p 1 v p 2 < => p 2 v p 1 (commutativité) p 1Λ(p 2 Λ p 3) < => p 1Λp 2Λp 3 p 1 v(p 2 v p 3) < => p 1 vp 2 vp 3 (associativité) p 1Λ(p 2 vp 3) < =>(p 1Λp 2)v(p 1Λp 3) p 1 v(p 2Λp 3) < =>(p 1 vp 2) Λ(p 1 vp 3) !(p 1 Λ p 2) < =>!p 1 v !p 2 !!(p) < => p
Exercice SELECT Title FROM Emp WHERE (Not (Title=’’linux’’) AND (Title=’’linux’’ OR Title=’’windows’’) AND Not (Title = ’’unix’’)) OR Ename = ’’Toward Linus’’; On suppose: p 1 = Title=’’linux’’ p 2 = Title=’’windows’’ p 3 = Ename = ’’Toward Linus’’
Forme normale (!p 1 Λ (p 1 v p 2) Λ !p 2) v p 3 l Disjonctive: [(!p 1 Λ p 1) v (!p 1 Λp 2)] Λ !p 2) v p 3< => (!p 2 Λ [(!p 1 Λ p 1) v (!p 1 Λp 2)]) v p 3< => (!p 2Λ(!p 1 Λ p 1))v(!p 2Λ(!p 1Λp 2)) v p 3 < =>(!p 2Λ!p 1Λp 1)v(!p 2Λ!p 1Λp 2) v p 3 < =>(!p 2 Λfalse) v (!p 1 Λ false) v p 3 < => false v p 3 < => p 3
Requête finale SELECT Title From Emp WHERE Ename =’’Toward Linus’’;
Règle de transformation l Commutativité: l Rx. S ΞSx. R R |x| S Ξ S |x| R RUS ΞS U R Associativité ( R x S ) x T = R x ( S x T) ( R |x| S ) |x| T = R |x| ( S |x| T) Idempotence ΠA’ (ΠA’’(R) ) = ΠA’(R) … l (avec A’’ dans A’)
Analyse l Mise de la requête en forme normale l Analyse lexical et syntaxique – Type incorrect ou inexistant (schéma de la relation)
Simplification 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. p Λ p < => p p v p < => p p Λ true < =>p p v false < => p p Λ false < => false p v true < => true p Λ !p < => false p v !p < => true p 1 Λ (p 1 v p 2) < => p 1 P 1 v (p 1 Λ p 2) < => p 1
- Slides: 12