inspirés de l!algèbre relationnelle : l'utilisateur spécifie une suite d'opérations à effectuer :



Documents pareils
1 Introduction et installation

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

Bases de Données. Plan

Langage SQL : créer et interroger une base

Le Langage SQL version Oracle

Le langage SQL Rappels

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

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

Les bases de données

16H Cours / 18H TD / 20H TP

COURS de BASES de DONNEES

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

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

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

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

LE LANGAGE SQL2 1. INTRODUCTION

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

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

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

MySQL / SQL EXEMPLES

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

Bases de données relationnelles

Vincent Augusto

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

SQL Historique

Le Langage De Description De Données(LDD)

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

Systèmes de Gestion de Bases de Données

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

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Bases de données avancées Introduction

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

INTRODUCTION : Données structurées et accès simplifié

Information utiles. webpage : Google+ : digiusto/

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

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

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

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

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

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

CREATION WEB DYNAMIQUE

TP Bases de données réparties

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

MODE OPERATOIRE OPENOFFICE BASE

Bases de Données Avancées

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

Cours: Les Jointures 1

Bases de données relationnelles & SQL

INTRODUCTION AU DATA MINING

Session S12 Les bases de l optimisation SQL avec DB2 for i

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Rappel sur les bases de données

Intégrité sémantique dans les bases de données relationnelles

Cours SQL. Base du langage SQL et des bases de données

Les bases de données Page 1 / 8

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

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

PHP 5. La base de données MySql. A. Belaïd 1

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Introduction aux Systèmes de Gestion de Bases de Données Relationnelles. Olivier Losson

CHAPITRE 1. Introduction aux bases de données

Évaluation et optimisation de requêtes

Année Universitaire 2009/2010 Session 2 de Printemps

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

OBJECTIFS ET ARCHITECTURE DES SGBD

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

1. Introduction. Bases de données Réparties, Fédérées et Réplication. Plan. Bibliographie du cours

Introduction aux Bases de Données

Initiation à la Programmation en Logique avec SISCtus Prolog

Gestion des transactions et accès concurrents dans les bases de données relationnelles

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

LE MODELE CONCEPTUEL DE DONNEES

Administration des bases de données. Jean-Yves Antoine

Chapitre Introduction : Notion de Bases de données. 2. Définition : BD Répartie. 3. Architecture des SGBD. 4. Conception des bases réparties

TD n 10 : Ma première Base de Données

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

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

Dossier I Découverte de Base d Open Office

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Chapitre 10. Architectures des systèmes de gestion de bases de données

Introduction aux Bases de Données

Intégrité des données

Interpréteur d algèbre relationnelle

Bases de données élémentaires Maude Manouvrier

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

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

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

INTEGRITE ET BD ACTIVES

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

Entrepôt de données 1. Introduction

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

Base de Données et Langage SQL

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

LA GESTION DES VUES 1. INTRODUCTION

Créer une base de données

Transcription:

Algèbre et Calculs relationnels Algèbre relationnelle Bernard EPINAE Professeur à l'université d'aix-marseille 2010 Les opérations de l!algèbre relationnelle Introduction au langage QL Calculs relationnels Calcul relationnel de tuples Introduction au langage QUEL Calcul relationnel de domaine Introduction au langage QBE L a ngage s p our la m a nipulation d'une b a s e de donné e s r e lationne lle Langages formels pour les bases de données : algèbre relationnelle (Codd 70): langages algèbriques définissant une collection d'opérations formelles sur les relations calcul relationnel (Codd 72): langages à prédicats (prédicatifs) définissant le résultat souhaité en utilisant des expressions de logique Langages utilisateurs pour les bases de données : inspirés de l!algèbre relationnelle : l'utilisateur spécifie une suite d'opérations à effectuer :! langage QL inspirés du calcul relationnel : l'utilisateur donne une définition du résultat cherché :! langages QUEL et QBE Bernard EPINAE - Algèbre et calculs relationnels 1 Bernard EPINAE - Algèbre et calculs relationnels 2 A lgè b r e 1 - Algèbre relationnelle Les opérations de l!algèbre relationnelle Equivalences algébriques Arbres algébriques Exemples de requêtes algébriques Introduction au langage QL algèbre = ensemble d!opérateurs de base, formellement définis, peuvant être combinés à souhait pour construire des expressions algébriques algèbre fermée : si le résultat de tout opérateur est du même type que les opérandes (ce qui est indispensable pour construire des expressions) Complétude: toute manipulation pouvant être souhaitée par les utilisateurs devrait pouvoir être exprimable par une expression algèbrique A lgè b r e r e lationne lle Opérandes : relations tables - du modèle relationnel (1NF) Fermeture : le résultat de toute opération est une nouvelle table Complétude : permet toute opération sauf les fermetures transitives Opérations unaires (1 opérande) Opérations binaires (2 opérandes) Bernard EPINAE - Algèbre et calculs relationnels 3 Bernard EPINAE - Algèbre et calculs relationnels 4

L e s opé r a t ions de l!algè b r e r e lationne lle Opérations de base : Opérations ensemblistes : union! intersection " différence # produit cartésien $ Opérations spécifiques : sélection/restriction % projection & jointures renommage ' Opérations dérivées (obtenues par combinaison des opérations de base) : division jointure externe complément fermeture transitive ( A lgé b r e r e lationne lle : é le c t ion / e s triction Opération unaire, la restriction (ou sélection) d!une table selon un critère de restriction ou qualification Q (pouvant porter sur un ou plusieurs attributs de ) est une table! de même schéma que dont les tuples sont des tuples de vérifiant la qualification Q : Q ' % Q () élection des clients où ville = PAI : CLIENT nocli nom ville 121 BETAND PAI 256 PAGNOL MAEILLE 542 LANDY QUEBEC 652 DUPOND PAI CLIENT-1 = % ville = "PAI! (CLIENT) : CLIENT-1 nocli nom ville 121 BETAND PAI 652 DUPOND PAI ETICT (, Q) Bernard EPINAE - Algèbre et calculs relationnels 5 Bernard EPINAE - Algèbre et calculs relationnels 6 A ll g é b r e r e ll a t ii o n n e ll ll e : Proje c t ion Opération unaire consistant à supprimer colonnes (attributs) de la table et en éliminant les tuples doubles (si un attribut de la clé primaire a été supprimé) la projection d!une table de schéma (a1, a2 ap,ap+1 an) selon la direction (a1, a2 ap) est une table de schéma (a1, a2 ap) dont les tuples sont ceux de auxquels sont supprimés les attributs n!appartenant pas à la direction de projection et en éliminant les tuples doubles : ' Ai1, Ai2,..., Aip & a1, a2...ap POJECT (, a 1, a 2...a p ) LIGNE_DE_COMMANDE nocommande noarticle date quantité 10 121 A 5/5 10 10 253 Z 5/5 1 10 712 H 5/5 3 12 253 Z 5/5 5 13 712 H 6/5 2 LIGNE = & noarticle, date LIGNE_DE_COMMANDE : LIGNE noarticle date 121 A 5/5 253 Z 5/5 712 H 5/5 712 H 6/5 Bernard EPINAE - Algèbre et calculs relationnels 7 A ll g é b r e r e ll a t ii o n n e ll ll e : Produit c a r té s ie n Opération binaire, le produit cartésien de 2 tables et de schémas quelconques est une table T ayant pour attributs la concaténation de ceux de et et dont les tuples sont toutes les concaténations d'un tuple de à un tuple de : T T = X PODUCT (, ) X VIN n cru millés. deg. 110 corbière 1974 13 120 macon 1976 14 VITICULTEU nom ville région nicolas poully bougogne martin bordeaux bordelais VINVIT = VIN X VITICULTEU VINVIT n cru millés. deg. nom ville région 110 corbière 1974 13 nicolas poully bougogne 120 macon 1976 14 martin bordeaux bordelais 110 corbière 1974 13 martin bordeaux bordelais 120 macon 1976 14 nicolas poully bougogne Bernard EPINAE - Algèbre et calculs relationnels 8

A ll g é b r e r e ll a t ii o n n e ll ll e : e nommage ' Opération unaire, le renommage d!une table permet d!obtenir une table! dont les tuples sont ceux de et dont le schéma est celui de dans lequel un attribut a été renommé : = ' [nom_attribut : nouveau_nom] le schéma de! = (' [n, m] ) est le même que le schéma () avec n renommé en m précondition : le nouveau nom d!attribut n!est pas déjà le nom d!un attribut de intérêt : permet de résoudre des problèmes de compatibilité entre noms d!attributs de 2 tables opérandes d!une opération binaire : A ll g é b r e r e ll a t ii o n n e ll ll e : Jointure Opération binaire, la jointure de 2 tables et est une table T obtenue ainsi : 1. réaliser le produit cartésien des 2 tables et 2. effectuer une opération de sélection (ou qualification) entre un attribut de la table et un attribut de la table appelés "attributs de jointure" 3. effectuer ou non une opération de projection pour réduire le schéma de la table résultante emarques : 1. elle réalise une concaténation de tables limitée à des occurrences de tables présentant des valeurs communes sur des attributs de jointure 2. elle matérialise le lien entre plusieurs tables ou la fusion de plusieurs tables 2 = ' [B: C] 1 3. la sélection-qualification ou "opérateur de jointure" est généralement l'égalité, mais peut être étendu à des opérateurs logiques quelconques. 4. elle peut s'effectuer sur tout attribut, sans préjuger de la pertinence sémantique du résultat obtenu, seules les jointures en égalité construites sur les attributs clés primaires traduisent des relations (conceptuelles). Bernard EPINAE - Algèbre et calculs relationnels 9 Bernard EPINAE - Algèbre et calculs relationnels 10 A ll g é b r e r e ll a t ii o n n e ll ll e : Jointure Opération binaire, la jointure de 2 table et selon une condition ) consiste à rapprocher les tuples de 2 tables et afin de former une troisième table T qui contient l!ensemble de tous le tuples obtenus en concaténant un tuple de et un tuple de vérifiant la condition ) : T Condition C 5. la condition de rapprochement ) est du type : 6. on distingue selon l!opérateur : <attribut1> <opérateur> <attribut2> avec attribut1 appartient à et attribut2 appartient à opérateur = : équi-jointure JOIN (,, C) A ll g é b r e r e ll a t ii o n n e ll ll e : Equi-jointure Exemple d!équi-jointure : VIN n cru millés. deg. 120 bordeaux 1975 14 200 macon 1978 12 210 macon 1977 12 VITICULTEU nom ville région VINVITI = VIN nicolas bordeaux bordelais bernard saumur loire pierre macon bourgogne cru = ville * VITICULTEU VINVITI n cru millés. deg. nom ville région 120 bordeaux 1975 14 nicolas bordeaux bordelais 200 macon 1978 12 pierre macon bourgogne 210 macon 1977 12 pierre macon bourgogne opérateur {<, >, #, $, %} : inéqui-jointure ou théta-jointure Bernard EPINAE - Algèbre et calculs relationnels 11 Bernard EPINAE - Algèbre et calculs relationnels 12

Jointure nature lle la jointure naturelle de 2 tables et est une table T dont les attributs sont l!union des attributs de et de et dont les tuples sont obtenus en concaténant un tuple de et un tuple de ayant mêmes valeurs pour les attributs de même nom : T Bernard EPINAE - Algèbre et calculs relationnels 13 JOIN (, ) CLIENT nocli nom COMMANDE nocde nocli date 121 DUVAL 10 121 5/5 253 LEOY 11 260 5/5 260 LANDY 12 121 5/5 293 ANCHEZ 15 253 6/5 Jointure naturelle de CLIENT et COMMANDE (nocli de CLIENT = nocli de COMMANDE) : CLICDE = CLIENT COMMANDE = JOIN (CLIENT, COMMANDE) CLICDE nocli nom nocde date 121 DUVAL 10 5/5 253 LEOY 15 6/5 121 DUVAL 12 5/5 260 LANDY 11 5/5 Noné qui-jointure ou Thé t a -jointure L!inéqui-jointure ou théta-jointure de 2 tables et selon une condition de rapprochement C, inégalité portant entre un attribut de et un attribut de est une table T dont les attributs sont l!union des attributs de et de et dont les tuples sont obtenus en concaténant un tuple de et un tuple de qui respectent la condition C : VIN Cru Millésime Qualité. LIEU Cru égion QualMoy. Volnay 1983 A Volnay Bourgogne A Volnay 1979 B Chablis Bourgogne A Chablis 1983 A Chablis Californie B Julienas 1986 C VINLIEU = VIN [Qualité%QualMoy] LIEU = JOIN (VIN, LIEU, Qualité%QualMoy) VINLIEU Cru Millésime Qualité. Cru égion QualMoy Volnay 1983 A Chablis Californie B Volnay 1979 B Volnay Bourgogne A Volnay 1979 B Chablis Bourgogne A Volnay 1983 A Chablis Californie B Julienas 1986 C Volnay Bourgogne A Julienas 1986 C Chablis Bourgogne A Julienas 1986 C Chablis Californie B Bernard EPINAE - Algèbre et calculs relationnels 14 A ll g é b r e r e ll a t ii o n n e ll ll e : Jointure Exte r ne A ll g é b r e r e ll a t ii o n n e ll ll e : Jointure Exte r ne la jointure externe de 2 tables et est une table T obtenue par jointure de et et ajout des tuples de et de ne participant pas à la jointure avec des valeurs nulles pour les attributs de l!autre table : T Intérêt : composer des vues sans perte d!information EXT-JOIN (, ) VIN Cru Millésime Qualité. Volnay 1983 A Volnay 1979 B Julienas 1986 C LIEU Cru égion QualMoy. Volnay Bourgogne A Chablis Bourgogne A Chablis Californie B On distingue : la jointure externe droite (EXT-JOINT sans correspondant de la table de droite la jointure externe gauche (LEXT-JOINT tuples sans correspondant de la table de gauche ): elle garde seulement les tuples ): elle garde seulement les VIN-LIEU = VIN LIEU = EXT-JOIN (VIN, LIEU) : VIN-LIEU Cru Millésime Qualité. égion QualMoy Volnay 1983 A Bourgogne A Volnay 1979 B Bourgogne A Chablis - - Bourgogne A Chablis - - Californie B Julienas 1986 C - - Bernard EPINAE - Algèbre et calculs relationnels 15 Bernard EPINAE - Algèbre et calculs relationnels 16

A ll g é b r e r e ll a t ii o n n e ll ll e - o p é r a t ii o n s e n s e m b ll ii s t e s : Union, Inte r s e c t ion e t D iffé r e nce Opérations binaires (tables = ensembles de tuples) : correspondant aux opérations habituelles de la théorie des ensembles ne peuvent être appliquées que sur des tables de même schéma et donnent une nouvelle table de même schéma : union intersection différence 1 1 1 A ll g é b r e r e ll a t ii o n n e ll ll e : D ivision le quotient de la division d'une table D (a1, a2 ap,ap+1 an) par la sous table d(ap an) est la table Q(a1, a2 ap) dont les tuples sont ceux qui concaténés à tout tuple de d donnent un tuple de D : Q D d DIVIION (D, d) 2 2 2 D d Intérêts de la division : 1 U 2 1 U 2 1-2 elle permet de rechercher dans une table les sous-tables qui sont complétées par tous ceux d!une autre table 1! 2 UNION (1, 2) 1 " 2 INTEECT (1, 2) 1-2 MINU (1, 2) emarque : l!intersection est une opération dérivée car 1 " 2 = 1 (1 2) Bernard EPINAE - Algèbre et calculs relationnels 17 elle permet ainsi de répondre à des requêtes de la forme «quel que soit x, trouver y» Bernard EPINAE - Algèbre et calculs relationnels 18 A ll g é b r e r e ll a t ii o n n e ll ll e : D ivision Exemple de division : PIECE nom couleur poids ville tuple 1 clou rouge 14 Londres tuple 2 boulon vert 17 Paris tuple 3 vis bleu 12 ome tuple 4 vis rouge 14 Londres tuple 5 rivet bleu 12 Paris tuple 6 clou bleu 12 ome NATUE tuple 1 tuple 2 nom vis clou Division de la table PIECE par la table NATUE : PIECE_NATUE = PIECE NATUE : PIECE_NATUE couleur poids ville tuple 1 bleu 12 ome tuple 2 rouge 14 Londres Les tuples de la table PIECE_NATUE, concaténés à chacun des tuples de la table NATUE donnent un tuple de la table PIECE. Equivale nce s a lgé b r ique s Quelques équivalences : Commutativité de la sélection : % e1 (% e2 (T)) = % e2 (% e1 (T)) Commutativités des intersections : " = " Commutativité de la jointure : = Eclatement d'une sélection conjonctive : % e1 et e2 (T) = % e1 (% e2 (T)) Elimination des projections en cascades : & liste1 (& liste2 (T)) = & liste1 (T) Associativité de la jointure : ( T) = ( ) T D!où formulations équivalentes d!une même requête : & liste1 (% e1 ( T V ))! & liste1 (% e1 ((( ) T) V))! & liste1 (% e1 ((( T) ) V)) Bernard EPINAE - Algèbre et calculs relationnels 19 Bernard EPINAE - Algèbre et calculs relationnels 20

Exe m p le s de r e quê t e s a lgé b r ique s oit la base de données suivante : JOUNAL (code-j, titre, prix, type, périodicité) DEPOT (no-dépôt, nom-dépôt, adresse) LIVAION (no-dépôt, code-j, date-liv, quantité-livrée) C o n v e n t i o n s d! e x p r e s s i o n d e s o p é r a t e u r s a l g é b r i q u e s projection & a1, a2...ap union! equêtes algébriques : Quel est le prix des journaux? & [prix] JOUNAL Informations sur les journaux hebdomadaires? % [périodicité = "hebdomadaire!] JOUNAL Quels sont les codes des journaux livrés à Marseille? & [code-j] (% [adresse = "Marseille!] DEPOT LIVAION) sélectionrestriction jointure produit cartésien intersection " % Q () différence T = T = X division Q = D d renomage de la colonne a2 en a2! :! = ' [a2 : a2! ] Bernard EPINAE - Algèbre et calculs relationnels 21 Bernard EPINAE - Algèbre et calculs relationnels 22 A r b r e a lgé b r ique exprimer une suite d'opération d'algèbre relationnelle associée à une requête: equête : (& Q7 (& Q5 (% Q1 () [Q3] % Q2 () )) [Q6] Z) W projection Q7 V jointure Q6 U Z projection Q5 T jointure Q3 sélection sélection ' ' Q1 Q2 Introduction a u langage QL ( 1 ) acronyme de tructured Query Langage dérivé de EQUEL, interface de consultation pour ystem (Astr IBM 81) standard ANI en 86, standard IO en 87, amélioré en 1989 (QL 1) norme la plus courante (ANI/IO) en 92 (QL2) nouvelle norme 1999 (QL3) La structure de base d'une expression QL comporte 3 clauses : ELECT: projection de l'algèbre relationnelle désigne la liste des attributs désirés FOM: désigne la liste des tables à considérer WHEE: désigne le prédicat à vérifier sur des attributs de table de la clause From ELECT a1, a2,, an FOM oit : 1, 2 m WHEE P & a1, a2,..., an % P (1 X 2 X X m) Bernard EPINAE - Algèbre et calculs relationnels 23 Bernard EPINAE - Algèbre et calculs relationnels 24

BD r e lationne lle «f ourniture» PODUIT (npro: no produit, nomp: nom produit, qtes: qté stock, couleur : couleur produit) VENTE (nvente: no vente, nomc: nom client, nprv: no produit vendu, qtev: qté vendue) ACHAT (nachat: no achat, npra : no produit acheté, qtea: qté acheté, nomf: nom fournisseur) PODUIT npro nompro qtes. couleur 1 chaise 60 rouge 2 bureau 18 gris 3 armoire 35 blanche 4 lampe 51 jaune 5 fauteuil 31 rouge 6 chaise 20 verte 7 lampe 3 rouge VENTE nvente nomc nprv qtev ACHAT nachat date npra qtea nomf 10 Duval 1 10 10 4/9/02 5 10 ibart 11 Landry 5 20 11 5/9/02 4 20 Tellier 12 mith 4 10 12 8/9/02 3 10 Dupond 13 Duval 3 15 13 12/9/02 2 15 Dupond 15 Durant 1 20 15 16/9/02 1 20 Buvard Introduction a u langage QL ( 2 ) " projection PODUIT (npro, nomp, qtes, couleur) VENTE (nvente, nomc, nprv, qtev) ACHAT (nachat, npra, qtea, nomf) ELECT npro, couleur FOM PODUIT (avec doubles) ELECT UNIQUE npro, couleur FOM PODUIT (sans doubles) " élection ELECT * FOM PODUIT WHEE couleur = rouge AND qtes > 35 ELECT npro, qtes FOM VIN WHEE couleur = rouge AND qtes > 35 ELECT npro, qtes FOM VIN WHEE couleur = rouge AND qtes > 35 ODE BY qtes AC, couleur DEC Bernard EPINAE - Algèbre et calculs relationnels 25 Bernard EPINAE - Algèbre et calculs relationnels 26 Introduction a u langage QL (3) " produit cartésien ELECT * FOM PODUIT, VENTE " jointures ELECT * FOM PODUIT, VENTE WHEE PODUIT.npro = VENTE.nprv ELECT nompro FOM PODUIT WHEE npro IN (ELECT nprv FOM VENTE) " union ELECT nprv FOM VENTE WHEE qtev > 15 UNION ELECT nprv FOM VENTE WHEE nomc = Duval sur une même table ou requêtes sur tables différentes avec même select! " intersection ELECT nprv FOM VENTE WHEE qtev > 15 INTEECT ELECT nopro FOM PODUIT WHEE nompro = chaise sur une même table ou requêtes sur tables différentes avec même select! " différence ELECT nopro FOM PODUIT WHEE qtes > 50 MINU ELECT nopro FOM PODUIT WHEE couleur = rouge sur une même table ou requêtes sur tables différentes avec même select! Introduction a u langage QL ( 4 ) " connecteurs logiques dans QL : AND, O, NOT, IN, NOT IN ELECT nompro FOM PODUIT WHEE npro NOT IN (ELECT nprv FOM VENTE WHEE qtev > 10 AND nomc = Duval) " fonctions de calculs : COUNT: Nb de valeurs ; UM : somme de valeurs ; AVG : moyenne de valeurs ; MAX : valeur maxi ; MIN : valeur mini ELECT AVG (qtes) FOM PODUIT WHEE couleur = rouge " insertion de tuples : INET INTO VENTE VALUE couleur = "rouge" AND qtes < 5 " suppression et modification : DELETE PODUIT WHEE couleur = "rouge" AND qtes < 5 UPDATE VENTE ET Qtev = 0 WHEE nomc = "Bergman") Bernard EPINAE - Algèbre et calculs relationnels 27 Bernard EPINAE - Algèbre et calculs relationnels 28

Introduction a u c a lcul e lationne l Algèbre relationnelle : 2 - Calculs relationnels appel sur le calcul des prédicats du 1 ordre Calcul relationnel de tuples Introduction au langage QUEL Calcul relationnel de domaine Introduction au langage QBE langage procédural permettant d'expliciter une séquence d'opérations qui conduiront à un résultat désiré. Calcul relationnel : langage non-procédural permettant d'expliciter le résultat que l'on désire sans spécifier la séquence des opérations à effectuer. 2 types de calcul relationnel: " Calcul relationnel de Tuples : variables = tuples! langage QUEL (GBD INGE) " Calcul relationnel de domaines : variables = valeurs prises sur un domaine! langage QBE Bernard EPINAE - Algèbre et calculs relationnels 29 Bernard EPINAE - Algèbre et calculs relationnels 30 a p p e l s ur le c a lcul de s p r é dicats du 1 ordre prédicats du 1 ordre = système formel de la logique les principaux langages de manipulation de données relationnels permettant le calcul relationnel sont basés sur cette logique yntaxe : () parenthèses + implication non a,b x,y P,Q constante variables predicat à argument f,g,h fonction à argument Exemple de formule bien formées (NILON 71) : P (a, g (a,b,a)) P (a,b) + ( Q(c)) P (a) + Q (f(a)) en base de données on se sert en général de :,, -, et (.), ou (v), Calcul r e lationne l de Tuple s langage d'interrogation de données formel permettant d'exprimer des questions à partir de formules dont les variables sont interprétées comme variant sur les tuples d'une table Base de données exemple «fourniture»: PODUIT (npro, nomp, qtes, couleur) VENTE (nvente, nomc, nprv, qtev) ACHAT (nachat, npra, qtea, nomf) Exemple de requêtes en calcul relationnel de tuples : {P.NOMP, P.COULEU / PODUIT (P)}! liste des noms et des couleurs de tous les produits {P.NOMP, P.QTE / PODUIT (P) (P.COULEU = "rouge")}! nom et quantités en stock des produits de couleur rouge {P.NOMP, A.NOMF, V.NOMC / PODUIT (P). ACHAT (A). VENTE (V) (P.QTE > 100). (P.COULEU = "rouge"). (P.NPO = V.NPV). (P.NPO = A.NPA) }! donner pour chaque produit en stock en quantité supérieure à 100 et de couleur rouge, les triplets nom de fournisseur ayant vendu ce produit, et nom de client ayant acheté ce produit. Bernard EPINAE - Algèbre et calculs relationnels 31 Bernard EPINAE - Algèbre et calculs relationnels 32

Introduction a u langage QUEL ( Ingre s ) langage QUEL (Zook 77), Ingres (tonebraker 76) dérivé du calcul relationnel de tuples pas de quantificateur (,, -) explicites + fonctions de calcul (moyenne, compteur, somme, min, max,...) + fonctions de mises à jour sophistiquées vues... déclaration des variables dans QUEL : séparation de la définition des variables de l'expression de la requête : ANGE OF variable I nom_de_relation ANGE OF p I produit ; ANGE OF a, b, c I r1, r2, r3 structure de base d'une expression QUEL : ANGE OF t I r : où t = variable de tuple dont la valorisation est restreinte aux tuples de la table r ETIEVE : (extraire) équivalent à la clause ELECT de QL WHEE : prédicat suivant lequel s'effectue l'extraction L a ngage QUEL ( Ingre s ) echerche en QUEL : ETIEVE [[INTO] nom_table] (liste_résultat)[whee qualification] Ex: ANGE p I produit, a I chat, v I vente) ETIEVE (p.nomp, p.couleur) ETIEVE (p.nomp, p.qtés) WHEE p.couleur="rouge" ETIEVE (p.nomp, a.nomf) WHEE p.couleur="rouge" ETIEVE (p.nomp, a.nomf, v.nomc) WHEE (p.qtes>100). (p.couleur="rouge"). (p.npro=v.nprv). (p.npro=a.npra) Tri : ETIEVE... WHEE... OT BY... ANGE e I employé, d I département ETIEVE (e.nom, e.salaire, e.num_departement) WHEE e.salaire>300000 OT BY nom Mises à jour en QUEL : EPLACE, APPEND TO, DELETE EPLACE employé(salaire=180000) [WHEE employé.nom="durant"] APPEND TO département (dname="ventes", étage=3, batiment="a", division="d1") DELETE d WHEE d.nom="ventes" Bernard EPINAE - Algèbre et calculs relationnels 33 Bernard EPINAE - Algèbre et calculs relationnels 34 Calcul r e lationne l de domaine langage d'interrogation de données formel permettant d'exprimer des questions à partir de formules bien formées dont chaque variable est interprétée comme variant sur le domaine d'un attribut d'une table Base de données exemple «fourniture»: PODUIT (npro, nomp, qtes, couleur) VENTE (nvente, nomc, nprv, qtev) ACHAT (nachat, npra, qtea, nomf) Exemple de requêtes en calcul relationnel de domaines : {x, y / PODUIT(nomp:x, couleur:y)}! liste des noms et des couleurs de tous les produits {x, y / PODUIT(nomp: x, qtes: y, couleur: "rouge")}! nom et quantités en stock des produits de couleur rouge {x, y, z / PODUIT(npro: t, nom: x, qtes: u, couleur: "rouge"). ACHAT(npra: t, nomf: y). VENTE(nprv: t, nomc: z). (u>100)}! donner pour chaque produit en stock en quantité supérieure à 100 et de couleur rouge, les triplets nom de fournisseur ayant vendu ce produit, et nom de client ayant acheté ce produit. le langage QBE QBE : Query By Example (Zloff 77, IBM Yorktown Heights 78 mise en oeuvre visuelle (tableaux affichés) du calcul relationnel de domaine : QMF (QL/D et DB2) idée de base : faire formuler une requête à l'utilisateur par un exemple d'une réponse possible à la question : 1- affichage de schémas relationnels vides à l'écran 2- expression des requêtes par remplissage des schémas PODUIT npro nomp qtes couleur P. P. rouge! nom et quantités en stock des produits de couleur rouge conventions : P. : attributs à projeter constantes taprées directement, précédées d'un comparateur ((= par défaut), >, <, ", #,,..) variables : soulignées,: all. (ou) : 2 lignes superposées (formules normale disjonctives) Bernard EPINAE - Algèbre et calculs relationnels 35 Bernard EPINAE - Algèbre et calculs relationnels 36

le langage QBE requêtes multi-tables :! noms des clients ayant acheté au moins un produit de couleur verte? PODUIT npro nomp qtes couleur X verte VENTE nvente nomc nprv qtes P. X non élimination des doublons : ALL VENTE nvente nomc nprv qtes P.ALL.X tri (DO : descendant; AO: ascendant) : PODUIT npro nomp qtes couleur P.DO.X >100 le langage QBE fermeture transitive de tables : NOMENCLATUE COMPOE COMPOANT voiture chassis voiture moteur voiture batterie moteur piston moteur bielle moteur carter piston boulon piston écrou! recherche des composants de 2 niveau NOMENCLATUE COMPOE COMPOANT voiture x x P. y! recherche des composants de 3 niveau ( 3L = level 3): NOMENCLATUE COMPOE COMPOANT voiture P. y (3L) Bernard EPINAE - Algèbre et calculs relationnels 37 Bernard EPINAE - Algèbre et calculs relationnels 38 L e langage QBE: M ise s à jour Insertions (Insert): PODUIT npro nomp qtes couleur I. 8 tableau 100 verte! insertion du tuple <8, tableau, 100, verte> Mise à jour (Update) : PODUIT npro nomp qtes couleur U. x y rouge x y+100! mise à jour des quantités en stock des produits rouges uppression (Delete) : PODUIT npro nomp qtes couleur D. rouge! suppression des produits de couleur rouge Bernard EPINAE - Algèbre et calculs relationnels 39