• Aucun résultat trouvé

Calcul relationnel

N/A
N/A
Protected

Academic year: 2022

Partager "Calcul relationnel"

Copied!
23
0
0

Texte intégral

(1)

Lycée La Martinière-Monplaisir

2014-04-04

(2)

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.

(3)

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).

(4)

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, . . .

(5)

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’at- tributs.

Alors :

Schéma relationnel : élément derelname

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

(6)

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énoterF ILM et rappelersort(F ILM).

(7)

Définition 3.0.3(n-uplets).

SoitU ensemble fini.

nuplet surU : fonction deU dansdom.

sortdu nuplet :U. Arité du nuplet :|U|.

Notationha1 :v1, . . . , ak:vki.

nuplet sur∅:h i.

(8)

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 sortU etVU,u[V] =u|V. Généralisation de la notion mathématique :

(42,17,6) =h1 : 42,2 : 17,3 : 6i

(9)

Définition 3.0.4(Relation).

Relation sur un ensemble d’attributsU ouinstance d’un schéma relation- nelR[U]: ensemble 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)

(10)

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

I instance d’un schéma de base de données S : fonction définie sur S telle que pour toutRS,I(R)relation surR.

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

(11)

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).

(12)

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 remplacement dex1, . . . ,xndans la formule donne une formule vraie.

(13)

Plus précisément

Définition 4.0.6(Termes, Atomes).

Termet: élément devardom.

Formule atomique (ou atome) sur S : expression R(t1, . . . , tn) où n arité deRou expression de la formet1 =t2.

Ensemble desvariables libresd’une formule atomiqueF : ensemble des vapparaissant dansF.

(14)

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 delibre(F)).

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

(15)

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

Valeur de vérité d’une formuleF pourI et 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),F si- non.

(16)

Définition 4.0.8(Formule).

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

(i) Toute formule atomique surS est 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.

(17)

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};

(18)

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,ν=V et[[φ]]I,ν=V, vautF sinon ; (iii) [[φψ]]I,νvautV si[[φ]]I,ν=V ou[[φ]]I,ν =V, vautF sinon ; (iv) [[φψ]]I,ν vautV si[[φ]]I,ν=Fou[[φ]]I,ν=V,F sinon ;

(v) [[¬φ]]I,νvautV si[[φ]]I,ν=F etF sinon ;

(vi) [[∃x φ]]I,ν vautV s’il existe au moins une valeur v dom telle que

[[φ]]I,ν⊕hx:vi=V, etF sinon ;

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

(19)

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

(20)

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φ.

(21)

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]

(22)

(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]

(23)

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 ?

Références

Documents relatifs

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

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

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)

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

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é