A. Qu est ce que l algèbre relationnelle?



Documents pareils
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

Bases de Données. Plan

Le langage SQL Rappels

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

1 Introduction et installation

Bases de données relationnelles

Bases de données avancées Introduction

Les 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

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

INTRODUCTION AU DATA MINING

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

16H Cours / 18H TD / 20H TP

Langage SQL : créer et interroger une base

Bases de données élémentaires Maude Manouvrier

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Rappel sur les bases de données

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

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

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

Évaluation et optimisation de requêtes

Dossier I Découverte de Base d Open Office

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

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

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

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

Les bases de données Page 1 / 8

Bases de données - Modèle relationnel

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

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

Projet Business Object

Le Langage SQL version Oracle

Introduction aux Bases de Données

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 : Requêtes SQL (BDR.TD2-1) INSA 3IF

A. Définition et formalisme

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

Programmes des classes préparatoires aux Grandes Ecoles

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

Introduction aux Bases de Données

BAREME sur 40 points. Informatique - session 2 - Master de psychologie 2006/2007

Interpréteur d algèbre relationnelle

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

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

Chap. 2: L approche base de données

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

TP Bases de données réparties

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

Vincent Augusto

AIDE AU PILOTAGE. BO Web intelligence Session 1

LE MODELE CONCEPTUEL DE DONNEES

AGRÉGATION «ÉCONOMIE ET GESTION»

SAP BusinessObjects Web Intelligence (WebI) BI 4

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

Gestion des bases de données (2 e partie)

CESI Bases de données

Le chiffre est le signe, le nombre est la valeur.

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

Séance 1 Introduction aux bases de données

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

Cours 1 : introduction

Information utiles. webpage : Google+ : digiusto/

Excel avancé. Frédéric Gava (MCF)

COURS de BASES de DONNEES

Base de Données et Langage SQL

Représentation des Nombres

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

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

Comprendre Merise et la modélisation des données

Business Intelligence avec Excel, Power BI et Office 365

Bases de données Outils de gestion

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

Conception d une base de données

Cours Bases de données

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

Bases de données. Chapitre 1. Introduction

MODE OPERATOIRE OPENOFFICE BASE

TP2 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

Bases de données cours 1

Introduction à la B.I. Avec SQL Server 2008

UE 8 Systèmes d information de gestion Le programme

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

CHAPITRE 1. Introduction aux bases de données

Systèmes de Gestion de Bases de Données

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

Chapitre 1 : Introduction aux bases de données

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

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier

Introduction aux bases de données

Chapitre 11 Bases de données

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

Bases de données relationnelles & SQL

4.2 Unités d enseignement du M1

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

OBJECTIFS ET ARCHITECTURE DES SGBD

Bases de Données Avancées

Bases de données relationnelles : Introduction

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Entrepôt de données 1. Introduction

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

Transcription:

S. Laporte LMS CHAP7 : L ALGEBRE RELATIONNELLE I. Introduction A. Qu est ce que l algèbre relationnelle? En DAIGL, vous apprenez à modéliser vos données sous forme de MCD. Le MCD sert ensuite à être traduit dans un modèle de donnée utilisable par un SGBD, appelé modèle logique. Lorsque le SGBD choisi est de type relationnel, le MCD doit être traduit en modèle relationnel afin d implanter la base correspondante dans le SGBDR. Dans une base de donnée relationnelle, les données sont enregistrées dans des tableau à 2 dimensions, appelés relations ou tables. La première dimension est représentée par les lignes et la deuième dimension par les colonnes. La manipulation de ces données est basée sur la théorie mathématique des ensembles. Vous allez étudier le modèle relationnel en détail en cours de DAIGL. Mais représenter et implanter les données est une chose : il faut aussi savoir interroger les tables car la mémorisation de données n'a de sens que si l'on peut etraire certaines informations. L algèbre relationnelle est la base théorique sur laquelle la construction des langages d interrogation de base de données relationnelles s est construite. Il eiste plusieurs langages mais aujourd hui le plus utilisé est SQL. Sous certains SGBDR grand public comme Access, les utilisateurs débutants utilisent aussi QBE (query by eemple), qui est un langage de requête visuel, basé sur l algèbre relationnelle. Pour mieu comprendre SQL et pour mieu construire des requêtes SQL, il est nécessaire d étudier l algèbre relationnelle. Il en est de même pour une utilisation intelligente de QBE. L algèbre relationnelle permet donc de manipuler les données des tables d une base de données à l aide de requêtes (query en anglais). Elle prépare la conception de requêtes qui seront traduite en SQL. B. Notion de modèle relationnel Partant d'un Modèle conceptuel de données par eemple: VIN n vin cru millésimé degré BOIRE 0,N quantité bue 0,N BUVEUR matricule nom adresse En appliquant des règles de passages (vues en DAIGL) on aboutit à un modèle relationnel dont on représente la structure ainsi (en intention): VIN (n vin, cru, millésimé, degré) Une Relation BUVEUR (matricule, nom, adresse) BOIRE (n vin, matricule, quantité bue) Le modèle relationnel correspondant au MCD

Une clé On fait une représentation tabulaire (ou en etension) de ce Modèle logique de données : Nom de la relation Colonne ou attribut VIN N vin Cru Millésimé Degré v1 Chablis 1976 13 v2 Bordeau 1997 12 v3 Beaujolais 1998 12,5 v4 JP Chenet 1998 12 Ligne ou n-uplet BOIRE MATRICULE N vin Quantité bue DUP71 v1 1 DUP71 v3 2 GRA72 v3 2 GRA72 v2 2 GRA72 v4 1 VAI73 v4 3 VAI73 v2 2 BUVEUR MATRICULE Nom Adresse DUP71 DUPONT 10, rue des Près - MACON GRA72 GRAVIER 2, avenue J. MOULIN - LYON VAI73 VAILLANT 1, rue d'ulm - PARIS Vocabulaire utile : Degré : nombre d'attributs (de colonnes) d'une table. Cardinalité : nombre de lignes (enregistrements) d une table Quels sont le degré et la cardinalité de la table BOIRE décrite ci-dessus? BOIRE : degré 3, cardinalité 7 C. Les opérations de l algèbre relationnelle L algèbre relationnelle possède 8 opérateurs : Certains opérateurs sont ensemblistes (communs avec la théorie des ensembles), d autres sont relationnels (spécifiques à l algèbre relationnelle, en gras ci-dessous). On peut aussi classer les opérateurs selon qu ils s appliquent à une ou à plusieurs relations (tables). Opérations à un seul opérande o Sélection (opérateur relationnel) o Projection (opérateur relationnel) Opérations à deu opérandes o Produit cartésien (opérateurs ensemblistes) o Jointure (opérateur relationnel) 2

o Union (opérateurs ensemblistes) o Intersection (opérateurs ensemblistes) o Différence (opérateurs ensemblistes) o Division (opérateur relationnel) L'algèbre relationnelle, c'est un langage d interrogation des bases de données relationnelles On formule une requête (une interrogation pour etraire des données) On utilise le l algèbre relationnelle (un langage qui permet d eprimer des requêtes) Appliquée sur Une ou plusieurs relations (tables) donne Une relation (table) résultante Parfois, pour parvenir à etraire les données voulues, il faut effectuer plusieurs opérations. Dans ce cas, le résultat de la première opération est utilisé dans la deuième opération, et le résultat de la deuième opération peut être utilisé dans la troisième opération, Nous verrons tout d abord les opérateurs ensemblistes, avant d étudier les opérateurs spécifiquement relationnels puis quelques opérateurs de calcul. II. Les opérateurs ensemblistes A. Rappels mathématiques Les opérateurs ensemblistes sont les mêmes qu en mathématiques, dans la théorie des ensembles. Soient deu ensembles A et B (en gras) contenant respectivement 5 et 3 éléments. Pour les 3 cas présentés, voilà les cardinalités (nombre d éléments) de l'ensemble R. A A B A B B Intersection 3 2 0 R = A B Union 5 6 8 R = A B Différence 2 3 5 R = A - B Différence 0 1 3 3

R = B - A R = A B card(a) + card(b) - card(a B) R = A - B card(a) - card(a B) R = B - A card(b) - card(a B) Attention : les opérateurs ensemblistes se font uniquement sur des relations ayant la même description, cad 1) même nombre d'attributs, 2) les attributs ont le même domaine : même nature des valeurs (longueur et type de données). B. Union (sur des relations qui ont la même description) L union de deu tables est l'ensemble des occurrences qui appartiennent soit à la première table, soit à la deuième, soit au deu tables. C est la traduction du OU logique. R = R1 U R2 ou R = UNION (R1, R2) BUVEUR MatriculeB NomB AdresseB DUP71 DUPONT 10, rue des Près - MACON GRA72 GRAVIER 2, avenue J. MOULIN - LYON VAI73 VAILLANT 1, rue d'ulm - PARIS PROPRIETAIRE MatriculeP NomP AdresseP GRA71 GRAVIER 2, avenue J. MOULIN - LYON HUB72 HUBERT 12, rue Gambetta - PARIS JOU73 LOUVET 84, avenue Martin - SENS E : Donnez la liste des personnes qui sont soit buveurs soit propriétaires de vin. Matricule Nom Adresse DUP71 DUPONT 10, rue des Près - MACON GRA72 GRAVIER 2, avenue J. MOULIN - LYON HUB72 HUBERT 12, rue Gambetta - PARIS LOU73 LOUVET 84, avenue Martin - SENS VAI73 VAILLANT 1, rue d'ulm - PARIS Remarque : élimination des doublons. Opération : R1 = BUVEUR R2 = PROPRIETAIRE = R1 R2 ou = UNION (R1, R2) 4

C. Intersection (sur des relations qui ont la même description) L'intersection de 2 relations est l'ensemble des occurences qui sont présentes dans les deu relations. C est la traduction du ET logique. = R1 R2 ou = INTERSECTION (R1, R2) E : Donnez la liste des personnes qui sont à la fois buveurs et propriétaires de vin. Matricule Nom Adresse GRA72 GRAVIER 2, avenue J. MOULIN - LYON Opération : R1 = BUVEUR R2 = PROPRIETAIRE = R1 R2 ou = INTERSECTION (R1, R2) D. Différence (sur des relations qui ont la même description) La différence entre deu table est l'ensemble des occurences qui appartiennent à une table sans appartenir à la seconde. Attention, cette opération a un sens. Formalisme: R = R1 - R2 ou R = DIFFERENCE (R1, R2) attention au sens E : Donnez la liste des personnes qui sont buveurs mais non-propriétaires de vin. Matricule Nom Adresse DUP71 DUPONT 10, rue des Près - MACON VAI73 VAILLANT 1, rue d'ulm - PARIS Remarque : partant d'une relation R1, on ne garde que les lignes qui ne sont pas dans la relation R2. Opération : R1 = BUVEUR R2 = PROPRIETAIRE = R1 - R2 ou = DIFFERENCE (R1, R2) attention au sens E 2 : Donnez la liste des personnes qui sont propriétaires mais non-buveurs de vin. Matricule Nom Adresse HUB72 HUBERT 12, rue Gambetta - PARIS LOU73 LOUVET 84, avenue Martin - SENS 5

Opération: R1 = BUVEUR R2 = PROPRIETAIRE = R2 R1 ou = DIFFERENCE (R2, R1) attention au sens E. Produit cartésien Le produit cartésien de 2 tables consiste à combiner toutes les possibilités d associations d occurrences des 2 tables. Chaque ligne de R1 sera concaténée à chaque ligne de R2 R = R1 * R2 ou R = PRODUIT (R1, R2) BUVEUR Matricule Nom Adresse DUP71 DUPONT 10, rue des Près - MACON GRA72 GRAVIER 2, avenue J. MOULIN - LYON VAI73 VAILLANT 1, rue d'ulm - PARIS E : En supposant que tous les buveurs ont bu un peu de chaque vin, donnez la liste des vins et leurs buveurs (les n vin, cru, millésimé, degré des vins et les matricule, nom et adresse des buveurs). N vin Cru Millésim Degré Matricule Nom Adresse é v1 Chablis 1976 13 DUP71 DUPONT 10, rue des Près - MACON v1 Chablis 1976 13 GRA72 GRAVIER 2, avenue J. MOULIN - LYON v1 Chablis 1976 13 VAI73 VAILLANT 1, rue d'ulm - PARIS v2 Bordeau 1997 12 DUP71 DUPONT 10, rue des Près - MACON v2 Bordeau 1997 12 GRA72 GRAVIER 2, avenue J. MOULIN - LYON v2 Bordeau 1997 12 VAI73 VAILLANT 1, rue d'ulm - PARIS v3 Beaujolais 1998 12,5 DUP71 DUPONT 10, rue des Près - MACON v3 Beaujolais 1998 12,5 GRA72 GRAVIER 2, avenue J. MOULIN - LYON v3 Beaujolais 1998 12,5 VAI73 VAILLANT 1, rue d'ulm - PARIS v4 JP Chenet 1998 12 DUP71 DUPONT 10, rue des Près - MACON v4 JP Chenet 1998 12 GRA72 GRAVIER 2, avenue J. MOULIN - LYON v4 JP Chenet 1998 12 VAI73 VAILLANT 1, rue d'ulm - PARIS Remarque : On multiplie chaque ligne de la relation R1 par le nombre de lignes de la relation R2. Opération : R1 = VIN R2 = BUVEUR 6

= R1 * R2 ou = PRODUIT (R1, R2) III. Les opérateurs relationnels A. Projection La projection d'une relation consiste en la mise en place d'une nouvelle relation en ne retenant que certaines colonnes(attributs) et en supprimant les occurrences en double. R2 = PROJECTION (R1, colonne 1, colonne 2, ) R2 est la table résultat, R1 est la table utilisée par la projection E : N vin Cru Millésimé Degré v1 Chablis 1976 13 v2 Bordeau 1997 12 v3 Beaujolais 1998 12,5 v4 JP Chenet 1998 12 Donnez la liste du nom des crus. R2 Cru Chablis Bordeau Beaujolais JP Chenet Opération : R1 = VIN R2 = PROJECTION (R1, cru) B. Sélection La sélection consiste à etraire d une relation les occurrences (lignes) satisfaisant au() critère(s) de sélection. R2 = SELECTION (R1, critère(s) ) Critères de sélection : 7

- opérateurs de comparaison : <, <=, =, >, >=,? (entre un champ et une valeur) - opérateurs logiques : ET, OU (entre deu comparaison) NON (pour renverser la comparaison) Si la valeur est de type alphanumérique mettre des simples côtes pour les valeurs E :Donnez la liste des vins (n vin, cru) qui ont un degré supérieur à 12. N vin v1 v3 Cru Chablis Beaujolais Opérations R1 = VIN R2 = SELECTION (R1, R1.degré > 12) = PROJECTION (R1, n vin, cru) C. Jointure La jointure consiste à créer une nouvelle table à partir de deu tables ayant un champ commun (attribut) et vérifiant un critère de jointure. = JOINTURE R1, R2 (R1.attr._jointure op._ comparaison R2.attr_ jointure) E : Donnez les noms, adresses des buveurs qui boivent le vin v3. 1) On sélectionne les matricules qui ont bu le vin v3 R1 = SELECTION ( BOIRE, R1.n vin = v3) BOIRE MATRICULE N vin Quantité bue DUP71 v3 2 GRA72 v3 2 2) On va rechercher les adresses de ces buveurs par l'opération produit cartésien + sélection des lignes qui ont un numéro de matricule de la relation R2 identique à celui de la relation BUVEUR. Matricule de la relation R2 et BUVEUR sont appelés attributs de jointure (attributs qui relient les deu relations). R2 = JOINTURE R1, BUVEUR (R1.Matricule = BUVEUR.Matricule) 8

Matricule N vin Qté bue Matricule Nom Adresse DUP71 v3 2 DUP71 DUPONT 10, rue des Près - MACON DUP71 v3 2 GRA72 GRAVIER 2, avenue J. MOULIN - LYON DUP71 v3 2 VAI73 VAILLANT 1, rue d'ulm - PARIS GRA72 v3 2 DUP71 DUPONT 10, rue des Près - MACON GRA72 v3 2 GRA72 GRAVIER 2, avenue J. MOULIN - LYON GRA72 v3 2 VAI73 VAILLANT 1, rue d'ulm - PARIS résultat Remarque : Une jointure est un produit cartésien suivi d'une sélection. L'attribut de jointure doit correspondre à un attribut de la relation R1 et à un attribut de la relation R2 qui ont le même domaine. D. Division La division permet de trouver les occurrences d une table qui sont associées à toutes les occurrences d une autre table (qui le plus souvent est le résultat d une sélection). R = DIVISION (dividende, diviseur) ou R = dividende/ diviseur attention au sens Donner la liste des buveurs qui boivent les vins v2 et v4. 1) On sélectionne les vins v2 et v4 dans la relation VIN R1 = SELECTION (VIN, n vin = v2 ou n vin = v4) N vin Cru Millésimé Degré v2 Bordeau 1997 12 v4 JP Chenet 1998 12 2) On ne garde que la colonne n vin (pas besoin des autres) c'est le diviseur de la division. R2 = PROJECTION (R1, n vin) R2 v2 v4 N vin 3) On garde, dans la relation BOIRE, que les colonnes Matricule et n vin (ensemble des consommateurs de vin) c'est le dividende de la division. = PROJECTION (R2, Matricule, n vin) 9

MATRICULE DUP71 DUP71 GRA72 GRA72 GRA72 VAI73 VAI73 N vin v1 v3 v3 v2 v4 v4 v2 4) On ne garde que les consommateurs de vin v2 et v4 c'est le quotient de la division R4 = DIVISION (, R2) R4 MATRICULE GRA72 VAI73 IV. Les opérateurs de calcul (ou agrégats) A. Le compte Il permet de dénombrer les lignes d une relation qui ont une même valeur d attribut. La relation résultante ne contient que l attribut et le compte. R2 = COMPTE (R1, nomattribut) Donner le nombre de vins consommés par buveurs. R1 : COMPTE ( BOIRE, matricule) matricule COMPTE DUP71 2 GRA72 3 VAI73 2 B. Le cumul Remarque : Une division est le quotient d'une relation dite dividende sur une autre relation dite diviseur. Il permet de faire la somme des valeurs d un attribut A1 des lignes qui ont la même valeur d attribut A2. La relation résultante ne contient que l attribut A2 et le cumul de l attribut A1. R2 = CUMUL (R1, attributa, attributb) On fait la somme de l attribut B selon les valeurs de l attribut Donner la somme des quantités bues par buveurs. R1 : CUMUL ( BOIRE, matricule, quantité bue) matricule CUMUL 10

DUP71 3 GRA72 5 VAI73 5 Remarque : Certains auteurs accepent d autres opérateurs de calcul tels que maimum. V. Conclusion L algèbre relationnelle est un langage de requêtes d interrogation des données. C est un langage théorique comme l algorithmique : il ne peut pas être compris directement par les SGBDR. Il faut le traduire dans un langage supporté par le SGBD tel que SQL (le langage standard pour tous les SGBDR) ou QBE sur Access. On peut donc dire en quelque sorte que l algèbre relationnelle est au SQL (partie interrogation), ce que l algorithmique est à la programmation. Limites de l'algèbre relationnelle (en dehors du fait qu il est théorique): il n'est pas possible de faire des tris sur les relations et il n eiste que peu d opérateurs de calcul. 11