Sommaire. I4 : Bases de Données. Rappel : les tables. Rappel : le modèle relationnel. Des classes aux tables. Passage de UML au modèle relationnel



Documents pareils
I4 : Bases de Données

UML et les Bases de Données

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

Langage SQL : créer et interroger une base

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

CREATION WEB DYNAMIQUE

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

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

OpenPaaS Le réseau social d'entreprise

Objectifs du TP : Initiation à Access

TP3 : Creation de tables 1 seance

Olivier Mondet

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

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Application web de gestion de comptes en banques

Les bases de données

A QUOI SERVENT 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

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

TP Contraintes - Triggers

1 Position du problème

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

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

Rappel sur les bases de données

Le Langage De Description De Données(LDD)

Bases de données élémentaires Maude Manouvrier

I. MySQL : Serveur et SGBD

Optimisations des SGBDR. Étude de cas : MySQL

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

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

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

Le Langage SQL version Oracle

Bases de Données Avancées

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

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

1 Introduction et installation

BASES DE DONNEES TP POSTGRESQL

Bases de Données. Plan

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

Le langage SQL Rappels

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

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

Bases de données relationnelles & SQL

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

Structure fonctionnelle d un SGBD

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

Compétences Business Objects

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

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

Pratique et administration des systèmes

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

Les BASES de DONNEES dans WampServer

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

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

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

1/ Présentation de SQL Server :

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

Stockage du fichier dans une table mysql:

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

Gestion de base de données

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

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

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

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

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

Vincent Augusto

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

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

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

Systèmes de Gestion de Bases de Données

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

Auto-évaluation Oracle: cours de base

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)

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Comprendre les bases de données

AGRÉGATION «ÉCONOMIE ET GESTION»

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

Meta Object Facility. Plan

Introduction au Génie Logiciel

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

Information utiles. webpage : Google+ : digiusto/

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

Dossier I Découverte de Base d Open Office

Séance 1 Introduction aux bases de données

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

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

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Transcription:

Sommaire 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 Peupler les tables 1 G.Louis 2 G.Louis Rappel : le modèle relationnel Rappel : les tables Structurer les données comme des «relations» (au sens des maths. En pratique : ranger les données dans des tables : table clients : numérocli nom solde ========== =========== ====== 1243 Romuald 2,5 4576 Denis 4 8901 Pascal 2,5 9902 Emmanuel 4 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 3 G.Louis 4 G.Louis

Rappel : les bases de données Des instances aux n-uplets 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. Le principe : une classe C une table TC chaque instance de la classe C une ligne de la table T C 5 G.Louis 6 G.Louis Livre titre: string editeur : string publication : date livres titre editeur publication A Little Smalltalk Addison-Wesley 1987 On To Smalltalk Addison-Wesley 1998 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 7 G.Louis 8 G.Louis

Solution Les tables et leurs clés 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 Dans une table, on peut définir des 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 9 G.Louis 10 G.Louis primaires Clés artificelles 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 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. 11 G.Louis 12 G.Louis

Enfin du SQL CREATE TABLE livres ( titre VARCHAR(50, editeur VARCHAR(50, publication DATE 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. 13 G.Louis 14 G.Louis 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» 15 G.Louis SQL CREATE TABLE editeurs ( nom VARCHAR(50 CREATE TABLE livres ( titre VARCHAR(50, editeur INTEGER REFERENCES editeurs, publication DATE L attribut «editeur» est une référence à la clé prmaire de la table «editeurs» 16 G.Louis

étrangères étrangères sont des contraintes 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» 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 17 G.Louis 18 G.Louis 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 19 G.Louis 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é. 20 G.Louis

Etudiant étudiants 1..1 1..1 Stage id stage_id (clé étrangère 1 2 2 1 CREATE TABLE étudiants (, stage_id INTEGER REFERENCES stages stages id 1 2 CREATE TABLE stages ( id INTEGER PRIMARY KEY,, 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 Créer la table «stages» AVANT la table «étudiants» 21 G.Louis 22 G.Louis les tables CREATE TABLE livres ( ; CREATE TABLE auteurs ( ; 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. 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 23 G.Louis 24 G.Louis

Peupler les tables 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 (, stage_id INTEGER NOT NULL REFERENCES stages Etudiant 1..1 1..1 Stage INSERT INTO CREATE TABLE editeurs ( id INTEGER PRIMARY KEY, nom VARCHAR(50 ; INSERT INTO editeurs (id, nom VALUES (1, Addison-Wesley ; CREATE TABLE livres ( 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 ; 25 G.Louis 26 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 ; 27 G.Louis