I4 : Bases de Données



Documents pareils
UML et les Bases de Données

Langage SQL : créer et interroger une base

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

Bases de données relationnelles

A QUOI SERVENT LES BASES DE DONNÉES?

1. Base de données SQLite

Création et Gestion des tables

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

CREATION WEB DYNAMIQUE

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

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

OpenPaaS Le réseau social d'entreprise

Application web de gestion de comptes en banques

Objectifs du TP : Initiation à Access

TP3 : Creation de tables 1 seance

Olivier Mondet

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

A QUOI SERVENT LES BASES DE DONNÉES?

Les bases de données

NF26 Data warehouse et Outils Décisionnels Printemps 2010

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

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

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

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

TP Contraintes - Triggers

1 Position du problème

Rappel sur les bases de données

Le Langage De Description De Données(LDD)

I. MySQL : Serveur et SGBD

Bases de données élémentaires Maude Manouvrier

Optimisations des SGBDR. Étude de cas : MySQL

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

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

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

Bases de données relationnelles & SQL

Le Langage SQL version Oracle

Bases de Données Avancées

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

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

BASES DE DONNEES TP POSTGRESQL

1 Introduction et installation

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

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

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

Bases de Données. Plan

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

Le langage SQL Rappels

Compétences Business Objects

Structure fonctionnelle d un SGBD

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

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

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

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

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Pratique et administration des systèmes

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

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

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

Les BASES de DONNEES dans WampServer

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

1/ Présentation de SQL Server :

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Stockage du fichier dans une table mysql:

Gestion de base de données

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

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

Meta Object Facility. Plan

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

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

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

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

Vincent Augusto

Hala Skaf-Molli. Nancy-Université 14 mai 2007

Installation d'un serveur FTP géré par une base de données MySQL

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

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

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Auto-évaluation Oracle: cours de base

Insérer des images dans Base

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

Systèmes de Gestion de Bases de Données

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

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Comprendre les bases de données

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

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

AGRÉGATION «ÉCONOMIE ET GESTION»

Support de cours. Introduction à SQL et MySQL. 2003, Sébastien Namèche

Introduction au Génie Logiciel

Modèle Entité/Association

Information utiles. webpage : Google+ : digiusto/

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

Séance 1 Introduction aux bases de données

Dossier I Découverte de Base d Open Office

Transcription:

I4 : Bases de Données Passage de UML au modèle relationnel Georges LOUIS Département Réseaux et Télécommunications Université de La Rochelle Module I4 2008-2009 1 G.Louis

Sommaire 1 Des classes aux tables 2 Les clés 3 Représentation des liens 4 Les différents types d association, et leur traduction 5 Peupler les tables 2 G.Louis

Des classes aux tables Sommaire 1 Des classes aux tables 2 Les clés 3 Représentation des liens 4 Les différents types d association, et leur traduction 5 Peupler les tables 3 G.Louis

Des classes aux tables Rappel : le modèle relationnel Structurer les données comme des «relations» (au sens des maths). En pratique : ranger les données dans des tables Exemple : table clients : numérocli nom solde ========== =========== ====== 1243 Romuald 2,5 4576 Denis 4 8901 Pascal 2,5 9902 Emmanuel 4 4 G.Louis

Des classes aux tables Rappel : les tables Les en-têtes de colonnes sont les nom des «attributs» Une ligne est un «tuple» ou «n-uplet» Les attributs possèdent un type, qui sera celui de chacune des données enregistrées dans la colonne correspondante. Les cases de la table ne contiennent que des données simples nombres, chaînes, dates,... Mais pas de tableaux, de structures... Toute la structuration des données passera par les tables 5 G.Louis

Des classes aux tables Rappel : les bases de données Une «base de données» est un ensemble de tables Le «schéma relationnel» d une base de donnée comprend les noms des tables, les noms des attributs, avec leurs types respectifs, des contraintes qui imposent des règles pour le contenu des tables. (On ne peut pas enregistrer n importe quel n-uplet dans une table). 6 G.Louis

Des classes aux tables Des instances aux n-uplets Le principe : une classe C une table T C chaque instance de la classe C une ligne de la table T C 7 G.Louis

Des classes aux tables Exemple Livre titre: string editeur : string publication : date livres titre editeur publication A Little Smalltalk Addison-Wesley 1987 On To Smalltalk Addison-Wesley 1998 8 G.Louis

Des classes aux tables Problème Si je possède deux fois le même livre, cela donnera deux instances de la classes qui ont des attributs identiques Le même titre, le même éditeur, la même date de publication Pas de problème dans le modèle à objets Dans la table : deux fois la même ligne CE QUI N EST PAS PERMIS Les tables sont des ensembles de n-uplets Un ensemble ne peut pas contenir deux éléments identiques l un à l autre 9 G.Louis

Des classes aux tables Solution Dans le modèle à objets, chaque instance a une IDENTITÉ indépendante de la valeur des attributs (Chaque objet a implicitement un identifiant (OID Object identifier)) Dans le modèle relationnel, l identité est donnée par la valeur des attributs (L identification par les valeurs) Il faut être sûr que les instances auront dans la table des valeurs différentes pour au moins un attribut Au besoin, on introduit un attribut supplémentaire, qui sera différent pour chaque instance 10 G.Louis

Les clés Sommaire 1 Des classes aux tables 2 Les clés 3 Représentation des liens 4 Les différents types d association, et leur traduction 5 Peupler les tables 11 G.Louis

Les clés Les tables et leurs clés Dans une table, on peut définir des clés Les clés sont des ensembles d attributs Si les attributs (a 1, a 2, a 3 ) pris ensemble forment une clé, alors il n y a pas deux lignes de la table, disons L 1 et L 2 où L 1.a 1 = L 2.a 1 et L 1.a 2 = L 2.a 2 et L 1.a 3 = L 2.a 3 Toutes les lignes ont des valeurs 2 à 2 différentes pour les colonnes (a 1, a 2, a 3 ) L ensemble des attributs d une table forment toujours une clé, puisqu aucune table ne peut contenir deux lignes identiques 12 G.Louis

Les clés Les clés primaires Parmi les clés possibles, on en choisit une comme clé primaire Comme on va le voir, il est très important de choisir une clé primaire qui soit : courte (pas trop de bits pour la représenter) absolument invariable dans le temps 13 G.Louis

Les clés Clés artificelles Il est très rare qu une donnée soit une bonne clé. Les gens changent de nom Les entreprises fusionnent, et les clients changent de numéro etc... (Peut-être le numéro de chassis d une voiture, mais ce n est pas très compact) Je recommande donc d introduire une clé artificielle de type entier (dans les tables qui correspondent à des classes) Ces clés artificielles jouent le rôle d OID. Ces clés doivent absolument être cachées aux utilisateurs. 14 G.Louis

Les clés Enfin du SQL CREATE TABLE livres ( id INTEGER PRIMARY KEY, titre VARCHAR(50), editeur VARCHAR(50), publication DATE ) 15 G.Louis

Représentation des liens Sommaire 1 Des classes aux tables 2 Les clés 3 Représentation des liens 4 Les différents types d association, et leur traduction 5 Peupler les tables 16 G.Louis

Représentation des liens Exemple Livre titre: string publication : date 0..* 1..1 Editeur nom: string L éditeur peut publier plusieurs livres : on ne peut pas représenter l ensemble des liens par un attribut de la table des éditeurs. En revanche, les livres ont un et un seul éditeur : on va représenter le lien par un attribut. Une «référence» des livres vers les éditeurs. 17 G.Louis

Représentation des liens Les tables livres id titre editeur publication 1 A Little Smalltalk 1 1987 2 On To Smalltalk 1 1998 3 Guide To Better Smalltalk 2 1999 éditeurs id nom 1 Addison-Wesley 2 Cambridge University Press L attribut «editeur» de la table «livres» fait référence à la clé primaire «id» de la table «éditeurs» 18 G.Louis

Représentation des liens SQL CREATE TABLE editeurs ( id INTEGER PRIMARY KEY, nom VARCHAR(50) ) CREATE TABLE livres ( id INTEGER PRIMARY KEY, titre VARCHAR(50), editeur INTEGER REFERENCES editeurs, publication DATE ) L attribut «editeur» est une référence à la clé prmaire de la table «editeurs» 19 G.Louis

Représentation des liens Les clés étrangères On dit que l attribut «editeur» est une clé étrangère (foreign key) dans la table «livres» Une clé étrangère est une référence à la clé primaire d une autre table («editeurs») Les valeurs dans la colonne «editeur» DOIVENT être des clés QUI EXISTENT dans la table «editeurs» 20 G.Louis

Représentation des liens Les clés étrangères sont des contraintes Le SGBD refuserait ceci (en vous empêchant de créer un tel n-uplet dans la table «livres») livres id titre editeur publication 1 A Little Smalltalk 1 1987 2 Guide To Better Smalltalk 3 1999 éditeurs id nom 1 Addison-Wesley 2 Cambridge University Press 21 G.Louis

Les différents types d association, et leur traduction Sommaire 1 Des classes aux tables 2 Les clés 3 Représentation des liens 4 Les différents types d association, et leur traduction 5 Peupler les tables 22 G.Louis

Les différents types d association, et leur traduction Les 10 cas d associations binaires G m..m n..n D m M n N Commentaire =1 =1 =1 =1 G D, au choix =0 =1 =1 =1 G D, au choix =0 >1 =1 =1 G D >0 >1 =1 =1 G D =0 =1 =0 =1 G D, au choix =0 >1 =0 =1 G D >0 >1 =0 =1 G D =0 >1 =0 >1 Une table pour l association >0 >1 =0 >1 Une table pour l association >0 >1 >0 >1 Une table pour l association 23 G.Louis

Les différents types d association, et leur traduction Les règles qui s appliquent aux multiplicités maximum G m..m n..n D Si M = 1, on peut mettre une clé étrangère dans la table pour D Si N = 1, on peut mettre une clé étrangère dans la table pour G Si M > 1 et N > 1 il faut créer une table pour l association. Cette table possède 2 colonnes : une clé étrangère qui référence G et une autre clé étrangère qui référence D. Pas besoin de clé primaire pour cette table, le SGBD rendra les 2 colonnes ensemble pour former la clé. 24 G.Louis

Les différents types d association, et leur traduction Exemple Etudiant... étudiants 1..1 1..1 Stage... id... stage_id (clé étrangère) 1... 2 2... 1 CREATE TABLE étudiants ( id INTEGER PRIMARY KEY,..., stage_id INTEGER REFERENCES stages ) stages id... 1... 2... CREATE TABLE stages ( id INTEGER PRIMARY KEY,..., ) Créer la table «stages» AVANT la table «étudiants» 25 G.Louis

Les différents types d association, et leur traduction Exemple Livre... 1..* 1..* Auteur... On ne peut plus implémenter les liens par une clé étrangère dans une des deux tables associées. (On ne peut pas mettre un enemble de clés comme attribut) On crée une table pour représenter l association (Une table de jointure) 26 G.Louis

Les différents types d association, et leur traduction Exemple les tables CREATE TABLE livres ( id INTEGER PRIMARY KEY,... ) ; CREATE TABLE auteurs ( id INTEGER PRIMARY KEY,... ) ; CREATE TABLE auteurs_livres ( livre_id INTEGER REFERENCES livres, auteur_id INTEGER REFERENCES auteurs ) Pas besoin de clé primaire : le SGBD en formera une avec les 2 attributs. 27 G.Louis

Les différents types d association, et leur traduction Absence de lien et valeur nulle Etudiant... 0..1 0..1 Stage... Pendant la recherche de stage, il y a des étudiants qui n ont pas encore de stage, et des stages pour lesquels il n y a pas encore d étudiants. Pour indiquer l absence de lien, on utilise la «valeur nulle» étudiants id... stage_id (clé étrangère) 1... NULL 2... 1 stages id... 1... 2... 28 G.Louis

Les différents types d association, et leur traduction Règle pour la multiplicité minimale et contrainte NOT NULL Si on met une clé étrangère dans une table, et si la multiplicité minimale correspondante est 1, alors il faut mettre une contrainte «NOT NULL» sur la clé étrangère. Pour indiquer qu il y a toujours un lien. CREATE TABLE étudiants ( id INTEGER PRIMARY KEY,..., stage_id INTEGER NOT NULL REFERENCES stages ) Etudiant... 1..1 1..1 Stage... 29 G.Louis

Peupler les tables Sommaire 1 Des classes aux tables 2 Les clés 3 Représentation des liens 4 Les différents types d association, et leur traduction 5 Peupler les tables 30 G.Louis

Peupler les tables INSERT INTO CREATE TABLE editeurs ( id INTEGER PRIMARY KEY, nom VARCHAR(50) ) ; INSERT INTO editeurs (id, nom) VALUES (1, Addison-Wesley ) ; CREATE TABLE livres ( id INTEGER PRIMARY KEY, titre VARCHAR(50), editeur INTEGER NOT NULL REFERENCES editeur_id ) ; INSERT INTO livres (id, titre, editeur_id) VALUES (1, A Little Smalltalk, 1), (2, On To Smalltalk, 1) ; 31 G.Louis

Peupler les tables Commentaires Il faut gérer les «id» et les clés étrangères «à la main» Mais je vous montrerai plus tard comment le faire «automagiquement». Pour afficher tout le contenu d une table : SELECT * FROM livres ; 32 G.Louis