Introduction. 1. Notions de base:

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

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

Les bases de données

Bases de Données. Plan

1 Introduction et installation

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

COURS de BASES de DONNEES

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 relationnelles

Le Langage SQL version Oracle

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

16H Cours / 18H TD / 20H TP

Le langage SQL Rappels

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

Bases de données avancées Introduction

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

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

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

Rappel sur les bases de données

Langage SQL : créer et interroger une base

Bases de données cours 1

Information utiles. webpage : Google+ : digiusto/

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

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

Introduction aux Bases de Données

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

Bases de données élémentaires Maude Manouvrier

Vincent Augusto

Dossier I Découverte de Base d Open Office

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

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

Cours de bases de données. Philippe Rigaux

Bases de Données Avancées

Introduction aux Bases de Données

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

Bases de données Outils de gestion

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

Base de Données et Langage SQL

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

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

Bases de données relationnelles : Introduction

Bases de données - Modèle relationnel

A. Définition et formalisme

Conception d une base 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

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

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

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

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

CESI Bases de données

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

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

TP Bases de données réparties

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

Bases de données relationnelles & SQL

Master I Génie Logiciel

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

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

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

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

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

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

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

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

Module BDR Master d Informatique (SAR)

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

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

Cours Bases de données

Méthode d analyse Merise

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

INTRODUCTION AU DATA MINING

chapitre 4 Nombres de Catalan

Le Langage De Description De Données(LDD)

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

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

SAP BusinessObjects Web Intelligence (WebI) BI 4

TP Contraintes - Triggers

UML et les Bases de Données

Raja Bases de données distribuées A Lire - Tutoriel

I4 : Bases de Données

MODE OPERATOIRE OPENOFFICE BASE

CREATION WEB DYNAMIQUE

Les bases de données Page 1 / 8

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

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

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

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

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

Techniques d optimisation des requêtes dans les data warehouses

A QUOI SERVENT LES BASES DE DONNÉES?

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

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

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

LE MODELE CONCEPTUEL DE DONNEES

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

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Transcription:

Le modèle Relationnel et l Algèbre relationnelle Introduction Le modèle relationnel est un modèle logique proposé par Codd à IBM-St-José en 1970, et associé aux SGBD relationnels (ex: Oracle, Access, Paradox, dbase, SQLServer). Une BD relationnelle est une BD dont le schéma est un ensemble de schémas de relations et dont les occurrences sont des tuples ou n-uplets de ces relations. Autrement dit, les entités et les associations du modèle E-A sont représentées exclusivement par des relations (des tables). Ce modèle propose une démarche pour la description (LDD), et l'interrogation (LMD) des données par laquelle les objets sont manipulés par des opérateurs algébriques relationnels (UNION, INTERSECTION, PRODUIT CARTESIEN, SELECTION, PROJECTION, JOINTURE,...). 1. Notions de base: - Un schéma relationnel est un ensemble de schémas de relations dont les occurrences sont des n- uplets de ces relations (ou tuples). - Une Relation est un ensemble d'attributs {A1,A2,,An}. Par exemple: la relation PRODUIT est l'ensemble des attributs {NumProd, Dési, PrixUni} - Chaque attribut Ai prend ses valeurs dans un domaine D(Ai).Par exemple: D(PrixUni) = ]0, 10000] - Un n-uplet est un ensemble de valeurs t=<v1,v2,,vn> où Vi dom(ai) ou bien Vi est la valeur nulle (NULL). Par exemple : < Dupont, Paris, 2140> est un tuple de la table ou la relation R. < Feren, null, 3296> peut être aussi un tuple de la relation. - Le schéma de la relation R est la liste des attributs de R avec, pour chacun, son domaine, parfois sous-entendu. Par exemple : Le schéma de r est R = (NOM : D1, ADR : D2, NUM : D3) peut être écris écrit en abrégé R = (NOM, ADR, NUM). - Représentation d une relation : Chaque tuple (n-uplet) d une relation est écrit dans une ligne d un tableau dont les noms des colonnes sont les attributs de la relation. Chaque tuple est unique. Les duplications ne sont pas autorisées et l ordre des tuples est indifférent. Figure. II.1. Représentation graphique d une relation. - Une Clé primaire et un ensemble d'attributs dont les valeurs permettent de distinguer les nuplets les uns des autres (identifiant) tandis qu une Clé étrangère est un attribut qui est une clé primaire 1

d'une autre relation. Notons ici que clés primaires sont généralement soulignées et les clés étrangères en italiques. Par exemple : NumProd est une clé primaire de la relation PRODUIT et l'attribut NumFour est une clé étrangère à la relation PRODUIT (NumProd,Dési,PrixUni,NumFour). 2. Passage modèle Entité-Association / modèle Relationnel: La modélisation E-A des données étant effectuée, il faut implanter la structure obtenue en machine, par exemple sous forme d'un SGBD relationnel. Nous allons donc transformer cette structure sous une forme relationnelle. On dit aussi que l'on transforme le diagramme E-A en schéma relationnel. Figure. II.2. exemple d un modèle Entité-Association. Etape 1 : Toute classe d entités du diagramme Entité/Association est représentée par une relation dans le schéma relationnel équivalent. La clé primaire de cette relation est l identifiant de la classe d entités correspondante. Dans la figure II.2. nous pouvons avoir 4 relations équivalentes aux 4 classes d entités : Acteur (NumActeur, Nom, Prénom) Film (NumFilm, Titre, Metteur_En_Scène) Cinema (NumCinéma, Nom, Adresse) Réalisateur (NumRealisateur, Nomréa, Prénomréa) Etape 2 Toute association est transformée en relation. La clé de cette relation est composée de tous les identifiants des entités participantes. 2

Dans la figure II.2. nous pouvons avoir 3 autres relations équivalentes aux 3 associations : Joue (NumACteur, NumFilm, Rôle) Affiche (NumFilm, NumCinema,Date) Réalise (NumFilm,NumRéalisateur) Etape 3 (Optimisation) Toute association reliée à une classe d entités avec une cardinalité de type 0,1 ou 1,1 peut être fusionnée avec la classe d entités. Dans ce cas on déplace les attributs de l association vers ceux de la relation traduisant la classe d entités. Pour l exemple de la figure II.2. et après l optimisation des 7 relations trouvées précédemment, on retrouve le schéma relationnel optimal suivant : Acteur (NumActeur, Nom, Prénom) Film (NumFilm, Titre, MetteurEnScène,NumReal) Cinema (NumCinéma, Nom, Adresse) Réalisateur(NumRealisateur,Nom, Prénom) Joue (NumACteur, NumFilm, Rôle) Affiche (NumFilm, NumCinema,Date) 3. Algèbre relationnelle : La notion de relation a engendré le développement de langages d interrogation assertionnels qui permettent de définir les données que l on souhaite visualiser sans dire comment y accéder. Un langage de manipulation des données (LMD) se compose d un ensemble de commandes permettant l interrogation de la base et d un ensemble de commandes permettant de modifier celle-ci (insertion, mise à jour, suppression). Les langages algébriques, où l expression d un besoin d utilisateur se fait à l aide d opérations dont les opérandes sont des relations. Ces langages consistent en une séquence d'opérateurs sur les relations qu on en peut aussi donner une représentation graphique sous forme d'arbre. Par exemple, l interrogation des données utilisée ans le langage SQL (Structured English QUEry Language) est basé sur l algèbre relationnelle (développée par CODD). L algèbre relationnelle est un ensemble d opérations (unaires et binaires) ayant pour opérandes (entrées) des relations et pour résultat une autre relation. On trouve 5 opérateurs de base et 3 opérateurs supplémentaires. 3

3.1. Opérateurs de base 3.1.1. Union L'union de deux relations R1 et R2 de même schéma est une relation R3 de schéma identique qui a pour n-uplets les n-uplets de R1 et/ou R2. Et on notera (R1 U R2) ou bien Union (R1, R2). Exemple : R et S sont les relations Matière de deux départements qui fusionnent et veulent unifier leur formation. Le résultat est une relation T. Matière (Intitulé, année, semestre, coef, credit) Figure. II.3. L union de deux relations. 3.1.2. Intersection L intersection entre deux relations R1 et R2 de même schéma est une relation R3 de schéma identique ayant pour n-uplets les n-uplets communs à R1 et R2. On notera (R1 R2) ou Intersect (R1, R2). Exemple : l intersection des deux relations Matière : R et S est une relation T contenant les matières communes des deux départements. 4

Figure. II.4. L intersection de deux relations. 3.1.3. Différence La différence entre deux relations R1 et R2 de même schéma est une relation R3 de schéma identique ayant pour n-uplets les n-uplets de R1 n'appartenant pas à R2. On notera (R1 R2). Remarque : Contrairement aux deux opérations précédentes, cette opération n est pas commutative. Exemple : la différence entre R et S est une relation T contenant les matières enseignées seulement dans le premier département. Figure. II.5. La différence de deux relations. 5

3.1.4. Projection (opérateur unaire) La projection d'une relation R est la relation T obtenue en supprimant les attributs de R1 non mentionnés puis en éliminant éventuellement les nuplets identiques. En d autre terme, elle correspond à un découpage vertical (élimination de colonnes) et on notera : T =,,..., la projection d'une relation R sur les attributs Ai, Aj,, Am. Exemple : La relation T répond à la question : donnez les triplets (matière, coefficient, crédit) des matières enseignées dans le premier département. Figure. II.6. La projection de d une relation. 3.1.5. Restriction (opérateur unaire) La restriction d'une relation R est une relation T de même schéma n'ayant que les n-uplets de R1 répondant à la condition énoncée. En d autre terme, elle correspond à un découpage horizontal (élimination de tuples) et on notera : T = R suivant le critère Q, où Q peut être : (Condition) la restriction d'une relation R - une comparaison simple entre 2 attributs ou entre un attribut et une valeur en utilisant les opérateurs relationnels : =,, <, >,,. - Une combinaison logique de plusieurs conditions simples, en utilisant les opérateurs logique : Et, ou, Non, etc. Exemple : Les relations T et T répondent respectivement aux questions suivantes : 1. donnez toutes les matières enseignées ayant un coefficient strictement supérieur à 1. 2. donnez toutes les matières enseignées en deuxième semestre et qui ont un coefficient strictement supérieur à 1. 6

Figure. II.7. deux restrictions d une relation. 3.2. Opérateurs supplémentaires ou additionnels 3.2.1. Jointure La jointure de deux relations R1 et R2 est une relation T dont les n-uplets sont obtenus en concaténant les n-uplets de R1 avec ceux de R2 et en ne gardant que ceux qui vérifient la condition de liaison (permet de composer 2 relations à l'aide d'un critère de liaison). On notera : T = R1 R2. (condition) Le schéma de la relation T résultat de la jointure est la concaténation des schémas des opérandes (s'il y a des attributs de même nom, il faut les renommer). Les n-uplets de T sont tous les couples (u1,u2) d'un n-uplet de R1 avec un n-uplet de R2 qui satisfont "condition". Exemple : considérons deux relations : Matière (Intitulé, année, semestre, coef, credit) Résultat (Num_Etudiant, Nom_Etudiant, Année_Etude, Nom_Matière, note) La relation T résultat de la jointure de Matière et Résultat sur la condition (Nom_Matière = Intitulé) et (Année_Etude = Année), donne un relevé de note annuel des étudiants. 7

Figure. II.8. La jointure de deux relations. Cas particuliers : L Equi-Jointure de r et s sur les attributs Ai et Bj : c est la jointure selon la condition (Ai=Bj). Par exemple, la jointure de la figure ci-dessus est une equi-jointure. L Auto-Jointure de r et selon l attribut Ai : c est la jointure de r avec elle-même selon la condition (Ai = Ai). Étant donné que la relation r représente les deux opérandes de l opération, alors on doit les renommer. Par exemple, la relation T = Matière As M1 Matière As M2 est le résultat d une auto- jointure de la relation matière. Elle donne les couples des matières ayant le même coefficient dans le même semestre. La Jointure Naturelle de r et s de schéma R et S est l équi-jointure de r et s sur tous les attributs de même nom dans R et S, suivie de la projection qui élimine les doublures de colonnes. Elle est notée (r s). 3.2.2. Division Soit deux relations R1 (A1, A2,, An, B1, B2,, Bm) et R2 (B1, B2,, Bm). Si le schéma de R2 est un sous-schéma de R1, la division de R1 par R2 est une relation T dont : - le schéma est le sous-schéma complémentaire de R2 par rapport à R1. - un n-uplet (a1, a2,, an) appartient à T si (a1, a2,, an, b1, b2,, bm) appartient à R1 pour tous (b1, b2,, bm) R2. On notera : T = R1 R2. (M1.Coef=M2.Coef) et (M1.Semestre=M2). 8

Exemple : considérons la relation T résultat de la jointure de la Figure II.8. Et la relation Etudiant (Num_Etudiant, Nom_Etudiant). La relation T résultat de la division de T par Etudiant donne les matières examinées par tous les étudiants. Figure. II.9. La division de deux relations. 3.3. Composition d opérateurs Avec les opérateurs, il est possible de composer la plupart des requêtes que l on peut faire sur une base de données relationnelle. Les requêtes s expriment à l aide d une combinaison d opérations : Union, Différence, Jointure, Restriction et Projection, etc. la représentation graphique d une requête est nommée : Arbre algébrique dont les feuilles représentent les opérandes. Pae exemple, pour connaitre les noms des étudiants qui ont examiné dans une matière dont le crédit dépasse 1, on doit succéder deux opérations algébriques : la jointure et la projection. Et ça donnera : T = _!"#$ Matière Résultat (Nom_Matière=Intitulé) et (Coef>1) Figure. II.10. l arbre algébrique d une requête. 9

Exemple : considérons le schéma relationnel suivant PRODUIT (IdPro, Nom, Marque, Prix) CLIENT (IdCli, Nom, Ville) VENTE (IdCli, IdPro, Date, Qte) Quels sont les références et les prix des produits? Quelles sont les marques des produits? Quelles sont les produits de marque IBM? Donnez pour chaque vente la référence du produit, sa désignation, son prix, le numéro de client, la date et la quantité vendue. Quels sont les noms des clients qui habitent la même ville que John? Donner les numéros des produits de marque Apple et de prix <5000 F. Donner les numéros des clients ayant acheté un produit de marque Apple. Donner les numéros des clients n'ayant acheté que des produits de marque Apple. Donner les numéros des clients ayant acheté tous les produits de marque Apple. Quels sont les clients de Nice ayant acheté un produit de marque 'Apple'? 10