• Aucun résultat trouvé

Calcul relationnel

N/A
N/A
Protected

Academic year: 2022

Partager "Calcul relationnel"

Copied!
3
0
0

Texte intégral

(1)

Calcul relationnel

Skander Zannad et Judicaël Courant 2014-04-04

1 Résumé des épisodes précédents

On a vu

(i) MCD (Entité-Association) pour la représentation conceptuelle d’un problème ; (ii) MLD pour transcrire le MCD en tables ;

(iii) Implantation dans une base de données SQL (MPD) ; (iv) Requêtes SQL.

2 Problème

SQL : quelle expressivité ?

Autrement dit : peut-on poser n’importe quel type de requête à SQL ? Prérequis : modéliser ce problème correctement (mathématiquement).

Modélisation que nous allons utiliser :le modèle relationnel.

Deux parties :

Structure du modèle relationnel : données (tables).

Calcul relationnel : les requêtes.

3 Structure du modèle relationnel

Définition 3.0.1(Attribut, domaine).

Ensembleattinfini : ensemble d’attributs.

Pour tout attributa,dom: ensemble deconstantes(typedea).

dom: union de toutes les constantes de tous les attributs.

Attributs de notre base :titre,nom,prenom,id,date, . . .

1

Définition 3.0.2(Schémas).

On suppose donnés :

relname: ensemble de noms de relations (disjoint deatt) ;

sort: fonction derelnamedans l’ensemble des ensembles finis d’attributs.

Alors :

Schéma relationnel : élément derelname

Schéma de base de données : ensemble fini de schémas relationnels.

Exemple pour notre base :

CIN EM A={FILM,JOUE,PERSONNE,PERSONNAGE} sort(F ILM) ={id,titre,date,idrealisateur} sort(P ERSON N E) ={id,nom,prenom,datenaissance}

ÉcritureF ILM[id titre date idrealisateur]pour dénoter F ILM et rappeler sort(F ILM).

Définition 3.0.3(n-uplets).

SoitUensemble fini.

nuplet surU : fonction deU dansdom.

sortdu nuplet :U. Arité du nuplet :|U|. Notationha1:v1, . . . , ak:vki. nuplet sur∅:h i.

Exemples :

u=hid: 1,prenom: ”Clint”,nom: ”Eastwood”i u(prenom) = ”Clint”.

Notation :u[prenom,nom] =hprenom: ”Clint”,nom: ”Eastwood”i. De manière générale : pourude sortUetVU,u[V] =u|V. Généralisation de la notion mathématique :

(42,17,6) =h1 : 42,2 : 17,3 : 6i Définition 3.0.4(Relation).

Relation sur un ensemble d’attributsU ouinstance d’un schéma relationnelR[U]: en- semble fini de nuplets surU(à valeurs dansdom).

sortde la relation :U(sortde chacun des éléments) Arité de la relation :|U|(arité de chacun des éléments)

2

(2)

Définition 3.0.5(Base de données).

Iinstance d’un schéma de base de donnéesS: fonction définie surStelle que pour tout RS,I(R)relation surR.

Exemple : instances du schémaCIN EM A: tables données dans les cours précédents.

4 Calcul relationnel

On fixe :

S, schéma de base de données ;I, instance de ce schéma ;

varensemble infini de noms de variables (disjoint dedom).

– Deux valeurs :V etF destinée à représenter le vrai et le faux.

Hypothèse simplificatrice : on supposedomensemble fini de chaînes de caractères (par exemple toutes celles apparaissant dans la base).

Requête : formule

– portant sur les relations de la base ; – contenant des variablesx1, . . . ,xn.

Réponse à une requête : ensemble des nupletsusur{x1, . . . , xn}tels que le rempla- cement dex1, . . . ,xndans la formule donne une formule vraie.

Plus précisément

Définition 4.0.6(Termes, Atomes).

Termet: élément devardom.

Formule atomique (ou atome) surS: expressionR(t1, . . . , tn)oùnarité deRou expression de la formet1=t2.

Ensemble desvariables libresd’une formule atomiqueF: ensemble desvapparaissant dansF.

v∈libre(t1=t2) ⇐⇒ (v∈varet(v=t1ouv=t2)) v∈libre(R(t1, . . . , tn)) ⇐⇒ (v∈varet∃i∈ {1, . . . , n} v=ti)

Assignation de valeur/valuation pourF : nuplet surlibre(F)(ou un sur-ensemble de libre(F)).

Pourtdometνune valuation, on noteν(t) =t.

3

Définition 4.0.7(Vérité d’une formule atomique).

Valeur de vérité d’une formuleF pourIet une assignationν: Notation [[F]]I,ν;

Définition Deux cas :

– [[t1=t2]]I,νvautV siν(t1) =ν(t2),F sinon ;

– [[R(t1, . . . , tn)]]I,νvautV si(ν(t1), . . . , ν(tn))∈I(R),Fsinon.

Définition 4.0.8(Formule).

Uneformule(ouformule bien forméesur le schémaS) du calcul relationnel est une expression obtenue par l’application des règles suivantes :

(i) Toute formule atomique surSest une formule ;

(ii) Pour toutes formulesφetψ,φψ,φψetφψsont des formules ; (iii) Pour toute formuleφ,¬φest une formule ;

(iv) Pour toute formuleφet toute variablex,∃x φet∀x ψsont des formules.

Définition 4.0.9(Variables libres d’une formule).

Définie par récurrence sur la taille de la formule : (i) libre(A)pourAatomique : déjà défini ; (ii) libre(φ∧ψ) = libre(φ)∪libre(ψ); (iii) libre(φ∨ψ) = libre(φ)∪libre(ψ); (iv) libre(φ⇒ψ) = libre(φ)∪libre(ψ);

(v) libre(¬φ) = libre(φ); (vi) libre(∃x φ) = libre(φ)\ {x}; (vii) libre(∀x φ) = libre(φ)\ {x}.

Définition 4.0.10(Vérité d’une formule).

Défini par récurrence sur la taille de la formule : (i) [[A]]I,νpourAatomique déjà définie ;

(ii) [[φ∧ψ]]I,νvautV [[φ]]I,ν=Vet[[φ]]I,ν=V, vautFsinon ; (iii) [[φ∨ψ]]I,νvautV si[[φ]]I,ν=Vou[[φ]]I,ν=V, vautF sinon ; (iv)[[φ⇒ψ]]I,νvautV si[[φ]]I,ν=Fou[[φ]]I,ν=V,Fsinon ;

(v) [[¬φ]]I,νvautV si[[φ]]I,ν=FetFsinon ;

4

(3)

(vi) [[∃x φ]]I,νvautV s’il existe au moins une valeurvdomtelle que[[φ]]I,ν⊕hx:vi=V, etF sinon ;

(vii) [[∀x φ]]I,νvautV si pour toute valeurvdom,[[φ]]I,ν⊕hx:vi=V, etF sinon.

NB : on dit qu’une valuationν satisfaitφsi[[φ]]I,ν =V. On dit qu’une formule est satisfiables’il existe une valuation qui la satisfasse.

Définition 4.0.11(Requête).

Une requête est une expression de la forme {t1, . . . , tn|φ}

t1, . . . ,tnsont des termes,φune formule et l’ensemble des variables apparaissant danst1, . . . ,tnsont les éléments delibre(φ).

La réponse à une telle requête est l’ensemble des(ν(t1), . . . , ν(tn))oùν est une valuation satisfaisantφ.

5 Exercices

Traduire dans le calcul relationnel les requêtes suivantes : (i) Qui sont les réalisateurs ?

(ii) Quels sont les acteurs dont le prénom est Benedict ? (iii) Quels sont les acteurs qui sont aussi des réalisateurs ?

(iv) Quels sont les acteurs qui ont joué au moins deux rôles dans un même film ? (v) Quels sont les films dans lesquels le réalisateur est aussi un acteur ? [ambigu]

(vi) Quels sont les acteurs qui ont réalisé un film avant de jouer dans un autre ? (vii) Quels sont les acteurs qui ont abandonné leur carrière d’acteurs pour se consacrer

uniquement à la réalisation ? [ambigu]

6 À suivre

– Modèle relationnel : définition rigoureuse du MLD ; – Calcul relationnel : modélisation des requêtes ;

– Peut-on traduire toute requête du calcul relationnel en SQL ?

5

Références

Documents relatifs

Après contrôle, vous constatez que le problème vient d’un manque de transfert des informations entre les deux services : constat confirmé par le (la) gouvernant(e) général(e)

Ce concept, qui a ses mérites, a aussi ses limites : le sur-mesure reste très coûteux ; la personnalisation n’est pas nécessairement du sur-mesure (exemple : personnalisation

Traduire dans le calcul relationnel les requêtes suivantes : (i) Qui sont les réalisateurs. (ii) Quels sont les acteurs dont le prénom

Traduire dans le calcul relationnel les requêtes suivantes : (i) Qui sont les réalisateurs. (ii) Quels sont les acteurs dont le prénom

Le type d’entité Ei est représenté par une relation Ti dont les attributs sont les attributs de Ei et les attributs identifiant de E Clé de Ti = identifiant de E.. Spécialisation

Application : Utiliser cette formule pour calculer le nombre de carreaux gris d'une figure telle que le côté du carré comporte 138 carreaux.. Quel est le nombre de carreaux du côté

Exemple 2 : Dans la table LIGNE-FACUTRES, il existe deux clés étrangères : - Référence du produit, qui référence la clé primaire de PRODUITS ; - N° facture, qui fait

5 Quels producteurs voient tous les films qu’ils produisent. 6 Quels producteurs voient tous les films