Bases de données relationnelles. Calculs relationnels

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

Introduction aux Bases de Données

Les bases de données

Bases de données avancées Introduction

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

BASES DE DONNEES ORIENTEES OBJETS BDA10.1

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

Langage SQL : créer et interroger une base

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

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

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

)*+,+(-,(-.//0,+( Introduction )-"""( 1!"!2( !"#$%&$'()*+,-.//01)2&)345)3-67.0) A(54B&9)<2%)%5$2'52%) ) ) )

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

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Systèmes de Gestion de Bases de Données

Bases de Données. Plan

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

CHAPITRE 1. Introduction aux bases de données

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

TP Bases de données réparties

Le langage SQL Rappels

.../5. Gestion de Bases de Données (J. Wijsen) 27 janvier 2011 NOM + PRENOM : Orientation + Année : Cet examen contient 8 questions. Durée : 2 heures.

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

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

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

Bases de données cours 1

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

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

16H Cours / 18H TD / 20H TP

Vincent Augusto

I. Ensemble de définition d'une fonction

Cours 02 : Problème général de la programmation linéaire

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Introduction aux Bases de Données Relationnelles Conclusion - 1

Bases de Données Avancées

II. Modèle conceptuel le modèle entité-association

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

PROJET 1 : BASE DE DONNÉES REPARTIES

Intelligence Artificielle Planification

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

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 Avancées

Salle de technologie

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

Baccalauréat universitaire (bachelor) en mathématiques et sciences informatiques

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de données relationnelles

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

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante:

LE LANGAGE SQL2 1. INTRODUCTION

INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année Académique :

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

Cours Bases de données 2ème année IUT

Bases de données - Modèle relationnel

Année Universitaire 2009/2010 Session 2 de Printemps

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

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

Logique : ENSIIE 1A - contrôle final

4.2 Unités d enseignement du M1

Cours Bases de données

LA QUALITE DU LOGICIEL

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

Information utiles. webpage : Google+ : digiusto/

Carl-Louis-Ferdinand von Lindemann ( )

Dossier I Découverte de Base d Open Office

Module BDR Master d Informatique (SAR)

Le langage SQL (première partie) c Olivier Caron

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

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

Comment tracer une droite représentative d'une fonction et méthode de calcul de l'équation d'une droite.

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Structures algébriques

La Geo-Business Intelligence selon GALIGEO avec 26/10/2005 1

1 Introduction et installation

Table des matières. Avant-propos

Java DataBaseConnectivity

1 Modélisation d une base de données pour une société de bourse

1. Aménagements technologiques 2. Installation de Microsoft SQL Server 2012

Schéma relationnel et contraintes d intégrité : le cas ConduiteAuto

Bases de Données et Internet

Cours SGBD 1. Concepts et langages des Bases de Données Relationnelles

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

BACCALAURÉAT PROFESSIONNEL SUJET

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Manuel d utilisation DeveryLoc

Java et les bases de données

Séance 1 Introduction aux bases de données

Interpréteur d algèbre relationnelle

Compétences Business Objects

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

Introduction aux bases de données

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

LE MODELE CONCEPTUEL DE DONNEES

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

CESI Bases de données

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

BD et XML : Exercices

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

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

Introduction aux Bases de Données

Transcription:

Bases de données relationnelles Calculs relationnels

LMD relationnels algèbriques (rappel) L algèbre relationnelle permet de spécifier quelles sont les opérations à exécuter pour calculer le résultat de la requête L implantation des opérateurs algébriques définit un moteur algèbrique pour l exécution des requêtes. Ce composant "moteur algèbrique" constitue le noyau des SGBD relationnels SQL est une version orientée utilisateur de l algèbre relationnelle BDA 8.2

LMD prédicatifs Un langage prédicatif permet de ne spécifier que le résultat cherché (pas comment le calculer) spécification des prédicats qui doivent être vérifiés par les données pour former le résultat Ces langages sont dits prédicatifs car il sont basés sur le calcul de prédicats (logique 1 er ordre) Un langage prédicatif est donc plus simple qu une algèbre BDA 8.3

LMD relationnels prédicatifs Il existe deux types de langages prédicatifs relationnels Calcul de tuples : les variables dans les expressions logiques portent sur les tuples des relations (QUEL) x Etudiant Calcul de domaines : les variables dans les expressions logiques portent sur les valeurs des attributs des tuples (QBE) x Etudiant.nom BDA 8.4

Calcul de tuples

Exemple de requête Etudiant (n, nom, prénom, année) Requête : nom et prénom des étudiants nés après 1980 π [nom, prénom] σ [année > 1980] Etudiant déclaration de variable e Etudiant { e.nom, e.prénom e.année > 1980 } spécification du format du résultat prédicat à satisfaire par les tuples désignés par e BDA 8.6

Requête multi-relation Etudiant (n, nom, prénom, année) Inscription (n o ét, nomc, note1, note2) Requête : n o, prénom, notes des étudiants de nom "Rochat" inscrits au cours "BD" e Etudiant, i Inscription { e.n o, e.prénom, i.note1, i.note2 e.nom = "Rochat" i.nomc = "BD" e.n o = i.n o ét } : ET : OU : NON BDA 8.7

Algèbre / calcul π [n o, prénom, note1, note2] ((σ [nom = "Rochat"] Etudiant) *[n o = n o ét] (σ [nomc ="BD"] Inscription)) ou π [n o, prénom, note1, note2] σ [nom = "Rochat" nomc = "BD"] ( Etudiant *[n o = n o ét] Inscription ) e Etudiant, i Inscription { e.n o, e.prénom, i.note1, i.note2 e.nom = "Rochat" i.nomc = "BD" e.n o = i.n o ét } Même puissance d'expression BDA 8.8

Format d'une requête x1 R1, x2 R2, xi Ri Rj,.. xn Rn déclaration des variables (tuples) sur des relations ou des unions de relations compatibles { x1.a, x1.b, xi.d / fx1,x2, xn } spécification du format du résultat / spécification du prédicat fx1,x2, xn est une formule logique valide ayant pour variables libres exactement x1... xi (Les autres variables xi+1... xn doivent être liées) xi.d représente la valeur de l'attribut D dans le tuple xi BDA 8.9

Formule valide Formule élémentaire : x.a oper-comparaison constante x.a oper-comparaison y.b oper-comparaison : =,?, <, >, =, = x et y sont des variables libres Exemples x.nom="rochat" x.nom = y.nom Une formule avec variables libres ne peut pas être évaluée BDA 8.10

Formule valide (suite) Formule valide : formule élémentaire formule formule formule formule formule (formule) Si fx est une formule valide où x est une variable libre, alors : x fx est une formule valide où x est liée "il existe au moins un tuple x tel que fx soit vrai" x fx est une formule valide où x est liée "pour tous les tuples x, fx est vrai" BDA 8.11

Formules valides - Exemples Etudiant (n, nom, prénom, année) x Etudiant x.nom = "Rochat"??? x est une variable libre x (x.nom="rochat") est vrai s'il y a un Rochat dans Etudiant x est une variable liée x (x.année>1980) est vrai si tous les étudiants sont nés après 1980 x est une variable liée BDA 8.12

Quantificateur "il existe" Etudiant (n, nom, prénom, année) Inscription (n ét, nomc, note1, note2) Requête : nom, prénom des étudiants ayant réussi brillamment un cours e Etudiant, i Inscription { e.nom, e.prénom $ i (e.n o = i.n o ét i.note1 = 6 i.note2 = 6) } BDA 8.13

Quantificateur "pour tous" Requête : nom, prénom des étudiants ayant réussi brillamment tous les cours e Etudiant, i Inscription { e.nom, e.prénom " i (e.n o? i.n o ét (i.note1 = 6 i.note2 = 6)) $ i (e.n o = i.n o ét) } e Etudiant i Inscription " x ( A B) " x (A B) BDA 8.14

Logique du 1er ordre - Rappels L'opérateur logique => (implique) ne fait pas partie des opérateurs du calcul f1 => f2 est équivalent à : f1 f2 x fx est équivalent à : x ( fx ) Quantificateurs sur un ensemble vide Soit x R si R est vide, alors x fx = Vrai x fx = Faux BDA 8.15

Rappels (suite) Pour mieux comprendre La structure du prédicat (variables libres et liées, occurrences de relations) La sémantique du prédicat on peut écrire les formules sous forme prenexe (tous les quantificateurs en début de la formule) Formule sous forme prenexe : Q 1 x 1, Q 2 x 2,...Q n x n (ƒx 1,..., x n ) pas de quantificateur dans ƒx 1,..., x n et Q : ou Toute formule peut se mettre sous forme prenexe BDA 8.16

Sémantique d'une requête (1) x R, y S, z T { x.a, y.b fx,y,z } Faire le produit des relations à variables libres R x S Sélectionner les tuples du produit qui satisfont la formule fx,y,z BDA 8.17

Sémantique d'une requête (2) x R, y S, z T { x.a, y.b fx,y,z } Pour tout tuple, x, de R faire : Pour tout tuple, y, de S faire : Si fx,y,z est vrai alors ajouter <x.a,y.b> au résultat fin pour tout y de S fin pour tout x de R NB Le test de fx,y,z implique pour chaque variable liée (ici z) le parcours de la relation correspondante (ici T) BDA 8.18

Equivalence algèbre / calcul Toute expression d'algèbre peut s'écrire en calcul chaque opérateur peut se traduire démonstration par récurrence Toute requête de calcul peut s'écrire en algèbre R (A, B, C) S (D, E, F) x R, y S { x.a, x.b } { x.a, y.e } { x.a y (y.e=x.b)} }... p[a, B]R p[a, E] (RxS) p[a] (R*[B=E]S) BDA 8.19

Exemples - Bars à bières Bière (bière, degré, couleur, pays, goût) Bar (bar, quartier) Personne (nom, quartier, age, sexe) Sert (bar, bière) tel bar sert telle bière Abu (buveur, bière, bar, jour, mois, année, qté) tel jour, tel buveur a bu telle bière dans tel bar en telle quantité (qté) BDA 8.20

Exemples (1) Noms des bars fréquentés par Philippe ce mois ci u Abu { u.bar / u.buveur="philippe" u.mois=12 u.année=2003 } Noms des bars fréquentés par Philippe ce mois ci avec les bières bues et leur pays u Abu, i Bière { u.bar, u.bière, i.pays / u.buveur="philippe" u.mois=12 u.année=2003 u.bière=i.bière } BDA 8.21

Exemples (2) Nom, âge et quartier des personnes qui ont fréquenté au moins un bar p Personne, u Abu { p.nom, p.age, p.quartier / u (p.nom=u.buveur)} Nom, âge et quartier des personnes qui ont fréquenté tous les bars p Personne, a Bar, u Abu { p.nom, p.age, p.quartier / a u (p.nom=u.buveur u.bar=a.bar) } BDA 8.22

Exemples (3) Nom des personnes qui n'ont jamais fréquenté un bar p Personne, u Abu { p.nom / u (p.nom=u.buveur) } Nom, âge et quartier des personnes qui ont fréquenté au moins un bar du quartier de la gare p Personne, u Abu, a Bar { p.nom, p.age, p.quartier / a u ( a.quartier="gare" u.bar=a.bar p.nom=u.buveur) } BDA 8.23

Exemples (4) Nom, âge et quartier des personnes qui ont fréquenté tous les bars du quartier de la gare p Personne, u Abu, a Bar { p.nom, p.age, p.quartier / a (a.quartier?"gare" u (u.bar=a.bar p.nom=u.buveur) ) } OU p Personne, u Abu, a Bar { p.nom, p.age, p.quartier / a (a.quartier="gare" u (u.bar=a.bar p.nom=u.buveur) ) } BDA 8.24

Exemples (5) Nom des personnes qui ont bu une brune et une blonde le même jour dans le même bar u1 Abu, u2 Abu, b1 Bière, b2 Bière { u1.buveur / u2 (u1.bar=u2.bar u1.jour=u2.jour u1.mois=u2.mois u1.année=u2.année u1.buveur=u2.buveur b1 (u1.bière=b1.bière b1.couleur="blonde") b2 (u2.bière=b2.bière b2.couleur="brune") ) } BDA 8.25