Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
INTRODUCTION
Depuis le début de ce cours, nous essayons d’en savoir plus sur le fonctionnement
des bases de données. Jusqu’ici nous avons acquis des connaissances sur le
recueillement, le rassemblement, le traitement des données et la conception, à
partir de ces données-là des différentes tables d’une base de données. Ainsi il
s’agit de manipuler les données de ces différentes tables. Pour ce faire plusieurs
langages ont été mis sur pieds pour atteindre cet objectif. Nous avons entre autre
l’algèbre relationnel présenté dans le chapitre précédent, et le calcul relationnel
qui fera l’objet de notre expose. En effet avec l’algèbre relationnelle, une requête
est exprimée comme une séquence d’opérations à réaliser à partir des relations de
la base de données différemment du calcul relationnel qui est beaucoup plus
déclaratif. Ainsi il repose sur le calcul des prédicats (propositions qui peuvent
être vraie ou fausse dans un certain contexte) à l’interrogation de la base de
données. Il existe deux types de calcul relationnel entre autres le calcul relationnel
à variable n-uplets (tuples) et le calcul relationnel à variable domaine que nous
expliciterons. Nous établirons par la suite une claire différence entre le calcul
relationnel et l’algèbre relationnel.
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
Dans cette expression, les ti représentent des variables n-uplets c’est-à-dire les
tuples; les Ai sont des attributs de relation associés aux ti et COND est une
formule du calcul relationnel à variable n-uplets. Une expression de la forme ti
[Ai] exprime la valeur du n-uplet ti suivant l’attribut de nom Ai.
REPAS(date, invite)
Ici, r représente la variable n-uplet de la relation REPAS, invite est le nom d’un
des attributs de la relation REPAS.
r ϵ REPAS
Exp2 : { r[invite] | r[date]=’01/05/97’ }
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
Dans notre expression générale où COND est une formule du calcul relationnelle
à variable n-uplets, il sera donc question pour nous dans cette partie de construire
une formule liée à cette expression à partir de prédicats atomiques (atomes) qui
sont d'une des formes suivantes :
{ r,m | r[date]=m[date]}
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
Soit e la variable n-uplet tel que e appartient à Employe et c une constante tel que
c=50000. On aura donc l’atome suivant :
ou
Dès lors nous pouvons donc établir des formules qui sont constituées
d'atomes connectés par les opérateurs logiques et, ou, négation se définissant de
la manière suivante :
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
Parlant des valeurs décrites par des formules, nous pouvons dire qu’à toute
formule, on peut faire correspondre les valeurs pour les variables libres qui
rendent cette formule vraie. Une formule peut être utilisée pour décrire les valeurs
recherchées c’est-à-dire qu’il est possible d’utiliser une formule pour spécifier
une requête dans une base de données.
Remarque :
❖ Une variable est dite libre si elle n'est pas introduite par un
quantificateur, liée sinon (c’est-à-dire introduite par un quantificateur).
Par contre si une variable est introduite par un quantificateur, elle peut
apparaitre que dans la formule sous ce quantificateur. Exp : A ∧ (∀x B) ∧
C, x peut être dans B mais pas dans A ni C (Pour tout x, la formule B doit
être vraie).
❖ Les opérateurs et, ou, négation, implication logique, quel que soit et il
existe sont respectivement notés : ∧, ∨, ┐, →, ∀ et ∃. Ils existent parmi ces
operateurs ceux qui sont plus prioritaire que les autres :(+prioritaire)
{┐} ; {∧, ∨} ; {→} ; {∀, ∃} (-prioritaire).
P (x, y) ∧ Q (x, a)
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
Cette requête en calcul relationnel à variable n-uplets permet d’avoir la liste des
plats servis à l’invitéé Alice.
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
Cette requête en calcul relationnel à variable n-uplets permet d’avoir la liste des
personnes qui n’ont jamais été invités.
Cette requête en calcul relationnel à variable n-uplets permet d’avoir la liste des
invités qui sont venus à tous les repas.
Où :
Cela se lit de la manière suivante : l’ensemble des valeurs x1, x2, ..., xn vérifiant
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
le prédicat P.
Les formules valides sont construites à partir des quatre règles suivantes :
Une condition de la forme x.A op a ou x.A op y.B est une formule valide
(op désigne l’un des opérateurs de comparaison =, !=, <, =<, >, >= , et a
une constance. )
Si F, F1 et F2 sont des formules valides alors : (F), ¬ F, F1 ^ F2, F1 v F2
sont aussi des formules valides.
Remarque :
➢le symbole ┐ représente la négation (NOT).
➢Le symbole ∧ représente la conjonction (AND).
➢Le symbole ∨ représente la disjonction (OR).
Remarque:
Définition: une variable est dite liée (quantifiée) dans une formule si elle est
associée au quantificateur existentiel ∃ ou au quantificateur ∀. Elle est dite libre
si non.
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
a. JOINTURES SIMPLES
Recherchons les noms et prix des articles de type burger. L’expression est
donnée par :
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
b. DOUBLE JOINTURE
c. Quantificateur Universel
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
Nous voulons rechercher les noms et prix des voitures qui sont de toutes les
couleurs.
L’expression est la suivante :
{ i | ∃d (REPAS(invité:i,date:d) ∧ d=‘01/05/97’) }
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
Cette requête en calcul relationnel à variable domaine permet d’avoir la liste des
plats servis à l’invité Alice. Ceci bien évidement seulement dans le cas où la
date du repas est la même que celle du menu; cet exemple illustre le fait que
lorsque deux variables de deux relations différentes domaine ont le même nom
traduit le fait que dans les tuples concernés, les valeurs de ces attributs
seront égales.
Cette requête en calcul relationnel à variable domaine permet d’avoir la liste des
personnes qui n’ont jamais été invités.
{ i | ∀d (REPAS(invité:i,date:d) }
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
Cette requête en calcul relationnel à variable domaine permet d’avoir la liste des
invités qui sont venus à tous les repas.
Ici , les variables représentent les tuples Ici, les variables représentent les
de la relation spécifiée valeurs tirées du domaine spécifié
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
Exemple :
Calcul à variable domaine :
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
produits dans l’ordre croissant de leurs prix, cela n’est pas possible avec
calcul (l’algèbre) relationnelle.
Le calcul (l’algèbre) relationnelle ne peut pas effectuer d’agrégats. Par
exemple il nous ait impossible de savoir combien d’employées travail dans
chaque département.
➢ Opérations unaires :
• Sélection : On peut insérer les conditions des sélections directement
dans les formules (en les combinant en général avec ∧).
• Projection : La projection correspond à ajouter des ∃ devant les
variables n-uplets dont aucun attribut n’est projeté.
➢ Opérations binaires :
• Union : L’union se traduit par un ∨
• Différence : La différence A - B se traduit par FA ∧ (¬ FB) où FA et
FB ont les mêmes variables libres.
4. Avantages et inconvénients
Flexibilité :
Les différentes tables à partir desquelles les informations doivent être
liées et extraites peuvent être facilement manipulées par des opérateurs
tels que la projection et la sélection pour donner des informations sous
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
APPLICATION
1. Trouver les bars qui servent une bière que Charles aime
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
Correction:
• Soit s ∈ SERT, a ∈ AIME.
{ s[Bar] | ∃ s, a, SERT ∧ AIME ∧ s.Bierre = a.Bierre ∧
a.Buveur = ‘Charles’ }
2. Trouver les buveurs qui fréquentent au moins un bar qui sert une
bierre qu’ils aiment.
Correction :
3. Trouver les buveurs qui fréquentent uniquement les bars qui servent
les bières qu'ils aiment (On supposera que chaque buveur aime au
moins une bière et fréquente au moins un bar)
Correction
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
4. Trouver les buveurs qui ne fréquentent aucun bar qui sert une bière
qu’ils aiment.
Correction :
CONCLUSION
Le calcul relationnel est un langage plus abstrait que l’algebre relationnel et est
composé de deux grandes variantes que sont le calcul relationnel à variable tuple
(Tuple Realtionnal Calculus) et le calcul relationnel à variable domaine (Domain
Relationnal Calculus). En Calcul relationnel à variable tuple, on travaille sur des
enregistrements tandis que sur le calcul relationnel à variable domaine, on
UNIVERSITE DE DSCHANG
CALCUL RELATIONEL
UNIVERSITE DE DSCHANG