Modèle relationnel. Serge Abiteboul. April 3, 2009 INRIA. Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 1 / 39



Documents pareils
INFORMATIQUECOMMUNE CPGE. Introduction aux Bases de Données Relationnelles

Bases de données - Modèle relationnel

Évaluation et optimisation de requêtes

1 Introduction et installation

Bases de données Cours 5 : Base de données déductives

Bases de données avancées Introduction

Introduction au Système de Gestion de Base de Données et aux Base de Données

Bases de données cours 1

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Bases de Données. Plan

Le langage SQL Rappels

Cours Bases de données

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

16H Cours / 18H TD / 20H TP

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Introduction aux Bases de Données

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Cours de bases de données. Philippe Rigaux

Information utiles. webpage : Google+ : digiusto/

Présentation du module Base de données spatio-temporelles

BASES DE DONNÉES CONCEPTS ET PROGRAMMATION. Antoine Cornuéjols. AgroParisTech, Spécialité Informatique ( ) Version du 19 octobre 2009

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Bases de données réparties: Fragmentation et allocation

Bases de données relationnelles : Introduction

Bases de Données Relationnelles. Le Modèle Relationnel

1ère partie Nadine Cullot. Bases de données déductives. Bases de données déductives Introduction et Motivation

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

Les bases de données

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Base de Données et Langage SQL

A QUOI SERVENT LES BASES DE DONNÉES?

Systèmes d information et bases de données (niveau 1)

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de données relationnelles

COURS de BASES de DONNEES

I4 : Bases de Données

Langage SQL : créer et interroger une base

Bases de données Cours 1 : Généralités sur les bases de données

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

... /5. Bases de Données I (J. Wijsen) 23 janvier 2009 NOM + PRENOM : Orientation + Année : Cet examen contient 11 questions.

SOMMAIRE. Travailler avec les requêtes... 3

TP Bases de données réparties

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

MODE OPERATOIRE OPENOFFICE BASE

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Rappel sur les bases de données

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Model checking temporisé

Le Langage SQL version Oracle

Bases de Données Avancées

Créer le schéma relationnel d une base de données ACCESS

Génération de code à partir d une spécification B : Application aux bases de données

Algorithmique et Programmation Fonctionnelle

Bases de données élémentaires Maude Manouvrier

Patrice BOURSIER. Professeur, Univ. de La Rochelle. Bases de Données. Notes de cours

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

1 Introduction. 2 Le modèle relationnel. 3 Algèbre relationnelle 4 SQL. 5 Organisation physique des données 1/228

Objectifs du TP : Initiation à Access

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Chapitre 1 Généralités sur les bases de données

Introduction à la B.I. Avec SQL Server 2008

UML et les Bases de Données

LE LANGAGE SQL2 1. INTRODUCTION

Table des matières. Avant-propos

Vincent Augusto

Conception des bases de données : Modèle Entité-Association

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

INTRODUCTION AU DATA MINING

Fondements de l informatique Logique, modèles, et calculs

Interpréteur d algèbre relationnelle

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Jean-François Boulicaut & Mohand-Saïd Hacid

Limites finies en un point

Évaluation et implémentation des langages

et les Systèmes Multidimensionnels

Dossier I Découverte de Base d Open Office

DESS CCI Formation Continue. Février Université Louis-Pasteur de Strasbourg Département d'informatique

INTRODUCTION AUX BASES de DONNEES

Utilisation des tableaux sémantiques dans les logiques de description

données en connaissance et en actions?

Bases de données. PTSI Lycée Eiffel. 28 février 2014

Bases de données relationnelles & SQL

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Cours 1 : introduction

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

Bases de programmation. Cours 5. Structurer les données

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

Raisonnements standard et non-standard pour les systèmes décentralisés de gestion de données et de connaissances

SQL MAP. Etude d un logiciel SQL Injection

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Initiation à la Programmation en Logique avec SISCtus Prolog

Transcription:

Modèle relationnel Serge Abiteboul INRIA April 3, 2009 Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 1 / 39

Introduction Modèle de bases de données : LDD (langage de définition de données) + LMD (langage de manipulation de données) Modéle relationnel (Ted Codd 1970) : Données sont structurées en tables Langages : algèbre, calcul, SQL Bases : calcul des prédicats du 1er ordre Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 2 / 39

Langage de définition de données Table : relation, e.g., Film Colonnes : attribut, e.g., Titre Lignes : n-uplet (ou enregistrement) Alphabets Attributs : att Constantes (entrées des tables) : dom Noms de relations : relname Variables : var À chaque nom de relation R est associé un ensemble d attributs sort(r) e.g., sort(pariscope) = {Salle, Titre, Horaire} Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 3 / 39

Base de données Cinéma Film Titre Directeur Acteur The Trouble with Harry Hitchcock Gwenn The Trouble with Harry Hitchcock Forsythe The Trouble with Harry Hitchcock MacLaine The Trouble with Harry Hitchcock Hitchcock Cries and Whispers Bergman Andersson Cries and Whispers Bergman Sylwan Cries and Whispers Bergman Thulin Cries and Whispers Bergman Ullman Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 4 / 39

Base de données Cinéma (2) Coordonnées Salle Adresse Gaumont Opéra Saint André des Arts Le Champo 31 bd. des Italiens 30 rue Saint André des Arts 51 rue des Ecoles Georges V Les 7 Montparnassiens 144 av. des Champs-Elysées 98 bd. du Montparnasse Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 5 / 39

Base de données Cinéma (3) Pariscope Salle Titre Horaire Gaumont Opéra Cries and Whispers 20:30 Saint André des Arts The Trouble with Harry 20:15 Georges V Cries and Whispers 22:15 Les 7 Montparnassiens Cries and Whispers 20:45 Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 6 / 39

Schémas et instances Schéma de relation : nom de relation R on l écrit parfois R[sort(R)] e.g., Pariscope [Salle, Titre, Horaire] en pratique relation Coordonnées ( Salle: string, Ad: string, Tél: int) Schéma de base de données : ensemble de noms de relations BD = { Film, Coordonnées, Pariscope } Nuplet sur un ensemble d attributs U Une fonction de U dans dom Salle : G5, Titre : CaW, Horaire : 20 Instance de R ou une relation sur U = sort(r) : ensemble fini de nuplets sur U Instance I d un schéma de base de données R Une fonction dont le domaine est R pour chaque R dans R, I(R) instance de R. Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 7 / 39

Autre formalisme possible colonnes numérotées au lieu d être nommées n-uplet : élément du produit cartésien dom n e.g., abdf, dghjac, kadgfd Terminologie base de données I(R) = {f 1, f 2, f 3 } I(S) = {g} f 1 (A) = a f 2 (A) = c f 3 (A) = a g(a) = d f 1 (B) = b f 2 (B) = b f 3 (B) = a Terminologie programmation logique I = {R(a, b), R(c, b), R(a, a), S(d)}. Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 8 / 39

Requêtes conjonctives Langage très limité mais essentiel 3 paradigmes: algébriques, logiques, tabulaires 1 Algèbre PSJR 2 Calcul conjonctif (sous ensemble calcul des prédicats) 3 Rêgles conjonctives 4 ( Tableaux ) Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 9 / 39

Exemples Qui est le directeur de Straw Dogs? Quelles salles affichent Straw Dogs? Quels sont l adresse et le numéro de télephone du Studio? Donner les noms et adresses des salles affichant un film de Bergman. Quels sont les directeurs qui ont joué dans un film qu ils ont dirigé. Donner les paires de personnes telles que la première a dirigé la seconde, et vice versa; Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 10 / 39

Formalisons l intuition Donner les noms et adresses des salles affichant un film de Bergman. Intuitivement (variables nuplets), si les n-uplets r 1, r 2, r 3 respectivement dans les relations Film, Pariscope, Coordonnées sont tels que le Directeur dans r 1 est Bergman et les Titres dans r 1 et r 2 sont les mêmes et les Salles dans n-uplet r 2 et r 3 sont les mêmes alors nous voulons les Salle et Adresse du n-uplet r 3. Intuitivement (variables domaines) si les n-uplets x ti, Bergman, x ac, x sa, x ti, x s et x sa, x ad, x p, sont respectivement, dans les relations Film, Pariscope et Coordonnées alors inclure le n-uplet Salle : x sa, Adresse : x ad dans la réponse, où x ti, x ac,... sont des variables. Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 11 / 39

Une syntaxe: rêgles conjonctives Syntaxe utilisant des rêgles ans(x sa, x ad ) Film(x ti, Bergman, x ac ), Pariscope(x sa, x ti, x s ), Coordonnes(x sa, x ad, x p ) Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 12 / 39

Rêgles conjonctives Une règle conjonctive sur R est une expression q de la forme: ans(u) R 1 (u 1 ),..., R n (u n ) n 0, R 1,..., R n R ans R u, u 1,..., u n n-uplets libres (i.e., variables + constantes) de bonnes arités chaque variable apparaîssant dans u doit aussi apparaître au moins une fois dans u 1,..., u n. R 1 (u 1 ),..., R n (u n ) : corps ans(u) : tête. Intuition: usine à fournir des faits Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 13 / 39

Requêtes conjonctives Valuation: V un ensemble de variables, une valuation est une fonction ν de V dans dom. Pour chaque constante a, ν(a) = a q(i) = {ν(u) ν est une valuation sur var(q) et ν(u i ) I(R i ), pour chaque i [1, n]}. Exemple: Domaine actif: adom(i) est l ensemble des constantes apparaîssant dans I; similarly adom(q), adom(q, I) adom(q(i)) adom(q, I) (donc q(i) est fini) Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 14 / 39

Une autre syntaxe: Calcul conjonctif Requête ans(x sa, x ad ) Film(x ti, Bergman, x ac ), Pariscope(x sa, x ti, x s ), Coordonnees(x sa, x ad, x p ) virgule devient (conjonction) variables non dans le résultat sont existentielles En calcul conjunctif {x sa, x ad x ti x ac x s x p (Film(x ti, Bergman, x ac ) Pariscope(x sa, x ti, x s ) Coordonnees(x sa, x ad, x p ))} Imbrication : Elle s exprime aussi par: {x sa, x ad x ti x ac x s (Film(x ti, Bergman, x ac ) Pariscope(x sa, x ti, x s )) x p (Coordonnees(x sa, x ad, x p ))} Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 15 / 39

Formalisme graphique : tableaux Langage Query-By-Example (QBE). Les identificateurs commençant par _ désignent variables (des exemples dans la terminologie QBE) P. indique ce qu il faut imprimer. Film Titre Directeur Acteur _The Seventh Seal Bergman Pariscope Salle Titre Horaire _Rex _The Seventh Seal Coordonnées Salle Adresse Téléphone P._Rex P._1 bd. Poissonnière Une requête en QBE Nombreuses interfaces graphiques, e.g., Microsoft Access Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 16 / 39

Algèbre : PSJR Langage procédural (algèbre) déclaratif Facile à implanter Compiler : calcul algèbre Opérations 1 Projection: ne garder que certaines colonnes 2 Sélection: enlever des lignes suivant un critère 3 Jointure: faire un pont entre deux tables 4 Renommage: renommer attributs d une table Problème des dupliquets Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 17 / 39

Algèbre : PSJR R S R S A B B C A B C 1 2 2 3 1 2 3 4 2 2 5 1 2 5 6 6 9 1 4 2 3 7 7 8 8 4 2 5 1 7 1 6 σ A=1 (R) δ B:B,C:A(S) π A (R) A B B A A 1 2 2 3 1 1 7 2 5 4 1 6 9 1 6 8 8 7 Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 18 / 39

Algèbre Algèbre SPJR: sélection (σ), projection (π), jointure ( ), renomage (δ) Sélection: σ A=c et σ A=B, (A, B att, a dom) σ A=c (I) = {t I t(a) = c} et σ A=B (I) = {t I t(a) = t(b)}. Projection: π A1,...,A n (n 0, A 1,..., A n att) π A1,...,A n (I) = { A 1 : t(a 1 ),..., A n : t(a n ) t I} π A1,...,A n (I) = {t A1,...,A n t I}. Jointure (Naturelle): sort(i) = V, sort(j) = W, sort(i J) = V W I J = {t sur V W pour v I et w J, t V = v et t W = w} sort(i) = sort(j), I J = I J sort(i) sort(j) =, I J = I J (p. cartésien). Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 19 / 39

Algèbre - dernière opération Renomage: utilise une fonction injective de U = A 1...A n dans att que l on notera A 1 /B 1,..., A n /B n. δ A1 /B 1,...,A n/b n (I) = {v sur B 1,..., B n pour u I, v(b i )) = u(a i ) pour tout i [1..n]} Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 20 / 39

Composition Requêtes de base (i) chaque input relation R, [R] est une requête (ii) pour chaque a dom et A att, { A : a } + les 4 opérations Exemple I 1 := σ Directeur= Bergman (Film). I 2 := π Titre (I 1 ). I 3 := I 2 Pariscope I 4 := π Salle Titre (I 3 ). π Salle Titre (π Titre (σ Directeur= Bergman (Film)) Pariscope), ou π Salle Titre (σ Directeur= Bergman (Film Pariscope)) Arbres de requêtes, réecritures, optimisation Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 21 / 39

Théorème d équivalence q est exprimable comme une rêgle conjonctive ssi q est exprimable dans le calcul conjonctif ssi q est exprimable dans l algèbre PSJR Rêgle Calcul : évident Calcul Algèbre par projection, par jointure Algèbre Rêgle On se ramème à la forme ( ) π(σ γ1 (δ f 1 (R 1 ) σ γn (δ f n (R n )) En utilisant, des équivalences algébriques Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 22 / 39

Equivalences algébriques σ F (σ F (q)) σ F (σ F (q)) π X (π Y (q)) π X Y (q) σ F (π X (q)) π X (σ F (q)) si F porte sur des attributs de X q 1 q 2 q 2 q 1 σ F (q 1 q 2 ) σ F (q 1 ) q 2 si F porte sur des attributs de sort(q 1 ) π X (q 1 q 2 ) π X (q 1 ) π X (q 2 ) si sort(q 1 ) sort(q 2 ) X Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 23 / 39

Résultats Les requêtes exprimables comme des rêgles conjonctives sans constantes sont satisfaisables: pour tout q, il existe i tel que q(i). Avec constantes: σ A=0 (R) σ A=1 (R) Non! Les requêtes conjonctives sont monotones: pour tout I,J, pour tout q, Fermeture sous composition I J q(i) q(j) S 1 (x, z) Q(x, y), R(y, z, w) S 2 (x, y, z) S 1 (x, w), R(w, y, v), S 1 (v, z) S 3 (x, z) S 2 (x, u, v), Q(v, z) Peut être obtenu directement S 2 (x, y, z) Q(x, y 1 ), R(y 1, w, w 1 ), R(w, y, v), Q(v, y 2 ), R(y 2, z, w 2 ) S 3 (x, z) Q(x, y 1 ), R(y 1, w, w 1 ), R(w, u, v 1 ), Q(v, y 2 ), R(y 2, v, w 2 ), Q(v Vues Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 24 / 39

Exercices Soit le schéma suivant : Salle (Nom Horaire Titre) Film (Titre Réalisateur Acteur) Produit (Producteur Titre) Vu (Spectateur Titre) Aime (Spectateur Titre) Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 25 / 39

Exercices (2) Écrire en algèbre, en calcul n-uplet et domaine. 1 Où et quant peut on voir le film Mad Max...? 2 Quels sont les films réalisés par Welles? 3 Quels sont les acteurs de Ran? 4 Où peut-on voir un film où joue Signoret? 5 Quels sont les acteurs qui ont produit un film? 6 Quels acteurs produisent un film dans lequel ils jouent? 7 Quels sont les acteurs qui jouent dans les films de Truffaut? 8 Quels acteurs jouent dans tous les films de Welles? 9 Qui produit tous les films de Kurosawa? 10 Quels spectateurs voient tous les films? Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 26 / 39

Exercices (3) 1 Quels sont les spectateurs qui aiment tous les films qu ils voient? 2 Où peut on voir M. Brando après 16h? 3 Quels films ne passent dans aucune salle? 4 Qui produit un film qui ne passe dans aucune salle? 5 Quels producteurs voient tous les films qu ils produisent? 6 Quels producteurs voient tous les films de Kurosawa? 7 Quels spectateurs aiment un film qu ils n ont pas vu? 8 Qui n aime aucun film? 9 Qui ne produit aucun film de Doillon? 10 Quels sont les producteurs qui ne voient que les films qu ils produisent? Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 27 / 39

On rajoute union/disjonction Où puis-je voir Annie Hall ou Manhattan? Algèbre avec union (algèbre PSJRU) π Salle (σ Titre= Annie Hall Pariscope σ Titre= Manhattan Pariscope) Plusieurs rêgles ans(x t ) Pariscope(x t, Annie Hall, x s ) ans(x t ) Pariscope(x t, Manhattan, x s ) Calcul avec disjunction {x t x s (Pariscope(x t, Annie Hall, x s ) Pariscope(x t, Manhattan, x s Autres possibilités: Sélection plus complexes π Salle (σ Titre= Annie Hall Titre= Manhattan Pariscope) Constantes plus complexes π Salle (Pariscope { Titre : Annie Hall, Titre : Manhattan }) Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 28 / 39

On rajoute l union (2) Théorème d équivalence reste vrai Problème avec le calcul : {x, y R(x) R(y)} Infini si on n est pas prudent formules sures Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 29 / 39

On rajoute la différence/négation Dans quel film d Hitchcock, n a-t-il pas joué? Quels films passent au Gaumont Opéra mais pas au Réal? Algèbre relationnelle : PSJRU + différence Calcul relationnel :,,, Rêgles : négation dans le corps des rêgles π Titre σ Directeur= Hitchcock (Film) π Titre σ Acteur= Hitchcock (Film) nr-datalog par l exemple ans(x) Film(x, Hitchcock, z), Film(x, Hitchcock, Hitchcock ) Hitch-Acteur(z) Film(x, Hitchcock, z) not-ans(x) Film(x, y, z), Hitch-Acteur(z) ans(x) Film(x, y, z), not-ans(x) Note: vérifier l exemple Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 30 / 39

Calcul relationnel On rajoute au calcul conjonctif,, ϕ ψ ( ϕ ψ), et xϕ x ϕ Terme : constante ou variable Atome : R(e 1,..., e n ) (R nom de relation, n = arité(r), chaque e i est un terme) Formules de base : atomes sur R + e = e Formules bien-formées (a) ϕ (b) (ϕ ψ), (ϕ ψ) (c) x ϕ, x ϕ ϕ ψ ϕ ψ ϕ ψ (ϕ ψ) ( ϕ ψ) Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 31 / 39

Calcul relationnel Variables libres et liées litéral P : free(p) = variables de P free(ϕ ψ) = free(ϕ) free(ψ) free( ϕ) = free(ϕ) free( xϕ) = free(ϕ) {x} free(ϕ ψ) = free(ϕ) free(ψ) free( xϕ) = free(ϕ) {x} Requêtes : {e 1,..., e n ϕ} variables de e 1,...e n sont les variables libres de ϕ {x t x a Film(x t, Hitchcock, x a ) Film(x t, Hitchcock, Hitchcock )} {x t x d, x a Film(x t, x d, x a ) y a ( y d Film(x t, y d, y a ) z t Film(z t, Hitchock, y a ))} Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 32 / 39

Sémantique du calcul Problême : résultat fini (non-sure-1) {x Film( Cries and Whispers, Bergman, x)} (non-sure-2) {x, y Film( Cries and Whispers, Bergman, x) Film(y, Bergman, Ullman )} Solution A : variables prennent leurs valeurs dans le domaine actif Solution B : interdire les requêtes non-sures non-sure-3 {x y R(x, y)} Résultats intermédiaires non finis Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 33 / 39

Sémantique domaine actif valuations ν de free(ϕ) dans adom(q, I) I satisfait ϕ pour ν I = adom ϕ[ν] (a) ϕ = R(u) et ν(u) I(R); (b) ϕ = (s = s ) et ν(s) = ν(s ); (c) ϕ = (ψ ξ) et (I = adom ψ[ν] et I = adom ξ[ν]); (d) ϕ = (ψ ξ) et (I = adom ψ[ν] ou I = adom ξ[ν]); (e) ϕ = ψ et I = adom ψ[ν], (f) ϕ = x ψ et pour quelque c adom, I = adom ψ[ν {x/c}]; ou (g) ϕ = x ψ et pour chaque c adom, I = adom ψ[ν {x/c}]. Sémantique d une requête q adom (I) = {ν( e 1,..., e n ) I = adom ϕ[ν], ν est une valuation sur free(ϕ) dont l image adom}. Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 34 / 39

Exercice : la division Opération redondante I sur X, J sur Y X, sort(i J) = sort(i) sort(j) I J = {u v J, [u, v] I} Exemple: Quels acteurs jouent dans tous les films de Hitchcock? π Title,Actor σ Director=Hitchcock (Movies) π Title σ Director=Hitchcock (Movies) Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 35 / 39

Exercice : Complément de jointure I sur X, J sur Y, X Y = Z sort(i J) = X, I J = {x I π Z (x) π Z (J)} Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 36 / 39

Résultats Théorème d équivalence algèbre calcul nr-datalog Non-monotonie (différence) Fermeture sous composition (à cause de l algèbre) Minimalité des opérateurs de l algébre Projection Sélection Jointure Renomage Différence Union Faible complexité (logspace, ptime, NC) Tests d équivalence et d inclusion sont indécidables - donc optimisation difficile Décidable pour les requêtes conjonctives - optimisation principalement pour RQ Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 37 / 39

De la théorie à la pratique Algèbre et calcul relationnels sont équivalents La traduction de l un à l autre est facile Requete en calcul Compilation Requete algebrique Optimisation langage assertionnel langage procedural Langage machine Evaluation Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 38 / 39

Merci Serge Abiteboul (INRIA) Modèle relationnel April 3, 2009 39 / 39