EDs nfe206 CNAM Paris 2007-2008 Calcul Relationnel 1 Employés

Transcription

EDs nfe206 CNAM Paris 2007-2008 Calcul Relationnel 1 Employés
EDs nfe206
CNAM Paris 2007-2008
Calcul Relationnel
Le calcul relationnel est à l’origine du langage SQL. Il permet de mieux comprendre ses fondements et
sa logique. Il est composé de :
• Variables1 : x, y, z, ...
• Prédicats2 : Movies, Location, ...
• Comparateurs arithmétiques3 : =, < , >, <=, >=
• Connecteurs logiques4 : ∨ (ou), ∧ (et), ¬ (non)
• Quantificateurs5 : ∀ (pour chaque/quelque soit), ∃ (il existe)
• Parenthèses6 : ( )
Ordre de priorité entre les connecteurs et les quantificateurs :
1. ¬, ∀, ∃
2. ∧
3. ∨
1
Employés et Projets
Pour cet ED, nous utiliserons le schéma de tables suivant :
Emp
Project
Pay
Works
(Eno, Ename, Title, City)
(Pno, Pname, Budget, City)
(Title, Salary)
(Eno, Pno, Resp, Dur)
Pour chaque question suivante, exprimez-la en calcul relationnel par n-uplet et par domaine.
Exemple 1: Noms de tous les employés.
• par n-uplet {x.Ename|Emp(x)}. Ce qui veut dire que pour chaque n-uplet x, on prend l’attribut
Ename. La contrainte liée à ce n-uplet est qu’il doit appartenir à la relation Emp.
• par domaine {b|∃a, c, d Emp(a, b, c, d)}. Retourner le 2◦ attribut (donc Ename) pour lequel il doit
exister des attributs a,c,d formant un domaine a,b,c,d de tuples de Employés.
Exemple 2: Les employés qui travaillent à Paris.
• par n-uplet {x.Ename|Emp(x)∧x.City =0 P aris0 }. Nous avons rajouter un prédicat sur la ville=Paris,
que nous avons lié à l’ensemble des n-uplets de Emp.
• par domaine {b|∃a, c, d Emp(a, b, c, d) ∧ d =0 P aris0 }. Même chose que la requête précédente, mais
cette fois-ci, l’attribut d doit avoir la valeur ’Paris’.
1 Correspond
à un n-uplet que l’on peut lier à un attribut
sur une ou plusieurs variables
3 A mettre dans les prédicats
4 Permet de définir de relier les prédicats entre eux
5 Permet de donner l’ensemble de valeur d’une variable liée
6 Permet de lier des formules (prédicats...)
2 Restriction
1
1.1
Noms et budgets de tous les projets
1.2
Villes où il y a un employé ou un projet
1.3
Villes où il y a des projets mais pas d’employés
1.4
Noms des projets dont le budget est supérieur à 225
1.5
Noms et budgets des projets où travaille l’employé E1 (Eno)
2
Liens de parentée
Pour vous entraı̂ner, voici un nouveau schéma de données.
Parente(parent, enfant)
Descriptif(personne, age, sexe)
Scolarite(ecole, enfant)
Donnez les calculs relationnels (par n-uplets et par domaine) de chacune des questions suivantes.
2.1
Les parents de Pierre
2.2
Les parents de Pierre et Paul
2.3
Les parents de Pierre et les parents de Paul
2.4
Les parents ayant des filles de plus de 13 ans
{x.parent|P arente(x) ∧ ∃u(Descriptif (u) ∧ u.personne = t.enf ant ∧ u.sexe =0 F 0 ∧ u.age > 13}
{a|∃b P arente(a, b) ∧ ∃c (Descriptif (b, c,0 F 0 ) ∧ c > 13)}
2