Feuille 5 Algèbre Relationnelle et Calcul Relationnel



Documents pareils
Bases de données - Modèle relationnel

1 Introduction et installation

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

Cas «LES CUISINES DU PERCHE»

Utilisation des tableaux sémantiques dans les logiques de description

UML et les Bases de Données

INFORMATIQUECOMMUNE CPGE. Introduction aux Bases de Données Relationnelles

SPECIALITE : RESTAURATION À LIRE ATTENTIVEMENT AVANT DE TRAITER LE SUJET

Préface CAVEAU. Vous allez découvrir des plats gourmands préparés avec des produits de. la région, pour la plupart. Salade verte

5 repas. e r. arce qu un repas est un moment de plaisir, de partage et qu il construit notre santé,

Livret de recettes. de Rigolo Comme La Vie. Préparez vos papilles, les «masters chefs» mettent leurs toques pour vous épater».

Rentrée 2014 Francine Eichenberger Diététicienne

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Nutrition et santé : suivez le guide

ENQUETE PRIX : FORMAT FAMILIAL FORMAT INDIVIDUEL

Le langage SQL Rappels

Algorithme. Table des matières

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

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

Comment utiliser les graines de soja à la cuisine

KITCHEN GRAND CHEF DIGITAL

Traduction des Langages : Le Compilateur Micro Java

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

EVALUATIONS FIN CM1. Mathématiques. Livret élève

STAGE IREM 0- Premiers pas en Python

Correction du bac blanc CFE Mercatique

Ateliers Offre Entreprise

Data Mining. Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne. Data Mining. V. Augusto.

Le modèle standard, SPE (1/8)

60 produits solidaires pour les familles

POMMES VARIATIONS NATURE OU TATIN. Livret Recettes

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

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

IFUCOME Sciences et Technologie en Cycle 3 6 0

Représentation d un entier en base b

Gâteau à la mousse au chocolat. Recette par Adriano Zumbo

Votre événement. dans un cadre d exception. Espaces de réception Hébergement Practice de Golf

Modélisation de bases de données : Le modèle relationnel

en glacerie TABLEAUX D UTILISATION DES PURÉES DE FRUITS ET DE LÉGUMES SURGELÉES 100 % goût zéro compromis, my-vb.com

Baccalauréat technologique Série : sciences et technologies du management et de la gestion (STMG)

COMMISSION ANIMATION

DOSSIER DE PRÉSENTATION

Cours d initiation à la programmation en C++ Johann Cuenin

Compréhension de l oral

Modèle conceptuel : diagramme entité-association

Livret de l évaluateur : Calcul niveau 2

PROJET 1 : BASE DE DONNÉES REPARTIES

Je participe à la société branchée

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

LE CONSEIL GÉNÉRAL DU BAS-RHIN AU DE VOS VIES LIVRET DE RECETTES POUR LES ENFANTS DE 18 MOIS À 4 ANS BON POUR MON ENFANT, BON POUR MON BUDGET

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

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Information destinée aux patients et aux proches. Comment s alimenter après une diverticulite? Conseils nutritionnels pour le retour à domicile

Travaux pratiques de pâtisserie CFA Avignon

MPI Activité.10 : Logique binaire Portes logiques

5 ème Chapitre 4 Triangles

MENUS ACTIVITÉS & INCENTIVES TARIFS 2014

Factsheet Qu est-ce que le yogourt?

CONCOURS CULINAIRE AMATEUR. Livret de recettes Edition En partenariat. Organisé par

RESTAURANT DU CASINO TERRAZUR

DANET TRAITEUR. PRESTATIONS «ENTREPRISE» Plateaux repas et panier sandwich LA QUALITE AU SERVICE DE VOTRE ENTREPRISE

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Bases de données relationnelles

Les problèmes de la finale du 21éme RMT

I4 : Bases de Données

FRUITS ET LEGUMES FRAIS DONNEES REGLEMENTAIRES UE

Les chaînes de caractères

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

Diviser un nombre décimal par 10 ; 100 ; 1 000

Fiche 23 D où viennent les produits de mon petit déjeuner?

Dan Ice World Edition 24 April 2013

Le secteur agroalimentaire en Provence-Alpes-Côte d Azur

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

Suites numériques 3. 1 Convergence et limite d une suite

Tâche : Comparer l étiquette de produits alimentaires afin de connaître leur valeur nutritive.

Qui sont-ils? Pedro. Tamacha. 9 En quantité, Tamacha mange suffisamment, mais son alimentation n est pas satisfaisante en qualité.

QUIZZ! C est toi l expert en énergie! Ta mission: Répondre aux questions du cahier en explorant cette maison sur le site energie-environnement.

Que manger le jour de la compétition (Athlétisme - concours)?

Langage SQL : créer et interroger une base

Contient:CONTENANT DU GLUTEN, OEUF ET DÉRIVÉS, LAIT ET DÉRIVÉS, NOIX ET DÉRIVÉS

STAGE CUISINE MARDI 6 OCTOBRE 2009 CUISINE DU MARCHE

CONCEPTS ET MANIPULATIONS DE BASE

Pour ou contre le gluten? Qu est-ce que le gluten?

Livret de formules. Calcul Professionnel Boulangère-Pâtissière-Confiseuse AFP Boulanger-Pâtissier-Confiseur AFP

Présentation du langage et premières fonctions

EXEMPLES DE MENUS ENTREPRISE. Traiteur. L'excellence qui décuple vos sens! 455, avenue Robespierre LA GARDE

Formation professionnelle

que dois-tu savoir sur le diabète?

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

Chapitre 2. Eléments pour comprendre un énoncé

5551 Avenue du Parc, Montréal, QC ex. 222,

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Comment bien s hydrater pendant l été?

16H Cours / 18H TD / 20H TP

CHAPITRE 2 SYSTEMES D INEQUATIONS A DEUX INCONNUES

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

LE GUIDE. pour ne plus gaspiller. Les petits gestes du quotidien qui font du bien au porte-monnaie et à la planète.

Le logo «Fait maison»

Allégations relatives à la teneur nutritive

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Transcription:

Université de Bordeaux M2 d Informatique, 2014-2015 Cours de Bases de Données Avancées Feuille 5 Algèbre Relationnelle et Calcul Relationnel On va définir les deux principaux langages de requêtes (équivalents) des bases de données relationnelles : l algèbre relationnelle et le calcul relationnel. L algèbre représente le point de vue computationnel et généralise SPC. Le calcul constitue le point de vue descriptif et généralise les requêtes conjonctives en utilisant tout le pouvoir de la logique du premier ordre. Pour toute la feuille (hors mention spécifique dans les exercices) on considère fixé le schéma de bases données R et le domaine dom. De plus, si I est une instance de R, on notera Adom(I) dom l ensemble des données contenues dans I. De la même façon, si q est une requête, on notera Adom(q) dom l ensemble des données utilisées explicitement dans q. 1 Algèbre Relationnelle 1.1 Définition Pour définir l algèbre relationnelle, on étend SPC on lui ajoutant deux opérateurs. Le premier est l union (que nous avons déjà vu dans USPC). Si q 1, q 2 sont deux requêtes de l algèbre relationnelle qui ont la même arité alors on peut utiliser l union entre q 1 et q 2 pour définir une nouvelle requête q qui a la même arité que q 1 et q 2, q := q 1 q 2 est une requête également. La sémantique de l opérateur union est naturelle, si I est une instance, alors, q(i) = q 1 (I) q 2 (I) Le second opérateur est la différence, si r 1, r 2 sont deux requêtes de l algèbre relationnelle qui ont la même arité alors on peut utiliser la différence entre r 1 et r 2 pour définir une nouvelle requête r qui a la même arité que r 1 et r 2, r := r 1 r 2 La sémantique est à nouveau naturelle. Si I est une instance, on a, r(i) = r 1 (I) \ r 2 (I) = { c r 1 (I) c r 2 (I)} 1

1.2 Exercices Exercice 1 On considère à nouveau le schéma de base de données CINEMA contenant les relations {F ilms, Lieux, Guide} tels que : sort(f ilms) = {Titre, Réalisateur, Acteur} sort(lieux) = {Salle,Adresse,Téléphone} sort(guide) = {Salle,Titre,Heure} Exprimez les requêtes suivantes en algèbre relationnelle. 1. Lister les films de Hitchcock dans lesquels il n a pas joué. 2. Lister les films qu on peut voir à Bordeaux, mais pas à Talence. 3. Lister les Adresses et Téléphones des salles passant un film avec Harrison Ford mais pas réalisés par Spielberg. 4. Lister les salles qui ne passent que des films avec Harrison Ford. 5. Lister les salles qui passent plus de trois films. 6. Lister les salles qui ne passent aucun film. 7. Lister les films qui ne sont passés nul part. 8. Lister les salles qui passent un film qui a plus de 2 réalisateurs, dont Spielberg, et dans lequel Harrison Ford et Sean Connery ne jouent pas en même temps. 9. Lister les heures auxquelles on ne peut pas voir de film de Spielberg. 10. Lister les films pour lesquels tous les acteurs ont joué soit sous la direction de Spielberg soit sous la direction de Coppola. Exercice 2 Donner une requête q de l algèbre relationnelle sans attributs telle que pour toute instance I, q(i) = Adom(I). Exercice 3 Montrer que si on ajoute un opérateur Adom à l algèbre relationnelle (avec la sémantique évidente), on peut exprimer l union à partir des autres opérateurs. Exercice 4 Donnez deux requêtes de l algèbre : 1. la première non monotone. 2. la seconde non satisfiable. Exercice 5 On considère l algèbre avec attributs et on rajoute l opérateur de division noté et ayant la syntaxe suivante. Étant donné deux formules r et p d arités n r et n p telles que n r > n p, on peut définir une nouvelle formule q d arité n = n r n p qu on appelle la division de r par p : q = r p Si I est une instance, on définit q(i) de la façon suivante. q(i) = {(c 1,..., c n ) (d 1,..., d np ) p(i), (c 1,..., c n, d 1,..., d np ) r(i)} 2

1. Calculer R Q pour les instances suivantes de Q et R : R a a a a b c d e a c f d 2. Utilisez la division pour exprimer la requête : Lister les cinémas qui passent tous les films de Spielberg. 3. Montrez que la division peut s exprimer au moyen des opérateurs classiques de l algèbre. 4. La division est-elle une opération monotone? Q b a f c b a g d 2 Calcul Relationnel 2.1 Définition Le calcul relationnel est la logique du premier ordre (FO) dont on rappelle la syntaxe et la sémantique ici. On rappelle que le schéma R est fixé ainsi que son ensemble de relations rel. On fixe un ensemble infini de variables. Syntaxe. Une formule ϕ du premier ordre est donnée par la grammaire : ϕ := ϕ ϕ ϕ ϕ ϕ x ϕ x ϕ R(x 1,..., x n ) x = y x = c avec y, x, x 1,..., x n var, c dom et R rel d arité n L ensemble des variables libres d une formule ϕ est l ensemble des variables de ϕ qui ne sont pas gardées par un quantificateur ( ou ). On notera également Adom(ϕ) dom l ensemble des c dom qui apparaissent dans ϕ. Exemple 1 Prenons ϕ = x y (R(x, y, z) x Q(u, y, x)). Les variables libres de ϕ sont z et u. On notera souvent les variables libres d un formule explicitement : ϕ(x 1,..., x n ) désigne une formule ayant pour variables libres (x 1,..., x n ). Sémantique. Étant donné une affectation, f : var dom dom, une variable x var et une donnée c dom, on note f[x c] l affectation obtenue à partir de f en redéfinissant l image de x comme c. Soit ϕ(x 1,..., x n ) une formule FO et soit I une instance. Si f est une affectation, on dit que f et I satisfont ϕ(x 1,..., x n ) et on note f, I = ϕ(x 1,..., x n ) quand : ϕ := x 1 = x 2 et f(x 1 ) = f(x 2 ) ϕ := x 1 = c et ϕ := R( x) et f(x 1 ) = c R(f( x)) I 3

ϕ := Ψ 1 ( x 1 ) Ψ 2 ( x 2 ) et f, I = Ψ 1 ( x 1 ) ou f, I = Ψ 2 ( x 2 ) ϕ := Ψ 1 ( x 1 ) Ψ 2 ( x 2 ) et f, I = Ψ 1 ( x 1 ) et f, I = Ψ 2 ( x 2 ) ϕ := Ψ( x) et ϕ := x Ψ(ȳ) et f, I = Ψ( x) ϕ := x Ψ(ȳ) et Il existe c Adom(I) Adom(ϕ) tel que f[x c], I = Ψ(ȳ) Pour tout c Adom(I) Adom(ϕ) on a f[x c], I = Ψ(ȳ) Enfin, étant donné une formule FO, ϕ(x 1,..., x n ) à n variables libres et une instance I, l ensemble de tuples ϕ(i) est définit comme suit : ϕ(i) = {(c 1,..., c n ) (Adom(I) Adom(ϕ)) n c 1,..., c n, I = ϕ(x 1,..., x n )} 2.2 Exercices Exercice 6 On remarquera que toutes les quantifications dans la sémantique sont relativisées au domaine Adom(I) Adom(ϕ). Expliquez pourquoi. Exercice 7 Reprendre l Exercice 2 en calcul relationnel. Pour les deux exercices suivants, on s autorise à utiliser des tests d inégalités entre données avec les symboles < et. Par exemple pour récupérer les couples x, y dans la relation binaire Rel tels que x < y on peut utiliser la requête {(x, y) Rel(x, y) x < y} en calcul et la requête σ 1<2 (Rel) en algèbre 1. Exercice 8 On considère l instance de base de donnée suivante sur les agences de location de voiture : 1. Les ordres < et ne fonctionnent que si les données comparées sont des nombres. Dans le cas contraire x < y s évalue simplement à faux 4

Agences Nom Chaîne Bordeaux Sud Avis Bordeaux Est Hertz Paris Vème Hertz Lyon IIème Avis Talence Hertz Véhicules Voiture Nom Places Prix 1 Bordeaux Sud 4 50e 2 Bordeaux Sud 6 75e 3 Bordeaux Sud 2 40e 1 Bordeaux Est 4 65e 2 Bordeaux Est 4 65e 1 Paris Vème 2 45e 2 Paris Vème 6 90e 1 Talence 4 55e 2 Talence 4 55e 3 Talence 6 70e 1 Lyon IIème 8 95e 2 Lyon IIème 4 80e Réservations Nom Client Voiture Départ Retour Bordeaux Sud Dupont 2 15.12 17.12 Bordeaux Sud Dupond 3 16.12 20.12 Bordeaux Est François 1 14.12 15.12 Paris Vème Marc 1 15.12 17.12 Paris Vème Jean 2 15.12 31.12 Talence Durand 1 12.12 15.12 Talence Dupont 1 16.12 25.12 Lyon IIème François 2 16.12 18.12 1. Donnez les résultats renvoyés par les requêtes du calcul relationnel suivantes : {x Agences(x, Hertz)}. x 1, x 2, x 3, x 4, y 1, y 2, y 3, y 4 Réservations(x 1, x, x 2, x 3, x 4 ) x Réservations(y 1, x, y 2, y 3, y 4 ). (x 1 y 1 x 2 y 2 ) y, z, w, v, u, p Véhicules(y, z, w, p) x Réservations(z, x, y, v, u). p < 66e 2. Exprimez les requêtes suivantes en calcul relationnel : Retourner le nom des chaînes qui louent des voitures ayant plus de 6 places et coûtant moins de 70e. Retourner les clients qui ont loué deux voitures en même temps. Retourner les agences qui ont toutes leur voitures réservées le 15.12. Retourner la chaîne qui loue la voiture la plus chère. 3. Reprenez les requêtes de la question précédente pour les exprimer dans la variante de l algèbre de votre choix (avec ou sans attributs). Exercice 9 On considère le schéma de base de données CUISINE contenant les relations {Recette,Contient,Ingrédients} tels que : 5

sort(recette) = {NomR, Temps, TypeR} sort(contient) = {NomR,NomI,Quantité} sort(ingredients) = {NomI,TypeI,Unité} On considère l instance suivante de CUISINE : Ingrédients NomI TypeI Unité Lait Liquide Litre Eau Liquide Litre Farine Poudre Gramme Sucre Poudre Gramme Boeuf Viande Gramme Tomate Légume Nombre Pomme Fruit Nombre Poire Fruit Nombre Pêche Fruit Nombre Beurre Solide Gramme Oeuf Oeuf Nombre Contient NomR NomI Quantité Tarte aux Pommes Farine 300 Tarte aux Pommes Sucre 100 Tarte aux Pommes Beurre 200 Tarte aux Pommes Oeuf 3 Tarte aux Pommes Pomme 6 Entrecote Boeuf 180 Entrecote Beurre 5 Salade de Fruits Pomme 4 Salade de Fruits Poire 4 Salade de Fruits Pêche 4 Recette NomR Temps TypeR Tarte aux Pommes 60mn Dessert Salade de Fruits 15mn Dessert Entrecote 10mn Plat Dans les questions qui suivent on va demander d écrire des requêtes en calcul et/ou en algèbre. Pour l algèbre, on laisse le choix entre les variantes avec ou sans attributs. 1. Pour les requêtes suivantes du calcul relationnel, donnez les résultats renvoyés et donnez une requête équivalente en algèbre : {x, y Ingrédients(x, Liquide, y)}. {x x 1 x 2 x 3 x 4 Contient(x 1, x, x 2 ) Recette(x 1, x 3, x 4 ) x 3 > 20} {x x 1 x 2 x 3 Ingrédient(x, x 1, Nombre ) ( Contient(x 2, x, x 3 ) x 3 3)} 2. Pour les requêtes suivantes du algèbre relationnelle, donnez les résultats renvoyés et donnez une requête équivalente en calcul : π 1 (σ 2 60 (Recette)). π 3 (σ 1=4 5= F arine (Recette Contient)). π 1 (σ 2= beurre (Contient)) π 1(σ 3= Dessert (Recette)). 3. On considère la liste de requêtes suivantes : Retourner les ingrédients qui entrent dans la composition de recettes dont le temps de préparation dépasse 60mn. Retourner les recettes qui ne sont pas des plats, qui utilisent un liquide dans leur composition, pas de viande et moins de 3 oeufs. Retourner les ingrédients qui composent la recette la plus rapide à préparer. Retourner les recettes qui n utilisent que des ingrédients qui sont soit des fruits soit des légumes. 6

Retourner les recettes dont tous les ingrédients sont exprimés en grammes. Retourner les types de recettes qui ont des recettes à base de viande. On demande d écrire chaque requête en calcul et en algèbre. De plus, pour chaque requête, si l expression que vous donnez n est pas conjonctive, justifiez qu on ne peut pas faire mieux 2. Exercice 10 On considère un alphabet A = {a, b, c} et le schéma de base de données MOTS contenant la relation binaire < et les relations unaires P a, P b et P c. On code tout mot a 1 a n sur l alphabet A comme une instance du schéma MOTS de la façon suivante : Le domaine est l ensemble dom = {1,..., n}. La relation < contient tous les couples (i, j) dom 2 tels que i < j. La relation P a contient tous les i dom tels que a i = a. La relation P b contient tous les i dom tels que a i = b.... Par exemple le mot abac est codé par l instance ayant pour domaine {1, 2, 3, 4} et telle que < = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)}, P a = {1, 3}, P b = {2} et P c = {4}. Une requête du calcul relationnel sans variables définit donc un langage de mots sur l alphabet A : le langage de tous les mots qui satisfont la requête. Par exemple, la requête x P a (x), définit le langage de tous les mots qui contiennent un a (A aa ). On demande d écrire des requêtes du calcul relationnel qui définissent les langages suivants : 1. Les mots qui contiennent un a puis un b, puis un c : A aa ba ca. 2. Les mots qui ne contiennent que des a et des c. 3. Les mots qui finissent par un a : A a. 4. Les mots qui contiennent le facteur ab : A aba. 5. les mots qui contiennent au plus deux c. 6. Les mots qui ne contiennent pas le facteur ac entre deux b. 7. Les mots de la forme abababababababab ab : (ab). 2. On rappelle que les requêtes conjonctives sont monotones 7