Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Bases de donneacutees
relationnelles
Teacuteleacutecharger Gratuitement drsquoautres documentations sur votre site internet agrave lrsquoadresse httpwwwsambaconsultantscom
Publieacutee le 16 novembre 2016
wwwsambaconsultantscom 2
Table des matiegraveres
I - Introduction geacuteneacuterale aux bases de donneacutees 4
A Cours 4
1 Notions fondamentales donneacutee base de donneacutees systegraveme de gestion de bases de donneacutees 5
2 Approche geacuteneacuterale pour la conception des bases de donneacutees 10
B Exercices 19
1 Deacutecouverte dune base de donneacutees relationnelle 19
2 Lab 0 25
II - Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML 27
A Cours 27
1 Notion de modegravele 28
2 Introduction au diagramme de classes UML classes et associations 30
B Exercices 39
1 Exercice Lire lUML 39
2 Gestion dune coopeacuterative viticole 41
3 Cours et intervenants 42
4 Gestion du personnel 43
III - La modeacutelisation logique relationnelle 44
A Cours 44
1 Introduction au modegravele relationnel 44
2 Les concepts fondamentaux du modegravele relationnel attributs enregistrement domaine 46
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel 48
4 Synthegravese 55
5 Deacutefinition formelle dune relation 56
B Exercices 57
1 Lab I- 57
IV - Introduction au passage UML-Relationnel classes et 59
associations 59
A Cours 59
1 Transformation des classes et attributs 59
2 Transformation des associations 62
B Exercices 65
1 Lab I+ 65
2 Usine de production 66
V - Creacuteation et alimentation de bases de donneacutees SQL 67
A Cours 67
1 Le langage SQL 67
2 Creacuteer des tables en SQL (Langage de Deacutefinition de Donneacutees) 69
3 Inseacuterer modifier et supprimer des donneacutees en SQL (Langage de Manipulation de Donneacutees) 76
4 Supprimer et modifier des tables en SQL (Langage de Deacutefinition de Donneacutees) 78
B Exercices 80
1 The show 80
2 Du producteur au consommateur 81
VI - Algegravebre relationnelle 82
Introduction geacuteneacuterale aux bases de donneacutees
3
wwwsambaconsultantscom
A Cours 82
1 Opeacuterateurs fondamentaux projection restriction et jointure 82
2 Opeacuterateurs compleacutementaires 88
B Exercices 94
1 Faire du Cineacutema 94
2 Quiz Algegravebre relationnelle 95
3 Le retour des eacutecoliers 98
Questions de synthegravese 101
Glossaire 107
Signification des abreacuteviations 108
Reacutefeacuterences 108
Bibliographie 109
Webographie 109
Index 110
Contenus annexes 111
wwwsambaconsultantscom 4
I - Introduction geacuteneacuterale
aux bases de donneacutees
A Cours
Les BD sont neacutees agrave la fin des anneacutees 1960 pour combler les lacunes des systegravemes de fichiers et faciliter la
gestion qualitative et quantitative des donneacutees informatiques Les SGBD sont des applications informatiques
permettant de creacuteer et de geacuterer des BD (comme Oracle ou PostgreSQL par exemple)
Les BD relationnelles issues de la recherche de Codd sont celles qui ont connu le plus grand essor depuis les
anneacutees et qui reste encore aujourdhui les plus utiliseacutees On utilise des SGBDR pour les impleacutementer Le
langage SQL est le langage commun agrave tous les SGBDR ce qui permet de concevoir des BD relativement
indeacutependamment des systegravemes utiliseacutes
Les usages de BD se sont aujourdhui geacuteneacuteraliseacutes pour entrer dans tous les secteurs de lentreprise depuis
les petites bases utiliseacutees par quelques personnes dans un service pour des besoins de gestion de donneacutees
locales jusquaux bases qui gegraverent de faccedilon centraliseacutee des donneacutees partageacutees par tous les acteurs de
lentreprise
Laccroissement de lutilisation du numeacuterique comme outil de manipulation de toutes donneacutees (bureautique
informatique applicative etc) et comme outil dextension des moyens de communication (reacuteseaux) ainsi que
les eacutevolutions technologiques (puissance des PC Internet etc) ont rendu indispensable mais aussi
complexifieacute la probleacutematique des BD
Les conseacutequences de cette geacuteneacuteralisation et de cette diversification des usages se retrouvent dans leacutemergence
de solutions conceptuelles et technologiques nouvelles les bases de donneacutees du mouvement NoSQL
particuliegraverement utiliseacutees par les grands acteurs du web
I
Introduction geacuteneacuterale aux bases de donneacutees
5
wwwsambaconsultantscom
1 Notions fondamentales donneacutee base de donneacutees
systegraveme de gestion de bases de donneacutees
a) Base de donneacutees
Logiciel et donneacutees
Un logiciel informatique est composeacute de programmes cest agrave dire dinstructions donneacutees agrave lordinateur et de
donneacutees auxquelles sappliquent ces instructions
Par exemple un logiciel de traitement de texte est composeacute de fonctions - ouvrir copier coller inseacuterer une
image changer la police enregistrer - et de fichiers sur lesquels elles sappliquent Dans ce cas les fichiers
de traitement de texte sont les donneacutees
Deacutefinition Deacutefinition lacircche de base de donneacutees un ensemble de donneacutees
On appelle parfois base de donneacutees tout ensemble de donneacutees stockeacute numeacuteriquement et pouvant servir agrave un
ou plusieurs programme De ce point de vue des fichiers sur un disque dur un fichier de tableur voire un
fichier de traitement de texte peuvent constituer des bases de donneacutees
Deacutefinition Deacutefinition restreinte de base de donneacutees un ensemble de donneacutees
structureacute
On appellera base de donneacutees un ensemble de donneacutees numeacuteriques qui possegravede une structure cest agrave dire
dont lorganisation reacutepond agrave une logique systeacutematique
On parlera de modegravele logique de donneacutees pour deacutecrire cette structure
Exemtple Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tableaux (appeleacutes relations)
espegravece eucaryote multicellulaire proprieacuteteacute
bacteacuteries false false
archeacutees false false
protistes true false
champignons true true deacutecompose
veacutegeacutetaux true true photosyntheacutetise
animaux true true ingegravere
Tableau 1 Base de donneacutees de classification classique des espegraveces animales
Fondamental Fonctions dune base de donneacutees
wwwsambaconsultantscom 6
Une base de donneacutees est structureacutee afin de pouvoir mieux reacutepondre agrave des fonctions
fondamentales en informatique telles que
Stocker linformation de faccedilon fiable (cest agrave dire ecirctre capable de restituer linformation
entreacutee dans le systegraveme)
Traiter de grands volumes de donneacutees (massification)
Traiter rapidement les donneacutees (optimisation)
Seacutecuriser les accegraves aux donneacutees (geacuterer les autorisations selon les utilisateurs)
Controcircler la qualiteacute des donneacutees (par exemple la coheacuterence par rapport agrave un modegravele preacute-
eacutetabli)
Partager les donneacutees (entre plusieurs applications deacutedieacutees agrave plusieurs meacutetiers)
Rendre accessible les donneacutees en reacuteseau (geacuterer la concurrence des accegraves parallegraveles)
b) Systegraveme de gestion de bases de donneacutees (SGBD)
Deacutefinition Systegraveme de Gestion de Bases de Donneacutees
Un SGBD est un logiciel qui prend en charge la structuration le stockage la mise agrave jour et la maintenance
dune base de donneacutees Il est lunique interface entre les informaticiens et les donneacutees (deacutefinition des scheacutemas
programmation des applications) ainsi quentre les utilisateurs et les donneacutees (consultation et mise agrave jour)
Introduction geacuteneacuterale aux bases de donneacutees
7
Exemtple Exemtples de SGBD
Oracle est un SGBD relationnel et relationnel-objet tregraves utiliseacute pour les applications professionnelles
PostgreSQL est un SGBD relationnel puissant qui offre une alternative libre (licence BSD) aux solutions
commerciales comme Oracle ou IBM
Access est un SGBD relationnel Microsoft qui offre une interface graphique permettant de concevoir
rapidement des applications de petite envergure ou de reacutealiser des prototypes
MongoDb est un SGBD non-relationnel libre (licence Apache) orienteacute document Il permet de geacuterer
facilement de tregraves grandes quantiteacutes de donneacutees - dans un format arborescent JSON - reacuteparties sur
de nombreux ordinateurs
Comtpleacutement SGBD relationnel et non-relationnel
Les SGBR relationnels (SGBDR) sont les plus courants des SGBD jusquau deacutebut des anneacutees 2000 la plupart
des bases de donneacutees eacutetaient relationnelles
Mais avec larriveacutee des geacuteants du web ces entreprises qui gegraverent des quantiteacutes eacutenormes de donneacutees comme
Google Amazon ou Facebook sest deacuteveloppeacute un mouvement important de deacuteveloppement de bases de
donneacutees nonrelationnelles eacutegalement appeleacutees NoSQL
c) Application de base de donneacutees Une base de donneacutees seule nest pas directement utilisable par un utilisateur humain elle nest utilisable que
par les informaticiens qui connaissent son langage de programmation et par les applications qui ont eacuteteacute
programmeacutees pour sen servir
Deacutefinition
On appelle application de base de donneacutees un logiciel informatique permettant agrave un utilisateur final de
manipuler (lire ou eacutecrire) les donneacutees dune base de donneacutees
Exemtple Atptplication web
Une application web est composeacutee dinterfaces en HTML qui permettent deacutecrire et de lire des donneacutees dans
une base de donneacutees via un langage applicatif comme par exemple PHP
Exemtple Twiter
Lapplication Twitter est composeacutee dinterfaces web
permettant dentrer des donneacutees (saisir son profil twitter
retwitter ) et de sortir des donneacutees (consulter un fil
twitter faire une recherche sur un hashtag) dune base
de donneacutees (Twitter utilise une base de donneacutees NoSQL
Apache Cassandra)
Cette base de donneacutees est stockeacutee sur les serveurs de
Twitter et elle contient tous les profils de tous les
utilisateurs tous les tweets tous les hashtags
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 8
Exemtple Comtpagnie aeacuterienne Une base de donneacutees de gestion de lactiviteacute dune compagnie aeacuterienne concerne les voyageurs les vols les
avions le personnel les reacuteservations
Une application agrave partir dune telle base de donneacutees pourra permettre la gestion des reacuteservations des
disponibiliteacutes des avions en fonction des vols agrave effectuer des affectations des personnels volants
Exemtple Atptplication de bureau Access
Avec un logiciel comme Access on peut reacutealiser agrave la fois une base de donneacutees et une application permettant
de manipuler cette base de donneacutees pour des besoins bureautiques simples
d) Donneacutee (en relationnel) table objet proprieacuteteacute domaine
atomiciteacute
Ratptpel Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tables (appeleacutes relations)
Chaque case de la table contient une information atomique
Deacutefinition Objet (ligne)
Chaque ligne de la table correspond agrave un objet que lon veut geacuterer dans la base de donneacutees une voiture une
personne une espegravece
Fondamental
Toutes les lignes dune mecircme table correspondent agrave des objets du mecircme type donc dans une
table on met soit des voitures soit des personnes mais on ne meacutelange pas les deux
Deacutefinition Protprieacuteteacute et domaine (colonne)
Chaque colonne de la table correspond agrave une proprieacuteteacute des objets qui se trouvent dans la table tous les
objets de la table partagent donc les mecircmes proprieacuteteacutes
Fondamental Domaine
Chaque colonne de la table est associeacutee agrave un domaine de valeur fixeacute a priori par exemple entier
texte booleacuteen
Deacutefinition Donneacutee en relationnel (cellule)
Une donneacutee en relationnel cest une cellule dune table qui correspond agrave la proprieacuteteacute dun objet
proprieacuteteacute 1 domaine
d1 proprieacuteteacute 2 domaine
d2
objet1 donneacutee 1 objet1 donneacutee 2
Introduction geacuteneacuterale aux bases de donneacutees
9
objet2 donneacutee 1 objet2 donneacutee 2
Tableau 2 Une table ou relation ( en relationnel)
Exemtple
espegravece domaine
texte eucaryote domaine
booleacuteen
bacteacuteries false
archeacutees false
Tableau 3 Exemple de relation instancieacutee
Atention Atomiciteacute
Pour que la base de donneacutees fonctionne correctement on veille agrave ne mettre quune seule donneacutee
par case cest le principe datomiciteacute en relationnel
espegravece domaine texte
bacteacuteries procaryotes unicellulaires
archeacutees procaryotes unicellulaires
protistes eucaryotes unicellulaires
champignons eucaryotes multicellulaires qui deacutecomposent
veacutegeacutetaux eucaryotes multicellulaires qui photosyntheacutetisent
animaux eucaryotes multicellulaires qui ingegraverent
Tableau 4 Un mauvais exemple de relation les donneacutees ne sont pas atomiques (il y a
plusieurs donneacutees par case de la table)
e) Langage de donneacutees lexemple du langage SQL
Deacutefinition Langage de donneacutees
Un langage de donneacutees est un langage informatique permettant de deacutecrire et de manipuler les scheacutemas et les
donneacutees dune BD
Synonymes Langage orienteacute donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 10
Fondamental SQL
SQL est le langage consacreacute aux SGBD relationnels et relationnels-objet
Il permet de
creacuteer des tables en deacutefinissant le domaine de chaque colonne
inseacuterer des lignes dans les tables
lire les donneacutees entreacutees dans la base de donneacutees
Exemtple Creacuteation de table en SQL (deacutefinition du scheacutema de donneacutees)
CREATE TABLE Etudiant ( NumEtu
integer PRIMARY KEY Nom varchar Ville varchar)
1 2 3 4
Cette instruction permet de creacuteer une relation Etudiant comportant les proprieacuteteacutes NumEtu Nom et Ville
de domaines respectivement entier texte et texte
Exemtple Insertion de ligne en SQL (creacuteation de donneacutees)
INSERT INTO Etudiant (NumEtu Nom Ville) VALUES (1 Holmes Londres) 1
Cette instruction permet de creacuteer leacutetudiant numeacutero 1 de nom Holmes qui habite la ville de Londres
Exemtple Manitpulation de donneacutees en SQL (extploitation des donneacutees)
SELECT Nom FROM Etudiant WHERE Ville = Compiegravegne
1 2 3
Cette instruction permet de rechercher les noms de tous les eacutetudiants habitant la ville de Compiegravegne
Comtpleacutement Autres langages de donneacutees
XQuery est un langage de donneacutees mobiliseacute dans les bases de donneacutees arborescentes XML
Les bases NoSQL proposent des langages de donneacutees speacutecifiques souvent inspireacutes du
SQL Par exemple le langage de MongoDB permet de manipuler une base de contenus JSON
2 Approche geacuteneacuterale pour la conception des bases de
donneacutees
a) Exercice Eacutetapes de la conception dune base de donneacutees
relationnelle Mettre dans lordre les eacutetapes de conception suivantes
1 Creacuteation du code SQL pour un SGBDR
2 Modeacutelisation conceptuelle en UML ou E-A
Introduction geacuteneacuterale aux bases de donneacutees
11
3 Eacutelaboration du modegravele logique en relationnel
4 Analyse de la situation existante et des besoins
Reacuteponse ___ ___ ___ ___
b) Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
Meacutethode Eacutetatpes de la concetption dune base de donneacutees
1 Analyse de la situation existante et des besoins (clarification) 2 Creacuteation dun modegravele conceptuel qui permet de repreacutesenter tous les aspects importants du problegraveme 3 Traduction du modegravele conceptuel en modegravele logique (et normalisation de ce modegravele logique) 4 Impleacutementation dune base de donneacutees dans un SGBD agrave partir du modegravele logique (et optimisation)
Graphique 1 Processus de conception dune base de donneacutees
On distingue quatre eacutetapes dans la conception dune base de donneacutees
Lanalyse
Elle consiste agrave eacutetudier le problegraveme et agrave consigner dans un document la note de clarification les
besoins les choix les contraintes
La modeacutelisation conceptuelle
Elle permet de deacutecrire le problegraveme poseacute de faccedilon non-formelle (en geacuteneacuterale graphique) en prenant
des hypothegraveses de simplification Ce nest pas une description du reacuteel mais une repreacutesentation
simplifieacutee dune reacutealiteacute
La modeacutelisation logique
Ele permet de deacutecrire une solution en prenant une orientation informatique geacuteneacuterale (type de SGBD
typiquement) formelle mais indeacutependamment de choix dimpleacutementation speacutecifiques
Limpleacutementation
Elle correspond aux choix techniques en terme de SGBD choisi et agrave leur mise en œuvre
(programmation optimisation)
Fondamental
Bien analyser le problegraveme poseacute en amont
BD solution proposeacutee
Domaine problegraveme poseacute
Modegravele Conceptuel
Modegravele Logique
Repreacutesenter
Impleacutementer
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 12
Bien modeacuteliser le problegraveme au niveau conceptuel avant de passer au niveau logique et agrave
limpleacutementation
Conseil Limtportance de leacutetatpe danalyse
La premiegravere eacutetape de la conception repose sur lanalyse de lexistant et des besoins De la qualiteacute de la
reacutealisation de cette premiegravere eacutetape deacutependra ensuite la pertinence de la base de donneacutees par rapports aux
usages Cette premiegravere eacutetape est donc essentielle et doit ecirctre meneacutee avec soins
Si la premiegravere eacutetape est fondamentale dans le processus de conception elle est aussi la plus deacutelicate En effet
tandis que des formalismes puissants existent pour la modeacutelisation conceptuelle puis pour la modeacutelisation
logique la perception de lexistant et des besoins reste une eacutetape qui repose essentiellement sur lexpertise
danalyse de lingeacutenieur
Conseil Limtportance de leacutetatpe de modeacutelisation concetptuelle
Eacutetant donneacutee une analyse des besoins correctement reacutealiseacutee la seconde eacutetape consiste agrave la traduire selon un
modegravele conceptuel Le modegravele conceptuel eacutetant formel il va permettre de passer dune speacutecification en
langage naturel et donc soumise agrave interpreacutetation agrave une speacutecification non ambiguumle Le recours aux
formalismes de modeacutelisation tels que E-A ou UML est donc une aide fondamentale pour parvenir agrave une
repreacutesentation qui ne sera plus lieacutee agrave linterpreacutetation du lecteur
La traduction dun cahier des charges speacutecifiant lexistant et les besoins en modegravele conceptuel reste neacuteanmoins
une eacutetape deacutelicate qui va conditionner ensuite lensemble de limpleacutementation informatique En effet les eacutetape
suivantes sont plus meacutecaniques dans la mesure ougrave un modegravele logique est deacuteduit de faccedilon systeacutematique du
modegravele conceptuel et que limpleacutementation logicielle est eacutegalement reacutealiseacutee par traduction directe du modegravele
logique
RemarqueLes eacutetatpes de traduction logique et dimtpleacutementation
Des logiciels speacutecialiseacutes (par exemple Objecteering [w_objecteering]) sont capables agrave partir dun modegravele
conceptuel dappliquer des algorithmes de traduction qui permettent dobtenir directement le modegravele logique
puis les instructions pour la creacuteation de la base de donneacutees dans un langage orienteacute donneacutees tel que SQL
Lexistence de tels algorithmes de traduction montre que les eacutetapes de traduction logique et dimpleacutementation
sont moins complexes que les preacuteceacutedentes car plus systeacutematiques
Neacuteanmoins ces eacutetapes exigent tout de mecircme des compeacutetences techniques pour optimiser les modegraveles logiques
(normalisation) puis les impleacutementations en fonction dun contexte de mise en œuvre mateacuteriel logiciel et
humain
c) Qatre eacutetapes pour reacuteduire la complexiteacute La reacutealisation dune base de donneacutees est une tacircche complexe le deacutecoupage en quatre eacutetapes permet de geacuterer
cette complexiteacute
Clarification ModeacutelisationConceptuelle ModeacutelisationLogique Im pleacutem entation
Conception en quatre eacutetapes
Introduction geacuteneacuterale aux bases de donneacutees
13
Lideacutee geacuteneacuterale est de ne pas meacutelanger la nature des tacircches typiquement on ne veut pas en mecircme temps
se poser des questions geacuteneacuterales relatives aux besoins (ce que je veux faire) et des questions techniques tregraves
speacutecifiques (comment repreacutesenter telle information)
Meacutethode
Lapproche est donc
de regarder agrave gauche on regarde le monde quand on clarifie on regarde la note de clarification
quand on fait le MCD on regarde le MCD quand on fait le MLD on regarde le MLD quand on
impleacutemente
et de ne pas regarder trop loin on anticipe deacutejagrave le MCD pendant la clarification mais on ne se
preacuteoccupe pas de questions dimpleacutementation quand on fait le MLD on ne se pose plus de question
sur le monde la clarification et le MCD ont ducirc deacutejagrave reacutepondre quand on impleacutemente on ne se pose
plus de question de modeacutelisation on soccupe des programmes de la machine
Fondamental
On peut toujours revenir sur une eacutetape la conception est iteacuterative mais on ne doit pas tout le
temps se poser tous les problegravemes en mecircme temps
d) Eacuteleacutements pour lanalyse de lexistant et des besoins La phase danalyse de lexistant et des besoins est une phase essentielle et complexe Elle doit aboutir agrave des
speacutecifications geacuteneacuterales qui deacutecrivent en langage naturel les donneacutees manipuleacutees et les traitements agrave
effectuer sur ces donneacutees
On se propose de donner une liste non exhaustive dactions agrave mener pour reacutediger de telles speacutecifications
Meacutethode Lanalyse de documents existants
La conception dune base de donneacutees sinscrit geacuteneacuteralement au sein dusages existants Ces usages sont
geacuteneacuteralement au moins en partie instrumenteacutes agrave travers des documents eacutelectroniques ou non (papier
typiquement) Il est fondamental danalyser ces documents et de recenser les donneacutees quils manipulent
Exemtple Exemtples de document existants agrave analyser
Fichiers papiers de stockage des donneacutees (personnel produits etc)
Formulaires papiers denregistrement des donneacutees (fiche didentification dun salarieacute fiche de
description dun produit bon de commande etc)
Documents eacutelectroniques de type traitement de texte (lettres mailing proceacutedures etc)
Documents eacutelectroniques de type tableurs (bilans statistiques calculs etc)
Bases de donneacutees existantes agrave remplacer ou avec lesquelles saccorder (gestion des salaires de la
production etc)
Intranet dentreprise (information teacuteleacutechargement de documents etc)
etc
Meacutethode Le recueil dextpertise meacutetier
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 14
Les donneacutees que la base va devoir manipuler sont toujours relatives aux meacutetiers de lentreprise et il existe
des experts qui pratiquent ces meacutetiers Le dialogue avec ces experts est une source importante dinformations
Il permet eacutegalement de fixer la terminologie du domaine
Exemtple Exemtples dextperts agrave consulter
Praticiens (secreacutetaires ouvrier controcircleurs etc)
Cadres (responsables de service contre-maicirctres etc)
Experts externes (clients fournisseurs etc)
etc
Meacutethode Le dialogue avec les usagers
La base de donneacutees concerne des utilisateurs cibles cest agrave dire ceux qui produiront et consommeront
effectivement les donneacutees de la base Il est neacutecessaire de dialoguer avec ces utilisateurs qui sont les
deacutetenteurs des connaissances relatives aux besoins reacuteels lieacutes agrave leur reacutealiteacute actuelle (aspects de lorganisation
fonctionnant correctement ou deacutefaillants) et agrave la reacutealiteacute souhaiteacutee (eacutevolutions lacunes etc)
Exemtple Exemtples dutilisateurs avec qui dialoguer
Personnes qui vont effectuer les saisies dinformation (agrave partir de quelles sources Quelle est leur
responsabiliteacute etc)
Personnes qui vont consulter les informations saisies (pour quel usage pour quel destinataire etc)
Personnes qui vont mettre agrave jour les informations (pour quelles raisons comment le processus est
enclencheacute etc)
etc
Meacutethode Leacutetude des autres systegravemes informatiques existants
la base de donneacutees va geacuteneacuteralement (et en fait quasi systeacutematiquement aujourdhui) sinseacuterer parmi un
ensemble dautres logiciels informatiques travaillant sur les donneacutees de lentreprise Il est important danalyser
ces systegravemes afin de mieux comprendre les meacutecanismes existants leurs forces et leurs lacunes et de preacuteparer
linteacutegration de la base avec ces autres systegravemes Une partie de ces systegravemes seront dailleurs souvent
eacutegalement des utilisateurs de la base de donneacutees tandis que la base de donneacutees sera elle mecircme utilisatrice
dautre systegravemes
Exemtple Exemtples dautres systegravemes coexistants agrave eacutetudier
Autres bases de donneacutees (les donneacutees sont elle disjointes ou partiellement communes avec celles de la
base agrave concevoir quelles sont les technologies logicielles sur lesquelles reposent ces BD etc)
Systegravemes de fichiers classiques (certains fichiers ont-ils vocations agrave ecirctre supplanteacutes par la base agrave ecirctre
geacuteneacutereacutes par la base agrave alimenter la base etc)
Applications (ces applications ont elles besoins de donneacutees de la base peuvent-elles lui en fournir
etc)
etc
Comtpleacutement Meacutethodes danalyse
Il existe des outils et meacutethodes danalyse en ingeacutenierie comme lanalyse fonctionnelle (AF) qui deacutepassent le
cadre de la conception des bases de donneacutees mais sont tout agrave fait compleacutementaires
Introduction geacuteneacuterale aux bases de donneacutees
15
e) Modeacutelisation conceptuelle de donneacutees Lobjection du modegravele conceptuel est de repreacutesenter le problegraveme agrave laide de repreacutesentations graphiques et
partiellement formelles
Les principales caracteacuteristiques du modegravele conceptuel sont
Une repreacutesentation graphique simple
Une puissance dexpression eacuteleveacutee pour un nombre de symboles raisonnables
Une lecture accessible agrave tous et donc un bon outil de dialogue entre les acteurs techniques et non
techniques
Une formalisation peu ambigueuml et donc un bon outil de speacutecification deacutetailleacutee
Remarque
Le modegravele nest pas encore formel donc certaines repreacutesentations peuvent ecirctre eacutequivoques mecircme si on a
leveacute de tregraves nombreuses ambiguiumlteacutes
E-A
La modeacutelisation conceptuelle en bases de donneacutees relationnelle eacutetait agrave lorigine faite avec le formalisme E-A
de la meacutethode MERISE
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 16
Modegravele E-A gestion de projets
UML
UML est un autre langage de modeacutelisation plus reacutecent que E-A et couvrant un spectre plus large que les
bases de donneacutees En tant que standard de lOMG et en tant que outil tregraves utiliseacute pour la programmation
orienteacutee objet il a supplanteacute la modeacutelisation E-A
Remarque
En BD on utilise uniquement le diagramme de classe dUML pour modeacuteliser conceptuellement les donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 17
Modegravele UML gestion de projets
f) Modeacutelisation logique de donneacutees
Deacutefinition Modegravele logique de donneacutees
Un modegravele logique de donneacutees est une description au moyen dun langage formel dun ensemble de donneacutees
Un scheacutema permet de deacutecrire la structure dune base de donneacutees en deacutecrivant lensemble des types de
donneacutees de la base Une instance de base de donneacutees est constitueacutee dun ensemble de donneacutees qui respectent
le scheacutema de la base
Synonyme scheacutema de donneacutees scheacutema
Exemtple Modegravele logique de donneacutees relationnel
Un modegravele logique de donneacutees relationnel permet de repreacutesenter une base de donneacutees relationnelles cest agrave
dire des tables des proprieacuteteacutes des domaines
Exemtple Scheacutema dune relation
Espece(nomchaicircne eucaryotebooleacuteen multicellulairebooleacuteen proprieacuteteacutechaicircne) 1
Exemtple Scheacutema dune base de donneacutees avec tplusieurs relations
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 18
Etudiant (numentier nomchaicircne villechaicircne) Module(numentier titrechaicircne) Inscription(numetuentier nummodentier anneacuteeentier(4))
1 2 3
Instance de base de donneacutees
Etudiant Module
172 Dupont Lille
173 Durand Paris
174 Martin Isabelle
1 SGBD
2 OS
Inscription 172 1 2016 172 2 2016 173 1 2015 174 2 2017
Comtpleacutement Exemtple de formalismes de modeacutelisation logique
Le modegravele CODASYL anteacuterieur au modegravele relationnel est un modegravele hieacuterarchique (Tardieu 1983
[Tardieu83])
Le modegravele relationnel (tabulaire) est le modegravele dominant agrave la base des SGBDR
Le modegravele relationnel-objet (adaptation des modegraveles relationnels et objets au cadre des SGBD) est
actuellement en croissance
Dautres modegraveles (document graphe ) se deacuteveloppent dans le cadre du mouvement NoSQL
Comtpleacutement Voir aussi
Bregraveve introduction aux bases de donneacutees NoSQL - p98
g) Synthegravese Les trois niveaux de conception Niveau Conceptuel
Modegravele conceptuel graphique -
Exemples E-A
UML
Niveau Logique
Scheacutema logique indeacutependant dun SGBD -
Exemples Relationnel
Objet
Relationnel-Objet
Graphe
Document
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 19
Niveau Informatique
Impleacutementation pour un SGBD particulier -
Exemples Oracle
MySQL
PostgreSQL
DB2
Access
SQLServer
MongoDB
Cassandra
Modeacutelisation Modeacutelisation Im pleacutem entation Clarification Conceptuelle
Logique
AF UML Relationnel SQL Conception en quatre eacutetapes exemple de
formalismes
B Exercices
1 Deacutecouverte dune base de donneacutees relationnelle
Cette seacuterie dexercices est destineacutee agrave faire expeacuterimenter un SGBDR afin de se familiariser avec les concepts
classiques des bases de donneacutees relationnelles
Pour la reacutealisation de cet exercice se connecter sur le site dbdiscocrztfr et conserver la fenecirctre du navigateur
ouverte
Db Discodbdiscocrztfr
Objectifs
Deacutecouvrir le modegravele relationnel Deacutecouvrir un SGBDR Deacutecouvrir le langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 20
a) Notion de table
Creacuteer sa premiegravere table Une base de donneacutees relationnelle est principalement constitueacutee de tables (ou laquo relations raquo dougrave le nom
de relationnel) Une table est basiquement un eacuteleacutement dorganisation de linformation constitueacute de colonnes
(ou attributs) et de lignes (ou enregistrements)
Nous allons dans un premier temps creacuteer le scheacutema dune table cest agrave dire deacutefinir ses colonnes Pour cela
nous utiliserons linstruction SQL LDD laquo CREATE raquo
Question 1
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
CREATE TABLE tEtu ( pk_numSecu CHAR(13) PRIMARY KEY k_numEtu
VARCHAR(20) UNIQUE NOT NULL nom
VARCHAR(50) prenom VARCHAR(50))
1 2 3 4 5
Introduction geacuteneacuterale aux bases de donneacutees
21
Alimenter la table Une fois les colonnes de la table deacutefinies nous pouvons en deacuteclarer les lignes Nous utilisons pour cela
linstruction SQL LMD laquo INSERT raquo
Question 2
Exeacutecuter les deux instructions suivantes et deacutecrire ce quelles font
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 AB3937098X Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2820475001124 XGB67668 Durand Anne)
1 2 3 4
Interroger la table Une fois une table creacuteeacutee il est possible agrave tout moment den inspecter le contenu Nous utilisons pour cela
linstruction SQL LMD laquo SELECT raquo
Question 3
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT pk_numSecu k_numEtu nom prenom FROM tEtu
1 2
Question 4
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT nom prenom FROM tEtu WHERE pk_numSecu=2820475001124
1 2 3
b) Notion de contraintes
Contrainte de domaine Lorsque lon deacutefinit une table on deacutefinit eacutegalement des contraintes sur cette table qui serviront agrave controcircler
son inteacutegriteacute par rapport agrave des regravegles que lon aura fixeacutees
Cest notamment le cas des contraintes de domaine qui permettent de veacuterifier quune colonne prend ses
valeurs parmi un ensemble deacutetermineacute (les chaicircnes de 10 caractegraveres au plus les entier de 1 agrave 1000 etc)
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi le systegraveme renvoie une erreur
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (XXXXXXXXXXXXXXX XXXXXX Dupont Pierre)
1 2
Question 2
Donner un exemple de contrainte qui nest pas formuleacutee dans la deacutefinition de la table tEtu et que lon aurait
pu souhaiter
Indice
Pour indiquer quun eacuteleacutement est obligatoire on ajoute la clause NOT NULL apregraves la deacutefinition de son domaine dans linstruction CREATE TABLE
Introduction geacuteneacuterale aux bases de donneacutees
22
Contraintes de cleacute Les contraintes de cleacute se composent de contraintes duniciteacute et de contraintes de non nulliteacute Elles
permettent dassurer que toutes les valeurs dune colonne seront diffeacuterentes pour chaque ligne
Question 3
Exeacutecuter les trois instructions suivantes (les unes apregraves les autres) et expliquer ce qui se passe
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 HGYT67655Y Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 XGB67668 Durand Anne) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 HGYT67655Y Duchemin Aline)
1 2 3 4 5 6
Question 4
Explorer le contenu de votre table en exeacutecutant linstruction suivante et veacuterifier vos explications preacuteceacutedentes
SELECT FROM tEtu
1 2
Question 5
Pourrait-on inseacuterer dans la table une seconde personne qui aurait le preacutenom Aline et le nom Duchemin
Pourquoi
c) Notion de reacutefeacuterences
Cleacute eacutetrangegravere Une base de donneacutees est en geacuteneacuteral constitueacutee de plusieurs tables Ces tables se reacutefeacuterencent entre elles en
utilisant une cleacute eacutetrangegravere cest agrave dire quune des colonnes de la table est utiliseacutee pour faire reacutefeacuterence agrave la
colonne dune autre table
On va agrave preacutesent creacuteer une seconde table qui permettra dassocier des Uniteacutes de Valeurs (UVs) aux eacutetudiants
puis inseacuterer des valeurs dans cette table
CREATE TABLE tUv ( pk_code
CHAR(4) NOT NULL fk_etu
CHAR(13) NOT NULL PRIMARY KEY (pk_code fk_etu) FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu))
1 2 3 4 5
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF26 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF29 1800675001066)
1 2 3 4 5 6
Question 1
Introduction geacuteneacuterale aux bases de donneacutees
23
Expliciter ce quexprime le contenu de la table tUv
Contraintes dinteacutegriteacute reacutefeacuterentielle Lorsque nous avons deacutefini la table tUv nous avons deacutefini une contrainte suppleacutementaire dite dinteacutegriteacute
reacutefeacuterentielle contrainte de type FOREIGN KEY
Question 2
En exeacutecutant les instructions suivantes expliquer quel est le rocircle dune contrainte dinteacutegriteacute reacutefeacuterentielle
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 2810592012232) INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1700792001278)
1 2 3 4
d) Projection restriction et jointure Linstruction SELECT du langage SQL LMD nous donne de larges possibiliteacutes pour interroger les tables dune
base de donneacutees Cette instruction se fonde notamment sur les opeacuterations matheacutematiques de lalgegravebre
relationnelle dont les principales sont la projection la restriction le produit et la jointure
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi cest une projection
SELECT nom prenom FROM tEtu
1 2
Question 2
Exeacutecuter linstruction suivante et expliquer pourquoi cest une restriction
SELECT FROM tEtu WHERE nom=Dupont
1 2 3
Question 3
Exeacutecuter linstruction suivante et expliquer pourquoi cest un produit (carteacutesien)
SELECT FROM tEtutUv
1 2
Question 4
Exeacutecuter linstruction suivante et expliquer pourquoi cest une jointure
SELECT FROM tEtu JOIN tUv ON pk_numSecu=fk_etu
1 2
Question 5
Exeacutecuter linstruction suivante et montrer quune jointure est la composition dun produit et dune restriction
SELECT FROM tEtutUv WHERE pk_numSecu=fk_etu
1 2 3
Introduction geacuteneacuterale aux bases de donneacutees
24
e) Fonctions et agreacutegats Linstruction SELECT permet eacutegalement deffectuer des calculs qui portent sur plusieurs lignes ce que lon
appelle des agreacutegats
Question 1
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT COUNT(pk_code) FROM tUv
1 2
WHERE fk_etu=1800675001066 3
Question 2
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT fk_etu COUNT(pk_code) FROM tUv GROUP BY fk_etu
1 2 3
Question 3
Compleacuteter la requecircte SQL suivante afin quelle renvoie pour chaque UV le nombre deacutetudiants inscrits
SELECT _______ COUNT(______) FROM tUv GROUP BY _______
1 2 3
Agrave lissue de cette seacuterie dexercices vous devez savoir deacutefinir les termes suivants
table ou relation
scheacutema relationnel
domaine
cleacute
cleacute eacutetrangegravere
opeacuterations de projection restriction jointure produit
Introduction geacuteneacuterale aux bases de donneacutees
25
2 Lab 0
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux meacutedicaments
avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi quune description
longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le nombre de pilules par boicircte
(qui est un nombre entier)
Ce problegraveme est un exemple tregraves simple que lon pourra modeacuteliser avec une base de donneacutees relationnelle agrave
une seule table
Vous pouvez tester vos instructions SQL ici Db Discodbdiscocrztfr
Question 1
Proposer une clarification du problegraveme (par exemple sous la forme dune liste des proprieacuteteacutes de la relation
viseacutee)
Question 2
Proposer un exemple de donneacutees
Question 3
Dessiner un modegravele conceptuel de donneacutees en UML Il ne contient quune seule classe
Indice Modeacutelisation conceptuelle de donneacutees
Question 4
Proposer un modegravele logique de donneacutees sous forme de scheacutema relationnel Il ne contient quune seule relation
Indice Modeacutelisation logique de donneacutees
Question 5
Proposer une impleacutementation en SQL standard de votre modegravele relationnel Il ne contient quune seule
instruction CREATE TABLE
Indice Langage de donneacutees lexemple du langage SQL
Question 6
Eacutecrivez les instructions SQL permettant dinseacuterer vos donneacutees de test dans votre base de donneacutees
Indice Langage de donneacutees lexemple du langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
26
27
II - Introduction agrave la
modeacutelisation
conceptuelle de donneacutees avec
UML
A Cours
La modeacutelisation conceptuelle est leacutetape fondatrice du processus de conception de BD Elle consiste agrave
abstraire le problegraveme reacuteel poseacute pour en faire une reformulation qui trouvera une solution dans le cadre
technologique dun
SGBD
Si le modegravele dominant en conception de bases de donneacutees a longtemps eacuteteacute le modegravele E-A le modegravele UML
se geacuteneacuteralise de plus en plus Nous proposons ici une introduction au diagramme de classes agrave travers la
repreacutesentation de classes et dassociations simples (il existe dautres diagrammes UML par exemple le
diagramme de cas et dautres primitives de repreacutesentation dans le diagramme de classe par exemple
lheacuteritage)
II
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
28
1 Notion de modegravele
a) Exercice Centre meacutedical [5 min]
Soit le modegravele conceptuel suivant repreacutesentant des visites dans un centre meacutedical Quelles sont les assertions vraies selon ce scheacutema
Image 1
Un patient peut effectuer plusieurs visites
Tous les patients ont effectueacute au moins une consultation
Un meacutedecin peut recevoir plusieurs patients pendant la mecircme consultation
Un meacutedecin peut prescrire plusieurs meacutedicaments lors dune mecircme consultation
Deux meacutedecins diffeacuterents peuvent prescrire le mecircme meacutedicament
b) Qest ce quun modegravele
Deacutefinition Modegravele
laquo Modeling in the broadest sense is the cost-effective use of something in place of something else for some
cognitive purpose It allows us to use something that is simpler safer or cheaper than reality instead of reality
for some purpose A model represents reality for the given purpose the model is an abstraction of reality in
the sense that it cannot represent all aspects of reality raquo (Rothenberg 1989 [Rothenberg et al 1989] citeacute
par Arribe 2014 [Arribe 2014])
laquo Systegraveme physique matheacutematique ou logique repreacutesentant les structures essentielles dune reacutealiteacute et capable
agrave son niveau den expliquer ou den reproduire dynamiquement le fonctionnement raquo (TLFi)
Fondamental Modegravele
Un modegravele est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser quelque chose
Objectifs
Savoir ce quest un modegravele
Savoir ce quest le langage UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
29
c) Qest ce quun modegravele en informatique
Deacutefinition Modegravele informatique
Un modegravele informatique est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser un traitement avec
un ordinateur
Comtpleacutement Numeacuterisation et abstraction Toute information numeacuterique a
eacuteteacute codeacutee selon un modegravele donneacute
laquo Tout numeacuterisation est une repreacutesentation de la reacutealiteacute sous la forme dune modeacutelisation numeacuterique Cette
modeacutelisation procegravede dune abstraction au sens ougrave cest une seacuteparation davec le reacuteel au sens ougrave cest une
construction destineacutee agrave la manipulation (algorithmique en loccurrence) et au sens ougrave cest une simplification
de la reacutealiteacute raquo
httpaswemayfrcotropism-preshtml1
d) Qest ce quun bon modegravele
Atention
Un modegravele est une abstraction une simplification de la reacutealiteacute ce nest pas la reacutealiteacute il nest
jamais complegravetement fidegravele par construction
Le seul modegravele complegravetement fidegravele agrave la reacutealiteacute est la reacutealiteacute elle-mecircme et ce nest donc pas un
modegravele
Exemtple La carte et le territoire
Une carte est un modegravele dun territoire Elle est une repreacutesentation simplifieacutee destineacute agrave un usage particulier
randonner agrave pied en veacutelo
se diriger en voiture sur des grands axes sur des axes secondaires
voler en avion de tourisme en avion de ligne
naviguer sur fleuve sur mer
eacutetudier les frontiegraveres dune reacutegion dun pays de la terre
eacutetudier la deacutemographie leacuteconomie
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
30
Fondamental
Agrave partir de cet exemple on notera que 1 Un modegravele est orienteacute par un usage
Chacune de ces cartes est tregraves diffeacuterente selon ce que lon veut faire 2 Un modegravele ne cherche pas agrave ecirctre proche de la reacutealiteacute
Chacune de ces cartes est tregraves diffeacuterente de la reacutealiteacute quelle repreacutesente 3 Un modegravele adresse un niveau dinformation qui existe mais qui nest pas accessible dans
la reacutealiteacute Chacune de ces cartes permet quelque chose que ne permet pas laccegraves direct agrave la reacutealiteacute
ndash wwwsambaconsultantscom
Meacutethode Le rasoir dOckham Entre deux modegraveles donneacutes le meilleur modegravele est-il
toujours le tplus fourni
La meacutethode de raisonnement connue sous le nom de rasoir dOckham (du nom du philosophe eacuteponyme)
consiste agrave preacutefeacuterer les solutions les plus simples aux plus complexes lorsquelles semblent permettre
eacutegalement de reacutesoudre un problegraveme donneacute entre deux theacuteories eacutequivalentes toujours preacutefeacuterer la plus simple
Ce principe sapplique tregraves bien agrave la modeacutelisation eacutetant donneacute un objectif et plusieurs modegraveles possibles il
ne faut pas choisir a priori celui qui repreacutesente le plus de choses mais preacutefeacuterer le plus simple degraves quil couvre
le besoin
Cest un principe deacuteconomie (il coucircte moins cher agrave produire) et defficaciteacute (car les eacuteleacutements inutiles du modegravele
plus fourni nuiront agrave lefficaciteacute de la tacircche)
Exemtple
Ainsi pour naviguer en voiture il est plus simple de ne pas avoir sur la carte les chemins de randonneacutees qui
ne sont pas praticables en voiture
2 Introduction au diagramme de classes UML classes et
associations
a) Lab I
Description du problegraveme [15 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
Objectifs
Savoir faire un modegravele conceptuel
Savoir interpreacuteter un modegravele conceptuel
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
31
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
b) Preacutesentation dUML UML est un langage de repreacutesentation destineacute en particulier agrave la modeacutelisation objet UML est devenu une
norme OMG en 1997
UML propose un formalisme qui impose de penser objet et permet de rester indeacutependant dun langage de
programmation donneacute Pour ce faire UML normalise les concepts de lobjet (eacutenumeacuteration et deacutefinition
exhaustive des concepts) ainsi que leur notation graphique Il peut donc ecirctre utiliseacute comme un moyen de
communication entre les eacutetapes de speacutecification conceptuelle et les eacutetapes de speacutecifications techniques
Fondamental Diagramme de classe
Le diagramme de classes est un sous ensemble dUML qui sattache agrave la description statique dun
modegravele de donneacutees repreacutesenteacutees par des classes dobjets
Remarque
Dans le domaine des bases de donneacutees UML peut ecirctre utiliseacute agrave la place du modegravele E-A pour modeacuteliser le
domaine De la mecircme faccedilon un scheacutema conceptuel UML peut alors ecirctre traduit en scheacutema logique (relationnel
ou relationnel-objet typiquement)
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
32
c) Classes
Deacutefinition Classe
Une classe est un type abstrait caracteacuteriseacute par des proprieacuteteacutes (attributs et meacutethodes) communes agrave un ensemble
dobjets et permettant de creacuteer des instances de ces objets ayant ces proprieacuteteacutes
Image 2 Repreacutesentation UML dune classe
Exemtple La classe Voiture
Lobjet V1 est une instance de la classe Voiture
V1 Voiture
Marque Citroeumln
Type ZX
Portes 5
Puissance 6
Kilomeacutetrage 300000
Comtpleacutement
La modeacutelisation sous forme de diagramme de classes est une modeacutelisation statique qui met en exergue la
structure dun modegravele mais ne rend pas compte de son eacutevolution temporelle UML propose dautres types de
diagrammes pour traiter notamment de ces aspects
d) Atributs
Deacutefinition Atribut
Un attribut est une information eacuteleacutementaire qui caracteacuterise une classe et dont la valeur deacutepend de lobjet
instancieacute
Syntaxe
Image 3 Exemple de classe repreacutesenteacutee en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
33
Un attribut est typeacute Le domaine des valeurs que peut prendre lattribut est fixeacute a priori
Un attribut peut ecirctre multivalueacute Il peut prendre plusieurs valeurs distinctes dans son domaine
Un attribut peut ecirctre deacuteriveacute Sa valeur alors est une fonction sur dautres attributs de la classe
Un attribut peut ecirctre composeacute (ou composite) Il joue alors le rocircle dun groupe dattributs (par
exemple une adresse peut ecirctre un attribut composeacute des attributs numeacutero type de voie nom de la
voie) Cette notion renvoie agrave la notion de variable de type Record dans les langages de programmation
classiques
Atention On utilise peu les atributs deacuteriveacutes et composeacutes en UML
En UML on preacutefegravere lusage de meacutethodes aux attributs deacuteriveacutes On utilisera toujours des
meacutethodes degraves que la valeur de lattribut deacuteriveacute deacutepend dautres attributs exteacuterieurs agrave sa
classe
En UML on preacutefegravere lusage de compositions aux attributs composeacutes On utilisera toujours
des compositions pour les attributs composeacutes et multivalueacutes
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
34
Syntaxe
attributtype attribut_multivalueacute[nbMinValeursnbMaxValeurs]type attribut_deacuteriveacutetype attribut_composeacute - sous-attribut1type - sous-attribut2type -
1 2 3 4 5 6 7
Image 4 Repreacutesentation dattributs en UML
Dans cet exemple les attributs Nom Preacutenom sont de type string lun de 20 caractegraveres et lautre de 10 tandis
que DateNaissance est de type date et Age de type integer Preacutenom est un attribut multivalueacute ici une personne
peut avoir de 1 agrave 3 preacutenoms Age est un attribut deacuteriveacute il est calculeacute par une fonction sur DateNaissance
Comtpleacutement Voir aussi
Meacutethodes
Composition - p99
e) Repeacuterage des cleacutes Un attribut ou un groupe dattributs peut ecirctre annoteacute comme eacutetant cleacute sil permet didentifier de faccedilon unique
un objet de la classe
On ajoute le symbole key agrave cocircteacute du ou des attributs concerneacutes
Cleacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
35
Cleacute composeacutee de deux attributs
Meacutethode
Le repeacuterage des cleacutes nest pas systeacutematique en UML (la deacutefinition des cleacutes se fera essentiellement au niveau
logique) On cherchera neacuteanmoins agrave repeacuterer les cleacutes rendues eacutevidentes par la phase de clarification
Atention
On najoutera jamais de cleacute artificielle au niveau du MCD Si aucune cleacute nest eacutevidente on laisse
la classe sans cleacute Atention Atribut souligneacute et
On trouvera dans ce cours des exemples dattributs souligneacutes ou preacuteceacutedeacutes de pour exprimer
luniciteacute Ce nest pas une pratique standard et la notation key devrait lui ecirctre substitueacutee
Un attribut souligneacute est normalement un attribut de classe ou static en UML Un
attribut preacuteceacutedeacute de est normalement un attribut proteacutegeacute en UML
Mais les concepts dattribut de classe et dattribut proteacutegeacute ne sont pas utiliseacutes dans le cadre des
bases de donneacutees
f) Meacutethodes
Deacutefinition Meacutethode
Une meacutethode (ou opeacuteration) est une fonction associeacutee agrave une classe dobjet qui permet dagir sur les objets de
la classe ou qui permet agrave ces objets de renvoyer des valeurs (calculeacutees en fonction de paramegravetres)
Syntaxe
methode(paramegravetres)type 1
Remarque Meacutethodes et modeacutelisation de BD
Pour la modeacutelisation des bases de donneacutees les meacutethodes sont surtout utiliseacutees pour repreacutesenter des donneacutees
calculeacutees (agrave linstar des attributs deacuteriveacutees) ou pour mettre en exergue des fonctions importantes du systegraveme
cible Seules les meacutethodes les plus importantes sont repreacutesenteacutees lapproche est moins systeacutematique quen
modeacutelisation objet par exemple
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
36
Remarque Meacutethodes relationnel relationnel-objet
Lors de la transformation du modegravele conceptuel UML en modegravele logique relationnel les meacutethodes ne seront
geacuteneacuteralement pas impleacutementeacutees Leur repeacuterage au niveau conceptuel sert donc surtout daide-meacutemoire
pour limpleacutementation au niveau applicatif
Au contraire un modegravele logique relationnel-objet permettra limpleacutementation de meacutethodes directement
associeacutees agrave des tables Leur repeacuterage au niveau conceptuel est donc encore plus important
Comtpleacutement Transformation des meacutethodes par des vues - p98
g) Associations
Deacutefinition Association
Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire)
qui deacutefinit un ensemble de liens entre les objets de ces classes
Une association est nommeacutee geacuteneacuteralement par un verbe Une association peut avoir des proprieacuteteacutes (agrave linstar
dune classe) Une association deacutefinit le nombre minimum et maximum dinstances autoriseacutee dans la relation
(on parle de cardinaliteacute)
Syntaxe
Image 5 Notation de lassociation en UML
Atention
Le nom de lassociation (verbe qui la deacutecrit) est obligatoire au mecircme titre que le nom dune
classe ou dun attribut
Remarque
Une association est geacuteneacuteralement bidirectionnelle (cest agrave dire quelle peut se lire dans les deux sens) Les
associations qui ne respectent pas cette proprieacuteteacute sont dites unidirectionnelles ou agrave navigation restreinte
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
37
Image 6 Repreacutesentation dassociation en UML
Lassociation Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des
voitures
Comtpleacutement Voir aussi
Cardinaliteacute
Explicitation des associations - p100
Associations ternaires - p101
Contraintes sur les associations - p101
h) Cardinaliteacute
Deacutefinition Cardinaliteacute dune association
La cardinaliteacute dune association permet de repreacutesenter le nombre minimum et maximum dinstances qui sont
autoriseacutees agrave participer agrave la relation La cardinaliteacute est deacutefinie pour les deux sens de la relation
Syntaxe
Si mina (resp maxa) est le nombre minimum (resp maximum) dinstances de la classe A autoriseacutees agrave participer
agrave lassociation on note sur la relation agrave cocircteacute de la classe A minamaxa
Si le nombre maximum est indeacutetermineacute on note n ou
Atention
La notation de la cardinaliteacute en UML est opposeacutee agrave celle adopteacutee en E-A En UML on note agrave gauche
(resp agrave droite) le nombre dinstances de la classe de gauche (resp de droite) autoriseacutees dans
lassociation En E-A on note agrave gauche (resp agrave droite) le nombre dinstances de la classe de
droite (resp de gauche) autoriseacutees dans lassociation
Remarque
Les cardinaliteacutes les plus courantes sont
01 (optionnel)
11 ou 1 (un)
Lassociation Conduit
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
38
0n ou 0 ou (plusieurs)
Ici un conducteur peut posseacuteder plusieurs voitures (y compris aucune) et une voiture nest posseacutedeacutee que par
un seul conducteur
i) Classe dassociation
Deacutefinition Classe dassociation
On utilise la notation des classes dassociation lorsque lon souhaite ajouter des proprieacuteteacutes agrave une association
Syntaxe Notation dune classe dassociation en UML
Image 8 Notation dune classe dassociation en UML
1 n ou 1 (obligatoire )
Image 7 Repreacutesentation de cardinaliteacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
39
Image 9 Emplois
B Exercices
1 Exercice Lire lUML [15 min]
Tennis Le scheacutema suivant repreacutesente les rencontres lors dun tournoi de tennis Quelles sont les assertions vraies selon ce scheacutema
Image 10
On peut jouer des matchs de double
Un joueur peut gagner un match sans y avoir participeacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
40
Il peut y avoir deux matchs sur le mecircme terrain agrave la mecircme heure
Connaissant un joueur on peut savoir sur quels terrains il a joueacute
Journal Voici le scheacutema conceptuel du systegraveme dinformation (tregraves simplifieacute) dun quotidien Quelles sont les assertions vraies selon ce scheacutema
Image 11
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
41
Un article peut ecirctre reacutedigeacute par plusieurs journalistes
Un article peut ecirctre publieacute plusieurs fois dans le mecircme journal
Un article peut ecirctre publieacute dans un journal par un journaliste qui ne travaille pas pour ce
journal
Il peut y avoir plusieurs articles sur le mecircme sujet
Un journaliste peut interviewer une personnaliteacute sans faire darticle agrave ce propos
Logistique Une socieacuteteacute de transport routier veut installer un systegraveme dinformation pour rendre plus efficace sa logistique Embaucheacute au service informatique de cette compagnie vous ecirctes donc chargeacute de reprendre le travail deacutejagrave effectueacute (cest agrave dire le scheacutema suivant)
Quelles sont les assertions vraies selon ce scheacutema
Image 12
Un conducteur peut conduire plusieurs camions
Un conducteur peut conduire un camion sans y ecirctre autoriseacute
Il peut y avoir plusieurs conducteurs pour le mecircme camion
Un conducteur peut livrer sa propre ville
2 Gestion dune coopeacuterative viticole
[20 minutes] Cet exercice a eacuteteacute inspireacute par Bases de donneacutees objet et relationnel [Gardarin99]
On considegravere une base Coopeacuterative qui possegravede les caracteacuteristiques suivantes
Un vin est caracteacuteriseacute par un numeacutero entier unique nv un cru une anneacutee de production et un degreacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
42
Un viticulteur est caracteacuteriseacute par un numeacutero entier unique nvt un nom et une ville Un viticulteur produit un ou plusieurs vins et reacuteciproquement un vin est produit par un ou plusieurs
producteurs (eacuteventuellement aucun)
Les buveurs sont caracteacuteriseacutes par un numeacutero de buveur nb un nom preacutenom et une adresse (limiteacutee agrave
la ville pour simplifier)
Un buveur consomme des vins et peut passer des commandes pour acheter des vins
Question 1
Lister tous les types dobjet agrave consideacuterer les attributs associeacutes et les domaines de valeurs de ces attributs
Repeacuterer les eacuteventuelles cleacutes
Question 2
Lister toutes les associations agrave consideacuterer et indiquer leurs cardinaliteacutes
Question 3
Donner le diagramme UML de cette situation
3 Cours et intervenants
[20 min] On souhaite reacutealiser une base de donneacutees pour geacuterer les cours dispenseacutes dans une eacutecole dingeacutenieur ainsi
que les personnes qui interviennent dans ces cours
Chaque cours est identifieacute par une anneacutee et un numeacutero Chaque cours a donc un numeacutero unique localement
agrave chaque anneacutee Un cours possegravede un titre et un type (C pour Cours TD ou TP) Un cours possegravede
eacutegalement une date de deacutebut et une date de fin qui est toujours de 5 jours apregraves la date de deacutebut
Chaque intervenant est identifieacute par son nom (deux intervenants ne peuvent pas avoir le mecircme nom) Il a un
preacutenom un bureau un ou plusieurs numeacuteros de teacuteleacutephones (jusquagrave trois numeacuteros) et des speacutecialiteacutes Un
bureau est deacutefini par un centre (R pour Royallieu BF pour Benjamin Franklin et PG pour Pierre Guillaumat)
un bacirctiment (une lettre de A agrave Z) et un numeacutero (infeacuterieur agrave 1000) Les speacutecialiteacutes sont des couples de chaicircnes
de caractegraveres deacutesignant un domaine (par exemple BD) et une speacutecialiteacute (par exemple SGBDRO)
Chaque cours est donneacute par un unique intervenant
Voici un exemple Le cours Machines universelles ndeg21 de lanneacutee 2014 est donneacute par Alan Turing entre le
05012014 et le 10012014 Cest un cours de type C Alan Turing a le bureau 666 au bacirctiment X de PG Il
a les numeacuteros de teacuteleacutephone 0666666666 et 0766666666 Il possegravede les speacutecialiteacutes suivantes
Domaine Matheacutematique Speacutecialiteacute Cryptographie
Domaine Informatique Speacutecialiteacute Algorithmie
Domaine Informatique Speacutecialiteacute Intelligence Artificielle
Question
Reacutealiser le modegravele UML de la base de donneacutees Preacuteciser les cleacutes et les types des attributs
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
43
4 Gestion du personnel
[30 minutes] Le service de gestion du personnel dune entreprise deacutesire seacutequiper dun outil lui permettant de geacuterer
informatiquement ses employeacutes leurs salaires et leurs congeacutes Les speacutecifications suivantes ont pu ecirctre mises
en exergue par une analyse des besoins reacutealiseacutee aupregraves des utilisateurs du service du personnel
Geacuteneacuteraliteacutes
tout employeacute est identifieacute par un nom un preacutenom et une date de naissance
tout employeacute remplit une fonction et appartient agrave un service
pour chaque employeacute on gegravere la date dembauche et la quotiteacute (cest agrave dire le pourcentage de temps
travailleacute par rapport au temps plein en cas de travail agrave temps partiel)
Gestion des salaires
pour chaque employeacute on gegravere lhistorique de ses salaires dans lentreprise chaque salaire eacutetant affecteacute
agrave une peacuteriode de temps
un salaire est composeacute dun salaire brut de charges patronales et de charges salariales
on cherchera agrave partir des ces donneacutees agrave obtenir eacutegalement le salaire chargeacute (brut + charges patronales)
et le salaire net (brut - charges salariales) et ce en particulier pour le salaire en cours (celui que
touche actuellement le salarieacute)
Gestion des congeacutes
pour chaque employeacute on meacutemorise chaque congeacute pris (posant quun congeacute concerne toujours une ou
plusieurs journeacutees entiegraveres)
chaque employeacute a le droit aux jours de congeacutes suivants
- 25 jours (pour une quotiteacute de 1) et 25 x quotiteacute sinon - chaque fonction ouvre les droits agrave un certain nombre de jours de RTT - chaque service ouvre les droits agrave un certain nombre de jours de RTT - chaque tranche de 5 ans passeacutes dans lentreprise donne droit agrave 1 jour suppleacutementaire - les employeacutes de plus de 40 ans ont un jour suppleacutementaire et ceux de plus de 50 ans deux
pour chaque employeacute on cherchera agrave connaicirctre le nombre total de jours de congeacutes autoriseacutes le nombre
de jours pris et le nombre de jours restants sur lanneacutee en cours
Question
Reacutealiser le diagramme de classes permettant de modeacuteliser ce problegraveme
44
III - La modeacutelisation logique
relationnelle
A Cours
Le modegravele relationnel est aux fondements des SGBDR Il a eacuteteacute et continue decirctre le modegravele theacuteorique
dominant pour la repreacutesentation logique des base de donneacutees mecircme si le mouvement NoSQL propose des
alternatives
Le modegravele relationnel permet de reformuler le modegravele conceptuel dans un formalisme - le tableau - beaucoup
plus proche de limpleacutementation informatique bien quencore indeacutependant dune solution technologique
particuliegravere
1 Introduction au modegravele relationnel
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
III
La modeacutelisation logique relationnelle
45
a) Niveau logique Le niveau logique est le lien entre le niveau conceptuel et limpleacutementation effective de lapplication Le modegravele
conceptuel eacutetant un modegravele formel le modegravele logique a pour vocation decirctre eacutegalement un modegravele formel
mais speacutecifiant non plus la reacutealiteacute existante ou rechercheacutee comme le modegravele conceptuel mais les donneacutees
telles quelles vont exister dans lapplication informatique
Pour assumer cette fonction le modegravele relationnel [Codd70] sest imposeacute en reacuteaction aux insuffisances des
modegraveles anteacuterieurs les modegraveles hieacuterarchique et reacuteseau et de part la puissance de ses fondements
matheacutematiques Encore aujourdhui dominant le modegravele relationnel est un fondement indispensable agrave la
conception de bases de donneacutees
Ratptpel
Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
b) Deacutefinition du modegravele relationnel
Introduction
Le modegravele relationnel a eacuteteacute introduit par Codd [Codd70] en 1970 au laboratoire de recherche dIBM de San
Joseacute Il sagit dun modegravele simple et puissant agrave la base de la majoriteacute des bases de donneacutees encore aujourdhui
Les objectifs du modegravele relationnel formuleacutes par Codd sont les suivants
Assurer lindeacutependance des applications et de la repreacutesentation interne des donneacutees
Geacuterer les problegravemes de coheacuterence et de redondance des donneacutees
Utiliser des langages de donneacutees baseacutes sur des theacuteories solides
Deacutefinition Modegravele relationnel
On appelle modegravele relationnel un ensemble de concepts permettant de formaliser logiquement la description
darticles de fichiers plats indeacutependamment de la faccedilon dont ils sont physiquement stockeacutes dans une meacutemoire
numeacuterique
Le modegravele relationnel inclut des concepts pour la description de donneacutees ainsi que des concepts pour la
manipulation de donneacutees
Fondamental Repreacutesenter le monde en tables
Le modegravele relationnel permet de repreacutesenter les donneacutees que lon va geacuterer agrave laide dun tregraves petit
nombre de concepts tregraves simples
Les relations ou tables des lignes et des colonnes
Les domaines de valeurs chaque case dune table prend une unique valeur dans un
domaine preacute-deacutefini
Les cleacutes il existe des cases dont les valeurs doivent ecirctre uniques et non nulles
Les cleacutes eacutetrangegraveres il existe des cases qui doivent prendre une valeur existante dans les
cases dune autre table
La modeacutelisation logique relationnelle
46
Comtpleacutement Extension du modegravele relationnel
Le modegravele relationnel est un standard normaliseacute par lISO agrave travers son langage le SQL Il se veut neacuteanmoins
degraves lorigine extensible pour permettre de geacuterer des donneacutees plus complexes que les donneacutees tabulaires Le
modegravele relationnel-objet est neacute de cette extension
2 Les concepts fondamentaux du modegravele relationnel
atributs enregistrement domaine
a) Domaine
Deacutefinition Domaine
Ensemble caracteacuteriseacute par un nom dans lequel des donneacutees peuvent prendre leurs valeurs
Remarque Un domaine peut-ecirctre deacutefini en intension (cest agrave dire en deacutefinissant les proprieacuteteacutes caracteacuteristiques des
valeurs du domaine on parle aussi de compreacutehension) ou en extension (cest agrave dire en eacutenumeacuterant toutes
les valeurs du domaine)
Exemtple Domaines deacutefinis en intension
Tous les entiers
Les reacuteels infeacuterieur agrave 5
Les booleacuteen (vrai ou faux)
Toutes les chaicircnes de 1 agrave 255 caractegraveres
Les valeurs moneacutetaires deacutefinie comme des deacutecimaux avec deux chiffres apregraves la virgule
Les dates deacutefinies comme des chaicircnes de 10 caractegraveres comprenant des chiffres et des tirets selon le
patron 00-00-0000
Les salaires deacutefinis comme des valeurs moneacutetaires compris entre 15000 et 100000
Exemtple Domaines deacutefinis en extension
Couleur Bleu Vert Rouge Jaune Blanc Noir
SGBD Hieacuterarchique Reacuteseau Relationnel Objet Relationnel-Objet
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
La modeacutelisation logique relationnelle
47
b) Exercice Indiquez quelle deacutefinition et quel exemple correspondent respectivement aux mots intension et extension
1 - Le domaine des couleurs
2 - Eacutenonciation exhaustive de lensemble des objets du domaine
3 - bleu rouge vert
4 - Explicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa compreacutehension
abstraite geacuteneacuterale)
Intension Extension
c) Atribut et enregistrement
Deacutefinition Atribut
On appelle attribut dune relation une colonne de cette relation Un attribut est caracteacuteriseacute par un nom et un
domaine dans lequel il prend ses valeurs
Synonymes Champs Proprieacuteteacute Colonne
Deacutefinition Enregistrement
On appelle enregistrement dune relation une ligne de cette relation Un enregistrement prend une valeur
pour chaque attribut de la relation
Synonymes Tuple N-uplet Vecteur Ligne
La modeacutelisation logique relationnelle
48
Exemtple
A B
1 1
1 2
2 2
Tableau 5 Relation R
La relation R comporte les deux attributs A et B et les trois enregistrements lt11gt lt12gt et lt22gt
Remarque Atribut domaine ordre
Un attribut se distingue dun domaine car il peut ne comporter que certaines valeurs de ce domaine
Les colonnes de la relation ne sont pas ordonneacutees et elles ne sont donc repeacutereacutees que par le nom de lattribut
Remarque Valeur nulle
Un enregistrement peut ne pas avoir de valeur pour certains attributs de la relation parce que cette valeur
est inconnue ou inapplicable sa valeur est alors null
d) Exemple La relation Vol
Exemtple
Numero Compagnie Avion Deacutepart Arriveacutee Date
AF3245 Air France 747 Paris Oulan Bator 01shy08shy2002
AF6767 Air France A320 Paris Toulouse 30shy07shy2002
KLM234 KML 727 Paris Amsterdam 31shy07shy2002
Tableau 6 Relation Vol
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel
Objectifs
Connaicirctre les notions de cleacutes candidates naturelles artificielles primaire eacutetrangegravere
Aborder le principe deacuteclatement des relations et de nonredondance
La modeacutelisation logique relationnelle
49
a) Cleacute
Deacutefinition Cleacute
Une cleacute est un groupe dattributs minimum qui permet didentifier de faccedilon univoque un tuple dans une
relation
Fondamental
Toute relation doit comporter au moins une cleacute ce qui implique quune relation ne peut pas
contenir deux tuples identiques
Atention Atributs de cleacutes unique et non null Afin decirctre deacuteterminants pour lidentification dun enregistrement tous les attributs dune cleacute
doivent ecirctre valueacutes cest-agrave-dire quaucun ne peut avoir de valeur null Dire quun groupe
dattribut est une cleacute eacutequivaut agrave dire quil est unique et non null
Exemtple Numeacutero deacutetudiant
Le numeacutero deacutetudiant dune relation Etudiant est une bonne cleacute car il y aura systeacutematiquement une
valeur non nulle
Le groupe dattributs (nom preacutenom) dune relation Etudiant est en geacuteneacuteral une mauvaise cleacute car les
homonymes existent
b) Deacuteterminer les cleacutes
Deacutetermination dune cleacute
Deacutefinir un groupe dattributs comme eacutetant une cleacute neacutecessite une reacuteflexion seacutemantique sur les donneacutees
composant ces attributs afin de sassurer de leur uniciteacute
Fondamental
La deacutefinition des cleacutes est un acte de modeacutelisation elle ne renvoie pas donc pas agrave une veacuteriteacute
intangible mais agrave la reacutealiteacute telle quelle est repreacutesenteacutee dans le modegravele que lon eacutelabore
Exemtple
Lattribut numeacutero de seacutecuriteacute sociale dune relation personne peut paraicirctre une bonne cleacute a priori car son
uniciteacute est assureacutee Mais tout le monde nen dispose pas forceacutement (les enfants des eacutetrangers) donc ce nest
une cleacute que si lon considegravere des personnes affilieacutees agrave la seacutecuriteacute sociale
c) Cleacute primaire et cleacutes candidates
Deacutefinition Cleacute tprimaire
Si plusieurs cleacutes existent dans une relation on en choisit une parmi celles-ci Cette cleacute est appeleacutee cleacute
primaire
La modeacutelisation logique relationnelle
50
La cleacute primaire est geacuteneacuteralement choisie de faccedilon agrave ce quelle soit la plus simple cest agrave dire portant sur le
moins dattributs et sur les attributs de domaine les plus basiques (entiers ou chaicircnes courtes typiquement)
Deacutefinition Cleacutes candidates
On appelle cleacutes candidates lensemble des cleacutes dune relation qui nont pas eacuteteacute choisies comme cleacute primaire
(elles eacutetaient candidates agrave cette fonction)
d) Cleacute artificielle
Deacutefinition Cleacute artificielle
Sil est impossible de trouver une cleacute primaire ou que les cleacutes candidates sont trop complexes il est possible
de faire appel agrave une cleacute artificielle Une cleacute artificielle est un attribut suppleacutementaire ajouteacute au scheacutema de
la relation qui nest lieacute agrave aucune signification et qui sert uniquement agrave identifier de faccedilon unique les
enregistrements etou agrave simplifier les reacutefeacuterences de cleacutes eacutetrangegraveres
Deacutefinition Cleacute signifiante
Une cleacute est signifiante si elle nest pas artificielle
Synonyme Cleacute naturelle
Atention Cleacute artificielle et niveau logique
Au niveau du modegravele logique il faut eacuteviter la simpliciteacute consistant agrave identifier toutes les relations
avec des cleacutes artificielles et ne reacuteserver cet usage quaux cas particuliers
Conseil
1 Si au moins une cleacute naturelle composeacutee dun seul attribut existe en choisir une parmi celles-ci comme
cleacute primaire 2 Sinon choisir une cleacute naturelle composeacutee de plusieurs attributs si elle ne pose pas de problegraveme identifieacute 3 Toujours justifier lemploi dune cleacute artificielle (au niveau logique uniquement pour des raisons de
complexiteacute du modegravele les questions de performance sont eacutetudieacutees au niveau physique)
RemarqueCleacute artificielle et niveau tphysique eacutevolutiviteacute maintenance et tperformance
Au niveau de limpleacutementation physique par contre il est courant que des cleacutes artificielles soient utiliseacutees de
faccedilon systeacutematique
Du point de vue de leacutevolutiviteacute de la BD il existe toujours un risque quune cleacute nonartificielle perde
sa proprieacuteteacute duniciteacute ou de non-nulliteacute
Du point de vue de la maintenance de la BD il existe toujours un risque quune cleacute non-artificielle
voit sa valeur modifieacutee et dans ce cas la reacutepercution de ce changement pour mettre agrave jour toutes les
reacutefeacuterences peut poser problegraveme
Du point de vue de la performance de la BD les cleacutes non-artificielles ne sont pas en geacuteneacuteral optimiseacutees
en terme de type et de taille et donc peuvent limiter les performances dans le cadre des jointures
Preacutecisons neacuteanmoins quinversement les cleacutes artificielles ont pour conseacutequence de systeacutematiser des
jointures qui auraient pu ecirctre eacuteviteacutees avec des cleacutes primaires signifiantes
La modeacutelisation logique relationnelle
51
Exemtple Problegraveme deacutevolutiviteacute tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD franccedilaise elle ne permettra pas dentrer
un individu non-franccedilais issu dun pays ne disposant pas dun tel numeacutero
Exemtple Problegraveme de maintenance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD centrale dont les donneacutees sont exploiteacutees
par dautres tables dautres BD qui viennent piocher dans cette BD pour leurs propres usages sans que la
BD centrale ne connaisse ses clients Soit une erreur dans la saisie dun numeacutero de seacutecuriteacute sociale dans la
BD centrale si ce numeacutero est corrigeacute il faudrait (ce qui nest pas possible dans notre cas) impeacuterativement en
avertir toutes les bases utilisatrices pour quelles mettent agrave jour leurs reacutefeacuterences
Exemtple Problegraveme de tperformance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table comptant un million denregistrements ce numeacutero
est geacuteneacuteralement un nombre agrave 13 chiffres ou une chaicircne agrave 13 caractegraveres ce qui dans les deux cas est supeacuterieur
au nombre agrave 7 chiffres suffisant pour identifier tous les individus de la BD Les performances seront donc
toujours moins bonnes lors des jointures si une cleacute prend deux fois plus de place en meacutemoire que son
optimum Mais ajoutons que cette perte de performance na pas toujours de conseacutequence sur la reacutealiteacute
perceptible par les utilisateurs de la BD
Inversement soit une cleacute artificielle la cleacute primaire dune table T1 par ailleurs reacutefeacuterenceacutee par une autre table
T2 Soit le numeacutero de seacutecuriteacute sociale un attribut cleacute de T1 Si lon veut par requecircte disposer des informations
de T2 ainsi que du numeacutero de seacutecuriteacute sociale de T1 alors il faudra faire une jointure tandis que si ce numeacutero
signifiant avait eacuteteacute choisi comme cleacute primaire cela naurait pas eacuteteacute neacutecessaire
La modeacutelisation logique relationnelle
52
e) Cleacute eacutetrangegravere
Deacutefinition Cleacute eacutetrangegravere
Une cleacute eacutetrangegravere est un attribut ou un groupe dattributs dune relation R1 devant apparaicirctre comme cleacute
primaire dans une relation R2 afin de mateacuterialiser une reacutefeacuterence entre les tuples de R1 et les tuples de R2
Une cleacute eacutetrangegravere dun tuple reacutefeacuterence une cleacute primaire dun autre tuple
Atention
Seule une cleacute primaire peut ecirctre reacutefeacuterenceacutee par une cleacute eacutetrangegravere cest mecircme le seule fonction
de la cleacute primaire ecirctre la cleacute qui peut ecirctre reacutefeacuterenceacutee par les cleacutes eacutetrangegraveres
Deacutefinition Contrainte dinteacutegriteacute reacutefeacuterentielle
Une cleacute eacutetrangegravere respecte la contrainte dinteacutegriteacute reacutefeacuterentielle si sa valeur est effectivement existante dans
la cleacute primaire dun tuple de la relation reacutefeacuterenceacutee ou si sa valeur est null
Une cleacute eacutetrangegravere qui ne respecte pas la contrainte dinteacutegriteacute reacutefeacuterentielle exprime un lien vers un tuple qui
nexiste pas et donc nest pas coheacuterente
f) Reacutefeacuterence entre relations Le modegravele relationnel a pour objectif la structuration de donneacutees selon des relations Lenjeu est de parvenir
agrave traduire un modegravele conceptuel en modegravele logique relationnel Or il ny a pas de notion dassociation en
relationnel donc il faudra pouvoir traduire les associations avec les concepts dont on dispose relation cleacute
cleacute eacutetrangegravere
Afin de repreacutesenter des reacutefeacuterences entre relations dans un modegravele relationnel la seule solution est de stocker
linformation dans une relation et donc que certains attributs dune relation servent agrave pointer sur dautres
relations
Atention
Il ny a pas vraiment de reacutefeacuterence ou de lien en relationnel puisque nous ne disposons que de
tables de cleacutes de cleacutes eacutetrangegravere et de valeurs
On va donc devoir se servir de ces outils pour mateacuterialiser une notion de reacutefeacuterence
Meacutethode Reacutefeacuterence
La reacutefeacuterence entre deux tuples T1 et T2 de deux relations diffeacuterentes est exprimable par une valeur identique
entre une cleacute eacutetrangegravere du tuple T1 et la cleacute primaire de lautre tuple T2 Synonyme Lien Exemtple
R1 R2 a1 a2=gtR2 b1 b2
La modeacutelisation logique relationnelle
53
F
Image 13
Lattribut a2 de la relation R1 reacutefeacuterence lattribut b1 de la relation R2 car a2 est une cleacute eacutetrangegravere de R1 vers
R2 (b1 est la cleacute primaire de R2)
Ici on a donc par exemple les tuples identifieacutes par B et C de R1 qui reacutefeacuterencent le tuple identifieacute par 1 dans
R2
g) Scheacutema relationnel
Deacutefinition Scheacutema dune relation
Le scheacutema dune relation deacutefinit cette relation en intension Il est composeacute
du nom de la relation
de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs
de la cleacute primaire
des cleacutes eacutetrangegraveres
des cleacutes candidates
Deacutefinition Scheacutema relationnel dune base de donneacutee
Le scheacutema relationnel dune BD est la deacutefinition en intension de cette BD (par opposition agrave linstance de la
BD qui est une extension de la BD) Il est composeacute de lensemble des scheacutemas de chaque relation de la BD
Syntaxe Relation
Relation (Attribut1Domaine1 Attribut2Domaine2 AttributNDomaineN) 1
La relation Relation contient N attributs chacun deacutefini sur son domaine
Syntaxe Cleacute tprimaire
Relation (Attribut1Domaine1 AttributMDomaineM AttributNDomaineN)
1
La cleacute de la relation Relation est composeacutee des attributs Attribut1 agrave AttributM (attribut preacuteceacutedeacutes de ou
bien souligneacutes)
En geacuteneacuteral on note la cleacute primaire en premier dans la relation
Syntaxe Cleacute eacutetrangegravere
Relation1 ( AttributM=gtRelation2 AttributN=gtRelation2) 1
La relation Relation1 comporte une cleacute eacutetrangegravere (composeacutee des attributs AttributM agrave AttributN)
reacutefeacuterenccedilant la cleacute primaire de Relation2 Bien sucircr il peut exister plusieurs cleacutes eacutetrangegraveres vers plusieurs
La modeacutelisation logique relationnelle
54
relations distinctes Une cleacute eacutetrangegravere et sa cleacute primaire reacutefeacuterenceacutee sont toujours composeacutees du mecircme nombre
dattributs Il nest pas neacutecessaire de preacuteciser les domaines des attributs appartenant agrave la cleacute eacutetrangegravere car ce
sont forceacutement les mecircmes que ceux de la cleacute primaire reacutefeacuterenceacutee Il nest pas non plus en geacuteneacuteral neacutecessaire
de preacuteciser dans le scheacutema relationnel quels attributs de la cleacute eacutetrangegravere reacutefeacuterencent quels attributs de la cleacute
primaire (cela est geacuteneacuteralement eacutevident) mais il est possible de la faire on notant Attribut=gtRelationAttribut
En geacuteneacuteral on note les cleacutes eacutetrangegraveres en dernier dans la relation sauf pour les cleacutes eacutetrangegraveres qui font partie
de la cleacute primaire (cleacutes identifiantes)
Syntaxe Cleacute candidates
Relation1 (AttributMDomaineM ) avec AttributM cleacute 1
Les cleacutes candidates doivent ecirctre noteacutees sur le scheacutema relationnel
Sil ny a quune ou deux cleacutes candidates les noter directement apregraves la deacutefinition de la relation
Sil y a beaucoup de cleacutes pour ne pas trop alourdir la notation renvoyer agrave un tableau agrave part
Atention Cleacutes candidates et cleacute primaire
La notation R(ab) signifie toujours que R a comme cleacute primaire (ab) et non que R aurait
deux cleacutes a et b (dont on ne saurait pas laquelle est primaire)
La notation R(ab) avec b cleacute signifie bien que a et b sont deux cleacutes de R et que a est primaire
Il ne faut pas confondre une cleacute composeacutee de deux attributs avec deux cleacutes
h) Exemple de scheacutema relationnel pour la geacuteographie
Exemtple
Personne (NumeroEntier NomChaicircne PreacutenomChaicircne LieuNaissance=gtVille) Pays (NomChaicircne PopulationEntier SuperficieReacuteel Dirigeant=gtPersonne) Reacutegion (Pays=gtPays NomChaicircne Superficie Dirigeant=gtPersonne) Ville (CodePostalCP NomChaicircne Pays=gtReacutegionPays Reacutegion=gtReacutegionNom Dirigeant=gtPersonne)
1 2 3 4
Exemtple Exemtple dinstance de la base de donneacutees
Personne Num ero Nom Prenom LieuNaissance
1 Durand Pierre 60200 2 Dupont Marie 60200
Pays
Nom Population Superficie Dirig eant
France 60 50000101 2 Allemagne 80 60000023564 2 Espagne 40 3500001 1
La modeacutelisation logique relationnelle
55
Reacutegion Pays Nom Superficie Dirig eant France Picardie 50 1 Espagne Picardie 40 1 France Normandie 30 2
Ville CodePostal Nom Pays Reacuteg ion Dirig eant F60200 Compiegravegne France Picardie 1
F60300 Senlis France Picardie 2 F60301 Senlis France Picardie 2 E8000 Senlis Espagne Picardie 2
Le scheacutema relationnel preacuteceacutedent deacutecrit
Des personnes
Elles sont identifieacutees par un numeacutero qui est en fait une cleacute artificielle En effet mecircme une cleacute composeacutee
de tous les attributs (Nom Preacutenom LieuNaissance) laisse une possibiliteacute de doublons (homonymes
neacutes dans la mecircme ville)
La cleacute eacutetrangegravere LieuNaissance fait reacutefeacuterence agrave la relation Ville et plus preacuteciseacutement agrave sa cleacute primaire
CodePostal ce qui est est laisseacute implicite car eacutevident
Des pays
Ils sont identifieacutes par leur nom puisque deux pays ne peuvent avoir le mecircme nom Les pays sont
dirigeacutes par des personnes et ce lien est mateacuterialiseacute par la cleacute eacutetrangegravere Dirigeant
Des reacutegions
Elles font partie dun pays et ont un nom Deux reacutegions de pays diffeacuterents pouvant avoir le mecircme
nom il faut utiliser une cleacute primaire composeacutee agrave la fois du nom de la reacutegion et du nom du pays qui
est une cleacute eacutetrangegravere (le nom est appeleacute cleacute locale car il nest pas suffisant pour identifier un tuple de
la relation Reacutegion et la cleacute eacutetrangegravere vers la relation Pays est appeleacutee cleacute identifiante)
Des villes
Elles sont identifieacute par un code postal qui est unique dans le monde (en utilisant le preacutefixe de pays de
type F-60200) Ce code postal a pour domaine CP qui est une chaicircne composeacutee dune ou deux
lettres dun tiret puis dune seacuterie de chiffres
Le lien dappartenance entre une ville et une reacutegion est mateacuterialiseacute par la cleacute eacutetrangegravere composeacutee des
deux attributs Pays et Reacutegion Cette cleacute reacutefeacuterence la cleacute primaire de la relation Reacutegion eacutegalement composeacutee
de deux attributs Pour clairement expliciter les reacutefeacuterences (bien que seacutemantiquement la deacutenomination des
attributs ne laisse pas de place au doute) on utilise la syntaxe ReacutegionPays et ReacutegionNom
4 Synthegravese
a) Synthegravese Scheacutema relationnel
Scheacutema relationnel
Un scheacutema relationnel permet une formalisation dun modegravele logique
Relation ou table
La modeacutelisation logique relationnelle
56
Sous-ensemble dun produit carteacutesien -
Attribut ou colonne Prend ses valeurs dans un domaine
- Enregistrement ou ligne Pose une valeur (y compris la valeur null) pour chaque attribut
Cleacute
Groupe dattributs ayant un rocircle didentification au sein dun enregistrement - Cleacute candidate
Identifie de faccedilon unique un enregistrement - Cleacute primaire
Cleacute candidate choisie pour repreacutesenter un enregistrement pour sa faciliteacute dusage - Cleacute eacutetrangegravere
Reacutefeacuterence la cleacute primaire dun tuple dune autre relation pour exprimer un lien
b) Bibliographie commenteacutee sur le modegravele relationnel
Comtpleacutement Synthegraveses
SQL2 SQL3 applications agrave Oracle [Delmal01]
Une deacutefinition syntheacutetique et efficace du domaine relationnel relation domaine attribut cleacute inteacutegriteacute
opeacuterateurs (Premier chapitre)
5 Deacutefinition formelle dune relation
a) Produit carteacutesien
Deacutefinition Produit carteacutesien
Le produit carteacutesien noteacute X des domaines D1 D2 Dn noteacute D1 X D2 X X Dn est lensemble des
tuples (ou n-uplets ou vecteurs) ltV1V2Vngt tel que Vi est une valeur de Di et tel que toutes les
combinaisons de valeurs possibles sont exprimeacutees
Exemtple
D1 = A B C D2 = 1 2 3 D1 X D2 = ltA1gt ltA2gt ltA3gt ltB1gt ltB2gt ltB3gt ltC1gt ltC2gt ltC3gt
1 2 3
b) Relation
Deacutefinition Relation
Une relation sur les domaines D1 D2 Dn est un sous-ensemble du produit carteacutesien D1 X D2 X X Dn
Une relation est caracteacuteriseacutee par un nom Synonymes Table tableau
Syntaxe
La modeacutelisation logique relationnelle
57
On peut repreacutesenter la relation R sur les domaine D1 Dn par une table comportant une colonne pour
chaque domaine et une ligne pour chaque tuple de la relation
D1 Dn
V1 Vn
V1 Vn
Tableau 7 Relation R
Remarque
Une relation est deacutefinie en extension par leacutenumeacuteration des tuples la composant
B Exercices
1 Lab I-
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Dessiner des relations instancieacutees (en extension donc) remplies avec les donneacutees fournies en exemple
La modeacutelisation logique relationnelle
58
Question 2
Eacutecrivez le scheacutema relationnel (deacutefinition en intension donc) permettant de repreacutesenter une base de donneacutees
relationnelle pour le laboratoire
59
IV - Introduction au
passage
UMLRelationnel classes et
associations
A Cours
Afin de pouvoir impleacutementer une base de donneacutees il faut pouvoir traduire le modegravele conceptuel en modegravele
logique Cela signifie quil faut pouvoir convertir un modegravele UML en modegravele relationnel Les modegraveles
conceptuels sont suffisamment formels pour que ce passage soit systeacutematiseacute dans la plupart des cas
1 Transformation des classes et atributs
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
IV
Introduction au passage UML-Relationnel classes et associations
60
a) Transformation des classes
Meacutethode Classe
Pour chaque classe non abstraite
on creacutee une relation dont le scheacutema est celui de la classe
la cleacute primaire de cette relation est une des cleacutes de la classe
Classe1
Graphique 2 Classe
Classe1()
Remarque
Les classes abstraites sont ignoreacutees agrave ce stade et neacutetant pas instanciables ne donnent geacuteneacuteralement pas
lieu agrave la creacuteation de relation
b) Transformation des atributs
Meacutethode Atributs simtples
Pour chaque attribut eacuteleacutementaire et monovalueacute dune
classe on creacutee un attribut correspondant
Classe1
a key
b
Graphique 3 Attribut
Classe1(ab)
Meacutethode Atributs comtposites
Pour chaque attribut composite comprenant N sous-attributs dune classe
on creacutee N attributs correspondants
dont les noms sont la concateacutenation du nom de lattribut composite avec celui du sous attribut
Classe1
a key b -b1 -b2
Introduction au passage UML-Relationnel classes et associations
61
Graphique 4 Attribut composeacute
Classe1(ab_b1b_b2)
Meacutethode Atributs multivalueacutes
Pour chaque attribut multivalueacute b dune classe C
on creacutee une nouvelle relation RB
qui comprend un attribut monovalueacute correspondant agrave b
plus la cleacute de la relation repreacutesentant C
la cleacute de RB est la concateacutenation des deux attributs
Classe1
a key
b[110]
Graphique 5 Attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Meacutethode Atributs multivalueacutes (meacutethode alternative)
Dans le cas ougrave le nombre maximum de b est fini et petit on peut eacutegalement adopter la transformation
suivante
Classe1(ab1b2b3b4b5b6b7b8b9b10)
Si le nombre dattributs est infini (b[1]) cest impossible sil est trop grand ce nest pas souhaitable
Meacutethode Atributs comtposeacutes multivalueacutes
On combine les regravegles eacutenonceacutees pour les attributs composeacutes et pour les attributs multivalueacutes
Classe1
a key b [0N] -b1 -b2
Graphique 6 Attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
Ratptpel Voir aussi
Transformation des compositions - p102
Introduction au passage UML-Relationnel classes et associations
62
c) Transformation des atributs deacuteriveacutes et meacutethodes
Meacutethode Atributs deacuteriveacutes et meacutethodes
On ne repreacutesente pas en geacuteneacuteral les attributs deacuteriveacutes ni les meacutethodes dans le modegravele relationnel ils seront
calculeacutes dynamiquement soit par des proceacutedures internes agrave la BD (proceacutedures stockeacutees) soit par des
proceacutedures au niveau applicatif
Classe1
a key
b
m()
Graphique 7 Attribut deacuteriveacute et meacutethodes
Classe1(a)
Comtpleacutement Atribut deacuteriveacute stockeacutes
On peut deacutecider (pour des raisons de performance essentiellement) de repreacutesenter lattribut deacuteriveacute ou la
meacutethode comme sil sagissait dun attribut simple mais il sera neacutecessaire dans ce cas dajouter des
meacutecanismes de validation de contraintes dynamiques (avec des triggers par exemple) pour assurer que la
valeur stockeacutee eacutevolue en mecircme temps que les attributs sur lesquels le calcul deacuteriveacute porte
Notons quintroduire un attribut deacuteriveacute ou un reacutesultat de meacutethode dans le modegravele relationnel eacutequivaut agrave
introduire de la redondance ce qui est en geacuteneacuteral deacuteconseilleacute et ce qui doit ecirctre dans tous les cas controcircleacute
2 Transformation des associations
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
a) Transformation des associations 1N
Meacutethode
Pour chaque association binaire de type 1N
on ajoute agrave la relation cocircteacute N une cleacute eacutetrangegravere vers la relation cocircteacute 1
Classe1
01 association 0N
Classe2
a key
b c key
d
Graphique 8 Association 1N
Classe1(ab)
Introduction au passage UML-Relationnel classes et associations
63
Classe2(cda=gtClasse1)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations 1N - p103
b) Transformation des associations NM
Meacutethode
Pour chaque association binaire de type MN
on creacutee une nouvelle relation
composeacutee de cleacutes eacutetrangegraveres vers chaque relation associeacutee
et dont la cleacute primaire est la concateacutenation de ces cleacutes eacutetrangegraveres
Graphique 9 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations NM - p104
c) Transformation des associations 11 (approche simplifieacutee)
Meacutethode
La solution la plus simple et la plus geacuteneacuterale pour transformer une association 11 consiste agrave traiter cette
association 11 comme une association 1N puis agrave ajouter une contrainte UNIQUE sur la cleacute eacutetrangegravere pour
limiter la cardinaliteacute maximale agrave 1
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 10 Association 11
Classe1(abc=gtClasse2) avec c UNIQUE
Classe2(cd) ou
Introduction au passage UML-Relationnel classes et associations
64
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE
Remarque
Il existe toujours deux solutions selon que lon choisit une ou lautre relation pour accueillir la cleacute eacutetrangegravere
Selon la cardinaliteacute minimale un des deux choix peut ecirctre plus pertinent
Comtpleacutement
Il est parfois possible de choisir de fusionner les deux classes au sein dune seule relation plutocirct que dopter
pour une cleacute eacutetrangegravere
Comtpleacutement
Transformation des associations 11 (approche geacuteneacuterale) - p105
d) Transformation des classes dassociation
Meacutethode Classe dassociation NM
Graphique 11 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2ef)
Comtpleacutement Classe dassociation 1N
Les attributs de la classe dassociation sont ajouteacutes agrave la relation issue de la classe cocircteacute N
Comtpleacutement Classe dassociation 11
Les attributs de la classe dassociation sont ajouteacutes agrave la relation qui a eacuteteacute choisie pour recevoir la cleacute eacutetrangegravere
Si les deux classes ont eacuteteacute fusionneacutees en une seule relation les attributs sont ajouteacutes agrave celle-ci
a key b
Classe1
c key d
Classe2
0 N 0 N
e f
Cl-A ssoc
Introduction au passage UML-Relationnel classes et associations
65
B Exercices
1 Lab I+
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
Question 3
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 4
Dessiner des tableaux remplis avec les donneacutees fournies en exemple afin de montrer que le modegravele fonctionne
selon le besoin exprimeacute initialement On pourra mettre le premier mot seulement des descriptions pour gagner
du temps
Introduction au passage UML-Relationnel classes et associations
66
2 Usine de production
[30 minutes] Une usine cherche agrave modeacuteliser sa production de veacutehicules et de moteurs
Les veacutehicules sont identifieacutes par un numeacutero dimmatriculation alphanumeacuterique et caracteacuteriseacutes par une
couleur dont la deacutenomination est une chaicircne de caractegraveres Chaque veacutehicule peut comporter un
unique moteur etou un nombre quelconque de pneus
Chaque moteur est monteacute sur un et un seul veacutehicule et est identifieacute par un numeacutero de seacuterie Un moteur
est caracteacuteriseacute par une puissance en chevaux
Tout pneu est monteacute sur un unique veacutehicule et est identifieacute par un numeacutero de seacuterie Sa position est
deacutefinie localement sur ce veacutehicule et par rapport agrave lessieu Dn pour les pneus situeacute sur la droite de
lessieu et Gn pour les pneus situeacutes agrave gauche n repreacutesentant le numeacutero de lessieu (1 pour celui situeacute
devant 2 pour la deuxiegraveme rangeacutee etc) Un pneu est caracteacuteriseacute par un diamegravetre et une largeur en
pouces
Les moteurs les pneus et les veacutehicules sont fabriqueacutes sous une marque Les mecircmes marques peuvent
fabriquer indiffeacuteremment des moteurs des pneus etou des veacutehicules et un veacutehicule dune certaine
marque peut comporter un moteur etou des pneus de marque diffeacuterente
Question 1
Reacutealiser le modegravele UML de ce problegraveme en faisant apparaicirctre les domaines et les cleacutes
Question 2
Reacutealiser le passage au modegravele relationnel en faisant apparaicirctre les cleacutes primaires candidates et eacutetrangegraveres
Question 3
Dessiner les tableaux correspondant aux relations du modegravele Instancier au minimum deux veacutehicules et quatre
marques
Question 4
Donner quatre exemples denregistrements qui seront refuseacutes - eacutetant donneacutees les donneacutees deacutejagrave inseacutereacutees -
pour quatre raisons diffeacuterentes
contrainte de cleacute sur une cleacute primaire
contrainte de cleacute sur une cleacute candidate
contrainte dinteacutegriteacute reacutefeacuterentielle
contrainte de non nulliteacute
67
V - Creacuteation et
alimentation de bases
de donneacutees SQL
A Cours
1 Le langage SQL
Deacutefinition SQL
SQL (pour langage de requecirctes structureacute) est un langage deacuteclaratif destineacute agrave la manipulation de bases de
donneacutees au sein des SGBD et plus particuliegraverement des SGBDR
SQL LDD LCD LMD LCT
SQL est un langage deacuteclaratif il nest donc pas a proprement parleacute un langage de programmation mais plutocirct
une interface standard pour acceacuteder aux bases de donneacutees
Il est composeacute de quatre sous ensembles
Le Langage de Deacutefinition de Donneacutees (LDD ou en anglais DDL Data Definition
Language) pour creacuteer et supprimer des objets dans la base de donneacutees (tables contraintes dinteacutegriteacute
vues etc)
Exemple de commandes CREATE DROP ALTER
Le Langage de Controcircle de Donneacutees (LCD ou en anglais DCL Data Control Language) pour geacuterer les
droits sur les objets de la base (creacuteation des utilisateurs et affectation de leurs droits)
Exemple de commandes GRANT REVOKE
V
Creacuteation et alimentation de bases de donneacutees SQL
68
Le Langage de Manipulation de Donneacutees (LMD ou en anglais DML Data Manipulation
Language) pour la recherche linsertion la mise agrave jour et la suppression de donneacutees Le LMD est baseacute
sur les opeacuterateurs relationnels auxquels sont ajouteacutes des fonctions de calcul dagreacutegats et des
instructions pour reacutealiser les opeacuterations dinsertion mise agrave jour et suppression
Exemple de commandes INSERT UPDATE DELETE SELECT
Le Langage de Controcircle de Transaction (LCT ou en anglais TCL Transaction Control Language) pour
la gestion des transactions (validation ou annulation de modifications de donneacutees dans la BD)
Exemple de commandes COMMIT ROLLBACK
Fondamental Reacutefeacuterence SQL SQL-99 complete really
Gulutzan and Pelzer 1999 [Gulutzan and Pelzer 1999] httpsmariadbcomkbensql-99)2
Comtpleacutement Origine du SQL
Le modegravele relationnel a eacuteteacute inventeacute par EF Codd (Directeur de recherche du centre IBM de San Joseacute) en
1970 suite agrave quoi de nombreux langages ont fait leur apparition
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel2
IBM SystemR
IBM DB2
Ce sont ces langages qui ont donneacute naissance au standard SQL normaliseacute en 1986 au Eacutetats-Unis par lANSI
pour donner SQL86 (puis au niveau international par lISO en 1987)
Comtpleacutement Versions de SQL
SQL-86 (ou SQL-87) Version dorigine
SQL-89 (ou SQL-1) Ameacuteliorations mineures
SQL-92 (ou SQL-2) Extensions fonctionnelles majeures (types de donneacutees opeacuterations relationnelles
instruction LDD transactions etc
SQL-99 (ou SQL-3) Introduction du PSM (couche proceacutedurale sous forme de proceacutedure stockeacutees)
et du RO
SQL-2003 Extensions XML
SQL-2006 Ameacuteliorations mineures (pour XML notamment)
SQL-2008 Ameacuteliorations mineures (pour le RO notamment)
Remarque Version SQL et imtpleacutementations SGBD
Selon leur niveau dimpleacutementation de SQL les SGBD acceptent ou non certaines fonctions
Certains SGBD ayant entameacute certaines impleacutementations avant leur standardisation deacutefinitive ces
impleacutementations peuvent diffeacuterer de la norme
Creacuteation et alimentation de bases de donneacutees SQL
69
2 Creacuteer des tables en SQL (Langage de Deacutefinition de
Donneacutees)
Le LDD est la partie du langage SQL qui permet de creacuteer de faccedilon deacuteclarative les objets composant une
BD Il permet notamment la deacutefinition des scheacutemas des relations des contraintes dinteacutegriteacute des vues
Rappel Le code SQL peut ecirctre testeacute avec Db Discodbdiscocrztfr
2 - httpsmariadbcomkbensql-99
a) Lab I++
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
70
Question 2
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 3
Creacuteer une base de donneacutees en SQL correspondant au modegravele relationnel
Question 4
Inseacuterer les donneacutees fournies en exemple dans la base de donneacutees
b) Creacuteation de tables
Ratptpel
Quest ce que le SQL
Introduction
La creacuteation de table est le fondement de la creacuteation dune base de donneacutees en SQL
Deacutefinition Creacuteation de table
La creacuteation de table est la deacutefinition dun scheacutema de relation en intension par la speacutecification de tous les
attributs le composant avec leurs domaines respectifs
Syntaxe
CREATE TABLE nom_table ( nom_colonne1 domaine1 nom_colonne2 domaine2 nom_colonneN domaineN )
1 2 3 4 5 6
Exemtple
CREATE TABLE Personne ( Nom VARCHAR(25) Prenom VARCHAR(25) Age NUMERIC(3) )
1 2 3 4 5
Atention Contrainte dinteacutegriteacute
La deacutefinition des types nest pas suffisante pour deacutefinir un scheacutema relationnel il faut lui adjoindre
la deacutefinition de contraintes dinteacutegriteacute qui permette de poser les notions de cleacute dinteacutegriteacute
reacutefeacuterentielle de restriction de domaines etc
Creacuteation et alimentation de bases de donneacutees SQL
71
c) Domaines de donneacutees
Introduction
Un attribut dune relation est deacutefini pour un certain domaine ou type Les types de donneacutees disponibles en
SQL varient dun SGBD agrave lautre on peut neacuteanmoins citer un certain nombre de types standards que lon
retrouve dans tous les SGBD
Fondamental Les types standard
INTEGER ou INT SMALLINT
NUMERIC(X)
DECIMAL(XY) ou NUMERIC(XY)
FLOAT(X) REAL
CHAR(X)
VARCHAR(X)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HHMMSS)
Les tytpes numeacuteriques standard
Les nombres entiers
INTEGER (ou INT) et SMALLINT permettent de coder des entiers sur 4 octets (2147483648 agrave
2147483647) ou 2 octets (-32768 agrave 32767)
Les nombres entiers
NUMERIC(X) deacutesigne un entier de X chiffres au maximum
Les nombres deacutecimaux
DECIMAL(XY) ougrave X et Y sont optionnels et deacutesignent respectivement le nombre de chiffres maximum
pouvant composer le nombre et le nombre de chiffres apregraves la virgule
NUMERIC(XY) est un synonyme standard
Les nombres agrave virgule flottante
FLOAT(X) avec X deacutefinissant la preacutecision (nombre de bits de codage de la mantisse)
REAL est un synonyme standard de FLOAT(24)
Conseil FLOAT versus DECIMAL
Il est conseilleacute dutiliser DECIMAL qui est un nombre exact plutocirct que FLOAT qui est un nombre approximatif
si la preacutecision requise est suffisante FLOAT sera reacuteserveacute typiquement agrave des calculs scientifiques neacutecessitant
un degreacute de preacutecision supeacuterieur
Les tytpes chaicircne de caractegraveres standard
On distingue principalement les types CHAR(X) et VARCHAR(X) ougrave X est obligatoire et deacutesigne la longueur de
la chaicircne
CHAR deacutefinit des chaicircnes de longueur fixe (compleacuteteacutee agrave droites par des espaces si la longueur est
infeacuterieure agrave X)
et VARCHAR des chaicircnes de longueurs variables
Creacuteation et alimentation de bases de donneacutees SQL
72
CHAR et VARCHAR sont geacuteneacuteralement limiteacutes agrave 255 caractegraveres La plupart des SGBD proposent des types tels
que TEXT ou CLOB (Character Long Object) pour repreacutesenter des chaicircnes de caractegraveres longues jusquagrave
65000 caractegraveres par exemple
Les tytpes date standard
Les types date dont introduits avec la norme SQL2 On distingue
DATE qui repreacutesente une date selon un format de type AAAA-MM-JJ
et DATETIME qui repreacutesente une date plus une heure dans un format tel que AAAAMM-JJ HHMMSS
Comtpleacutement Les autres tytpes
En fonction du SGBD il peut exister de nombreux autres types On peut citer par exemple
MONEY pour repreacutesenter des deacutecimaux associeacutes agrave une monnaie
BOOLEAN pour repreacutesenter des booleacuteens
BLOB (pour Binary Long Oject) pour repreacutesenter des donneacutees binaires tels que des documents
multimeacutedia (images bitmap videacuteo etc)
d) La valeur NULL Labsence de valeur repreacutesenteacutee par la valeur NULL est une information fondamentale en SQL quil ne faut
pas confondre avec la chaicircne espace de caractegravere ougrave bien la valeur 0 Il ne sagit pas dun type agrave proprement
parler mais dune valeur possible dans tous les types
Fondamental
Par deacutefaut en SQL NULL fait partie du domaine il faut lexclure explicitement par la clause NOT
NULL apregraves la deacutefinition de type si on ne le souhaite pas Syntaxe
CREATE TABLE nom de table ( 1
CREATE TABLE nom_table ( nom_colonne1 domaine1 NOT NULL
nom_colonne2 domaine2
nom_colonneN domaineN NOT NULL )
2 3 4 5 6 7
e) Contraintes dinteacutegriteacute
Fondamental
PRIMARY KEY (ltliste dattibutsgt)
UNIQUE (ltliste dattibutsgt)
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt)
CHECK (ltconditiongt)
Une contrainte dinteacutegriteacute est une regravegle qui deacutefinit la coheacuterence dune donneacutee ou dun ensemble de donneacutees
de la
Creacuteation et alimentation de bases de donneacutees SQL
73
BD
Il existe deux types de contraintes
sur une colonne unique
ou sur une table lorsque la contrainte porte sur une ou plusieurs colonnes
Les contraintes sont deacutefinies au moment de la creacuteation des tables
Deacutefinition Contraintes dinteacutegriteacute sur une colonne
Les contraintes dinteacutegriteacute sur une colonne sont
PRIMARY KEY deacutefinit lattribut comme la cleacute primaire
UNIQUE interdit que deux tuples de la relation aient la mecircme valeur pour lattribut
REFERENCES ltnom tablegt (ltnom colonnesgt) controcircle linteacutegriteacute reacutefeacuterentielle entre lattribut et la
table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur de lattribut speacutecifieacute dans la condition dans le
cadre dune restriction de domaine
Deacutefinition Contraintes dinteacutegriteacute sur une table
Les contraintes dinteacutegriteacute sur une table sont
PRIMARY KEY (ltliste dattibutsgt) deacutefinit les attributs de la liste comme la cleacute primaire
UNIQUE (ltliste dattibutsgt) interdit que deux tuples de la relation aient les mecircmes valeurs pour
lensemble des attributs de la liste
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt) controcircle linteacutegriteacute
reacutefeacuterentielle entre les attributs de la liste et la table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur des attributs speacutecifieacutes dans la condition dans le
cadre dune restriction de domaine Syntaxe
CREATE TABLE nom de table ( CREATE TABLE nom_table ( nom_colonne1 domaine1 ltcontraintes colonne1gt nom_colonne2 domaine2 ltcontraintes colonne2gt nom_colonneN domaineN ltcontraintes colonneNgt
1 2 3 4 5 6
ltcontraintes de tablegt )
7 8
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) UNIQUE
(Nom Prenom) )
1 2 3 4 5 6 7 8
Remarque Cleacute candidate
La clause UNIQUE NOT NULL sur un attribut ou un groupe dattributs deacutefinit une cleacute candidate non primaire
Creacuteation et alimentation de bases de donneacutees SQL
74
Remarque
Les contraintes sur une colonne et sur une table peuvent ecirctre combineacutees dans la deacutefinition dun mecircme scheacutema
de relation
Remarque
Une contrainte sur une colonne peut toujours ecirctre remplaceacutee par une contrainte sur une table
f) Exemple de contraintes dinteacutegriteacute
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) Codepostal INTEGER(5) Pays VARCHAR(50) UNIQUE (Nom Prenom) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) CHECK (Initiale = LEFT(Pays 1)) PRIMARY KEY (CP Pays) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
Dans la deacutefinition de scheacutema preacuteceacutedente on a poseacute les contraintes suivantes
La cleacute primaire de Personne est NdegSS et la cleacute primaire de Adresse est (CP Pays)
Nom Preacutenom ne peuvent pas ecirctre null et (Nom Preacutenom) est une cleacute
Age doit ecirctre compris entre 18 et 65 et Initiale doit ecirctre la premiegravere lettre de Pays (avec la fonction
LEFT qui renvoie la sous chaicircne agrave gauche de la chaicircne passeacutee en premier argument sur le nombre de
caractegraveres passeacutes en second argument)
Mariage est cleacute eacutetrangegravere vers Personne et (Codepostal Pays) est une cleacute eacutetrangegravere vers Adresse
Exemtple Reacuteeacutecriture avec uniquement des contraintes de table
Creacuteation et alimentation de bases de donneacutees SQL
75
CREATE TABLE Personne ( NdegSS CHAR(13) Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) Mariage CHAR(13) Codepostal INTEGER(5) Pays VARCHAR(50) PRIMARY KEY (NdegSS) UNIQUE (Nom Prenom) CHECK (Age BETWEEN 18 AND 65) FOREIGN KEY (Mariage) REFERENCES Personne(NdegSS) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) PRIMARY KEY (CP Pays) CHECK
(Initiale = LEFT(Pays 1)) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22
Ce scheacutema est strictement le mecircme que le preacuteceacutedent simplement les contraintes ont toutes eacuteteacute reacuteeacutecrites
comme des contraintes de table
g) Exercice Les instructions SQL ci-apregraves ont-elles pu permettre de creacuteer le scheacutema des trois relations instancieacutees ci-dessous
CREATE TABLE A ( A1 CHAR(255) A2 CHAR(255) A3 CHAR(255) A4 CHAR(255) ) CREATE TABLE B ( B1 CHAR(255) B2 CHAR(255) B3 CHAR(255) B4 CHAR(255) B5 CHAR(255) B6 CHAR(255) B7 CHAR(255) ) CREATE TABLE C ( C1 CHAR(255) C2 CHAR(255) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Oui
Non
Creacuteation et alimentation de bases de donneacutees SQL
76
3 Inseacuterer modifier et supprimer des donneacutees en SQL
(Langage de Manipulation de Donneacutees)
Objectifs
Maicirctriser les bases du SQL pour entrer modifier et effacer des donneacutees dans les
tables
a) Exercice Quelle valeur renvoie la derniegravere instruction SQL de la liste ci-dessous
CREATE TABLE t ( a integer b integer c integer)
INSERT INTO t VALUES (0 0 0)
INSERT INTO t VALUES (1 0 0)
INSERT INTO t SELECT FROM t
SELECT sum(a) + count(b) FROM t
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
b) Insertion de donneacutees Le langage SQL fournit des instructions pour ajouter des nouveaux tuples agrave une relation Il offre ainsi une
interface standard pour ajouter des information dans une base de donneacutees
Il existe deux moyens dajouter des donneacutees soit par fourniture directe des valeurs des proprieacuteteacutes du tuple agrave
ajouter soit par seacutelection des tuples agrave ajouter dans une autre relation
Syntaxe Insertion directe de valeurs
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) VALUES (ltListe ordonneacutee
des valeurs agrave affecter aux proprieacuteteacutes speacutecifieacutees cidessusgt) 1 2
Exemtple Insertion directe de valeurs
INSERT INTO Virement (Date Montant Objet) VALUES (14-07-1975 1000 Prime de naissance)
1 2
Syntaxe Insertion de valeurs tpar lintermeacutediaire dune seacutelection
Creacuteation et alimentation de bases de donneacutees SQL
77
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) SELECT 1 2
Linstruction SELECT projetant un nombre de proprieacuteteacutes identiques aux proprieacuteteacutes agrave valoriser
Exemtple Insertion de valeurs tpar lintermeacutediaire dune seacutelection
INSERT INTO Credit (Date Montant Objet) SELECT Date Montant Annulation de deacutebit FROM Debit WHERE DebitDate = 25-12-2001
1 2 3 4
Dans cet exemple tous les deacutebits effectueacutes le 25 deacutecembre 2001 sont re-creacutediteacutes pour le mecircme montant (et
agrave la mecircme date) avec la mention annulation dans lobjet du creacutedit Ceci pourrait typiquement reacutealiseacute en cas
de deacutebits erroneacutes ce jour lagrave
Remarque
Les proprieacuteteacutes non valoriseacutees sont affecteacutees agrave la valeur NULL
Il est possible de ne pas speacutecifier les proprieacuteteacutes agrave valoriser dans ce cas toutes les proprieacuteteacutes de la
relation seront consideacutereacutees dans leur ordre de deacutefinition dans la relation (agrave nutiliser que dans les cas
les plus simples)
c) Mise agrave jour de donneacutees Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation
Syntaxe Mise agrave jour directe de valeurs
1 UPDATE ltNom de la relationgt
2 SET ltListe daffectations Proprieacuteteacute=Valeur Proprieacuteteacute=Valeurgt 3 WHERE ltCondition pour filtrer les tuples agrave mettre agrave jourgt
1 UPDATE r
2 SET a=1 b=x 3 WHERE c=0
Exemtple Mise agrave jour directe de valeurs
UPDATE Compte SET Monnaie=Euro WHERE Monnaie=Franc
1 2 3
Exemtple Mise agrave jour tpar calcul sur lancienne valeur
UPDATE Compte SET Total=Total 655957 WHERE Monnaie=Euro
1 2 3
Creacuteation et alimentation de bases de donneacutees SQL
78
d) Suppression de donneacutees Le langage SQL fournit une instruction pour supprimer des tuples existants dans une relation
Syntaxe
DELETE FROM ltNom de la relationgt WHERE ltCondition pour filtrer les tuples agrave supprimergt
1 2
Exemtple Sutptpression de tous les tutples dune relation
DELETE FROM FaussesFactures 1
Exemtple Sutptpression seacutelective
DELETE FROM FaussesFactures WHERE Auteur=Moi
1 2
4 Supprimer et modifier des tables en SQL (Langage de
Deacutefinition de Donneacutees)
Le LDD permet de creacuteer les objets composant une BD de faccedilon deacuteclarative Il permet notamment la
deacutefinition des scheacutemas des relations la deacutefinition des contraintes dinteacutegriteacute la deacutefinition de vues
relationnelles
a) Suppression dobjets Il est possible de supprimer des objets de la BD tels que les tables ou les vues
Syntaxe
DROP lttype objetgt ltnom objetgt 1
Exemtple
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
79
DROP TABLE Personne DROP VIEW Employe
1 2
b) Modification de tables
Introduction
Linstruction ALTER TABLE permet de modifier la deacutefinition dune table (colonnes ou contraintes) preacutealablement
creacuteeacutee
Cette commande absente de SQL-89 est normaliseacutee dans SQL-92
Syntaxe Ajout de colonne
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de colonnegt
1 2
Syntaxe Sutptpression de colonne
ALTER TABLE ltnom de tablegt DROP ltnom de colonnegt
1 2
Syntaxe Ajout de contrainte
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de contrainte de tablegt
1 2
RemarqueModification de table sans donneacutee sans la commande ALTER
Pour modifier une table ne contenant pas encore de donneacutee la commande ALTER nest pas indispensable
lon peut supprimer la table agrave modifier (DROP) et la recreacuteer telle quon la souhaite Notons neacuteanmoins que si
la table est reacutefeacuterenceacutee par des clauses FOREIGN KEY cette suppression sera plus compliqueacutee car il faudra
eacutegalement supprimer et recreacuteer les tables reacutefeacuterenccedilantes (ce qui ce complique encore si ces derniegraveres
contiennent des donneacutees)
RemarqueModification de table avec donneacutees sans la commande ALTER
Pour modifier une table contenant des donneacutees la commande ALTER nest pas indispensable On peut en effet
1 Copier les donneacutees dans une table temporaire de mecircme scheacutema que la table agrave modifier
2 Supprimer et recreacuteer la table agrave modifier avec le nouveau scheacutema 3 Copier les donneacutees depuis la table temporaire vers la table modifieacutee
c) Exemple de modifications de tables
Table initiale
Soit une table initiale telle que deacutefinie ci-apregraves
Creacuteation et alimentation de bases de donneacutees SQL
80
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) prenom
VARCHAR(50) PRIMARY KEY
(pk_n) )
1 2 3 4 5 6
Modifications
On deacutecide dapporter les ameacutenagements suivants agrave la table on deacutefinit nom comme UNIQUE et on supprime
le champ prenom
ALTER TABLE Personne ADD UNIQUE (nom)
ALTER TABLE Personne DROP prenom
1 2 3 4 5
Table finale
La table obtenue apregraves modification est identique agrave la table qui aurait eacuteteacute deacutefinie directement telle que ci-
apregraves
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) PRIMARY KEY (pk_n) UNIQUE
(nom) )
1 2 3 4 5 6
B Exercices
1 The show
[30 minutes] Soit le scheacutema relationnel suivant deacutecrivant un systegraveme de reacuteservations de places de spectacles
SPECTACLE (nospectacleint nomstr dureacuteeint typetheacuteacirctre|danse|concert) SALLE (nosalleint nbplacesint) REPRESENTATION (datedate nospectacle=gtSPECTACLE nosalle=gtSALLE prixdecimal)
1 2 3
En faisant les suppositions suivantes
On gegravere un espace de spectacles ayant un ensemble de salles (deacutecrit par la relation SALLE)
On suppose que pour un jour donneacute et une salle donneacutee il ny a quun seul spectacle repreacutesenteacute
Question 1
Retro-concevoir le MCD en UML
Question 2
Proposer des contraintes dinteacutegriteacute reacutealistes pour ce scheacutema (en franccedilais)
Question 3
Creacuteation et alimentation de bases de donneacutees SQL
81
Proposer une deacutefinition du scheacutema en SQL qui prenne en compte certaines de ces contraintes
Question 4
Inseacuterer des donneacutees reacutealistes dans votre scheacutema afin de veacuterifier son bon fonctionnement
2 Du producteur au consommateur
[30 min] Soit le modegravele relationnel suivant
Producteur(raison_socialechaicircne(25) villechaicircne(255)) Consommateur(loginchaicircne(10)
emailchaicircne(50) nomchaicircne(50)prenomchaicircne(50) villechaicircne(255)) Produit(identier descriptionchaicircne(100) produit-par=gtProducteur consommepar-
login=gtConsommateur consomme-par-email=gtConsommateur)
1 2
3
On ajoute que
(nomprenomville) est une cleacute candidate de Consommateur
Tous les produits sont produits
Tous les produits ne sont pas consommeacutes
Question 1
Reacutetro-concevez le modegravele conceptuel sous-jacent agrave ce modegravele relationnel
Question 2
Eacutetablissez le code LDD standard permettant dimpleacutementer ce modegravele en SQL
Question 3
Inseacuterez les donneacutees dans votre base de donneacutees correspondant aux assertions suivantes
Lentreprise de Compiegravegne Pommes Picardes SARL a produit 4 lots de pommes et 2 lots de cidre
Il existe trois utilisateurs consommateurs dans la base donc les adresses mails sont
AlUncompiegnefr - BobDeuxcompiegnefr - CharlieTroiscompiegnefr
Ce sont des employeacutes de la ville de Compiegravegne qui habitent cette ville Leur mail est construit sur le
modegravele PrenomNomcompiegnefr Leur login est leur preacutenom
Question 4
Modifiez les donneacutees de votre base de donneacutees pour inteacutegrer les assertions suivantes
1 lots de pommes a eacuteteacute consommeacutes par Al Un
2 lots de pomme ont eacuteteacute consommeacute par Bob Deux
Tous les lots de cidre ont eacuteteacute consommeacutes par Al Un
Question 5
Charlie Trois nayant rien consommeacute modifiez votre base de donneacutees afin de le supprimer de la base
82
VI - Algegravebre relationnelle
A Cours
1 Opeacuterateurs fondamentaux projection restriction et
jointure
Objectifs
Connaicirctre et savoir utiliser les opeacuterateurs relationnels de projection restriction
produit et jointure
a) Introduction La repreacutesentation dinformation sous forme relationnelle est inteacuteressante car les fondements matheacutematiques
du relationnel outre quils permettent une modeacutelisation logique simple et puissante fournissent eacutegalement
un ensemble de concepts pour manipuler formellement linformation ainsi modeacuteliseacutee
Ainsi une algegravebre relationnelle sous forme dun ensemble dopeacuterations formelles permet dexprimer des
questions ou requecirctes poseacutees agrave une repreacutesentation relationnelle sous forme dexpressions algeacutebriques
Lalgegravebre relationnelle est composeacutee par les cinq opeacuterateurs de base et les trois opeacuterateurs additionnels
suivants
Opeacuterateurs de base
- Union - Diffeacuterence - Projection - Restriction
VI
Algegravebre relationnelle
83
- Produit carteacutesien
Opeacuterateurs additionels
- Intersection - Jointure - Division
Fondamental Algegravebre relationnelle et SQL
Les questions formuleacutees en algegravebre relationnelle sont la base des questions formuleacutees en SQL
pour interroger une base de donneacutees relationnelle
b) Employeacutes et deacutepartements
[30 minutes] Soit les deux relations EMP et DEPT ci-apregraves
EMP (ENO ENOM PROF SAL COMM DNO=gtDEPT(DNO)) DEPT (DNO DNOM DIR=gtEMP(ENO) VILLE)
1 2
ENO numeacutero demployeacute cleacute
ENOM nom de lemployeacute
PROF profession (directeur nest pas une profession)
SAL salaire
COMM commission (un employeacute peut ne pas avoir de commission)
DNO numeacutero de deacutepartement auquel appartient lemployeacute
DNO numeacutero de deacutepartement cleacute
DNOM nom du deacutepartement
DIR numeacutero demployeacute du directeur du deacutepartement
VILLE lieu du deacutepartement (ville)
Eacutecrire en algegravebre relationnelle les requecirctes permettant dobtenir les informations suivantes
Question 1
Lister les employeacutes ayant des revenus supeacuterieurs agrave 10000 euros
Question 2
Trouver le nom et la profession de lemployeacute numeacutero 10
Question 3
Lister les noms des employeacutes qui travaillent agrave Paris
Question 4
Trouver le nom du directeur du deacutepartement Commercial
Question 5
Trouver les professions des directeurs des deacutepartements
Question 6
Algegravebre relationnelle
84
Trouver le nom des directeurs de deacutepartement ayant comme profession Ingeacutenieur
c) Projection
Deacutefinition Projection
La projection est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La projection de R1 sur
une partie de ses attributs A1 A2 produit une relation R2 dont le scheacutema est restreint aux attributs
mentionneacutes en opeacuterande comportant les mecircmes tuples que R1 et dont les doublons sont eacutelimineacutes
Remarque Eacutelimination des doublons
Apregraves suppression dune partie des attributs du scheacutema la relation peut comporter des doublons Eacutetant donneacute
que lon ne pourrait plus identifier ces doublons les uns par rapport aux autres la seule solution senseacutee est
donc de consideacuterer que deux doublons sont eacutequivalents et donc de nen garder quun seul dans la relation
reacutesultante
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Dupont Pierre 20
Durand Jean 30
Tableau 8 Personne
Soit lopeacuteration suivante
R = Projection (Personne Nom Age) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont 20
Durand 30
Tableau 9 R
d) Restriction
Deacutefinition Restriction
La restriction est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La restriction de R1 eacutetant
donneacutee une condition C produit une relation R2 de mecircme scheacutema que R1 et dont les tuples sont les tuples
de R1 veacuterifiant la condition C
Algegravebre relationnelle
85
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Soit les tuples suivants
Dupont Pierre 20
Durand Jean 30
Tableau 10 Personne
Soit lopeacuteration suivante
R = Restriction (Personne Agegt25) 1
On obtient alors la relation R composeacutee de lunique tuple restant suivant
Durand Jean 30
Tableau 11 R
e) Produit
Deacutefinition Produit carteacutesien
Le produit carteacutesien est une opeacuteration binaire (cest agrave dire portant sur deux relations) Le produit de R1 par
R2 (eacutequivalent au produit de R2 par R1) produit une relation R3 ayant pour scheacutema la juxtaposition de ceux
des relations R1 et R2 et pour tuples lensemble des combinaisons possibles entre les tuples de R1 et ceux de
R2 Synonymes Produit
Remarque
Le nombre de tuples reacutesultant du produit de R1 par R2 est eacutegal au nombre de tuples de R1 fois le nombre de
tuples de R2
Remarque
Le nombre de colonne du produit de R1 par R2 est eacutegal au nombre de colonne de R1 plus le nombre de
colonnes de R2
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Algegravebre relationnelle
86
Durand Jean 30
Tableau 12 Homme
Tesla Model X
Citroeumln 2 CV
Tableau 13 Voiture
Soit lopeacuteration suivante
R = Produit (Homme Voiture) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X
Dupont Pierre 20 Citroeumln 2 CV
Durand Jean 30 Tesla Model X
Durand Jean 30 Citroeumln 2 CV
Tableau 14 R
Remarque
Le produit carteacutesien est rarement utiliseacute seul mais il est agrave la base de la jointure
f) Jointure
Deacutefinition Jointure
La jointure est une opeacuteration binaire (cest agrave dire portant sur deux relations) La jointure de R1 et R2 eacutetant
donneacute une condition C portant sur des attributs de R1 et de R2 de mecircme domaine produit une relation R3
ayant pour scheacutema la juxtaposition de ceux des relations R1 et R2 et pour tuples lensemble de ceux obtenus
par concateacutenation des tuples de R1 et de R2 et qui veacuterifient la condition C
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 15 Homme
Algegravebre relationnelle
87
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV Dupont
Tableau 16 Voiture
Soit lopeacuteration suivante
R = Jointure (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Dupont Pierre 20 Citroeumln 3 CV Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Tableau 17 R
(Dupont Pierre 20 Dupont Georges 1) (Dupont Pierre 20 Dupont Jacques 3)
1 2
Fondamental
La jointure est lopeacuteration qui permet de rassembler les informations seacutepareacutees entre plusieurs
tables et reacutefeacuterenceacutees par des cleacutes eacutetrangegraveres
Remarque Otpeacuteration additionnelle
La jointure nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit et la restriction
g) Exercice Quelles sont les expressions relationnelles eacutequivalentes agrave
Projection ( Jointure (R1 R2 R1A1=R2A1) R1A1 R2A2) 1
Jointure ( Projection(R1 A1) Projection(R2 A2) R1A1=R2A1)
Projection ( Jointure (R2 R1 R2A1=R1A1) R1A1 R2A2)
Projection ( Restriction ( Produit(R1 R2) R1A1=R2A1) R1A1 R2A2)
Produit (R1 R2 R1A1=R2A1 R1A1 R2A2)
Algegravebre relationnelle
88
2 Opeacuterateurs compleacutementaires
a) Jointure naturelle
Deacutefinition Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition est leacutegaliteacute entre les attributs
de mecircme nom de R1 et de R2 Il est donc inutile de speacutecifier la condition dans une jointure naturelle elle
reste toujours implicite
Exemtple
Soit deux relations R1 (A B C) et R2 (A D) lopeacuteration Jointure(R1R2R1A=R2A) est eacutequivalente agrave
lopeacuteration JointureNaturelle(R1R2)
Remarque
Pour appliquer une jointure naturelle il faut que les deux relations opeacuterandes aient au moins un attribut ayant
le mecircme nom en commun
b) Jointure externe
Introduction
La jointure est une opeacuteration qui entraicircne la perte de certains tuples ceux qui appartiennent agrave une des deux
relations opeacuterandes et qui nont pas de correspondance dans lautre relation Il est neacutecessaire dans certains
cas de palier cette lacune et lon introduit pour cela la notion de jointure externe
Deacutefinition Jointure externe
La jointure externe entre R1 et R2 est une jointure qui produit une relation R3 agrave laquelle on ajoute les tuples
de R1 et de R2 exclus par la jointure en compleacutetant avec des valeurs nulles pour les attributs de lautre
relation
Deacutefinition Jointure externe gauche
La jointure externe gauche entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les
tuples de R1 (cest agrave dire la relation de gauche) ayant eacuteteacute exclus
Synonymes Jointure gauche
Deacutefinition Jointure externe droite
Objectifs
Maicirctriser lalgegravebre relationnelle
Algegravebre relationnelle
89
La jointure externe droite entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les tuples
de R2 (cest agrave dire la relation de droite) ayant eacuteteacute exclus
Bien entendu une jointure externe droite peut ecirctre reacuteeacutecrite par une jointure externe gauche (et
reacuteciproquement) en substituant les relations opeacuterandes R1 et R2
Synonymes Jointure droite
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Martin Georges 40
Tableau 18 Homme
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV NULL
Tableau 19 Voiture
Soit lopeacuteration suivante
R = JointureExterne (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Martin Georges 40 NULL NULL NULL
NULL NULL NULL Citroeumln 3 CV NULL
Tableau 20 R
Une jointure externe gauche naurait renvoyeacute que les trois premiers tuples et une jointure externe droite
naurait renvoyeacutee que les deux premiers et le dernier tuple
Algegravebre relationnelle
90
c) Opeacuterateurs ensemblistes
Atention Les opeacuterateurs ensemblistes sont des relations binaires (cest agrave dire entre deux relations) portant
sur des relations de mecircme scheacutema
Deacutefinition Union
Lunion de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee de
lensemble des tuples appartenant agrave R1 etou agrave R2
Deacutefinition Difeacuterence
La diffeacuterence entre deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema
constitueacutee de lensemble des tuples de R1 nappartenant pas agrave R2 Notons que la diffeacuterence entre R1 et R2
nest pas eacutegale agrave la diffeacuterence entre R2 et R1
Deacutefinition Intersection
Lintersection de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee
de lensemble des tuples appartenant agrave la fois agrave R1 et agrave R2 Notons que lintersection nest pas une opeacuteration
de base car elle est eacutequivalent agrave deux opeacuterations de diffeacuterence successives
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Femme (Nom Preacutenom Age)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 21 Homme
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 22 Femme
Soit lopeacuteration suivante
R = Union (Homme Femme) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20
Durand Jean 30
Algegravebre relationnelle
91
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 23 R
La diffeacuterence entre Homme et Femme (respectivement entre Femme et Homme) renvoie la relation Homme
(respectivement Femme) car aucun tuple nest commun aux deux relations Lintersection entre Homme est
Femme est vide pour la mecircme raison
Remarque Union externe
Il est possible de deacutefinir une opeacuteration dunion externe qui permet de reacutealiser lunion de deux relations de
scheacutema diffeacuterent en ramenant les relations aux mecircmes scheacutemas et en les compleacutetant avec des valeurs nulles
d) Division
Deacutefinition Division
La division est une opeacuteration binaire (cest agrave dire portant sur deux relations) La division de R1 par R2 sachant
que R1 et R2 ont au moins un attribut commun (cest agrave dire de mecircme nom et de mecircme domaine) produit
une relation R3 qui comporte les attributs appartenant agrave R1 mais nappartenant pas agrave R2 et lensemble des
tuples qui concateacuteneacutes agrave ceux de R2 donnent toujours un tuple de R1
Exemtple
Soit les deux relations suivantes
Pratique (Homme Meacutetier Salaire) Meacutetier (Metier)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Ingeacutenieur 35
Durand Professeur 40
Dupont Ingeacutenieur 45
Martin Ingeacutenieur 50
Tableau 24 Pratique
Ingeacutenieur
Professeur
Tableau 25 Meacutetier
Soit lopeacuteration suivante
R = Division (Homme Meacutetier) 1
Algegravebre relationnelle
92
On obtient alors la relation R composeacutee des tuples suivants
Dupont 35
Tableau 26 R
Meacutethode Reacutetponse aux questions Pour tous les
La division permet de reacutepondre aux questions du type Donnez toutes les personnes qui pratiquent tous les
meacutetiers de la relation meacutetier
Remarque Otpeacuteration additionnelle
La division nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit la restriction et la
diffeacuterence
e) Proposition de notations Introduction Il existe plusieurs syntaxes pour eacutecrire des opeacuterations dalgegravebre relationnelle certaines inspireacutees de lalgegravebre
classiques dautres reposant sur des notations graphiques Nous proposons une notation fonctionnelle qui a
le meacuterite decirctre facile agrave eacutecrire et decirctre lisible Si cette notation peut parfois perdre en simpliciteacute lorsquelle
concerne un nombre eacuteleveacute dopeacuterateurs il est possible de deacutecomposer une opeacuteration compliqueacutee afin de
lalleacuteger
Syntaxe
R = Union (R1 R2) R = Diffeacuterence (R1 R2) R = Intersection (R1 R2) R = Projection (R1 A1 A2 ) R = Restriction (R1 condition) R = Produit (R1 R2) R = Jointure (R1 R2 condition) R = JointureNaturelle (R1 R2) R = JointureExterne (R1 R2 condition) R = JointureGauche (R1 R2 condition) R = JointureDroite (R1 R2 condition) R = Division (R1 R2)
1 2 3 4 5 6 7 8 9
10 11 12
Exemtple Notation syntheacutetique
R = Projection(Restriction(R1 A1=1 AND A2=2) A3) 1
Exemtple Notation deacutecomtposeacutee
R = Restriction(R1 A1=1 AND A2=2) R = Projection (R A3)
1 2
Algegravebre relationnelle
93
f) Exercice Soit les deux relations R1 et R2 suivantes deacutefinies en extension
A B
1 A
2 B
3 C
Tableau 27 R1
A
1
2
Tableau 28 R2
Combien de tuples renvoie lopeacuteration relationnelle suivante
R3 = JointureNaturelle (Intersection (Projection(R1A) R2) R2) 1
g) Opeacuterateurs de base et additionnels Reacuteeacutecrivez les opeacuterateurs additionnels suivants agrave partir dopeacuterateurs de base
Question 1
Reacuteeacutecrivez Intersection agrave partir de Diffeacuterence
Question 2
Reacuteeacutecrivez Jointure agrave partir de Produit et Restriction
Algegravebre relationnelle
94
B Exercices
1 Faire du Cineacutema
[30 minutes] On considegravere les deux relations suivantes
FILMS (titre pays anneacutee reacutealisateur dureacutee) ACTEURS (titre acteur)
1 2
ougrave les attributs ont les significations et les types suivants
titre titre dun film (chaicircne 50 caractegraveres)
pays pays dougrave un film est originaire (chaicircne 10 caractegraveres)
annee anneacutee de sortie du film (entier 4 chiffres)
realisateur nom du reacutealisateur du film (chaicircne 20 caractegraveres)
duree dureacutee du film en minutes (entier 3 chiffres)
acteur nom dacteur (chaicircne 20 caractegraveres)
La relation FILMS donne pour chaque film identifieacute par son titre le pays lanneacutee de sortie reacutealisateur et la
dureacutee
La relation ACTEURS donne pour chaque film lensemble des principaux acteurs
Agrave laide de lalgegravebre relationnelle exprimer les requecirctes suivantes
Question 1
Lister les films franccedilais (titre anneacutee reacutealisateur)
Question 2
Donnez les anneacutees de sortie des films dans lesquels lacteur Jean GABIN a joueacute
Question 3
Trouver les acteurs qui ont tourneacute avec Franccedilois Truffaut comme reacutealisateur
Question 4
Trouver tous les acteurs qui ont eacuteteacute partenaires de lactrice Catherine Deneuve
Question 5
Lister les films dans lesquels le reacutealisateur est aussi acteur
Question 6
Lister les reacutealisateurs nayant joueacute comme acteurs que dans des films quils ne reacutealisaient pas eux-mecircmes
Question 7
Lister les reacutealisateurs ayant joueacute comme acteurs dans des films quils ne reacutealisaient pas eux-mecircmes
Question 8
Donnez les acteurs qui jouent dans tous les films de Franccedilois TRUFFAUT
Algegravebre relationnelle
95
2 Qiz Algegravebre relationnelle
Exercice 1 Quelles sont les opeacuterations relationnelles qui appliqueacutees sur les relations instancieacutees cidessous renvoient un ensemble non nul de tuples
Num Nom Famille
1 Ours Mammifegravere
2 Truite Poisson
3 Homme Mammifegravere
4 Martinshypecirccheur Oiseau
Tableau 29 Animal
Num Nom
1 Forecirct
2 Montagne
3 Ciel
4 Riviegravere
5 Mer
Tableau 30 Environnement
Animal Environnement
1 1
1 2
1 4
2 4
4 3
Tableau 31 Habiter
Mangeur Mangeacute Freacutequence
1 2 Souvent
1 3 Rarement
1 4 Rarement
4 2 Souvent
3 1 Rarement
Algegravebre relationnelle
96
3 2 Souvent
Tableau 32 Manger
Restriction( Projection (Animal Nom Famille) Famille=Mammifegravere)
Restriction( Jointure( Jointure (Animal Habiter AnimalNum=HabiterAnimal) Environnement
EnvironnementNum=HabiterEnvironnement) AnimalNum=3)
Restriction( JointureExterneGauche( Animal Habiter
AnimalNum=HabiterAnimal) AnimalNom=Homme)
Jointure( Animal Manger AnimalNum=MangerMangeur AND AnimalNum=MangerMangeacute)
Exercice 2 Soit le scheacutema relationnel
R1(X Y) R2(X Y)
1 2
Quelles sont les opeacuterations relationnelles eacutequivalentes agrave lopeacuteration
Projection( JointureNaturelle(R1R2) R1X) 1
JointureNaturelle(Projection(R1 X) Projection(R2 X))
Projection( Selection (Produit(R1 R2) R1X=R2X AND R1Y=R2Y) R1X)
Projection( Union( R1 R2) R1X)
Projection( JointureExterne ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Projection( Jointure ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Algegravebre relationnelle
97
Exercice 3 Soit la relation instancieacutee suivante
A B C
1 1 0
1 0 1
0 1 1
Tableau 33 Relation R1
Quelles relations sont retourneacutees par lopeacuteration relationnelle suivante
R2 = JointureNaturelle(R1 R1) 1
1 1 0
1 0 1
0 1 1
Tableau 34 R2a
1 1 0
1 0 1
0 1 1
1 1 0
1 0 1
0 1 1
Tableau 35 R2b
1 1 1
0 0 0
Tableau 36 R2c
1 1 0 1 1 0
1 0 1 1 0 1
0 1 1 0 1 1
Algegravebre relationnelle
98
Tableau 37 R2d
R2a
R2b
R2c
R2d
Une relation vide (aucun tuple)
3 Le retour des eacutecoliers
[45 minutes] Soit le scheacutema relationnel suivant
IMMEUBLE (ADI NBETAGES DATEC PROP) APPIM (ADI NAPR OCCUP TYPE SUPER ETAGE) PERSONNE (NOM AGE PROF ADR NAPR) EacuteCOLE (NOMEC ADEC DIR) CLASSE (NOMEC NCL MAITRE) ENFANT (NOMP PRENOM AN NOMEC NCL)
1 2 3 4 5 6
Avec la signification suivante
Relation IMMEUBLE
ADI adresse dimmeuble cleacute on fait lhypothegravese pour simplifier que ladresse identifie de maniegravere
unique un immeuble NBETAGES nombre deacutetages dun immeuble
DATEC date de construction (anneacutee)
PROP nom du proprieacutetaire de limmeuble qui est une personne
Relation APPIM (Appartement) ADI
adresse dimmeuble
NAPR numeacutero dappartement
OCCUP occupant de lappartement (nom de la personne ayant signeacute le contrat de location
eacuteventuellement aucun)
TYPE type de lappartement (Studio F2 )
SUPER superficie de lappartement
ETAGE eacutetage ougrave se situe lappartement
Relation PERSONNE
NOM nom de personne cleacute on fait lhypothegravese pour simplifier que ce nom est unique sur lensemble
des personnes que lon considegravere dans la base
AGE acircge de la personne
PROF profession de la personne
ADR adresse de la reacutesidence dune personne il sagit dun immeuble NAPR numeacutero
dappartement
Relation EacuteCOLE
NOMEC nom dune eacutecole cleacute
ADEC adresse dune eacutecole
DIR nom du directeur
Algegravebre relationnelle
99
Relation CLASSE
NOMEC nom dune eacutecole
NCL nom de la classe eg CP1 CE2 CE3 etc MAITRE nom
de linstituteur
Relation ENFANT
NOMP nom de la personne responsable de lenfant cleacute eg pegravere megravere etc
PRENOM preacutenom de lenfant
AN anneacutee de naissance
NOMEC nom dune eacutecole
NCL nom de la classe
La relation IMMEUBLE deacutecrit un ensemble dimmeubles Chaque immeuble a un proprieacutetaire La relation APPIM
deacutecrit pour chaque immeuble lensemble des appartements qui le compose (il y a au mimimum un appartement
par immeuble) Chaque appartement peut heacuteberger plusieurs personnes mais il y en a une qui est responsable
(par exemple la personne qui a signeacute le contrat de location) et qui est deacutesigneacutee par lattribut OCCUP Si
lappartement est inoccupeacute il prend la valeur NULL La relation PERSONNE deacutecrit un ensemble de personnes
ADR et NAPR repreacutesentent ladresse ougrave reacuteside une personne Une personne peut avoir plusieurs enfants deacutecrits
par la relation ENFANT Pour simplifier on ne considegravere que les enfants allant agrave leacutecole primaire Les eacutecoles et
les classes sont deacutecrites dans les relations EacuteCOLE et CLASSE chaque eacutecole est composeacutee au minimum dune
classe et chaque classe est au moins freacutequenteacutee par un enfant
Question 1
Donner ladresse des immeubles ayant plus de 10 eacutetages et construits avant 1970
Question 2
Donner les noms des personnes qui habitent dans un immeuble dont ils sont proprieacutetaires
Question 3
Donner les noms des personnes qui ne sont pas proprieacutetaires
Question 4
Donner les adresses des immeubles posseacutedeacutes par des informaticiens dont lacircge est infeacuterieur agrave 40 ans
Question 5
Donner la liste des occupants (nom acircge profession) des immeubles posseacutedeacutes par DUPONT
Question 6
Donner le nom et la profession des proprieacutetaires dimmeubles dans lesquels il y a des appartements vides
Question 7
Donner les noms des maicirctres qui habitent dans le mecircme immeuble (agrave la mecircme adresse) quau moins un de
leurs eacutelegraveves (on suppose que les enfants vivent sous le mecircme toit que leur parents)
Question 8
Donner ladresse de limmeuble la date de construction le type dappartement et leacutetage ougrave habitent chacun
des maicirctres des enfants de DUPONT
Algegravebre relationnelle
100
101
Qestions de synthegravese
Pourquoi est-il fondamental mais difficile de parvenir agrave un MCD correct
Eacutenoncer quelques actions agrave mener pour reacutealiser une speacutecification geacuteneacuterale de lexistant et des besoins
Quest ce qui diffeacuterencie fondamentalement un MCD dun MLD
Questions de synthegravese
102
Quels sont les principaux eacuteleacutements du diagramme de classes UML
Quelles sont les diffeacuterences et points communs entre la diagramme de classe UML et le modegravele E-A
eacutetendu
Questions de synthegravese
103
Quest ce quun domaine
Comment identifie-t-on un attribut dune relation
Comment identifie-t-on un enregistrement dune relation
Questions de synthegravese
104
Quand doit-on ajouter des cleacutes artificielles
Quelle problegraveme pose la redondance et comment le reacutesoudre
A quoi sert le LDD
Questions de synthegravese
105
Quel rapport y-a-t il entre le LDD et le concept de relation
Pourquoi la jointure est-elle un opeacuterateur essentiel
Questions de synthegravese
106
Quels sont les opeacuterateurs algeacutebriques de base Quels sont les autres opeacuterateurs Quest ce qui les diffeacuterencie
Quels sont les opeacuterateurs ensemblistes Quest ce qui les caracteacuterise
Pourquoi la jointure est-elle un opeacuterateur essentiel
Quest ce qui diffeacuterencie une jointure externe dune jointure classique
107
Glossaire
Cleacute artificielle
Une cleacute artificielle est un attribut ajouteacute agrave une relation afin didentifier ses enregistrements On fait appel agrave
une cleacute artificielle lorsque la relation ne comporte aucune cleacute naturelle ou que ses cleacutes naturelles sont jugeacutees
inadapteacutees agrave lidentification au sein de la base de donneacutees
Extension
Lextension est lexplicitation dun domaine par leacutenonciation exhaustive de lensemble des objets du domaine
Elle soppose agrave linstension qui est une description abstraite des caracteacuteristiques du domaine
Exemple bleu rouge vert
Contre-exemple Le domaine des couleurs
Intension
Lintension est lexplicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa
compreacutehension abstraite geacuteneacuterale)
Elle soppose agrave lextension qui est leacutenonciation exhaustive de lensemble des objets du domaine
Exemple Le domaine des couleurs
Contre-exemple bleu rouge vert
108
Signification des abreacuteviations
- ANSI American National Standards Institute
- BD Base de Donneacutees
- E-A Entiteacute-Association
- ISO International Standardization Organization
- LCD Langage de Controcircle de Donneacutees
- LDD Langage de Deacutefinition de Donneacutees
- LMD Langage de Manipulation de Donneacutees
- OMG Object Management Group
- PSM Persistent Stored Modules
- RO Relationnel-Objet
- SGBD Systegraveme de Gestion de Bases de Donneacutees
- SGBDR Systegraveme de Gestion de Bases de Donneacutees Relationnelles
- SQL Structured Query Language
- UML Unified Modeling Language
- XML eXtensible Markup Language
Reacutefeacuterences
[dbdiscocrztfr] httpdbdiscocrztfr3
109
3 - httpdbdiscocrztfr
Bibliographie
[Arribe 2014] ARRIBE THIBAUT 2014 Conception des chaicircnes eacuteditoriales documentariser lactiviteacute et structurer le graphe documentaire pour ameacuteliorer la maicirctrise de la reacuteeacuteditorialisation Universiteacute de Technologie de
Compiegravegne Meacutemoire de Doctorat httpicsutcfr~tha
[Codd70] CODD EF A relational model for large shared data banks Communications de lACM juin 1970
[Delmal01] DELMAL PIERRE SQL2 SQL3 applications agrave Oracle De Boeck Universiteacute 2001
[Gardarin99] GARDARIN GEORGES Bases de donneacutees objet et relationnel Eyrolles 1999
[Gulutzan and Pelzer 1999] GULUTZAN PETER PELZER TRUDY 1999 SQL-99 complete really CMP books
[Muller98] MULLER PA Modeacutelisation objet avec UML Eyrolles 1998
[Roques04] ROQUES PASCAL VALLEacuteE FRANCK UML 2 en action De lanalyse des besoins agrave la conception J2EE
ISBN 2212-11462-1 (3egraveme eacutedition) Paris Eyrolles 2004 385 p architecte logiciel
[Rothenberg et al 1989] ROTHENBERG JEFF WIDMAN LAWRENCE E LOPARO KENNETH A NIELSEN NORMAN R 1989 The nature of modeling Rand vol3027
[Soutou02] SOUTOU CHRISTIAN De UML agrave SQL Conception de bases de donneacutees Eyrolles 2002
[Tardieu83] TARDIEU H ROCHFELD A COLLETI R Meacutethode MERISE Tome 1 Principes et outils Les Editions dOrganisation 1983
Webographie
[w_journaldunetcom(1)] MORLON JEacuteROcircME UML en 5 eacutetapes httpdeveloppeurjournaldunetcomdossiersalg_umlshtml 2004
[w_journaldunetcom(2)] BORDERIE XAVIER Cinq petits conseils pour un scheacutema UML efficace
httpdeveloppeurjournaldunetcomtutorielcpt031013cpt_uml5conseilsshtml 2004
[w_objecteering] Objecteering software httpwwwobjecteeringcom [2002-septembre]
[w_umlfreefr] UML en Franccedilais httpumlfreefr consulteacute en 2002
Questions de synthegravese
110
Index
11 p54 Error Reference source
not found 1N p53 Error Reference source
not found Algegravebre p48 71 71 72 73 74 75
76 76 76 78 79 80 ALTER TABLE p67 68 Analyse p9 11 12 13 Application p6 Association pError Reference
source not found 31 Error
Reference source not found 32 44
Error Reference source not found
53 Error Reference source not
found 53 Error Reference source
not found 54 Error Reference
source not found 54 Attribut p28 32 40 41 41 42 44
51 52 54 Base de donneacutees p17 BD p4
Cardinaliteacute p32 Error
Reference source not found Error
Reference source not found Carteacutesien p74 CHECK p62 63 Classe p27 50 54 Cleacute p41 42 42 44 Cleacute artificielle p42 Cleacute candidate p42 Cleacute primaire p42 42 Cleacute signifiante p42 Codd p39 Composition pError Reference
source not found Error Reference
source not found Conception p9 11
Conceptuel p9 11 13 15 26 27
50 53
CREATE TABLE p59
Creacuteation p58 Deacuteclaratif p58 DELETE p65 66 Diagramme p26 Diffeacuterence p78 Division p79 Domaine p39 48 48 60 61 DROP p67 E-A p32 Enregistrement p40 41 Externe p15 76 FOREIGN KEY p62 63 INSERT p65 65 Instance p15 Interne p15 Intersection p78 Jointure p75 76 76 Langage p8 65 LDD p8 58 67 Lien p44 LMD p8 65 Logique p38 38 39 39 41 50
53 Manipulation p71 Meacutethode p30 Modegravele p13 23 38 39 39 41 45
46 Modeacutelisation p42 Modification p67 NM p53 N M pError Reference source not
found Naturelle p76 NOT NULL p62 63 Null p61 OMG p27 Opeacuteration p30 48 Passage p50 53 PostgreSQL p17
PRIMARY KEY p62 63 Produit p48 48 74
Projection p72 Proprieacuteteacute p28 32 Reacutefeacuterence p44 REFERENCES p62 63 Relation p40 41 41 42 44 44 45
48 Relationnel p5 Error
Reference source not found 38 38
39 39 41 45 46 48 48 50 50
51 Error Reference source not
found 52 53 53 Error Reference
source not found 53 Error Reference source not found 54
Error Reference source not found 54 71
71 76 80 Relationnel-objet p38 39 Requecircte p65 Restriction p73 Scheacutema p15 45 46 SGBD p5 Speacutecifications p12 SQL p8 58 65 67 Suppression p67 Table p58 67 Tuple p40 Type p60 61 UML p13 26 27 27 28
Error Reference source not found
30 31 Error Reference source not found 32 50
50 51 Error Reference source not
found 52 53 53 Error Reference source not
found 53 Error Reference source not
found 54 Error Reference source not found
54 Union p78 UNIQUE p62 63 UPDATE p65 66
wwwsambaconsultantscom 111
Contenus annexes
- Deacutefinition du mouvement NoSQL
Deacutefinition
Le NoSQL regroupe de nombreuses bases de donneacutees reacutecentes pour la plupart qui se caracteacuterisent par une logique de repreacutesentation de donneacutees non relationnelle et qui noffrent donc pas une interface de requecirctes en SQL
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-dedonnees-nosql4
NoSQL signifie Not Only SQL et non pas No SQL il sagit de compleacutements aux SGBDR pour des
besoins speacutecifiques et non de solutions de remplacement Exemtple
BD orienteacutee cleacute-valeur
BD orienteacutee graphe
BD orienteacutee colonne
BD orienteacutee document
Comtpleacutement
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql5
- Transformation des meacutethodes par des vues
Meacutethode
Lorsquune meacutethode est speacutecifieacutee sur un diagramme UML pour une classe C si cette meacutethode est une fonction
relationnelle (elle renvoie une unique valeur et elle peut ecirctre reacutesolue par une requecircte SQL) alors on creacutee une
vue qui reprend les attributs de la classe C et ajoute des colonnes calculeacutees pour les meacutethodes
Remarque Atributs deacuteriveacutes
Les attributs deacuteriveacutes eacutetant apparenteacutes agrave des meacutethodes ils peuvent eacutegalement ecirctre geacutereacutes par des vues
Contenus annexes
112
- Composition
Deacutefinition Association de comtposition
On appelle composition une association particuliegravere qui possegravede les proprieacuteteacutes suivantes
La composition associe une classe composite et des classes parties tel que tout objet partie appartient
agrave un et un seul objet composite Cest donc une association 1N (voire 11)
La composition nest pas partageable donc un objet partie ne peut appartenir quagrave un seul objet
composite agrave la fois
Le cycle de vie des objets parties est lieacute agrave celui de lobjet composite donc un objet partie disparaicirct
quand lobjet composite auquel il est associeacute disparaicirct
Remarque
La composition est une association particuliegravere (binaire de cardinaliteacute contrainte)
La composition nest pas symeacutetrique une classe joue le rocircle de conteneur pour les classes lieacutees elle
prend donc un rocircle particulier a priori
La composition est une agreacutegation avec des contraintes suppleacutementaires (non partageabiliteacute et cycle
de vie lieacute)
Image 14 Notation de la composition en UML
Atention Composition et cardinaliteacute
La cardinaliteacute cocircteacute composite est toujours de exactement 1
Cocircteacute partie la cardinaliteacute est libre elle peut ecirctre 01 1 ou bien 1
Image 15 Un livre
On voit bien ici quun chapitre na de sens que faisant partie dun livre quil ne peut exister dans deux livres
diffeacuterents et que si le livre nexiste plus les chapitres le composant non plus
Remarque Comtposition et entiteacutes faibles
Syntaxe
Contenus annexes
113
wwwsambaconsultantscom
La composition permet dexprimer une association analogue agrave celle qui relie une entiteacute faible agrave une entiteacute
identifiante en modeacutelisation E-A Lentiteacute de type faible correspond agrave un objet partie et lentiteacute identifiante
agrave un objet composite
Conseil Comtposition et atribut multivalueacute
Une composition avec une classe partie doteacutee dun seul attribut peut seacutecrire avec un attribut multivalueacute
Un attribut composeacute et multivalueacute peut seacutecrire avec une composition
Ratptpel Voir aussi
Attributs
Agreacutegation - p100
- Agreacutegation
Deacutefinition Association dagreacutegation
Lagreacutegation est une association particuliegravere utiliseacutee pour preacuteciser une relation toutpartie (ou
ensembleeacuteleacutement) on parle dassociation meacutereacuteologique
Elle possegravede la proprieacuteteacute suivante Lagreacutegation associe une classe agreacutegat et des classes parties tel que tout
objet partie appartient agrave au moins un objet agreacutegat
Remarque
Lagreacutegation est une association particuliegravere (binaire de cardinaliteacute libre)
Lagreacutegation nest pas symeacutetrique Syntaxe
Image 16 Notation de lagreacutegation en UML
La cardinaliteacute peut ecirctre exprimeacutee librement en particulier les instances de la classe Eacuteleacutement peuvent ecirctre
associeacutees agrave plusieurs instances de la classe Ensemble et mecircme de plusieurs classes
Atention
Lagreacutegation garde toutes les proprieacuteteacutes dune association classique (cardinaliteacute cycle de vie
etc) elle ajoute simplement une terminologie un plus preacutecise via la notion de toutpartie
- Explicitation des associations
Syntaxe Sens de lecture
Il est possible dajouter le sens de lecture du verbe caracteacuterisant lassociation sur un diagramme de classe
UML afin den faciliter la lecture On ajoute pour cela un signe lt ou gt (ou un triangle noir) agrave cocircteacute du nom
de lassociation
Contenus annexes
114
Syntaxe Rocircle
Il est possible de preacuteciser le rocircle joueacute par une ou plusieurs des classes composant une association afin den
faciliter la compreacutehension On ajoute pour cela ce rocircle agrave cocircteacute de la classe concerneacutee (parfois dans un petit
encadreacute colleacute au trait de lassociation
Exemtple
Image 17 Rocircle et sens de lecture sur une association
Deacutefinition Association reacuteflexive
Une association reacuteflexive est une association qui associe une classe avec elle-mecircme
Lexplicitation des associations est particuliegraverement utile dans le cas des associations reacuteflexives
- Associations ternaires
Image 18 Notation dune association ternaire
Conseil Ne tpas abuser des associations ternaires
Il est toujours possible de reacuteeacutecrire une association ternaire avec trois associations binaires en transformant
lassociation en classe
Conseil Pas de degreacute sutpeacuterieur agrave 3
En pratique on nutilise jamais en UML dassociation de degreacute supeacuterieur agrave 3
- Transformation des agreacutegations
Ratptpel Agreacutegation
Les associations de type agreacutegation se traitent de la mecircme faccedilon que les associations classiques
Syntaxe
Contenus annexes
115
wwwsambaconsultantscom
Graphique 12 Agreacutegation 1N
Classe1(ab)
Classe2(cda=gtClasse1)
Graphique 13 Agreacutegation NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
- Transformation des compositions
Meacutethode
Une composition
est transformeacutee comme une association 1N
puis on ajoute agrave la cleacute de la classe partie (dite cleacute locale) la cleacute eacutetrangegravere vers la classe composite pour
construire une cleacute primaire composeacutee
Graphique 14 Composition
Classe1(ab)
Classe2(ca=gtClasse1d)
Remarque Cleacute locale
Pour identifier une classe partie dans une composition on utilise une cleacute locale concateacuteneacutee agrave la cleacute eacutetrangegravere
vers la classe composite afin dexprimer la deacutependance entre les deux classes
Si une cleacute naturelle globale permet didentifier de faccedilon unique une partie indeacutependamment du tout on
preacutefeacuterera la conserver comme cleacute candidate plutocirct que de la prendre pour cleacute primaire
Contenus annexes
116
Si on la choisit comme cleacute primaire cela revient agrave avoir transformeacute la composition en agreacutegation en redonnant
une vie propre aux objets composants
Comtpleacutement Comtposition et entiteacutes faibles en E-A
Une composition est transformeacutee selon les mecircmes principes quune entiteacute faible en E-A
Comtpleacutement Atributs multivalueacutes et comtposeacutes
La transformation dun attribut composeacute multivalueacute donne un reacutesultat eacutequivalent agrave la transformation dune
composition
Classe1
a key b [0N] -b1 -b2
Graphique 15 Composition et attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
La transformation dune composition avec un seul attribut pour la classe composante donne un reacutesultat
eacutequivalent agrave la transformation dun attribut multivalueacute
Graphique 16 Composition et attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Ratptpel Voir aussi
Transformation des attributs
- Contrainte de cardinaliteacute minimale 1 dans les associations 1N
Ratptpel
Transformation des associations 1N
Meacutethode
a key
Classe1
0 N
( b1b2) local key
Contenus annexes
117
wwwsambaconsultantscom
Classe1
1 association 1N
Classe2
a key
b c key
d
Graphique 17 Association 1N
Si la cardinaliteacute est exactement 1 (11) cocircteacute 1 alors on ajoutera une contrainte de non nulliteacute sur la
cleacute eacutetrangegravere
si la cardinaliteacute est au moins 1 (1N) cocircteacute N on ajoutera une contrainte dexistence de tuples
reacutefeacuterenccedilant pour chaque tuple de la relation reacutefeacuterenceacutee
Classe1(ab)
Classe2(cda=gtClasse1)
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Graphique 18 Classe dassociation (1N)
Classe1(ab)
Classe2(cda=gtClasse1 e f) avec e KEY
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Comtpleacutement
Projection
- Contrainte de cardinaliteacute minimale 1 dans les associations NM
Ratptpel
Transformation des associations NM
Meacutethode
Si la cardinaliteacute est exactement au moins 1 (1N) dun cocircteacute etou de lautre alors des contraintes
dexistence simultaneacutee de tuple devront ecirctre ajouteacutee
Ce nest pas neacutecessaire si la cardinaliteacute est 0N
a key b
Classe1
c key d
Classe2
1 N 1
e loc al key f
Cl-A ssoc
Contenus annexes
118
Graphique 19 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Graphique 20 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Cl-Assoc(a=gtClasse1c=gtClasse2ef)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Comtpleacutement
Projection
- Transformation des associations 11 (approche geacuteneacuterale) Il existe deux solutions pour transformer une association 11
Avec deux relations on traite lassociation 11 comme une association 1N puis lon ajoute une
contrainte UNIQUE sur la cleacute eacutetrangegravere pour limiter la cardinaliteacute maximale agrave 1
Avec une seule relation on fusionne les deux classes en une seule relation
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 21 Association 11
Meacutethode Avec deux relations (cleacute eacutetrangegravere)
Une des deux relations est choisie pour porter la cleacute eacutetrangegravere
on ajoute les contraintes UNIQUE ou KEY (cleacute candidate) sur la cleacute eacutetrangegravere et si neacutecessaire une
contrainte imposant linstanciation simultaneacutee des deux relations
Classe1(abc=gtClasse2) avec c UNIQUE ou KEY
Classe2(cd)
a key b
Classe1
c key d
Classe2
1 N 1 N
e key f
ssoc Cl-A
Contenus annexes
119
wwwsambaconsultantscom
Contrainte (eacuteventuellement) PROJ(Classe1c)=PROJ(Classe2c) ou
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE ou KEY
Contrainte (eacuteventuellement) PROJ(Classe1a)=PROJ(Classe2a)
Meacutethode Avec une relation (fusion)
On creacuteeacute une seule relation contenant lensemble des attributs des deux classes on
choisit une cleacute parmi les cleacutes candidates
Classe12(abcd) avec c UNIQUE ou KEY ou
Classe21(cdab) avec a UNIQUE ou KEY
RemarqueFusion des relations dans le cas de la traduction de lassociation 11
Ce choix entre les deux meacutethodes sera conduit par une appreacuteciation du rapport entre
La complexiteacute introduite par le fait davoir deux relations lagrave ou une suffit
La pertinence de la seacuteparation des deux relations dun point de vue seacutemantique
Les pertes de performance dues agrave leacuteclatement des relations
Les pertes de performance dues au fait davoir une grande relation
Les questions de seacutecuriteacute et de sucircreteacute factoriseacutees ou non au niveau des deux relations
wwwsambaconsultantscom 2
Table des matiegraveres
I - Introduction geacuteneacuterale aux bases de donneacutees 4
A Cours 4
1 Notions fondamentales donneacutee base de donneacutees systegraveme de gestion de bases de donneacutees 5
2 Approche geacuteneacuterale pour la conception des bases de donneacutees 10
B Exercices 19
1 Deacutecouverte dune base de donneacutees relationnelle 19
2 Lab 0 25
II - Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML 27
A Cours 27
1 Notion de modegravele 28
2 Introduction au diagramme de classes UML classes et associations 30
B Exercices 39
1 Exercice Lire lUML 39
2 Gestion dune coopeacuterative viticole 41
3 Cours et intervenants 42
4 Gestion du personnel 43
III - La modeacutelisation logique relationnelle 44
A Cours 44
1 Introduction au modegravele relationnel 44
2 Les concepts fondamentaux du modegravele relationnel attributs enregistrement domaine 46
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel 48
4 Synthegravese 55
5 Deacutefinition formelle dune relation 56
B Exercices 57
1 Lab I- 57
IV - Introduction au passage UML-Relationnel classes et 59
associations 59
A Cours 59
1 Transformation des classes et attributs 59
2 Transformation des associations 62
B Exercices 65
1 Lab I+ 65
2 Usine de production 66
V - Creacuteation et alimentation de bases de donneacutees SQL 67
A Cours 67
1 Le langage SQL 67
2 Creacuteer des tables en SQL (Langage de Deacutefinition de Donneacutees) 69
3 Inseacuterer modifier et supprimer des donneacutees en SQL (Langage de Manipulation de Donneacutees) 76
4 Supprimer et modifier des tables en SQL (Langage de Deacutefinition de Donneacutees) 78
B Exercices 80
1 The show 80
2 Du producteur au consommateur 81
VI - Algegravebre relationnelle 82
Introduction geacuteneacuterale aux bases de donneacutees
3
wwwsambaconsultantscom
A Cours 82
1 Opeacuterateurs fondamentaux projection restriction et jointure 82
2 Opeacuterateurs compleacutementaires 88
B Exercices 94
1 Faire du Cineacutema 94
2 Quiz Algegravebre relationnelle 95
3 Le retour des eacutecoliers 98
Questions de synthegravese 101
Glossaire 107
Signification des abreacuteviations 108
Reacutefeacuterences 108
Bibliographie 109
Webographie 109
Index 110
Contenus annexes 111
wwwsambaconsultantscom 4
I - Introduction geacuteneacuterale
aux bases de donneacutees
A Cours
Les BD sont neacutees agrave la fin des anneacutees 1960 pour combler les lacunes des systegravemes de fichiers et faciliter la
gestion qualitative et quantitative des donneacutees informatiques Les SGBD sont des applications informatiques
permettant de creacuteer et de geacuterer des BD (comme Oracle ou PostgreSQL par exemple)
Les BD relationnelles issues de la recherche de Codd sont celles qui ont connu le plus grand essor depuis les
anneacutees et qui reste encore aujourdhui les plus utiliseacutees On utilise des SGBDR pour les impleacutementer Le
langage SQL est le langage commun agrave tous les SGBDR ce qui permet de concevoir des BD relativement
indeacutependamment des systegravemes utiliseacutes
Les usages de BD se sont aujourdhui geacuteneacuteraliseacutes pour entrer dans tous les secteurs de lentreprise depuis
les petites bases utiliseacutees par quelques personnes dans un service pour des besoins de gestion de donneacutees
locales jusquaux bases qui gegraverent de faccedilon centraliseacutee des donneacutees partageacutees par tous les acteurs de
lentreprise
Laccroissement de lutilisation du numeacuterique comme outil de manipulation de toutes donneacutees (bureautique
informatique applicative etc) et comme outil dextension des moyens de communication (reacuteseaux) ainsi que
les eacutevolutions technologiques (puissance des PC Internet etc) ont rendu indispensable mais aussi
complexifieacute la probleacutematique des BD
Les conseacutequences de cette geacuteneacuteralisation et de cette diversification des usages se retrouvent dans leacutemergence
de solutions conceptuelles et technologiques nouvelles les bases de donneacutees du mouvement NoSQL
particuliegraverement utiliseacutees par les grands acteurs du web
I
Introduction geacuteneacuterale aux bases de donneacutees
5
wwwsambaconsultantscom
1 Notions fondamentales donneacutee base de donneacutees
systegraveme de gestion de bases de donneacutees
a) Base de donneacutees
Logiciel et donneacutees
Un logiciel informatique est composeacute de programmes cest agrave dire dinstructions donneacutees agrave lordinateur et de
donneacutees auxquelles sappliquent ces instructions
Par exemple un logiciel de traitement de texte est composeacute de fonctions - ouvrir copier coller inseacuterer une
image changer la police enregistrer - et de fichiers sur lesquels elles sappliquent Dans ce cas les fichiers
de traitement de texte sont les donneacutees
Deacutefinition Deacutefinition lacircche de base de donneacutees un ensemble de donneacutees
On appelle parfois base de donneacutees tout ensemble de donneacutees stockeacute numeacuteriquement et pouvant servir agrave un
ou plusieurs programme De ce point de vue des fichiers sur un disque dur un fichier de tableur voire un
fichier de traitement de texte peuvent constituer des bases de donneacutees
Deacutefinition Deacutefinition restreinte de base de donneacutees un ensemble de donneacutees
structureacute
On appellera base de donneacutees un ensemble de donneacutees numeacuteriques qui possegravede une structure cest agrave dire
dont lorganisation reacutepond agrave une logique systeacutematique
On parlera de modegravele logique de donneacutees pour deacutecrire cette structure
Exemtple Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tableaux (appeleacutes relations)
espegravece eucaryote multicellulaire proprieacuteteacute
bacteacuteries false false
archeacutees false false
protistes true false
champignons true true deacutecompose
veacutegeacutetaux true true photosyntheacutetise
animaux true true ingegravere
Tableau 1 Base de donneacutees de classification classique des espegraveces animales
Fondamental Fonctions dune base de donneacutees
wwwsambaconsultantscom 6
Une base de donneacutees est structureacutee afin de pouvoir mieux reacutepondre agrave des fonctions
fondamentales en informatique telles que
Stocker linformation de faccedilon fiable (cest agrave dire ecirctre capable de restituer linformation
entreacutee dans le systegraveme)
Traiter de grands volumes de donneacutees (massification)
Traiter rapidement les donneacutees (optimisation)
Seacutecuriser les accegraves aux donneacutees (geacuterer les autorisations selon les utilisateurs)
Controcircler la qualiteacute des donneacutees (par exemple la coheacuterence par rapport agrave un modegravele preacute-
eacutetabli)
Partager les donneacutees (entre plusieurs applications deacutedieacutees agrave plusieurs meacutetiers)
Rendre accessible les donneacutees en reacuteseau (geacuterer la concurrence des accegraves parallegraveles)
b) Systegraveme de gestion de bases de donneacutees (SGBD)
Deacutefinition Systegraveme de Gestion de Bases de Donneacutees
Un SGBD est un logiciel qui prend en charge la structuration le stockage la mise agrave jour et la maintenance
dune base de donneacutees Il est lunique interface entre les informaticiens et les donneacutees (deacutefinition des scheacutemas
programmation des applications) ainsi quentre les utilisateurs et les donneacutees (consultation et mise agrave jour)
Introduction geacuteneacuterale aux bases de donneacutees
7
Exemtple Exemtples de SGBD
Oracle est un SGBD relationnel et relationnel-objet tregraves utiliseacute pour les applications professionnelles
PostgreSQL est un SGBD relationnel puissant qui offre une alternative libre (licence BSD) aux solutions
commerciales comme Oracle ou IBM
Access est un SGBD relationnel Microsoft qui offre une interface graphique permettant de concevoir
rapidement des applications de petite envergure ou de reacutealiser des prototypes
MongoDb est un SGBD non-relationnel libre (licence Apache) orienteacute document Il permet de geacuterer
facilement de tregraves grandes quantiteacutes de donneacutees - dans un format arborescent JSON - reacuteparties sur
de nombreux ordinateurs
Comtpleacutement SGBD relationnel et non-relationnel
Les SGBR relationnels (SGBDR) sont les plus courants des SGBD jusquau deacutebut des anneacutees 2000 la plupart
des bases de donneacutees eacutetaient relationnelles
Mais avec larriveacutee des geacuteants du web ces entreprises qui gegraverent des quantiteacutes eacutenormes de donneacutees comme
Google Amazon ou Facebook sest deacuteveloppeacute un mouvement important de deacuteveloppement de bases de
donneacutees nonrelationnelles eacutegalement appeleacutees NoSQL
c) Application de base de donneacutees Une base de donneacutees seule nest pas directement utilisable par un utilisateur humain elle nest utilisable que
par les informaticiens qui connaissent son langage de programmation et par les applications qui ont eacuteteacute
programmeacutees pour sen servir
Deacutefinition
On appelle application de base de donneacutees un logiciel informatique permettant agrave un utilisateur final de
manipuler (lire ou eacutecrire) les donneacutees dune base de donneacutees
Exemtple Atptplication web
Une application web est composeacutee dinterfaces en HTML qui permettent deacutecrire et de lire des donneacutees dans
une base de donneacutees via un langage applicatif comme par exemple PHP
Exemtple Twiter
Lapplication Twitter est composeacutee dinterfaces web
permettant dentrer des donneacutees (saisir son profil twitter
retwitter ) et de sortir des donneacutees (consulter un fil
twitter faire une recherche sur un hashtag) dune base
de donneacutees (Twitter utilise une base de donneacutees NoSQL
Apache Cassandra)
Cette base de donneacutees est stockeacutee sur les serveurs de
Twitter et elle contient tous les profils de tous les
utilisateurs tous les tweets tous les hashtags
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 8
Exemtple Comtpagnie aeacuterienne Une base de donneacutees de gestion de lactiviteacute dune compagnie aeacuterienne concerne les voyageurs les vols les
avions le personnel les reacuteservations
Une application agrave partir dune telle base de donneacutees pourra permettre la gestion des reacuteservations des
disponibiliteacutes des avions en fonction des vols agrave effectuer des affectations des personnels volants
Exemtple Atptplication de bureau Access
Avec un logiciel comme Access on peut reacutealiser agrave la fois une base de donneacutees et une application permettant
de manipuler cette base de donneacutees pour des besoins bureautiques simples
d) Donneacutee (en relationnel) table objet proprieacuteteacute domaine
atomiciteacute
Ratptpel Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tables (appeleacutes relations)
Chaque case de la table contient une information atomique
Deacutefinition Objet (ligne)
Chaque ligne de la table correspond agrave un objet que lon veut geacuterer dans la base de donneacutees une voiture une
personne une espegravece
Fondamental
Toutes les lignes dune mecircme table correspondent agrave des objets du mecircme type donc dans une
table on met soit des voitures soit des personnes mais on ne meacutelange pas les deux
Deacutefinition Protprieacuteteacute et domaine (colonne)
Chaque colonne de la table correspond agrave une proprieacuteteacute des objets qui se trouvent dans la table tous les
objets de la table partagent donc les mecircmes proprieacuteteacutes
Fondamental Domaine
Chaque colonne de la table est associeacutee agrave un domaine de valeur fixeacute a priori par exemple entier
texte booleacuteen
Deacutefinition Donneacutee en relationnel (cellule)
Une donneacutee en relationnel cest une cellule dune table qui correspond agrave la proprieacuteteacute dun objet
proprieacuteteacute 1 domaine
d1 proprieacuteteacute 2 domaine
d2
objet1 donneacutee 1 objet1 donneacutee 2
Introduction geacuteneacuterale aux bases de donneacutees
9
objet2 donneacutee 1 objet2 donneacutee 2
Tableau 2 Une table ou relation ( en relationnel)
Exemtple
espegravece domaine
texte eucaryote domaine
booleacuteen
bacteacuteries false
archeacutees false
Tableau 3 Exemple de relation instancieacutee
Atention Atomiciteacute
Pour que la base de donneacutees fonctionne correctement on veille agrave ne mettre quune seule donneacutee
par case cest le principe datomiciteacute en relationnel
espegravece domaine texte
bacteacuteries procaryotes unicellulaires
archeacutees procaryotes unicellulaires
protistes eucaryotes unicellulaires
champignons eucaryotes multicellulaires qui deacutecomposent
veacutegeacutetaux eucaryotes multicellulaires qui photosyntheacutetisent
animaux eucaryotes multicellulaires qui ingegraverent
Tableau 4 Un mauvais exemple de relation les donneacutees ne sont pas atomiques (il y a
plusieurs donneacutees par case de la table)
e) Langage de donneacutees lexemple du langage SQL
Deacutefinition Langage de donneacutees
Un langage de donneacutees est un langage informatique permettant de deacutecrire et de manipuler les scheacutemas et les
donneacutees dune BD
Synonymes Langage orienteacute donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 10
Fondamental SQL
SQL est le langage consacreacute aux SGBD relationnels et relationnels-objet
Il permet de
creacuteer des tables en deacutefinissant le domaine de chaque colonne
inseacuterer des lignes dans les tables
lire les donneacutees entreacutees dans la base de donneacutees
Exemtple Creacuteation de table en SQL (deacutefinition du scheacutema de donneacutees)
CREATE TABLE Etudiant ( NumEtu
integer PRIMARY KEY Nom varchar Ville varchar)
1 2 3 4
Cette instruction permet de creacuteer une relation Etudiant comportant les proprieacuteteacutes NumEtu Nom et Ville
de domaines respectivement entier texte et texte
Exemtple Insertion de ligne en SQL (creacuteation de donneacutees)
INSERT INTO Etudiant (NumEtu Nom Ville) VALUES (1 Holmes Londres) 1
Cette instruction permet de creacuteer leacutetudiant numeacutero 1 de nom Holmes qui habite la ville de Londres
Exemtple Manitpulation de donneacutees en SQL (extploitation des donneacutees)
SELECT Nom FROM Etudiant WHERE Ville = Compiegravegne
1 2 3
Cette instruction permet de rechercher les noms de tous les eacutetudiants habitant la ville de Compiegravegne
Comtpleacutement Autres langages de donneacutees
XQuery est un langage de donneacutees mobiliseacute dans les bases de donneacutees arborescentes XML
Les bases NoSQL proposent des langages de donneacutees speacutecifiques souvent inspireacutes du
SQL Par exemple le langage de MongoDB permet de manipuler une base de contenus JSON
2 Approche geacuteneacuterale pour la conception des bases de
donneacutees
a) Exercice Eacutetapes de la conception dune base de donneacutees
relationnelle Mettre dans lordre les eacutetapes de conception suivantes
1 Creacuteation du code SQL pour un SGBDR
2 Modeacutelisation conceptuelle en UML ou E-A
Introduction geacuteneacuterale aux bases de donneacutees
11
3 Eacutelaboration du modegravele logique en relationnel
4 Analyse de la situation existante et des besoins
Reacuteponse ___ ___ ___ ___
b) Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
Meacutethode Eacutetatpes de la concetption dune base de donneacutees
1 Analyse de la situation existante et des besoins (clarification) 2 Creacuteation dun modegravele conceptuel qui permet de repreacutesenter tous les aspects importants du problegraveme 3 Traduction du modegravele conceptuel en modegravele logique (et normalisation de ce modegravele logique) 4 Impleacutementation dune base de donneacutees dans un SGBD agrave partir du modegravele logique (et optimisation)
Graphique 1 Processus de conception dune base de donneacutees
On distingue quatre eacutetapes dans la conception dune base de donneacutees
Lanalyse
Elle consiste agrave eacutetudier le problegraveme et agrave consigner dans un document la note de clarification les
besoins les choix les contraintes
La modeacutelisation conceptuelle
Elle permet de deacutecrire le problegraveme poseacute de faccedilon non-formelle (en geacuteneacuterale graphique) en prenant
des hypothegraveses de simplification Ce nest pas une description du reacuteel mais une repreacutesentation
simplifieacutee dune reacutealiteacute
La modeacutelisation logique
Ele permet de deacutecrire une solution en prenant une orientation informatique geacuteneacuterale (type de SGBD
typiquement) formelle mais indeacutependamment de choix dimpleacutementation speacutecifiques
Limpleacutementation
Elle correspond aux choix techniques en terme de SGBD choisi et agrave leur mise en œuvre
(programmation optimisation)
Fondamental
Bien analyser le problegraveme poseacute en amont
BD solution proposeacutee
Domaine problegraveme poseacute
Modegravele Conceptuel
Modegravele Logique
Repreacutesenter
Impleacutementer
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 12
Bien modeacuteliser le problegraveme au niveau conceptuel avant de passer au niveau logique et agrave
limpleacutementation
Conseil Limtportance de leacutetatpe danalyse
La premiegravere eacutetape de la conception repose sur lanalyse de lexistant et des besoins De la qualiteacute de la
reacutealisation de cette premiegravere eacutetape deacutependra ensuite la pertinence de la base de donneacutees par rapports aux
usages Cette premiegravere eacutetape est donc essentielle et doit ecirctre meneacutee avec soins
Si la premiegravere eacutetape est fondamentale dans le processus de conception elle est aussi la plus deacutelicate En effet
tandis que des formalismes puissants existent pour la modeacutelisation conceptuelle puis pour la modeacutelisation
logique la perception de lexistant et des besoins reste une eacutetape qui repose essentiellement sur lexpertise
danalyse de lingeacutenieur
Conseil Limtportance de leacutetatpe de modeacutelisation concetptuelle
Eacutetant donneacutee une analyse des besoins correctement reacutealiseacutee la seconde eacutetape consiste agrave la traduire selon un
modegravele conceptuel Le modegravele conceptuel eacutetant formel il va permettre de passer dune speacutecification en
langage naturel et donc soumise agrave interpreacutetation agrave une speacutecification non ambiguumle Le recours aux
formalismes de modeacutelisation tels que E-A ou UML est donc une aide fondamentale pour parvenir agrave une
repreacutesentation qui ne sera plus lieacutee agrave linterpreacutetation du lecteur
La traduction dun cahier des charges speacutecifiant lexistant et les besoins en modegravele conceptuel reste neacuteanmoins
une eacutetape deacutelicate qui va conditionner ensuite lensemble de limpleacutementation informatique En effet les eacutetape
suivantes sont plus meacutecaniques dans la mesure ougrave un modegravele logique est deacuteduit de faccedilon systeacutematique du
modegravele conceptuel et que limpleacutementation logicielle est eacutegalement reacutealiseacutee par traduction directe du modegravele
logique
RemarqueLes eacutetatpes de traduction logique et dimtpleacutementation
Des logiciels speacutecialiseacutes (par exemple Objecteering [w_objecteering]) sont capables agrave partir dun modegravele
conceptuel dappliquer des algorithmes de traduction qui permettent dobtenir directement le modegravele logique
puis les instructions pour la creacuteation de la base de donneacutees dans un langage orienteacute donneacutees tel que SQL
Lexistence de tels algorithmes de traduction montre que les eacutetapes de traduction logique et dimpleacutementation
sont moins complexes que les preacuteceacutedentes car plus systeacutematiques
Neacuteanmoins ces eacutetapes exigent tout de mecircme des compeacutetences techniques pour optimiser les modegraveles logiques
(normalisation) puis les impleacutementations en fonction dun contexte de mise en œuvre mateacuteriel logiciel et
humain
c) Qatre eacutetapes pour reacuteduire la complexiteacute La reacutealisation dune base de donneacutees est une tacircche complexe le deacutecoupage en quatre eacutetapes permet de geacuterer
cette complexiteacute
Clarification ModeacutelisationConceptuelle ModeacutelisationLogique Im pleacutem entation
Conception en quatre eacutetapes
Introduction geacuteneacuterale aux bases de donneacutees
13
Lideacutee geacuteneacuterale est de ne pas meacutelanger la nature des tacircches typiquement on ne veut pas en mecircme temps
se poser des questions geacuteneacuterales relatives aux besoins (ce que je veux faire) et des questions techniques tregraves
speacutecifiques (comment repreacutesenter telle information)
Meacutethode
Lapproche est donc
de regarder agrave gauche on regarde le monde quand on clarifie on regarde la note de clarification
quand on fait le MCD on regarde le MCD quand on fait le MLD on regarde le MLD quand on
impleacutemente
et de ne pas regarder trop loin on anticipe deacutejagrave le MCD pendant la clarification mais on ne se
preacuteoccupe pas de questions dimpleacutementation quand on fait le MLD on ne se pose plus de question
sur le monde la clarification et le MCD ont ducirc deacutejagrave reacutepondre quand on impleacutemente on ne se pose
plus de question de modeacutelisation on soccupe des programmes de la machine
Fondamental
On peut toujours revenir sur une eacutetape la conception est iteacuterative mais on ne doit pas tout le
temps se poser tous les problegravemes en mecircme temps
d) Eacuteleacutements pour lanalyse de lexistant et des besoins La phase danalyse de lexistant et des besoins est une phase essentielle et complexe Elle doit aboutir agrave des
speacutecifications geacuteneacuterales qui deacutecrivent en langage naturel les donneacutees manipuleacutees et les traitements agrave
effectuer sur ces donneacutees
On se propose de donner une liste non exhaustive dactions agrave mener pour reacutediger de telles speacutecifications
Meacutethode Lanalyse de documents existants
La conception dune base de donneacutees sinscrit geacuteneacuteralement au sein dusages existants Ces usages sont
geacuteneacuteralement au moins en partie instrumenteacutes agrave travers des documents eacutelectroniques ou non (papier
typiquement) Il est fondamental danalyser ces documents et de recenser les donneacutees quils manipulent
Exemtple Exemtples de document existants agrave analyser
Fichiers papiers de stockage des donneacutees (personnel produits etc)
Formulaires papiers denregistrement des donneacutees (fiche didentification dun salarieacute fiche de
description dun produit bon de commande etc)
Documents eacutelectroniques de type traitement de texte (lettres mailing proceacutedures etc)
Documents eacutelectroniques de type tableurs (bilans statistiques calculs etc)
Bases de donneacutees existantes agrave remplacer ou avec lesquelles saccorder (gestion des salaires de la
production etc)
Intranet dentreprise (information teacuteleacutechargement de documents etc)
etc
Meacutethode Le recueil dextpertise meacutetier
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 14
Les donneacutees que la base va devoir manipuler sont toujours relatives aux meacutetiers de lentreprise et il existe
des experts qui pratiquent ces meacutetiers Le dialogue avec ces experts est une source importante dinformations
Il permet eacutegalement de fixer la terminologie du domaine
Exemtple Exemtples dextperts agrave consulter
Praticiens (secreacutetaires ouvrier controcircleurs etc)
Cadres (responsables de service contre-maicirctres etc)
Experts externes (clients fournisseurs etc)
etc
Meacutethode Le dialogue avec les usagers
La base de donneacutees concerne des utilisateurs cibles cest agrave dire ceux qui produiront et consommeront
effectivement les donneacutees de la base Il est neacutecessaire de dialoguer avec ces utilisateurs qui sont les
deacutetenteurs des connaissances relatives aux besoins reacuteels lieacutes agrave leur reacutealiteacute actuelle (aspects de lorganisation
fonctionnant correctement ou deacutefaillants) et agrave la reacutealiteacute souhaiteacutee (eacutevolutions lacunes etc)
Exemtple Exemtples dutilisateurs avec qui dialoguer
Personnes qui vont effectuer les saisies dinformation (agrave partir de quelles sources Quelle est leur
responsabiliteacute etc)
Personnes qui vont consulter les informations saisies (pour quel usage pour quel destinataire etc)
Personnes qui vont mettre agrave jour les informations (pour quelles raisons comment le processus est
enclencheacute etc)
etc
Meacutethode Leacutetude des autres systegravemes informatiques existants
la base de donneacutees va geacuteneacuteralement (et en fait quasi systeacutematiquement aujourdhui) sinseacuterer parmi un
ensemble dautres logiciels informatiques travaillant sur les donneacutees de lentreprise Il est important danalyser
ces systegravemes afin de mieux comprendre les meacutecanismes existants leurs forces et leurs lacunes et de preacuteparer
linteacutegration de la base avec ces autres systegravemes Une partie de ces systegravemes seront dailleurs souvent
eacutegalement des utilisateurs de la base de donneacutees tandis que la base de donneacutees sera elle mecircme utilisatrice
dautre systegravemes
Exemtple Exemtples dautres systegravemes coexistants agrave eacutetudier
Autres bases de donneacutees (les donneacutees sont elle disjointes ou partiellement communes avec celles de la
base agrave concevoir quelles sont les technologies logicielles sur lesquelles reposent ces BD etc)
Systegravemes de fichiers classiques (certains fichiers ont-ils vocations agrave ecirctre supplanteacutes par la base agrave ecirctre
geacuteneacutereacutes par la base agrave alimenter la base etc)
Applications (ces applications ont elles besoins de donneacutees de la base peuvent-elles lui en fournir
etc)
etc
Comtpleacutement Meacutethodes danalyse
Il existe des outils et meacutethodes danalyse en ingeacutenierie comme lanalyse fonctionnelle (AF) qui deacutepassent le
cadre de la conception des bases de donneacutees mais sont tout agrave fait compleacutementaires
Introduction geacuteneacuterale aux bases de donneacutees
15
e) Modeacutelisation conceptuelle de donneacutees Lobjection du modegravele conceptuel est de repreacutesenter le problegraveme agrave laide de repreacutesentations graphiques et
partiellement formelles
Les principales caracteacuteristiques du modegravele conceptuel sont
Une repreacutesentation graphique simple
Une puissance dexpression eacuteleveacutee pour un nombre de symboles raisonnables
Une lecture accessible agrave tous et donc un bon outil de dialogue entre les acteurs techniques et non
techniques
Une formalisation peu ambigueuml et donc un bon outil de speacutecification deacutetailleacutee
Remarque
Le modegravele nest pas encore formel donc certaines repreacutesentations peuvent ecirctre eacutequivoques mecircme si on a
leveacute de tregraves nombreuses ambiguiumlteacutes
E-A
La modeacutelisation conceptuelle en bases de donneacutees relationnelle eacutetait agrave lorigine faite avec le formalisme E-A
de la meacutethode MERISE
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 16
Modegravele E-A gestion de projets
UML
UML est un autre langage de modeacutelisation plus reacutecent que E-A et couvrant un spectre plus large que les
bases de donneacutees En tant que standard de lOMG et en tant que outil tregraves utiliseacute pour la programmation
orienteacutee objet il a supplanteacute la modeacutelisation E-A
Remarque
En BD on utilise uniquement le diagramme de classe dUML pour modeacuteliser conceptuellement les donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 17
Modegravele UML gestion de projets
f) Modeacutelisation logique de donneacutees
Deacutefinition Modegravele logique de donneacutees
Un modegravele logique de donneacutees est une description au moyen dun langage formel dun ensemble de donneacutees
Un scheacutema permet de deacutecrire la structure dune base de donneacutees en deacutecrivant lensemble des types de
donneacutees de la base Une instance de base de donneacutees est constitueacutee dun ensemble de donneacutees qui respectent
le scheacutema de la base
Synonyme scheacutema de donneacutees scheacutema
Exemtple Modegravele logique de donneacutees relationnel
Un modegravele logique de donneacutees relationnel permet de repreacutesenter une base de donneacutees relationnelles cest agrave
dire des tables des proprieacuteteacutes des domaines
Exemtple Scheacutema dune relation
Espece(nomchaicircne eucaryotebooleacuteen multicellulairebooleacuteen proprieacuteteacutechaicircne) 1
Exemtple Scheacutema dune base de donneacutees avec tplusieurs relations
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 18
Etudiant (numentier nomchaicircne villechaicircne) Module(numentier titrechaicircne) Inscription(numetuentier nummodentier anneacuteeentier(4))
1 2 3
Instance de base de donneacutees
Etudiant Module
172 Dupont Lille
173 Durand Paris
174 Martin Isabelle
1 SGBD
2 OS
Inscription 172 1 2016 172 2 2016 173 1 2015 174 2 2017
Comtpleacutement Exemtple de formalismes de modeacutelisation logique
Le modegravele CODASYL anteacuterieur au modegravele relationnel est un modegravele hieacuterarchique (Tardieu 1983
[Tardieu83])
Le modegravele relationnel (tabulaire) est le modegravele dominant agrave la base des SGBDR
Le modegravele relationnel-objet (adaptation des modegraveles relationnels et objets au cadre des SGBD) est
actuellement en croissance
Dautres modegraveles (document graphe ) se deacuteveloppent dans le cadre du mouvement NoSQL
Comtpleacutement Voir aussi
Bregraveve introduction aux bases de donneacutees NoSQL - p98
g) Synthegravese Les trois niveaux de conception Niveau Conceptuel
Modegravele conceptuel graphique -
Exemples E-A
UML
Niveau Logique
Scheacutema logique indeacutependant dun SGBD -
Exemples Relationnel
Objet
Relationnel-Objet
Graphe
Document
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 19
Niveau Informatique
Impleacutementation pour un SGBD particulier -
Exemples Oracle
MySQL
PostgreSQL
DB2
Access
SQLServer
MongoDB
Cassandra
Modeacutelisation Modeacutelisation Im pleacutem entation Clarification Conceptuelle
Logique
AF UML Relationnel SQL Conception en quatre eacutetapes exemple de
formalismes
B Exercices
1 Deacutecouverte dune base de donneacutees relationnelle
Cette seacuterie dexercices est destineacutee agrave faire expeacuterimenter un SGBDR afin de se familiariser avec les concepts
classiques des bases de donneacutees relationnelles
Pour la reacutealisation de cet exercice se connecter sur le site dbdiscocrztfr et conserver la fenecirctre du navigateur
ouverte
Db Discodbdiscocrztfr
Objectifs
Deacutecouvrir le modegravele relationnel Deacutecouvrir un SGBDR Deacutecouvrir le langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 20
a) Notion de table
Creacuteer sa premiegravere table Une base de donneacutees relationnelle est principalement constitueacutee de tables (ou laquo relations raquo dougrave le nom
de relationnel) Une table est basiquement un eacuteleacutement dorganisation de linformation constitueacute de colonnes
(ou attributs) et de lignes (ou enregistrements)
Nous allons dans un premier temps creacuteer le scheacutema dune table cest agrave dire deacutefinir ses colonnes Pour cela
nous utiliserons linstruction SQL LDD laquo CREATE raquo
Question 1
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
CREATE TABLE tEtu ( pk_numSecu CHAR(13) PRIMARY KEY k_numEtu
VARCHAR(20) UNIQUE NOT NULL nom
VARCHAR(50) prenom VARCHAR(50))
1 2 3 4 5
Introduction geacuteneacuterale aux bases de donneacutees
21
Alimenter la table Une fois les colonnes de la table deacutefinies nous pouvons en deacuteclarer les lignes Nous utilisons pour cela
linstruction SQL LMD laquo INSERT raquo
Question 2
Exeacutecuter les deux instructions suivantes et deacutecrire ce quelles font
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 AB3937098X Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2820475001124 XGB67668 Durand Anne)
1 2 3 4
Interroger la table Une fois une table creacuteeacutee il est possible agrave tout moment den inspecter le contenu Nous utilisons pour cela
linstruction SQL LMD laquo SELECT raquo
Question 3
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT pk_numSecu k_numEtu nom prenom FROM tEtu
1 2
Question 4
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT nom prenom FROM tEtu WHERE pk_numSecu=2820475001124
1 2 3
b) Notion de contraintes
Contrainte de domaine Lorsque lon deacutefinit une table on deacutefinit eacutegalement des contraintes sur cette table qui serviront agrave controcircler
son inteacutegriteacute par rapport agrave des regravegles que lon aura fixeacutees
Cest notamment le cas des contraintes de domaine qui permettent de veacuterifier quune colonne prend ses
valeurs parmi un ensemble deacutetermineacute (les chaicircnes de 10 caractegraveres au plus les entier de 1 agrave 1000 etc)
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi le systegraveme renvoie une erreur
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (XXXXXXXXXXXXXXX XXXXXX Dupont Pierre)
1 2
Question 2
Donner un exemple de contrainte qui nest pas formuleacutee dans la deacutefinition de la table tEtu et que lon aurait
pu souhaiter
Indice
Pour indiquer quun eacuteleacutement est obligatoire on ajoute la clause NOT NULL apregraves la deacutefinition de son domaine dans linstruction CREATE TABLE
Introduction geacuteneacuterale aux bases de donneacutees
22
Contraintes de cleacute Les contraintes de cleacute se composent de contraintes duniciteacute et de contraintes de non nulliteacute Elles
permettent dassurer que toutes les valeurs dune colonne seront diffeacuterentes pour chaque ligne
Question 3
Exeacutecuter les trois instructions suivantes (les unes apregraves les autres) et expliquer ce qui se passe
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 HGYT67655Y Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 XGB67668 Durand Anne) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 HGYT67655Y Duchemin Aline)
1 2 3 4 5 6
Question 4
Explorer le contenu de votre table en exeacutecutant linstruction suivante et veacuterifier vos explications preacuteceacutedentes
SELECT FROM tEtu
1 2
Question 5
Pourrait-on inseacuterer dans la table une seconde personne qui aurait le preacutenom Aline et le nom Duchemin
Pourquoi
c) Notion de reacutefeacuterences
Cleacute eacutetrangegravere Une base de donneacutees est en geacuteneacuteral constitueacutee de plusieurs tables Ces tables se reacutefeacuterencent entre elles en
utilisant une cleacute eacutetrangegravere cest agrave dire quune des colonnes de la table est utiliseacutee pour faire reacutefeacuterence agrave la
colonne dune autre table
On va agrave preacutesent creacuteer une seconde table qui permettra dassocier des Uniteacutes de Valeurs (UVs) aux eacutetudiants
puis inseacuterer des valeurs dans cette table
CREATE TABLE tUv ( pk_code
CHAR(4) NOT NULL fk_etu
CHAR(13) NOT NULL PRIMARY KEY (pk_code fk_etu) FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu))
1 2 3 4 5
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF26 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF29 1800675001066)
1 2 3 4 5 6
Question 1
Introduction geacuteneacuterale aux bases de donneacutees
23
Expliciter ce quexprime le contenu de la table tUv
Contraintes dinteacutegriteacute reacutefeacuterentielle Lorsque nous avons deacutefini la table tUv nous avons deacutefini une contrainte suppleacutementaire dite dinteacutegriteacute
reacutefeacuterentielle contrainte de type FOREIGN KEY
Question 2
En exeacutecutant les instructions suivantes expliquer quel est le rocircle dune contrainte dinteacutegriteacute reacutefeacuterentielle
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 2810592012232) INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1700792001278)
1 2 3 4
d) Projection restriction et jointure Linstruction SELECT du langage SQL LMD nous donne de larges possibiliteacutes pour interroger les tables dune
base de donneacutees Cette instruction se fonde notamment sur les opeacuterations matheacutematiques de lalgegravebre
relationnelle dont les principales sont la projection la restriction le produit et la jointure
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi cest une projection
SELECT nom prenom FROM tEtu
1 2
Question 2
Exeacutecuter linstruction suivante et expliquer pourquoi cest une restriction
SELECT FROM tEtu WHERE nom=Dupont
1 2 3
Question 3
Exeacutecuter linstruction suivante et expliquer pourquoi cest un produit (carteacutesien)
SELECT FROM tEtutUv
1 2
Question 4
Exeacutecuter linstruction suivante et expliquer pourquoi cest une jointure
SELECT FROM tEtu JOIN tUv ON pk_numSecu=fk_etu
1 2
Question 5
Exeacutecuter linstruction suivante et montrer quune jointure est la composition dun produit et dune restriction
SELECT FROM tEtutUv WHERE pk_numSecu=fk_etu
1 2 3
Introduction geacuteneacuterale aux bases de donneacutees
24
e) Fonctions et agreacutegats Linstruction SELECT permet eacutegalement deffectuer des calculs qui portent sur plusieurs lignes ce que lon
appelle des agreacutegats
Question 1
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT COUNT(pk_code) FROM tUv
1 2
WHERE fk_etu=1800675001066 3
Question 2
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT fk_etu COUNT(pk_code) FROM tUv GROUP BY fk_etu
1 2 3
Question 3
Compleacuteter la requecircte SQL suivante afin quelle renvoie pour chaque UV le nombre deacutetudiants inscrits
SELECT _______ COUNT(______) FROM tUv GROUP BY _______
1 2 3
Agrave lissue de cette seacuterie dexercices vous devez savoir deacutefinir les termes suivants
table ou relation
scheacutema relationnel
domaine
cleacute
cleacute eacutetrangegravere
opeacuterations de projection restriction jointure produit
Introduction geacuteneacuterale aux bases de donneacutees
25
2 Lab 0
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux meacutedicaments
avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi quune description
longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le nombre de pilules par boicircte
(qui est un nombre entier)
Ce problegraveme est un exemple tregraves simple que lon pourra modeacuteliser avec une base de donneacutees relationnelle agrave
une seule table
Vous pouvez tester vos instructions SQL ici Db Discodbdiscocrztfr
Question 1
Proposer une clarification du problegraveme (par exemple sous la forme dune liste des proprieacuteteacutes de la relation
viseacutee)
Question 2
Proposer un exemple de donneacutees
Question 3
Dessiner un modegravele conceptuel de donneacutees en UML Il ne contient quune seule classe
Indice Modeacutelisation conceptuelle de donneacutees
Question 4
Proposer un modegravele logique de donneacutees sous forme de scheacutema relationnel Il ne contient quune seule relation
Indice Modeacutelisation logique de donneacutees
Question 5
Proposer une impleacutementation en SQL standard de votre modegravele relationnel Il ne contient quune seule
instruction CREATE TABLE
Indice Langage de donneacutees lexemple du langage SQL
Question 6
Eacutecrivez les instructions SQL permettant dinseacuterer vos donneacutees de test dans votre base de donneacutees
Indice Langage de donneacutees lexemple du langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
26
27
II - Introduction agrave la
modeacutelisation
conceptuelle de donneacutees avec
UML
A Cours
La modeacutelisation conceptuelle est leacutetape fondatrice du processus de conception de BD Elle consiste agrave
abstraire le problegraveme reacuteel poseacute pour en faire une reformulation qui trouvera une solution dans le cadre
technologique dun
SGBD
Si le modegravele dominant en conception de bases de donneacutees a longtemps eacuteteacute le modegravele E-A le modegravele UML
se geacuteneacuteralise de plus en plus Nous proposons ici une introduction au diagramme de classes agrave travers la
repreacutesentation de classes et dassociations simples (il existe dautres diagrammes UML par exemple le
diagramme de cas et dautres primitives de repreacutesentation dans le diagramme de classe par exemple
lheacuteritage)
II
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
28
1 Notion de modegravele
a) Exercice Centre meacutedical [5 min]
Soit le modegravele conceptuel suivant repreacutesentant des visites dans un centre meacutedical Quelles sont les assertions vraies selon ce scheacutema
Image 1
Un patient peut effectuer plusieurs visites
Tous les patients ont effectueacute au moins une consultation
Un meacutedecin peut recevoir plusieurs patients pendant la mecircme consultation
Un meacutedecin peut prescrire plusieurs meacutedicaments lors dune mecircme consultation
Deux meacutedecins diffeacuterents peuvent prescrire le mecircme meacutedicament
b) Qest ce quun modegravele
Deacutefinition Modegravele
laquo Modeling in the broadest sense is the cost-effective use of something in place of something else for some
cognitive purpose It allows us to use something that is simpler safer or cheaper than reality instead of reality
for some purpose A model represents reality for the given purpose the model is an abstraction of reality in
the sense that it cannot represent all aspects of reality raquo (Rothenberg 1989 [Rothenberg et al 1989] citeacute
par Arribe 2014 [Arribe 2014])
laquo Systegraveme physique matheacutematique ou logique repreacutesentant les structures essentielles dune reacutealiteacute et capable
agrave son niveau den expliquer ou den reproduire dynamiquement le fonctionnement raquo (TLFi)
Fondamental Modegravele
Un modegravele est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser quelque chose
Objectifs
Savoir ce quest un modegravele
Savoir ce quest le langage UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
29
c) Qest ce quun modegravele en informatique
Deacutefinition Modegravele informatique
Un modegravele informatique est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser un traitement avec
un ordinateur
Comtpleacutement Numeacuterisation et abstraction Toute information numeacuterique a
eacuteteacute codeacutee selon un modegravele donneacute
laquo Tout numeacuterisation est une repreacutesentation de la reacutealiteacute sous la forme dune modeacutelisation numeacuterique Cette
modeacutelisation procegravede dune abstraction au sens ougrave cest une seacuteparation davec le reacuteel au sens ougrave cest une
construction destineacutee agrave la manipulation (algorithmique en loccurrence) et au sens ougrave cest une simplification
de la reacutealiteacute raquo
httpaswemayfrcotropism-preshtml1
d) Qest ce quun bon modegravele
Atention
Un modegravele est une abstraction une simplification de la reacutealiteacute ce nest pas la reacutealiteacute il nest
jamais complegravetement fidegravele par construction
Le seul modegravele complegravetement fidegravele agrave la reacutealiteacute est la reacutealiteacute elle-mecircme et ce nest donc pas un
modegravele
Exemtple La carte et le territoire
Une carte est un modegravele dun territoire Elle est une repreacutesentation simplifieacutee destineacute agrave un usage particulier
randonner agrave pied en veacutelo
se diriger en voiture sur des grands axes sur des axes secondaires
voler en avion de tourisme en avion de ligne
naviguer sur fleuve sur mer
eacutetudier les frontiegraveres dune reacutegion dun pays de la terre
eacutetudier la deacutemographie leacuteconomie
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
30
Fondamental
Agrave partir de cet exemple on notera que 1 Un modegravele est orienteacute par un usage
Chacune de ces cartes est tregraves diffeacuterente selon ce que lon veut faire 2 Un modegravele ne cherche pas agrave ecirctre proche de la reacutealiteacute
Chacune de ces cartes est tregraves diffeacuterente de la reacutealiteacute quelle repreacutesente 3 Un modegravele adresse un niveau dinformation qui existe mais qui nest pas accessible dans
la reacutealiteacute Chacune de ces cartes permet quelque chose que ne permet pas laccegraves direct agrave la reacutealiteacute
ndash wwwsambaconsultantscom
Meacutethode Le rasoir dOckham Entre deux modegraveles donneacutes le meilleur modegravele est-il
toujours le tplus fourni
La meacutethode de raisonnement connue sous le nom de rasoir dOckham (du nom du philosophe eacuteponyme)
consiste agrave preacutefeacuterer les solutions les plus simples aux plus complexes lorsquelles semblent permettre
eacutegalement de reacutesoudre un problegraveme donneacute entre deux theacuteories eacutequivalentes toujours preacutefeacuterer la plus simple
Ce principe sapplique tregraves bien agrave la modeacutelisation eacutetant donneacute un objectif et plusieurs modegraveles possibles il
ne faut pas choisir a priori celui qui repreacutesente le plus de choses mais preacutefeacuterer le plus simple degraves quil couvre
le besoin
Cest un principe deacuteconomie (il coucircte moins cher agrave produire) et defficaciteacute (car les eacuteleacutements inutiles du modegravele
plus fourni nuiront agrave lefficaciteacute de la tacircche)
Exemtple
Ainsi pour naviguer en voiture il est plus simple de ne pas avoir sur la carte les chemins de randonneacutees qui
ne sont pas praticables en voiture
2 Introduction au diagramme de classes UML classes et
associations
a) Lab I
Description du problegraveme [15 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
Objectifs
Savoir faire un modegravele conceptuel
Savoir interpreacuteter un modegravele conceptuel
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
31
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
b) Preacutesentation dUML UML est un langage de repreacutesentation destineacute en particulier agrave la modeacutelisation objet UML est devenu une
norme OMG en 1997
UML propose un formalisme qui impose de penser objet et permet de rester indeacutependant dun langage de
programmation donneacute Pour ce faire UML normalise les concepts de lobjet (eacutenumeacuteration et deacutefinition
exhaustive des concepts) ainsi que leur notation graphique Il peut donc ecirctre utiliseacute comme un moyen de
communication entre les eacutetapes de speacutecification conceptuelle et les eacutetapes de speacutecifications techniques
Fondamental Diagramme de classe
Le diagramme de classes est un sous ensemble dUML qui sattache agrave la description statique dun
modegravele de donneacutees repreacutesenteacutees par des classes dobjets
Remarque
Dans le domaine des bases de donneacutees UML peut ecirctre utiliseacute agrave la place du modegravele E-A pour modeacuteliser le
domaine De la mecircme faccedilon un scheacutema conceptuel UML peut alors ecirctre traduit en scheacutema logique (relationnel
ou relationnel-objet typiquement)
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
32
c) Classes
Deacutefinition Classe
Une classe est un type abstrait caracteacuteriseacute par des proprieacuteteacutes (attributs et meacutethodes) communes agrave un ensemble
dobjets et permettant de creacuteer des instances de ces objets ayant ces proprieacuteteacutes
Image 2 Repreacutesentation UML dune classe
Exemtple La classe Voiture
Lobjet V1 est une instance de la classe Voiture
V1 Voiture
Marque Citroeumln
Type ZX
Portes 5
Puissance 6
Kilomeacutetrage 300000
Comtpleacutement
La modeacutelisation sous forme de diagramme de classes est une modeacutelisation statique qui met en exergue la
structure dun modegravele mais ne rend pas compte de son eacutevolution temporelle UML propose dautres types de
diagrammes pour traiter notamment de ces aspects
d) Atributs
Deacutefinition Atribut
Un attribut est une information eacuteleacutementaire qui caracteacuterise une classe et dont la valeur deacutepend de lobjet
instancieacute
Syntaxe
Image 3 Exemple de classe repreacutesenteacutee en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
33
Un attribut est typeacute Le domaine des valeurs que peut prendre lattribut est fixeacute a priori
Un attribut peut ecirctre multivalueacute Il peut prendre plusieurs valeurs distinctes dans son domaine
Un attribut peut ecirctre deacuteriveacute Sa valeur alors est une fonction sur dautres attributs de la classe
Un attribut peut ecirctre composeacute (ou composite) Il joue alors le rocircle dun groupe dattributs (par
exemple une adresse peut ecirctre un attribut composeacute des attributs numeacutero type de voie nom de la
voie) Cette notion renvoie agrave la notion de variable de type Record dans les langages de programmation
classiques
Atention On utilise peu les atributs deacuteriveacutes et composeacutes en UML
En UML on preacutefegravere lusage de meacutethodes aux attributs deacuteriveacutes On utilisera toujours des
meacutethodes degraves que la valeur de lattribut deacuteriveacute deacutepend dautres attributs exteacuterieurs agrave sa
classe
En UML on preacutefegravere lusage de compositions aux attributs composeacutes On utilisera toujours
des compositions pour les attributs composeacutes et multivalueacutes
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
34
Syntaxe
attributtype attribut_multivalueacute[nbMinValeursnbMaxValeurs]type attribut_deacuteriveacutetype attribut_composeacute - sous-attribut1type - sous-attribut2type -
1 2 3 4 5 6 7
Image 4 Repreacutesentation dattributs en UML
Dans cet exemple les attributs Nom Preacutenom sont de type string lun de 20 caractegraveres et lautre de 10 tandis
que DateNaissance est de type date et Age de type integer Preacutenom est un attribut multivalueacute ici une personne
peut avoir de 1 agrave 3 preacutenoms Age est un attribut deacuteriveacute il est calculeacute par une fonction sur DateNaissance
Comtpleacutement Voir aussi
Meacutethodes
Composition - p99
e) Repeacuterage des cleacutes Un attribut ou un groupe dattributs peut ecirctre annoteacute comme eacutetant cleacute sil permet didentifier de faccedilon unique
un objet de la classe
On ajoute le symbole key agrave cocircteacute du ou des attributs concerneacutes
Cleacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
35
Cleacute composeacutee de deux attributs
Meacutethode
Le repeacuterage des cleacutes nest pas systeacutematique en UML (la deacutefinition des cleacutes se fera essentiellement au niveau
logique) On cherchera neacuteanmoins agrave repeacuterer les cleacutes rendues eacutevidentes par la phase de clarification
Atention
On najoutera jamais de cleacute artificielle au niveau du MCD Si aucune cleacute nest eacutevidente on laisse
la classe sans cleacute Atention Atribut souligneacute et
On trouvera dans ce cours des exemples dattributs souligneacutes ou preacuteceacutedeacutes de pour exprimer
luniciteacute Ce nest pas une pratique standard et la notation key devrait lui ecirctre substitueacutee
Un attribut souligneacute est normalement un attribut de classe ou static en UML Un
attribut preacuteceacutedeacute de est normalement un attribut proteacutegeacute en UML
Mais les concepts dattribut de classe et dattribut proteacutegeacute ne sont pas utiliseacutes dans le cadre des
bases de donneacutees
f) Meacutethodes
Deacutefinition Meacutethode
Une meacutethode (ou opeacuteration) est une fonction associeacutee agrave une classe dobjet qui permet dagir sur les objets de
la classe ou qui permet agrave ces objets de renvoyer des valeurs (calculeacutees en fonction de paramegravetres)
Syntaxe
methode(paramegravetres)type 1
Remarque Meacutethodes et modeacutelisation de BD
Pour la modeacutelisation des bases de donneacutees les meacutethodes sont surtout utiliseacutees pour repreacutesenter des donneacutees
calculeacutees (agrave linstar des attributs deacuteriveacutees) ou pour mettre en exergue des fonctions importantes du systegraveme
cible Seules les meacutethodes les plus importantes sont repreacutesenteacutees lapproche est moins systeacutematique quen
modeacutelisation objet par exemple
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
36
Remarque Meacutethodes relationnel relationnel-objet
Lors de la transformation du modegravele conceptuel UML en modegravele logique relationnel les meacutethodes ne seront
geacuteneacuteralement pas impleacutementeacutees Leur repeacuterage au niveau conceptuel sert donc surtout daide-meacutemoire
pour limpleacutementation au niveau applicatif
Au contraire un modegravele logique relationnel-objet permettra limpleacutementation de meacutethodes directement
associeacutees agrave des tables Leur repeacuterage au niveau conceptuel est donc encore plus important
Comtpleacutement Transformation des meacutethodes par des vues - p98
g) Associations
Deacutefinition Association
Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire)
qui deacutefinit un ensemble de liens entre les objets de ces classes
Une association est nommeacutee geacuteneacuteralement par un verbe Une association peut avoir des proprieacuteteacutes (agrave linstar
dune classe) Une association deacutefinit le nombre minimum et maximum dinstances autoriseacutee dans la relation
(on parle de cardinaliteacute)
Syntaxe
Image 5 Notation de lassociation en UML
Atention
Le nom de lassociation (verbe qui la deacutecrit) est obligatoire au mecircme titre que le nom dune
classe ou dun attribut
Remarque
Une association est geacuteneacuteralement bidirectionnelle (cest agrave dire quelle peut se lire dans les deux sens) Les
associations qui ne respectent pas cette proprieacuteteacute sont dites unidirectionnelles ou agrave navigation restreinte
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
37
Image 6 Repreacutesentation dassociation en UML
Lassociation Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des
voitures
Comtpleacutement Voir aussi
Cardinaliteacute
Explicitation des associations - p100
Associations ternaires - p101
Contraintes sur les associations - p101
h) Cardinaliteacute
Deacutefinition Cardinaliteacute dune association
La cardinaliteacute dune association permet de repreacutesenter le nombre minimum et maximum dinstances qui sont
autoriseacutees agrave participer agrave la relation La cardinaliteacute est deacutefinie pour les deux sens de la relation
Syntaxe
Si mina (resp maxa) est le nombre minimum (resp maximum) dinstances de la classe A autoriseacutees agrave participer
agrave lassociation on note sur la relation agrave cocircteacute de la classe A minamaxa
Si le nombre maximum est indeacutetermineacute on note n ou
Atention
La notation de la cardinaliteacute en UML est opposeacutee agrave celle adopteacutee en E-A En UML on note agrave gauche
(resp agrave droite) le nombre dinstances de la classe de gauche (resp de droite) autoriseacutees dans
lassociation En E-A on note agrave gauche (resp agrave droite) le nombre dinstances de la classe de
droite (resp de gauche) autoriseacutees dans lassociation
Remarque
Les cardinaliteacutes les plus courantes sont
01 (optionnel)
11 ou 1 (un)
Lassociation Conduit
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
38
0n ou 0 ou (plusieurs)
Ici un conducteur peut posseacuteder plusieurs voitures (y compris aucune) et une voiture nest posseacutedeacutee que par
un seul conducteur
i) Classe dassociation
Deacutefinition Classe dassociation
On utilise la notation des classes dassociation lorsque lon souhaite ajouter des proprieacuteteacutes agrave une association
Syntaxe Notation dune classe dassociation en UML
Image 8 Notation dune classe dassociation en UML
1 n ou 1 (obligatoire )
Image 7 Repreacutesentation de cardinaliteacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
39
Image 9 Emplois
B Exercices
1 Exercice Lire lUML [15 min]
Tennis Le scheacutema suivant repreacutesente les rencontres lors dun tournoi de tennis Quelles sont les assertions vraies selon ce scheacutema
Image 10
On peut jouer des matchs de double
Un joueur peut gagner un match sans y avoir participeacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
40
Il peut y avoir deux matchs sur le mecircme terrain agrave la mecircme heure
Connaissant un joueur on peut savoir sur quels terrains il a joueacute
Journal Voici le scheacutema conceptuel du systegraveme dinformation (tregraves simplifieacute) dun quotidien Quelles sont les assertions vraies selon ce scheacutema
Image 11
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
41
Un article peut ecirctre reacutedigeacute par plusieurs journalistes
Un article peut ecirctre publieacute plusieurs fois dans le mecircme journal
Un article peut ecirctre publieacute dans un journal par un journaliste qui ne travaille pas pour ce
journal
Il peut y avoir plusieurs articles sur le mecircme sujet
Un journaliste peut interviewer une personnaliteacute sans faire darticle agrave ce propos
Logistique Une socieacuteteacute de transport routier veut installer un systegraveme dinformation pour rendre plus efficace sa logistique Embaucheacute au service informatique de cette compagnie vous ecirctes donc chargeacute de reprendre le travail deacutejagrave effectueacute (cest agrave dire le scheacutema suivant)
Quelles sont les assertions vraies selon ce scheacutema
Image 12
Un conducteur peut conduire plusieurs camions
Un conducteur peut conduire un camion sans y ecirctre autoriseacute
Il peut y avoir plusieurs conducteurs pour le mecircme camion
Un conducteur peut livrer sa propre ville
2 Gestion dune coopeacuterative viticole
[20 minutes] Cet exercice a eacuteteacute inspireacute par Bases de donneacutees objet et relationnel [Gardarin99]
On considegravere une base Coopeacuterative qui possegravede les caracteacuteristiques suivantes
Un vin est caracteacuteriseacute par un numeacutero entier unique nv un cru une anneacutee de production et un degreacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
42
Un viticulteur est caracteacuteriseacute par un numeacutero entier unique nvt un nom et une ville Un viticulteur produit un ou plusieurs vins et reacuteciproquement un vin est produit par un ou plusieurs
producteurs (eacuteventuellement aucun)
Les buveurs sont caracteacuteriseacutes par un numeacutero de buveur nb un nom preacutenom et une adresse (limiteacutee agrave
la ville pour simplifier)
Un buveur consomme des vins et peut passer des commandes pour acheter des vins
Question 1
Lister tous les types dobjet agrave consideacuterer les attributs associeacutes et les domaines de valeurs de ces attributs
Repeacuterer les eacuteventuelles cleacutes
Question 2
Lister toutes les associations agrave consideacuterer et indiquer leurs cardinaliteacutes
Question 3
Donner le diagramme UML de cette situation
3 Cours et intervenants
[20 min] On souhaite reacutealiser une base de donneacutees pour geacuterer les cours dispenseacutes dans une eacutecole dingeacutenieur ainsi
que les personnes qui interviennent dans ces cours
Chaque cours est identifieacute par une anneacutee et un numeacutero Chaque cours a donc un numeacutero unique localement
agrave chaque anneacutee Un cours possegravede un titre et un type (C pour Cours TD ou TP) Un cours possegravede
eacutegalement une date de deacutebut et une date de fin qui est toujours de 5 jours apregraves la date de deacutebut
Chaque intervenant est identifieacute par son nom (deux intervenants ne peuvent pas avoir le mecircme nom) Il a un
preacutenom un bureau un ou plusieurs numeacuteros de teacuteleacutephones (jusquagrave trois numeacuteros) et des speacutecialiteacutes Un
bureau est deacutefini par un centre (R pour Royallieu BF pour Benjamin Franklin et PG pour Pierre Guillaumat)
un bacirctiment (une lettre de A agrave Z) et un numeacutero (infeacuterieur agrave 1000) Les speacutecialiteacutes sont des couples de chaicircnes
de caractegraveres deacutesignant un domaine (par exemple BD) et une speacutecialiteacute (par exemple SGBDRO)
Chaque cours est donneacute par un unique intervenant
Voici un exemple Le cours Machines universelles ndeg21 de lanneacutee 2014 est donneacute par Alan Turing entre le
05012014 et le 10012014 Cest un cours de type C Alan Turing a le bureau 666 au bacirctiment X de PG Il
a les numeacuteros de teacuteleacutephone 0666666666 et 0766666666 Il possegravede les speacutecialiteacutes suivantes
Domaine Matheacutematique Speacutecialiteacute Cryptographie
Domaine Informatique Speacutecialiteacute Algorithmie
Domaine Informatique Speacutecialiteacute Intelligence Artificielle
Question
Reacutealiser le modegravele UML de la base de donneacutees Preacuteciser les cleacutes et les types des attributs
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
43
4 Gestion du personnel
[30 minutes] Le service de gestion du personnel dune entreprise deacutesire seacutequiper dun outil lui permettant de geacuterer
informatiquement ses employeacutes leurs salaires et leurs congeacutes Les speacutecifications suivantes ont pu ecirctre mises
en exergue par une analyse des besoins reacutealiseacutee aupregraves des utilisateurs du service du personnel
Geacuteneacuteraliteacutes
tout employeacute est identifieacute par un nom un preacutenom et une date de naissance
tout employeacute remplit une fonction et appartient agrave un service
pour chaque employeacute on gegravere la date dembauche et la quotiteacute (cest agrave dire le pourcentage de temps
travailleacute par rapport au temps plein en cas de travail agrave temps partiel)
Gestion des salaires
pour chaque employeacute on gegravere lhistorique de ses salaires dans lentreprise chaque salaire eacutetant affecteacute
agrave une peacuteriode de temps
un salaire est composeacute dun salaire brut de charges patronales et de charges salariales
on cherchera agrave partir des ces donneacutees agrave obtenir eacutegalement le salaire chargeacute (brut + charges patronales)
et le salaire net (brut - charges salariales) et ce en particulier pour le salaire en cours (celui que
touche actuellement le salarieacute)
Gestion des congeacutes
pour chaque employeacute on meacutemorise chaque congeacute pris (posant quun congeacute concerne toujours une ou
plusieurs journeacutees entiegraveres)
chaque employeacute a le droit aux jours de congeacutes suivants
- 25 jours (pour une quotiteacute de 1) et 25 x quotiteacute sinon - chaque fonction ouvre les droits agrave un certain nombre de jours de RTT - chaque service ouvre les droits agrave un certain nombre de jours de RTT - chaque tranche de 5 ans passeacutes dans lentreprise donne droit agrave 1 jour suppleacutementaire - les employeacutes de plus de 40 ans ont un jour suppleacutementaire et ceux de plus de 50 ans deux
pour chaque employeacute on cherchera agrave connaicirctre le nombre total de jours de congeacutes autoriseacutes le nombre
de jours pris et le nombre de jours restants sur lanneacutee en cours
Question
Reacutealiser le diagramme de classes permettant de modeacuteliser ce problegraveme
44
III - La modeacutelisation logique
relationnelle
A Cours
Le modegravele relationnel est aux fondements des SGBDR Il a eacuteteacute et continue decirctre le modegravele theacuteorique
dominant pour la repreacutesentation logique des base de donneacutees mecircme si le mouvement NoSQL propose des
alternatives
Le modegravele relationnel permet de reformuler le modegravele conceptuel dans un formalisme - le tableau - beaucoup
plus proche de limpleacutementation informatique bien quencore indeacutependant dune solution technologique
particuliegravere
1 Introduction au modegravele relationnel
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
III
La modeacutelisation logique relationnelle
45
a) Niveau logique Le niveau logique est le lien entre le niveau conceptuel et limpleacutementation effective de lapplication Le modegravele
conceptuel eacutetant un modegravele formel le modegravele logique a pour vocation decirctre eacutegalement un modegravele formel
mais speacutecifiant non plus la reacutealiteacute existante ou rechercheacutee comme le modegravele conceptuel mais les donneacutees
telles quelles vont exister dans lapplication informatique
Pour assumer cette fonction le modegravele relationnel [Codd70] sest imposeacute en reacuteaction aux insuffisances des
modegraveles anteacuterieurs les modegraveles hieacuterarchique et reacuteseau et de part la puissance de ses fondements
matheacutematiques Encore aujourdhui dominant le modegravele relationnel est un fondement indispensable agrave la
conception de bases de donneacutees
Ratptpel
Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
b) Deacutefinition du modegravele relationnel
Introduction
Le modegravele relationnel a eacuteteacute introduit par Codd [Codd70] en 1970 au laboratoire de recherche dIBM de San
Joseacute Il sagit dun modegravele simple et puissant agrave la base de la majoriteacute des bases de donneacutees encore aujourdhui
Les objectifs du modegravele relationnel formuleacutes par Codd sont les suivants
Assurer lindeacutependance des applications et de la repreacutesentation interne des donneacutees
Geacuterer les problegravemes de coheacuterence et de redondance des donneacutees
Utiliser des langages de donneacutees baseacutes sur des theacuteories solides
Deacutefinition Modegravele relationnel
On appelle modegravele relationnel un ensemble de concepts permettant de formaliser logiquement la description
darticles de fichiers plats indeacutependamment de la faccedilon dont ils sont physiquement stockeacutes dans une meacutemoire
numeacuterique
Le modegravele relationnel inclut des concepts pour la description de donneacutees ainsi que des concepts pour la
manipulation de donneacutees
Fondamental Repreacutesenter le monde en tables
Le modegravele relationnel permet de repreacutesenter les donneacutees que lon va geacuterer agrave laide dun tregraves petit
nombre de concepts tregraves simples
Les relations ou tables des lignes et des colonnes
Les domaines de valeurs chaque case dune table prend une unique valeur dans un
domaine preacute-deacutefini
Les cleacutes il existe des cases dont les valeurs doivent ecirctre uniques et non nulles
Les cleacutes eacutetrangegraveres il existe des cases qui doivent prendre une valeur existante dans les
cases dune autre table
La modeacutelisation logique relationnelle
46
Comtpleacutement Extension du modegravele relationnel
Le modegravele relationnel est un standard normaliseacute par lISO agrave travers son langage le SQL Il se veut neacuteanmoins
degraves lorigine extensible pour permettre de geacuterer des donneacutees plus complexes que les donneacutees tabulaires Le
modegravele relationnel-objet est neacute de cette extension
2 Les concepts fondamentaux du modegravele relationnel
atributs enregistrement domaine
a) Domaine
Deacutefinition Domaine
Ensemble caracteacuteriseacute par un nom dans lequel des donneacutees peuvent prendre leurs valeurs
Remarque Un domaine peut-ecirctre deacutefini en intension (cest agrave dire en deacutefinissant les proprieacuteteacutes caracteacuteristiques des
valeurs du domaine on parle aussi de compreacutehension) ou en extension (cest agrave dire en eacutenumeacuterant toutes
les valeurs du domaine)
Exemtple Domaines deacutefinis en intension
Tous les entiers
Les reacuteels infeacuterieur agrave 5
Les booleacuteen (vrai ou faux)
Toutes les chaicircnes de 1 agrave 255 caractegraveres
Les valeurs moneacutetaires deacutefinie comme des deacutecimaux avec deux chiffres apregraves la virgule
Les dates deacutefinies comme des chaicircnes de 10 caractegraveres comprenant des chiffres et des tirets selon le
patron 00-00-0000
Les salaires deacutefinis comme des valeurs moneacutetaires compris entre 15000 et 100000
Exemtple Domaines deacutefinis en extension
Couleur Bleu Vert Rouge Jaune Blanc Noir
SGBD Hieacuterarchique Reacuteseau Relationnel Objet Relationnel-Objet
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
La modeacutelisation logique relationnelle
47
b) Exercice Indiquez quelle deacutefinition et quel exemple correspondent respectivement aux mots intension et extension
1 - Le domaine des couleurs
2 - Eacutenonciation exhaustive de lensemble des objets du domaine
3 - bleu rouge vert
4 - Explicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa compreacutehension
abstraite geacuteneacuterale)
Intension Extension
c) Atribut et enregistrement
Deacutefinition Atribut
On appelle attribut dune relation une colonne de cette relation Un attribut est caracteacuteriseacute par un nom et un
domaine dans lequel il prend ses valeurs
Synonymes Champs Proprieacuteteacute Colonne
Deacutefinition Enregistrement
On appelle enregistrement dune relation une ligne de cette relation Un enregistrement prend une valeur
pour chaque attribut de la relation
Synonymes Tuple N-uplet Vecteur Ligne
La modeacutelisation logique relationnelle
48
Exemtple
A B
1 1
1 2
2 2
Tableau 5 Relation R
La relation R comporte les deux attributs A et B et les trois enregistrements lt11gt lt12gt et lt22gt
Remarque Atribut domaine ordre
Un attribut se distingue dun domaine car il peut ne comporter que certaines valeurs de ce domaine
Les colonnes de la relation ne sont pas ordonneacutees et elles ne sont donc repeacutereacutees que par le nom de lattribut
Remarque Valeur nulle
Un enregistrement peut ne pas avoir de valeur pour certains attributs de la relation parce que cette valeur
est inconnue ou inapplicable sa valeur est alors null
d) Exemple La relation Vol
Exemtple
Numero Compagnie Avion Deacutepart Arriveacutee Date
AF3245 Air France 747 Paris Oulan Bator 01shy08shy2002
AF6767 Air France A320 Paris Toulouse 30shy07shy2002
KLM234 KML 727 Paris Amsterdam 31shy07shy2002
Tableau 6 Relation Vol
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel
Objectifs
Connaicirctre les notions de cleacutes candidates naturelles artificielles primaire eacutetrangegravere
Aborder le principe deacuteclatement des relations et de nonredondance
La modeacutelisation logique relationnelle
49
a) Cleacute
Deacutefinition Cleacute
Une cleacute est un groupe dattributs minimum qui permet didentifier de faccedilon univoque un tuple dans une
relation
Fondamental
Toute relation doit comporter au moins une cleacute ce qui implique quune relation ne peut pas
contenir deux tuples identiques
Atention Atributs de cleacutes unique et non null Afin decirctre deacuteterminants pour lidentification dun enregistrement tous les attributs dune cleacute
doivent ecirctre valueacutes cest-agrave-dire quaucun ne peut avoir de valeur null Dire quun groupe
dattribut est une cleacute eacutequivaut agrave dire quil est unique et non null
Exemtple Numeacutero deacutetudiant
Le numeacutero deacutetudiant dune relation Etudiant est une bonne cleacute car il y aura systeacutematiquement une
valeur non nulle
Le groupe dattributs (nom preacutenom) dune relation Etudiant est en geacuteneacuteral une mauvaise cleacute car les
homonymes existent
b) Deacuteterminer les cleacutes
Deacutetermination dune cleacute
Deacutefinir un groupe dattributs comme eacutetant une cleacute neacutecessite une reacuteflexion seacutemantique sur les donneacutees
composant ces attributs afin de sassurer de leur uniciteacute
Fondamental
La deacutefinition des cleacutes est un acte de modeacutelisation elle ne renvoie pas donc pas agrave une veacuteriteacute
intangible mais agrave la reacutealiteacute telle quelle est repreacutesenteacutee dans le modegravele que lon eacutelabore
Exemtple
Lattribut numeacutero de seacutecuriteacute sociale dune relation personne peut paraicirctre une bonne cleacute a priori car son
uniciteacute est assureacutee Mais tout le monde nen dispose pas forceacutement (les enfants des eacutetrangers) donc ce nest
une cleacute que si lon considegravere des personnes affilieacutees agrave la seacutecuriteacute sociale
c) Cleacute primaire et cleacutes candidates
Deacutefinition Cleacute tprimaire
Si plusieurs cleacutes existent dans une relation on en choisit une parmi celles-ci Cette cleacute est appeleacutee cleacute
primaire
La modeacutelisation logique relationnelle
50
La cleacute primaire est geacuteneacuteralement choisie de faccedilon agrave ce quelle soit la plus simple cest agrave dire portant sur le
moins dattributs et sur les attributs de domaine les plus basiques (entiers ou chaicircnes courtes typiquement)
Deacutefinition Cleacutes candidates
On appelle cleacutes candidates lensemble des cleacutes dune relation qui nont pas eacuteteacute choisies comme cleacute primaire
(elles eacutetaient candidates agrave cette fonction)
d) Cleacute artificielle
Deacutefinition Cleacute artificielle
Sil est impossible de trouver une cleacute primaire ou que les cleacutes candidates sont trop complexes il est possible
de faire appel agrave une cleacute artificielle Une cleacute artificielle est un attribut suppleacutementaire ajouteacute au scheacutema de
la relation qui nest lieacute agrave aucune signification et qui sert uniquement agrave identifier de faccedilon unique les
enregistrements etou agrave simplifier les reacutefeacuterences de cleacutes eacutetrangegraveres
Deacutefinition Cleacute signifiante
Une cleacute est signifiante si elle nest pas artificielle
Synonyme Cleacute naturelle
Atention Cleacute artificielle et niveau logique
Au niveau du modegravele logique il faut eacuteviter la simpliciteacute consistant agrave identifier toutes les relations
avec des cleacutes artificielles et ne reacuteserver cet usage quaux cas particuliers
Conseil
1 Si au moins une cleacute naturelle composeacutee dun seul attribut existe en choisir une parmi celles-ci comme
cleacute primaire 2 Sinon choisir une cleacute naturelle composeacutee de plusieurs attributs si elle ne pose pas de problegraveme identifieacute 3 Toujours justifier lemploi dune cleacute artificielle (au niveau logique uniquement pour des raisons de
complexiteacute du modegravele les questions de performance sont eacutetudieacutees au niveau physique)
RemarqueCleacute artificielle et niveau tphysique eacutevolutiviteacute maintenance et tperformance
Au niveau de limpleacutementation physique par contre il est courant que des cleacutes artificielles soient utiliseacutees de
faccedilon systeacutematique
Du point de vue de leacutevolutiviteacute de la BD il existe toujours un risque quune cleacute nonartificielle perde
sa proprieacuteteacute duniciteacute ou de non-nulliteacute
Du point de vue de la maintenance de la BD il existe toujours un risque quune cleacute non-artificielle
voit sa valeur modifieacutee et dans ce cas la reacutepercution de ce changement pour mettre agrave jour toutes les
reacutefeacuterences peut poser problegraveme
Du point de vue de la performance de la BD les cleacutes non-artificielles ne sont pas en geacuteneacuteral optimiseacutees
en terme de type et de taille et donc peuvent limiter les performances dans le cadre des jointures
Preacutecisons neacuteanmoins quinversement les cleacutes artificielles ont pour conseacutequence de systeacutematiser des
jointures qui auraient pu ecirctre eacuteviteacutees avec des cleacutes primaires signifiantes
La modeacutelisation logique relationnelle
51
Exemtple Problegraveme deacutevolutiviteacute tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD franccedilaise elle ne permettra pas dentrer
un individu non-franccedilais issu dun pays ne disposant pas dun tel numeacutero
Exemtple Problegraveme de maintenance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD centrale dont les donneacutees sont exploiteacutees
par dautres tables dautres BD qui viennent piocher dans cette BD pour leurs propres usages sans que la
BD centrale ne connaisse ses clients Soit une erreur dans la saisie dun numeacutero de seacutecuriteacute sociale dans la
BD centrale si ce numeacutero est corrigeacute il faudrait (ce qui nest pas possible dans notre cas) impeacuterativement en
avertir toutes les bases utilisatrices pour quelles mettent agrave jour leurs reacutefeacuterences
Exemtple Problegraveme de tperformance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table comptant un million denregistrements ce numeacutero
est geacuteneacuteralement un nombre agrave 13 chiffres ou une chaicircne agrave 13 caractegraveres ce qui dans les deux cas est supeacuterieur
au nombre agrave 7 chiffres suffisant pour identifier tous les individus de la BD Les performances seront donc
toujours moins bonnes lors des jointures si une cleacute prend deux fois plus de place en meacutemoire que son
optimum Mais ajoutons que cette perte de performance na pas toujours de conseacutequence sur la reacutealiteacute
perceptible par les utilisateurs de la BD
Inversement soit une cleacute artificielle la cleacute primaire dune table T1 par ailleurs reacutefeacuterenceacutee par une autre table
T2 Soit le numeacutero de seacutecuriteacute sociale un attribut cleacute de T1 Si lon veut par requecircte disposer des informations
de T2 ainsi que du numeacutero de seacutecuriteacute sociale de T1 alors il faudra faire une jointure tandis que si ce numeacutero
signifiant avait eacuteteacute choisi comme cleacute primaire cela naurait pas eacuteteacute neacutecessaire
La modeacutelisation logique relationnelle
52
e) Cleacute eacutetrangegravere
Deacutefinition Cleacute eacutetrangegravere
Une cleacute eacutetrangegravere est un attribut ou un groupe dattributs dune relation R1 devant apparaicirctre comme cleacute
primaire dans une relation R2 afin de mateacuterialiser une reacutefeacuterence entre les tuples de R1 et les tuples de R2
Une cleacute eacutetrangegravere dun tuple reacutefeacuterence une cleacute primaire dun autre tuple
Atention
Seule une cleacute primaire peut ecirctre reacutefeacuterenceacutee par une cleacute eacutetrangegravere cest mecircme le seule fonction
de la cleacute primaire ecirctre la cleacute qui peut ecirctre reacutefeacuterenceacutee par les cleacutes eacutetrangegraveres
Deacutefinition Contrainte dinteacutegriteacute reacutefeacuterentielle
Une cleacute eacutetrangegravere respecte la contrainte dinteacutegriteacute reacutefeacuterentielle si sa valeur est effectivement existante dans
la cleacute primaire dun tuple de la relation reacutefeacuterenceacutee ou si sa valeur est null
Une cleacute eacutetrangegravere qui ne respecte pas la contrainte dinteacutegriteacute reacutefeacuterentielle exprime un lien vers un tuple qui
nexiste pas et donc nest pas coheacuterente
f) Reacutefeacuterence entre relations Le modegravele relationnel a pour objectif la structuration de donneacutees selon des relations Lenjeu est de parvenir
agrave traduire un modegravele conceptuel en modegravele logique relationnel Or il ny a pas de notion dassociation en
relationnel donc il faudra pouvoir traduire les associations avec les concepts dont on dispose relation cleacute
cleacute eacutetrangegravere
Afin de repreacutesenter des reacutefeacuterences entre relations dans un modegravele relationnel la seule solution est de stocker
linformation dans une relation et donc que certains attributs dune relation servent agrave pointer sur dautres
relations
Atention
Il ny a pas vraiment de reacutefeacuterence ou de lien en relationnel puisque nous ne disposons que de
tables de cleacutes de cleacutes eacutetrangegravere et de valeurs
On va donc devoir se servir de ces outils pour mateacuterialiser une notion de reacutefeacuterence
Meacutethode Reacutefeacuterence
La reacutefeacuterence entre deux tuples T1 et T2 de deux relations diffeacuterentes est exprimable par une valeur identique
entre une cleacute eacutetrangegravere du tuple T1 et la cleacute primaire de lautre tuple T2 Synonyme Lien Exemtple
R1 R2 a1 a2=gtR2 b1 b2
La modeacutelisation logique relationnelle
53
F
Image 13
Lattribut a2 de la relation R1 reacutefeacuterence lattribut b1 de la relation R2 car a2 est une cleacute eacutetrangegravere de R1 vers
R2 (b1 est la cleacute primaire de R2)
Ici on a donc par exemple les tuples identifieacutes par B et C de R1 qui reacutefeacuterencent le tuple identifieacute par 1 dans
R2
g) Scheacutema relationnel
Deacutefinition Scheacutema dune relation
Le scheacutema dune relation deacutefinit cette relation en intension Il est composeacute
du nom de la relation
de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs
de la cleacute primaire
des cleacutes eacutetrangegraveres
des cleacutes candidates
Deacutefinition Scheacutema relationnel dune base de donneacutee
Le scheacutema relationnel dune BD est la deacutefinition en intension de cette BD (par opposition agrave linstance de la
BD qui est une extension de la BD) Il est composeacute de lensemble des scheacutemas de chaque relation de la BD
Syntaxe Relation
Relation (Attribut1Domaine1 Attribut2Domaine2 AttributNDomaineN) 1
La relation Relation contient N attributs chacun deacutefini sur son domaine
Syntaxe Cleacute tprimaire
Relation (Attribut1Domaine1 AttributMDomaineM AttributNDomaineN)
1
La cleacute de la relation Relation est composeacutee des attributs Attribut1 agrave AttributM (attribut preacuteceacutedeacutes de ou
bien souligneacutes)
En geacuteneacuteral on note la cleacute primaire en premier dans la relation
Syntaxe Cleacute eacutetrangegravere
Relation1 ( AttributM=gtRelation2 AttributN=gtRelation2) 1
La relation Relation1 comporte une cleacute eacutetrangegravere (composeacutee des attributs AttributM agrave AttributN)
reacutefeacuterenccedilant la cleacute primaire de Relation2 Bien sucircr il peut exister plusieurs cleacutes eacutetrangegraveres vers plusieurs
La modeacutelisation logique relationnelle
54
relations distinctes Une cleacute eacutetrangegravere et sa cleacute primaire reacutefeacuterenceacutee sont toujours composeacutees du mecircme nombre
dattributs Il nest pas neacutecessaire de preacuteciser les domaines des attributs appartenant agrave la cleacute eacutetrangegravere car ce
sont forceacutement les mecircmes que ceux de la cleacute primaire reacutefeacuterenceacutee Il nest pas non plus en geacuteneacuteral neacutecessaire
de preacuteciser dans le scheacutema relationnel quels attributs de la cleacute eacutetrangegravere reacutefeacuterencent quels attributs de la cleacute
primaire (cela est geacuteneacuteralement eacutevident) mais il est possible de la faire on notant Attribut=gtRelationAttribut
En geacuteneacuteral on note les cleacutes eacutetrangegraveres en dernier dans la relation sauf pour les cleacutes eacutetrangegraveres qui font partie
de la cleacute primaire (cleacutes identifiantes)
Syntaxe Cleacute candidates
Relation1 (AttributMDomaineM ) avec AttributM cleacute 1
Les cleacutes candidates doivent ecirctre noteacutees sur le scheacutema relationnel
Sil ny a quune ou deux cleacutes candidates les noter directement apregraves la deacutefinition de la relation
Sil y a beaucoup de cleacutes pour ne pas trop alourdir la notation renvoyer agrave un tableau agrave part
Atention Cleacutes candidates et cleacute primaire
La notation R(ab) signifie toujours que R a comme cleacute primaire (ab) et non que R aurait
deux cleacutes a et b (dont on ne saurait pas laquelle est primaire)
La notation R(ab) avec b cleacute signifie bien que a et b sont deux cleacutes de R et que a est primaire
Il ne faut pas confondre une cleacute composeacutee de deux attributs avec deux cleacutes
h) Exemple de scheacutema relationnel pour la geacuteographie
Exemtple
Personne (NumeroEntier NomChaicircne PreacutenomChaicircne LieuNaissance=gtVille) Pays (NomChaicircne PopulationEntier SuperficieReacuteel Dirigeant=gtPersonne) Reacutegion (Pays=gtPays NomChaicircne Superficie Dirigeant=gtPersonne) Ville (CodePostalCP NomChaicircne Pays=gtReacutegionPays Reacutegion=gtReacutegionNom Dirigeant=gtPersonne)
1 2 3 4
Exemtple Exemtple dinstance de la base de donneacutees
Personne Num ero Nom Prenom LieuNaissance
1 Durand Pierre 60200 2 Dupont Marie 60200
Pays
Nom Population Superficie Dirig eant
France 60 50000101 2 Allemagne 80 60000023564 2 Espagne 40 3500001 1
La modeacutelisation logique relationnelle
55
Reacutegion Pays Nom Superficie Dirig eant France Picardie 50 1 Espagne Picardie 40 1 France Normandie 30 2
Ville CodePostal Nom Pays Reacuteg ion Dirig eant F60200 Compiegravegne France Picardie 1
F60300 Senlis France Picardie 2 F60301 Senlis France Picardie 2 E8000 Senlis Espagne Picardie 2
Le scheacutema relationnel preacuteceacutedent deacutecrit
Des personnes
Elles sont identifieacutees par un numeacutero qui est en fait une cleacute artificielle En effet mecircme une cleacute composeacutee
de tous les attributs (Nom Preacutenom LieuNaissance) laisse une possibiliteacute de doublons (homonymes
neacutes dans la mecircme ville)
La cleacute eacutetrangegravere LieuNaissance fait reacutefeacuterence agrave la relation Ville et plus preacuteciseacutement agrave sa cleacute primaire
CodePostal ce qui est est laisseacute implicite car eacutevident
Des pays
Ils sont identifieacutes par leur nom puisque deux pays ne peuvent avoir le mecircme nom Les pays sont
dirigeacutes par des personnes et ce lien est mateacuterialiseacute par la cleacute eacutetrangegravere Dirigeant
Des reacutegions
Elles font partie dun pays et ont un nom Deux reacutegions de pays diffeacuterents pouvant avoir le mecircme
nom il faut utiliser une cleacute primaire composeacutee agrave la fois du nom de la reacutegion et du nom du pays qui
est une cleacute eacutetrangegravere (le nom est appeleacute cleacute locale car il nest pas suffisant pour identifier un tuple de
la relation Reacutegion et la cleacute eacutetrangegravere vers la relation Pays est appeleacutee cleacute identifiante)
Des villes
Elles sont identifieacute par un code postal qui est unique dans le monde (en utilisant le preacutefixe de pays de
type F-60200) Ce code postal a pour domaine CP qui est une chaicircne composeacutee dune ou deux
lettres dun tiret puis dune seacuterie de chiffres
Le lien dappartenance entre une ville et une reacutegion est mateacuterialiseacute par la cleacute eacutetrangegravere composeacutee des
deux attributs Pays et Reacutegion Cette cleacute reacutefeacuterence la cleacute primaire de la relation Reacutegion eacutegalement composeacutee
de deux attributs Pour clairement expliciter les reacutefeacuterences (bien que seacutemantiquement la deacutenomination des
attributs ne laisse pas de place au doute) on utilise la syntaxe ReacutegionPays et ReacutegionNom
4 Synthegravese
a) Synthegravese Scheacutema relationnel
Scheacutema relationnel
Un scheacutema relationnel permet une formalisation dun modegravele logique
Relation ou table
La modeacutelisation logique relationnelle
56
Sous-ensemble dun produit carteacutesien -
Attribut ou colonne Prend ses valeurs dans un domaine
- Enregistrement ou ligne Pose une valeur (y compris la valeur null) pour chaque attribut
Cleacute
Groupe dattributs ayant un rocircle didentification au sein dun enregistrement - Cleacute candidate
Identifie de faccedilon unique un enregistrement - Cleacute primaire
Cleacute candidate choisie pour repreacutesenter un enregistrement pour sa faciliteacute dusage - Cleacute eacutetrangegravere
Reacutefeacuterence la cleacute primaire dun tuple dune autre relation pour exprimer un lien
b) Bibliographie commenteacutee sur le modegravele relationnel
Comtpleacutement Synthegraveses
SQL2 SQL3 applications agrave Oracle [Delmal01]
Une deacutefinition syntheacutetique et efficace du domaine relationnel relation domaine attribut cleacute inteacutegriteacute
opeacuterateurs (Premier chapitre)
5 Deacutefinition formelle dune relation
a) Produit carteacutesien
Deacutefinition Produit carteacutesien
Le produit carteacutesien noteacute X des domaines D1 D2 Dn noteacute D1 X D2 X X Dn est lensemble des
tuples (ou n-uplets ou vecteurs) ltV1V2Vngt tel que Vi est une valeur de Di et tel que toutes les
combinaisons de valeurs possibles sont exprimeacutees
Exemtple
D1 = A B C D2 = 1 2 3 D1 X D2 = ltA1gt ltA2gt ltA3gt ltB1gt ltB2gt ltB3gt ltC1gt ltC2gt ltC3gt
1 2 3
b) Relation
Deacutefinition Relation
Une relation sur les domaines D1 D2 Dn est un sous-ensemble du produit carteacutesien D1 X D2 X X Dn
Une relation est caracteacuteriseacutee par un nom Synonymes Table tableau
Syntaxe
La modeacutelisation logique relationnelle
57
On peut repreacutesenter la relation R sur les domaine D1 Dn par une table comportant une colonne pour
chaque domaine et une ligne pour chaque tuple de la relation
D1 Dn
V1 Vn
V1 Vn
Tableau 7 Relation R
Remarque
Une relation est deacutefinie en extension par leacutenumeacuteration des tuples la composant
B Exercices
1 Lab I-
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Dessiner des relations instancieacutees (en extension donc) remplies avec les donneacutees fournies en exemple
La modeacutelisation logique relationnelle
58
Question 2
Eacutecrivez le scheacutema relationnel (deacutefinition en intension donc) permettant de repreacutesenter une base de donneacutees
relationnelle pour le laboratoire
59
IV - Introduction au
passage
UMLRelationnel classes et
associations
A Cours
Afin de pouvoir impleacutementer une base de donneacutees il faut pouvoir traduire le modegravele conceptuel en modegravele
logique Cela signifie quil faut pouvoir convertir un modegravele UML en modegravele relationnel Les modegraveles
conceptuels sont suffisamment formels pour que ce passage soit systeacutematiseacute dans la plupart des cas
1 Transformation des classes et atributs
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
IV
Introduction au passage UML-Relationnel classes et associations
60
a) Transformation des classes
Meacutethode Classe
Pour chaque classe non abstraite
on creacutee une relation dont le scheacutema est celui de la classe
la cleacute primaire de cette relation est une des cleacutes de la classe
Classe1
Graphique 2 Classe
Classe1()
Remarque
Les classes abstraites sont ignoreacutees agrave ce stade et neacutetant pas instanciables ne donnent geacuteneacuteralement pas
lieu agrave la creacuteation de relation
b) Transformation des atributs
Meacutethode Atributs simtples
Pour chaque attribut eacuteleacutementaire et monovalueacute dune
classe on creacutee un attribut correspondant
Classe1
a key
b
Graphique 3 Attribut
Classe1(ab)
Meacutethode Atributs comtposites
Pour chaque attribut composite comprenant N sous-attributs dune classe
on creacutee N attributs correspondants
dont les noms sont la concateacutenation du nom de lattribut composite avec celui du sous attribut
Classe1
a key b -b1 -b2
Introduction au passage UML-Relationnel classes et associations
61
Graphique 4 Attribut composeacute
Classe1(ab_b1b_b2)
Meacutethode Atributs multivalueacutes
Pour chaque attribut multivalueacute b dune classe C
on creacutee une nouvelle relation RB
qui comprend un attribut monovalueacute correspondant agrave b
plus la cleacute de la relation repreacutesentant C
la cleacute de RB est la concateacutenation des deux attributs
Classe1
a key
b[110]
Graphique 5 Attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Meacutethode Atributs multivalueacutes (meacutethode alternative)
Dans le cas ougrave le nombre maximum de b est fini et petit on peut eacutegalement adopter la transformation
suivante
Classe1(ab1b2b3b4b5b6b7b8b9b10)
Si le nombre dattributs est infini (b[1]) cest impossible sil est trop grand ce nest pas souhaitable
Meacutethode Atributs comtposeacutes multivalueacutes
On combine les regravegles eacutenonceacutees pour les attributs composeacutes et pour les attributs multivalueacutes
Classe1
a key b [0N] -b1 -b2
Graphique 6 Attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
Ratptpel Voir aussi
Transformation des compositions - p102
Introduction au passage UML-Relationnel classes et associations
62
c) Transformation des atributs deacuteriveacutes et meacutethodes
Meacutethode Atributs deacuteriveacutes et meacutethodes
On ne repreacutesente pas en geacuteneacuteral les attributs deacuteriveacutes ni les meacutethodes dans le modegravele relationnel ils seront
calculeacutes dynamiquement soit par des proceacutedures internes agrave la BD (proceacutedures stockeacutees) soit par des
proceacutedures au niveau applicatif
Classe1
a key
b
m()
Graphique 7 Attribut deacuteriveacute et meacutethodes
Classe1(a)
Comtpleacutement Atribut deacuteriveacute stockeacutes
On peut deacutecider (pour des raisons de performance essentiellement) de repreacutesenter lattribut deacuteriveacute ou la
meacutethode comme sil sagissait dun attribut simple mais il sera neacutecessaire dans ce cas dajouter des
meacutecanismes de validation de contraintes dynamiques (avec des triggers par exemple) pour assurer que la
valeur stockeacutee eacutevolue en mecircme temps que les attributs sur lesquels le calcul deacuteriveacute porte
Notons quintroduire un attribut deacuteriveacute ou un reacutesultat de meacutethode dans le modegravele relationnel eacutequivaut agrave
introduire de la redondance ce qui est en geacuteneacuteral deacuteconseilleacute et ce qui doit ecirctre dans tous les cas controcircleacute
2 Transformation des associations
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
a) Transformation des associations 1N
Meacutethode
Pour chaque association binaire de type 1N
on ajoute agrave la relation cocircteacute N une cleacute eacutetrangegravere vers la relation cocircteacute 1
Classe1
01 association 0N
Classe2
a key
b c key
d
Graphique 8 Association 1N
Classe1(ab)
Introduction au passage UML-Relationnel classes et associations
63
Classe2(cda=gtClasse1)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations 1N - p103
b) Transformation des associations NM
Meacutethode
Pour chaque association binaire de type MN
on creacutee une nouvelle relation
composeacutee de cleacutes eacutetrangegraveres vers chaque relation associeacutee
et dont la cleacute primaire est la concateacutenation de ces cleacutes eacutetrangegraveres
Graphique 9 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations NM - p104
c) Transformation des associations 11 (approche simplifieacutee)
Meacutethode
La solution la plus simple et la plus geacuteneacuterale pour transformer une association 11 consiste agrave traiter cette
association 11 comme une association 1N puis agrave ajouter une contrainte UNIQUE sur la cleacute eacutetrangegravere pour
limiter la cardinaliteacute maximale agrave 1
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 10 Association 11
Classe1(abc=gtClasse2) avec c UNIQUE
Classe2(cd) ou
Introduction au passage UML-Relationnel classes et associations
64
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE
Remarque
Il existe toujours deux solutions selon que lon choisit une ou lautre relation pour accueillir la cleacute eacutetrangegravere
Selon la cardinaliteacute minimale un des deux choix peut ecirctre plus pertinent
Comtpleacutement
Il est parfois possible de choisir de fusionner les deux classes au sein dune seule relation plutocirct que dopter
pour une cleacute eacutetrangegravere
Comtpleacutement
Transformation des associations 11 (approche geacuteneacuterale) - p105
d) Transformation des classes dassociation
Meacutethode Classe dassociation NM
Graphique 11 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2ef)
Comtpleacutement Classe dassociation 1N
Les attributs de la classe dassociation sont ajouteacutes agrave la relation issue de la classe cocircteacute N
Comtpleacutement Classe dassociation 11
Les attributs de la classe dassociation sont ajouteacutes agrave la relation qui a eacuteteacute choisie pour recevoir la cleacute eacutetrangegravere
Si les deux classes ont eacuteteacute fusionneacutees en une seule relation les attributs sont ajouteacutes agrave celle-ci
a key b
Classe1
c key d
Classe2
0 N 0 N
e f
Cl-A ssoc
Introduction au passage UML-Relationnel classes et associations
65
B Exercices
1 Lab I+
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
Question 3
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 4
Dessiner des tableaux remplis avec les donneacutees fournies en exemple afin de montrer que le modegravele fonctionne
selon le besoin exprimeacute initialement On pourra mettre le premier mot seulement des descriptions pour gagner
du temps
Introduction au passage UML-Relationnel classes et associations
66
2 Usine de production
[30 minutes] Une usine cherche agrave modeacuteliser sa production de veacutehicules et de moteurs
Les veacutehicules sont identifieacutes par un numeacutero dimmatriculation alphanumeacuterique et caracteacuteriseacutes par une
couleur dont la deacutenomination est une chaicircne de caractegraveres Chaque veacutehicule peut comporter un
unique moteur etou un nombre quelconque de pneus
Chaque moteur est monteacute sur un et un seul veacutehicule et est identifieacute par un numeacutero de seacuterie Un moteur
est caracteacuteriseacute par une puissance en chevaux
Tout pneu est monteacute sur un unique veacutehicule et est identifieacute par un numeacutero de seacuterie Sa position est
deacutefinie localement sur ce veacutehicule et par rapport agrave lessieu Dn pour les pneus situeacute sur la droite de
lessieu et Gn pour les pneus situeacutes agrave gauche n repreacutesentant le numeacutero de lessieu (1 pour celui situeacute
devant 2 pour la deuxiegraveme rangeacutee etc) Un pneu est caracteacuteriseacute par un diamegravetre et une largeur en
pouces
Les moteurs les pneus et les veacutehicules sont fabriqueacutes sous une marque Les mecircmes marques peuvent
fabriquer indiffeacuteremment des moteurs des pneus etou des veacutehicules et un veacutehicule dune certaine
marque peut comporter un moteur etou des pneus de marque diffeacuterente
Question 1
Reacutealiser le modegravele UML de ce problegraveme en faisant apparaicirctre les domaines et les cleacutes
Question 2
Reacutealiser le passage au modegravele relationnel en faisant apparaicirctre les cleacutes primaires candidates et eacutetrangegraveres
Question 3
Dessiner les tableaux correspondant aux relations du modegravele Instancier au minimum deux veacutehicules et quatre
marques
Question 4
Donner quatre exemples denregistrements qui seront refuseacutes - eacutetant donneacutees les donneacutees deacutejagrave inseacutereacutees -
pour quatre raisons diffeacuterentes
contrainte de cleacute sur une cleacute primaire
contrainte de cleacute sur une cleacute candidate
contrainte dinteacutegriteacute reacutefeacuterentielle
contrainte de non nulliteacute
67
V - Creacuteation et
alimentation de bases
de donneacutees SQL
A Cours
1 Le langage SQL
Deacutefinition SQL
SQL (pour langage de requecirctes structureacute) est un langage deacuteclaratif destineacute agrave la manipulation de bases de
donneacutees au sein des SGBD et plus particuliegraverement des SGBDR
SQL LDD LCD LMD LCT
SQL est un langage deacuteclaratif il nest donc pas a proprement parleacute un langage de programmation mais plutocirct
une interface standard pour acceacuteder aux bases de donneacutees
Il est composeacute de quatre sous ensembles
Le Langage de Deacutefinition de Donneacutees (LDD ou en anglais DDL Data Definition
Language) pour creacuteer et supprimer des objets dans la base de donneacutees (tables contraintes dinteacutegriteacute
vues etc)
Exemple de commandes CREATE DROP ALTER
Le Langage de Controcircle de Donneacutees (LCD ou en anglais DCL Data Control Language) pour geacuterer les
droits sur les objets de la base (creacuteation des utilisateurs et affectation de leurs droits)
Exemple de commandes GRANT REVOKE
V
Creacuteation et alimentation de bases de donneacutees SQL
68
Le Langage de Manipulation de Donneacutees (LMD ou en anglais DML Data Manipulation
Language) pour la recherche linsertion la mise agrave jour et la suppression de donneacutees Le LMD est baseacute
sur les opeacuterateurs relationnels auxquels sont ajouteacutes des fonctions de calcul dagreacutegats et des
instructions pour reacutealiser les opeacuterations dinsertion mise agrave jour et suppression
Exemple de commandes INSERT UPDATE DELETE SELECT
Le Langage de Controcircle de Transaction (LCT ou en anglais TCL Transaction Control Language) pour
la gestion des transactions (validation ou annulation de modifications de donneacutees dans la BD)
Exemple de commandes COMMIT ROLLBACK
Fondamental Reacutefeacuterence SQL SQL-99 complete really
Gulutzan and Pelzer 1999 [Gulutzan and Pelzer 1999] httpsmariadbcomkbensql-99)2
Comtpleacutement Origine du SQL
Le modegravele relationnel a eacuteteacute inventeacute par EF Codd (Directeur de recherche du centre IBM de San Joseacute) en
1970 suite agrave quoi de nombreux langages ont fait leur apparition
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel2
IBM SystemR
IBM DB2
Ce sont ces langages qui ont donneacute naissance au standard SQL normaliseacute en 1986 au Eacutetats-Unis par lANSI
pour donner SQL86 (puis au niveau international par lISO en 1987)
Comtpleacutement Versions de SQL
SQL-86 (ou SQL-87) Version dorigine
SQL-89 (ou SQL-1) Ameacuteliorations mineures
SQL-92 (ou SQL-2) Extensions fonctionnelles majeures (types de donneacutees opeacuterations relationnelles
instruction LDD transactions etc
SQL-99 (ou SQL-3) Introduction du PSM (couche proceacutedurale sous forme de proceacutedure stockeacutees)
et du RO
SQL-2003 Extensions XML
SQL-2006 Ameacuteliorations mineures (pour XML notamment)
SQL-2008 Ameacuteliorations mineures (pour le RO notamment)
Remarque Version SQL et imtpleacutementations SGBD
Selon leur niveau dimpleacutementation de SQL les SGBD acceptent ou non certaines fonctions
Certains SGBD ayant entameacute certaines impleacutementations avant leur standardisation deacutefinitive ces
impleacutementations peuvent diffeacuterer de la norme
Creacuteation et alimentation de bases de donneacutees SQL
69
2 Creacuteer des tables en SQL (Langage de Deacutefinition de
Donneacutees)
Le LDD est la partie du langage SQL qui permet de creacuteer de faccedilon deacuteclarative les objets composant une
BD Il permet notamment la deacutefinition des scheacutemas des relations des contraintes dinteacutegriteacute des vues
Rappel Le code SQL peut ecirctre testeacute avec Db Discodbdiscocrztfr
2 - httpsmariadbcomkbensql-99
a) Lab I++
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
70
Question 2
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 3
Creacuteer une base de donneacutees en SQL correspondant au modegravele relationnel
Question 4
Inseacuterer les donneacutees fournies en exemple dans la base de donneacutees
b) Creacuteation de tables
Ratptpel
Quest ce que le SQL
Introduction
La creacuteation de table est le fondement de la creacuteation dune base de donneacutees en SQL
Deacutefinition Creacuteation de table
La creacuteation de table est la deacutefinition dun scheacutema de relation en intension par la speacutecification de tous les
attributs le composant avec leurs domaines respectifs
Syntaxe
CREATE TABLE nom_table ( nom_colonne1 domaine1 nom_colonne2 domaine2 nom_colonneN domaineN )
1 2 3 4 5 6
Exemtple
CREATE TABLE Personne ( Nom VARCHAR(25) Prenom VARCHAR(25) Age NUMERIC(3) )
1 2 3 4 5
Atention Contrainte dinteacutegriteacute
La deacutefinition des types nest pas suffisante pour deacutefinir un scheacutema relationnel il faut lui adjoindre
la deacutefinition de contraintes dinteacutegriteacute qui permette de poser les notions de cleacute dinteacutegriteacute
reacutefeacuterentielle de restriction de domaines etc
Creacuteation et alimentation de bases de donneacutees SQL
71
c) Domaines de donneacutees
Introduction
Un attribut dune relation est deacutefini pour un certain domaine ou type Les types de donneacutees disponibles en
SQL varient dun SGBD agrave lautre on peut neacuteanmoins citer un certain nombre de types standards que lon
retrouve dans tous les SGBD
Fondamental Les types standard
INTEGER ou INT SMALLINT
NUMERIC(X)
DECIMAL(XY) ou NUMERIC(XY)
FLOAT(X) REAL
CHAR(X)
VARCHAR(X)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HHMMSS)
Les tytpes numeacuteriques standard
Les nombres entiers
INTEGER (ou INT) et SMALLINT permettent de coder des entiers sur 4 octets (2147483648 agrave
2147483647) ou 2 octets (-32768 agrave 32767)
Les nombres entiers
NUMERIC(X) deacutesigne un entier de X chiffres au maximum
Les nombres deacutecimaux
DECIMAL(XY) ougrave X et Y sont optionnels et deacutesignent respectivement le nombre de chiffres maximum
pouvant composer le nombre et le nombre de chiffres apregraves la virgule
NUMERIC(XY) est un synonyme standard
Les nombres agrave virgule flottante
FLOAT(X) avec X deacutefinissant la preacutecision (nombre de bits de codage de la mantisse)
REAL est un synonyme standard de FLOAT(24)
Conseil FLOAT versus DECIMAL
Il est conseilleacute dutiliser DECIMAL qui est un nombre exact plutocirct que FLOAT qui est un nombre approximatif
si la preacutecision requise est suffisante FLOAT sera reacuteserveacute typiquement agrave des calculs scientifiques neacutecessitant
un degreacute de preacutecision supeacuterieur
Les tytpes chaicircne de caractegraveres standard
On distingue principalement les types CHAR(X) et VARCHAR(X) ougrave X est obligatoire et deacutesigne la longueur de
la chaicircne
CHAR deacutefinit des chaicircnes de longueur fixe (compleacuteteacutee agrave droites par des espaces si la longueur est
infeacuterieure agrave X)
et VARCHAR des chaicircnes de longueurs variables
Creacuteation et alimentation de bases de donneacutees SQL
72
CHAR et VARCHAR sont geacuteneacuteralement limiteacutes agrave 255 caractegraveres La plupart des SGBD proposent des types tels
que TEXT ou CLOB (Character Long Object) pour repreacutesenter des chaicircnes de caractegraveres longues jusquagrave
65000 caractegraveres par exemple
Les tytpes date standard
Les types date dont introduits avec la norme SQL2 On distingue
DATE qui repreacutesente une date selon un format de type AAAA-MM-JJ
et DATETIME qui repreacutesente une date plus une heure dans un format tel que AAAAMM-JJ HHMMSS
Comtpleacutement Les autres tytpes
En fonction du SGBD il peut exister de nombreux autres types On peut citer par exemple
MONEY pour repreacutesenter des deacutecimaux associeacutes agrave une monnaie
BOOLEAN pour repreacutesenter des booleacuteens
BLOB (pour Binary Long Oject) pour repreacutesenter des donneacutees binaires tels que des documents
multimeacutedia (images bitmap videacuteo etc)
d) La valeur NULL Labsence de valeur repreacutesenteacutee par la valeur NULL est une information fondamentale en SQL quil ne faut
pas confondre avec la chaicircne espace de caractegravere ougrave bien la valeur 0 Il ne sagit pas dun type agrave proprement
parler mais dune valeur possible dans tous les types
Fondamental
Par deacutefaut en SQL NULL fait partie du domaine il faut lexclure explicitement par la clause NOT
NULL apregraves la deacutefinition de type si on ne le souhaite pas Syntaxe
CREATE TABLE nom de table ( 1
CREATE TABLE nom_table ( nom_colonne1 domaine1 NOT NULL
nom_colonne2 domaine2
nom_colonneN domaineN NOT NULL )
2 3 4 5 6 7
e) Contraintes dinteacutegriteacute
Fondamental
PRIMARY KEY (ltliste dattibutsgt)
UNIQUE (ltliste dattibutsgt)
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt)
CHECK (ltconditiongt)
Une contrainte dinteacutegriteacute est une regravegle qui deacutefinit la coheacuterence dune donneacutee ou dun ensemble de donneacutees
de la
Creacuteation et alimentation de bases de donneacutees SQL
73
BD
Il existe deux types de contraintes
sur une colonne unique
ou sur une table lorsque la contrainte porte sur une ou plusieurs colonnes
Les contraintes sont deacutefinies au moment de la creacuteation des tables
Deacutefinition Contraintes dinteacutegriteacute sur une colonne
Les contraintes dinteacutegriteacute sur une colonne sont
PRIMARY KEY deacutefinit lattribut comme la cleacute primaire
UNIQUE interdit que deux tuples de la relation aient la mecircme valeur pour lattribut
REFERENCES ltnom tablegt (ltnom colonnesgt) controcircle linteacutegriteacute reacutefeacuterentielle entre lattribut et la
table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur de lattribut speacutecifieacute dans la condition dans le
cadre dune restriction de domaine
Deacutefinition Contraintes dinteacutegriteacute sur une table
Les contraintes dinteacutegriteacute sur une table sont
PRIMARY KEY (ltliste dattibutsgt) deacutefinit les attributs de la liste comme la cleacute primaire
UNIQUE (ltliste dattibutsgt) interdit que deux tuples de la relation aient les mecircmes valeurs pour
lensemble des attributs de la liste
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt) controcircle linteacutegriteacute
reacutefeacuterentielle entre les attributs de la liste et la table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur des attributs speacutecifieacutes dans la condition dans le
cadre dune restriction de domaine Syntaxe
CREATE TABLE nom de table ( CREATE TABLE nom_table ( nom_colonne1 domaine1 ltcontraintes colonne1gt nom_colonne2 domaine2 ltcontraintes colonne2gt nom_colonneN domaineN ltcontraintes colonneNgt
1 2 3 4 5 6
ltcontraintes de tablegt )
7 8
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) UNIQUE
(Nom Prenom) )
1 2 3 4 5 6 7 8
Remarque Cleacute candidate
La clause UNIQUE NOT NULL sur un attribut ou un groupe dattributs deacutefinit une cleacute candidate non primaire
Creacuteation et alimentation de bases de donneacutees SQL
74
Remarque
Les contraintes sur une colonne et sur une table peuvent ecirctre combineacutees dans la deacutefinition dun mecircme scheacutema
de relation
Remarque
Une contrainte sur une colonne peut toujours ecirctre remplaceacutee par une contrainte sur une table
f) Exemple de contraintes dinteacutegriteacute
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) Codepostal INTEGER(5) Pays VARCHAR(50) UNIQUE (Nom Prenom) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) CHECK (Initiale = LEFT(Pays 1)) PRIMARY KEY (CP Pays) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
Dans la deacutefinition de scheacutema preacuteceacutedente on a poseacute les contraintes suivantes
La cleacute primaire de Personne est NdegSS et la cleacute primaire de Adresse est (CP Pays)
Nom Preacutenom ne peuvent pas ecirctre null et (Nom Preacutenom) est une cleacute
Age doit ecirctre compris entre 18 et 65 et Initiale doit ecirctre la premiegravere lettre de Pays (avec la fonction
LEFT qui renvoie la sous chaicircne agrave gauche de la chaicircne passeacutee en premier argument sur le nombre de
caractegraveres passeacutes en second argument)
Mariage est cleacute eacutetrangegravere vers Personne et (Codepostal Pays) est une cleacute eacutetrangegravere vers Adresse
Exemtple Reacuteeacutecriture avec uniquement des contraintes de table
Creacuteation et alimentation de bases de donneacutees SQL
75
CREATE TABLE Personne ( NdegSS CHAR(13) Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) Mariage CHAR(13) Codepostal INTEGER(5) Pays VARCHAR(50) PRIMARY KEY (NdegSS) UNIQUE (Nom Prenom) CHECK (Age BETWEEN 18 AND 65) FOREIGN KEY (Mariage) REFERENCES Personne(NdegSS) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) PRIMARY KEY (CP Pays) CHECK
(Initiale = LEFT(Pays 1)) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22
Ce scheacutema est strictement le mecircme que le preacuteceacutedent simplement les contraintes ont toutes eacuteteacute reacuteeacutecrites
comme des contraintes de table
g) Exercice Les instructions SQL ci-apregraves ont-elles pu permettre de creacuteer le scheacutema des trois relations instancieacutees ci-dessous
CREATE TABLE A ( A1 CHAR(255) A2 CHAR(255) A3 CHAR(255) A4 CHAR(255) ) CREATE TABLE B ( B1 CHAR(255) B2 CHAR(255) B3 CHAR(255) B4 CHAR(255) B5 CHAR(255) B6 CHAR(255) B7 CHAR(255) ) CREATE TABLE C ( C1 CHAR(255) C2 CHAR(255) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Oui
Non
Creacuteation et alimentation de bases de donneacutees SQL
76
3 Inseacuterer modifier et supprimer des donneacutees en SQL
(Langage de Manipulation de Donneacutees)
Objectifs
Maicirctriser les bases du SQL pour entrer modifier et effacer des donneacutees dans les
tables
a) Exercice Quelle valeur renvoie la derniegravere instruction SQL de la liste ci-dessous
CREATE TABLE t ( a integer b integer c integer)
INSERT INTO t VALUES (0 0 0)
INSERT INTO t VALUES (1 0 0)
INSERT INTO t SELECT FROM t
SELECT sum(a) + count(b) FROM t
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
b) Insertion de donneacutees Le langage SQL fournit des instructions pour ajouter des nouveaux tuples agrave une relation Il offre ainsi une
interface standard pour ajouter des information dans une base de donneacutees
Il existe deux moyens dajouter des donneacutees soit par fourniture directe des valeurs des proprieacuteteacutes du tuple agrave
ajouter soit par seacutelection des tuples agrave ajouter dans une autre relation
Syntaxe Insertion directe de valeurs
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) VALUES (ltListe ordonneacutee
des valeurs agrave affecter aux proprieacuteteacutes speacutecifieacutees cidessusgt) 1 2
Exemtple Insertion directe de valeurs
INSERT INTO Virement (Date Montant Objet) VALUES (14-07-1975 1000 Prime de naissance)
1 2
Syntaxe Insertion de valeurs tpar lintermeacutediaire dune seacutelection
Creacuteation et alimentation de bases de donneacutees SQL
77
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) SELECT 1 2
Linstruction SELECT projetant un nombre de proprieacuteteacutes identiques aux proprieacuteteacutes agrave valoriser
Exemtple Insertion de valeurs tpar lintermeacutediaire dune seacutelection
INSERT INTO Credit (Date Montant Objet) SELECT Date Montant Annulation de deacutebit FROM Debit WHERE DebitDate = 25-12-2001
1 2 3 4
Dans cet exemple tous les deacutebits effectueacutes le 25 deacutecembre 2001 sont re-creacutediteacutes pour le mecircme montant (et
agrave la mecircme date) avec la mention annulation dans lobjet du creacutedit Ceci pourrait typiquement reacutealiseacute en cas
de deacutebits erroneacutes ce jour lagrave
Remarque
Les proprieacuteteacutes non valoriseacutees sont affecteacutees agrave la valeur NULL
Il est possible de ne pas speacutecifier les proprieacuteteacutes agrave valoriser dans ce cas toutes les proprieacuteteacutes de la
relation seront consideacutereacutees dans leur ordre de deacutefinition dans la relation (agrave nutiliser que dans les cas
les plus simples)
c) Mise agrave jour de donneacutees Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation
Syntaxe Mise agrave jour directe de valeurs
1 UPDATE ltNom de la relationgt
2 SET ltListe daffectations Proprieacuteteacute=Valeur Proprieacuteteacute=Valeurgt 3 WHERE ltCondition pour filtrer les tuples agrave mettre agrave jourgt
1 UPDATE r
2 SET a=1 b=x 3 WHERE c=0
Exemtple Mise agrave jour directe de valeurs
UPDATE Compte SET Monnaie=Euro WHERE Monnaie=Franc
1 2 3
Exemtple Mise agrave jour tpar calcul sur lancienne valeur
UPDATE Compte SET Total=Total 655957 WHERE Monnaie=Euro
1 2 3
Creacuteation et alimentation de bases de donneacutees SQL
78
d) Suppression de donneacutees Le langage SQL fournit une instruction pour supprimer des tuples existants dans une relation
Syntaxe
DELETE FROM ltNom de la relationgt WHERE ltCondition pour filtrer les tuples agrave supprimergt
1 2
Exemtple Sutptpression de tous les tutples dune relation
DELETE FROM FaussesFactures 1
Exemtple Sutptpression seacutelective
DELETE FROM FaussesFactures WHERE Auteur=Moi
1 2
4 Supprimer et modifier des tables en SQL (Langage de
Deacutefinition de Donneacutees)
Le LDD permet de creacuteer les objets composant une BD de faccedilon deacuteclarative Il permet notamment la
deacutefinition des scheacutemas des relations la deacutefinition des contraintes dinteacutegriteacute la deacutefinition de vues
relationnelles
a) Suppression dobjets Il est possible de supprimer des objets de la BD tels que les tables ou les vues
Syntaxe
DROP lttype objetgt ltnom objetgt 1
Exemtple
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
79
DROP TABLE Personne DROP VIEW Employe
1 2
b) Modification de tables
Introduction
Linstruction ALTER TABLE permet de modifier la deacutefinition dune table (colonnes ou contraintes) preacutealablement
creacuteeacutee
Cette commande absente de SQL-89 est normaliseacutee dans SQL-92
Syntaxe Ajout de colonne
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de colonnegt
1 2
Syntaxe Sutptpression de colonne
ALTER TABLE ltnom de tablegt DROP ltnom de colonnegt
1 2
Syntaxe Ajout de contrainte
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de contrainte de tablegt
1 2
RemarqueModification de table sans donneacutee sans la commande ALTER
Pour modifier une table ne contenant pas encore de donneacutee la commande ALTER nest pas indispensable
lon peut supprimer la table agrave modifier (DROP) et la recreacuteer telle quon la souhaite Notons neacuteanmoins que si
la table est reacutefeacuterenceacutee par des clauses FOREIGN KEY cette suppression sera plus compliqueacutee car il faudra
eacutegalement supprimer et recreacuteer les tables reacutefeacuterenccedilantes (ce qui ce complique encore si ces derniegraveres
contiennent des donneacutees)
RemarqueModification de table avec donneacutees sans la commande ALTER
Pour modifier une table contenant des donneacutees la commande ALTER nest pas indispensable On peut en effet
1 Copier les donneacutees dans une table temporaire de mecircme scheacutema que la table agrave modifier
2 Supprimer et recreacuteer la table agrave modifier avec le nouveau scheacutema 3 Copier les donneacutees depuis la table temporaire vers la table modifieacutee
c) Exemple de modifications de tables
Table initiale
Soit une table initiale telle que deacutefinie ci-apregraves
Creacuteation et alimentation de bases de donneacutees SQL
80
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) prenom
VARCHAR(50) PRIMARY KEY
(pk_n) )
1 2 3 4 5 6
Modifications
On deacutecide dapporter les ameacutenagements suivants agrave la table on deacutefinit nom comme UNIQUE et on supprime
le champ prenom
ALTER TABLE Personne ADD UNIQUE (nom)
ALTER TABLE Personne DROP prenom
1 2 3 4 5
Table finale
La table obtenue apregraves modification est identique agrave la table qui aurait eacuteteacute deacutefinie directement telle que ci-
apregraves
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) PRIMARY KEY (pk_n) UNIQUE
(nom) )
1 2 3 4 5 6
B Exercices
1 The show
[30 minutes] Soit le scheacutema relationnel suivant deacutecrivant un systegraveme de reacuteservations de places de spectacles
SPECTACLE (nospectacleint nomstr dureacuteeint typetheacuteacirctre|danse|concert) SALLE (nosalleint nbplacesint) REPRESENTATION (datedate nospectacle=gtSPECTACLE nosalle=gtSALLE prixdecimal)
1 2 3
En faisant les suppositions suivantes
On gegravere un espace de spectacles ayant un ensemble de salles (deacutecrit par la relation SALLE)
On suppose que pour un jour donneacute et une salle donneacutee il ny a quun seul spectacle repreacutesenteacute
Question 1
Retro-concevoir le MCD en UML
Question 2
Proposer des contraintes dinteacutegriteacute reacutealistes pour ce scheacutema (en franccedilais)
Question 3
Creacuteation et alimentation de bases de donneacutees SQL
81
Proposer une deacutefinition du scheacutema en SQL qui prenne en compte certaines de ces contraintes
Question 4
Inseacuterer des donneacutees reacutealistes dans votre scheacutema afin de veacuterifier son bon fonctionnement
2 Du producteur au consommateur
[30 min] Soit le modegravele relationnel suivant
Producteur(raison_socialechaicircne(25) villechaicircne(255)) Consommateur(loginchaicircne(10)
emailchaicircne(50) nomchaicircne(50)prenomchaicircne(50) villechaicircne(255)) Produit(identier descriptionchaicircne(100) produit-par=gtProducteur consommepar-
login=gtConsommateur consomme-par-email=gtConsommateur)
1 2
3
On ajoute que
(nomprenomville) est une cleacute candidate de Consommateur
Tous les produits sont produits
Tous les produits ne sont pas consommeacutes
Question 1
Reacutetro-concevez le modegravele conceptuel sous-jacent agrave ce modegravele relationnel
Question 2
Eacutetablissez le code LDD standard permettant dimpleacutementer ce modegravele en SQL
Question 3
Inseacuterez les donneacutees dans votre base de donneacutees correspondant aux assertions suivantes
Lentreprise de Compiegravegne Pommes Picardes SARL a produit 4 lots de pommes et 2 lots de cidre
Il existe trois utilisateurs consommateurs dans la base donc les adresses mails sont
AlUncompiegnefr - BobDeuxcompiegnefr - CharlieTroiscompiegnefr
Ce sont des employeacutes de la ville de Compiegravegne qui habitent cette ville Leur mail est construit sur le
modegravele PrenomNomcompiegnefr Leur login est leur preacutenom
Question 4
Modifiez les donneacutees de votre base de donneacutees pour inteacutegrer les assertions suivantes
1 lots de pommes a eacuteteacute consommeacutes par Al Un
2 lots de pomme ont eacuteteacute consommeacute par Bob Deux
Tous les lots de cidre ont eacuteteacute consommeacutes par Al Un
Question 5
Charlie Trois nayant rien consommeacute modifiez votre base de donneacutees afin de le supprimer de la base
82
VI - Algegravebre relationnelle
A Cours
1 Opeacuterateurs fondamentaux projection restriction et
jointure
Objectifs
Connaicirctre et savoir utiliser les opeacuterateurs relationnels de projection restriction
produit et jointure
a) Introduction La repreacutesentation dinformation sous forme relationnelle est inteacuteressante car les fondements matheacutematiques
du relationnel outre quils permettent une modeacutelisation logique simple et puissante fournissent eacutegalement
un ensemble de concepts pour manipuler formellement linformation ainsi modeacuteliseacutee
Ainsi une algegravebre relationnelle sous forme dun ensemble dopeacuterations formelles permet dexprimer des
questions ou requecirctes poseacutees agrave une repreacutesentation relationnelle sous forme dexpressions algeacutebriques
Lalgegravebre relationnelle est composeacutee par les cinq opeacuterateurs de base et les trois opeacuterateurs additionnels
suivants
Opeacuterateurs de base
- Union - Diffeacuterence - Projection - Restriction
VI
Algegravebre relationnelle
83
- Produit carteacutesien
Opeacuterateurs additionels
- Intersection - Jointure - Division
Fondamental Algegravebre relationnelle et SQL
Les questions formuleacutees en algegravebre relationnelle sont la base des questions formuleacutees en SQL
pour interroger une base de donneacutees relationnelle
b) Employeacutes et deacutepartements
[30 minutes] Soit les deux relations EMP et DEPT ci-apregraves
EMP (ENO ENOM PROF SAL COMM DNO=gtDEPT(DNO)) DEPT (DNO DNOM DIR=gtEMP(ENO) VILLE)
1 2
ENO numeacutero demployeacute cleacute
ENOM nom de lemployeacute
PROF profession (directeur nest pas une profession)
SAL salaire
COMM commission (un employeacute peut ne pas avoir de commission)
DNO numeacutero de deacutepartement auquel appartient lemployeacute
DNO numeacutero de deacutepartement cleacute
DNOM nom du deacutepartement
DIR numeacutero demployeacute du directeur du deacutepartement
VILLE lieu du deacutepartement (ville)
Eacutecrire en algegravebre relationnelle les requecirctes permettant dobtenir les informations suivantes
Question 1
Lister les employeacutes ayant des revenus supeacuterieurs agrave 10000 euros
Question 2
Trouver le nom et la profession de lemployeacute numeacutero 10
Question 3
Lister les noms des employeacutes qui travaillent agrave Paris
Question 4
Trouver le nom du directeur du deacutepartement Commercial
Question 5
Trouver les professions des directeurs des deacutepartements
Question 6
Algegravebre relationnelle
84
Trouver le nom des directeurs de deacutepartement ayant comme profession Ingeacutenieur
c) Projection
Deacutefinition Projection
La projection est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La projection de R1 sur
une partie de ses attributs A1 A2 produit une relation R2 dont le scheacutema est restreint aux attributs
mentionneacutes en opeacuterande comportant les mecircmes tuples que R1 et dont les doublons sont eacutelimineacutes
Remarque Eacutelimination des doublons
Apregraves suppression dune partie des attributs du scheacutema la relation peut comporter des doublons Eacutetant donneacute
que lon ne pourrait plus identifier ces doublons les uns par rapport aux autres la seule solution senseacutee est
donc de consideacuterer que deux doublons sont eacutequivalents et donc de nen garder quun seul dans la relation
reacutesultante
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Dupont Pierre 20
Durand Jean 30
Tableau 8 Personne
Soit lopeacuteration suivante
R = Projection (Personne Nom Age) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont 20
Durand 30
Tableau 9 R
d) Restriction
Deacutefinition Restriction
La restriction est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La restriction de R1 eacutetant
donneacutee une condition C produit une relation R2 de mecircme scheacutema que R1 et dont les tuples sont les tuples
de R1 veacuterifiant la condition C
Algegravebre relationnelle
85
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Soit les tuples suivants
Dupont Pierre 20
Durand Jean 30
Tableau 10 Personne
Soit lopeacuteration suivante
R = Restriction (Personne Agegt25) 1
On obtient alors la relation R composeacutee de lunique tuple restant suivant
Durand Jean 30
Tableau 11 R
e) Produit
Deacutefinition Produit carteacutesien
Le produit carteacutesien est une opeacuteration binaire (cest agrave dire portant sur deux relations) Le produit de R1 par
R2 (eacutequivalent au produit de R2 par R1) produit une relation R3 ayant pour scheacutema la juxtaposition de ceux
des relations R1 et R2 et pour tuples lensemble des combinaisons possibles entre les tuples de R1 et ceux de
R2 Synonymes Produit
Remarque
Le nombre de tuples reacutesultant du produit de R1 par R2 est eacutegal au nombre de tuples de R1 fois le nombre de
tuples de R2
Remarque
Le nombre de colonne du produit de R1 par R2 est eacutegal au nombre de colonne de R1 plus le nombre de
colonnes de R2
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Algegravebre relationnelle
86
Durand Jean 30
Tableau 12 Homme
Tesla Model X
Citroeumln 2 CV
Tableau 13 Voiture
Soit lopeacuteration suivante
R = Produit (Homme Voiture) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X
Dupont Pierre 20 Citroeumln 2 CV
Durand Jean 30 Tesla Model X
Durand Jean 30 Citroeumln 2 CV
Tableau 14 R
Remarque
Le produit carteacutesien est rarement utiliseacute seul mais il est agrave la base de la jointure
f) Jointure
Deacutefinition Jointure
La jointure est une opeacuteration binaire (cest agrave dire portant sur deux relations) La jointure de R1 et R2 eacutetant
donneacute une condition C portant sur des attributs de R1 et de R2 de mecircme domaine produit une relation R3
ayant pour scheacutema la juxtaposition de ceux des relations R1 et R2 et pour tuples lensemble de ceux obtenus
par concateacutenation des tuples de R1 et de R2 et qui veacuterifient la condition C
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 15 Homme
Algegravebre relationnelle
87
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV Dupont
Tableau 16 Voiture
Soit lopeacuteration suivante
R = Jointure (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Dupont Pierre 20 Citroeumln 3 CV Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Tableau 17 R
(Dupont Pierre 20 Dupont Georges 1) (Dupont Pierre 20 Dupont Jacques 3)
1 2
Fondamental
La jointure est lopeacuteration qui permet de rassembler les informations seacutepareacutees entre plusieurs
tables et reacutefeacuterenceacutees par des cleacutes eacutetrangegraveres
Remarque Otpeacuteration additionnelle
La jointure nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit et la restriction
g) Exercice Quelles sont les expressions relationnelles eacutequivalentes agrave
Projection ( Jointure (R1 R2 R1A1=R2A1) R1A1 R2A2) 1
Jointure ( Projection(R1 A1) Projection(R2 A2) R1A1=R2A1)
Projection ( Jointure (R2 R1 R2A1=R1A1) R1A1 R2A2)
Projection ( Restriction ( Produit(R1 R2) R1A1=R2A1) R1A1 R2A2)
Produit (R1 R2 R1A1=R2A1 R1A1 R2A2)
Algegravebre relationnelle
88
2 Opeacuterateurs compleacutementaires
a) Jointure naturelle
Deacutefinition Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition est leacutegaliteacute entre les attributs
de mecircme nom de R1 et de R2 Il est donc inutile de speacutecifier la condition dans une jointure naturelle elle
reste toujours implicite
Exemtple
Soit deux relations R1 (A B C) et R2 (A D) lopeacuteration Jointure(R1R2R1A=R2A) est eacutequivalente agrave
lopeacuteration JointureNaturelle(R1R2)
Remarque
Pour appliquer une jointure naturelle il faut que les deux relations opeacuterandes aient au moins un attribut ayant
le mecircme nom en commun
b) Jointure externe
Introduction
La jointure est une opeacuteration qui entraicircne la perte de certains tuples ceux qui appartiennent agrave une des deux
relations opeacuterandes et qui nont pas de correspondance dans lautre relation Il est neacutecessaire dans certains
cas de palier cette lacune et lon introduit pour cela la notion de jointure externe
Deacutefinition Jointure externe
La jointure externe entre R1 et R2 est une jointure qui produit une relation R3 agrave laquelle on ajoute les tuples
de R1 et de R2 exclus par la jointure en compleacutetant avec des valeurs nulles pour les attributs de lautre
relation
Deacutefinition Jointure externe gauche
La jointure externe gauche entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les
tuples de R1 (cest agrave dire la relation de gauche) ayant eacuteteacute exclus
Synonymes Jointure gauche
Deacutefinition Jointure externe droite
Objectifs
Maicirctriser lalgegravebre relationnelle
Algegravebre relationnelle
89
La jointure externe droite entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les tuples
de R2 (cest agrave dire la relation de droite) ayant eacuteteacute exclus
Bien entendu une jointure externe droite peut ecirctre reacuteeacutecrite par une jointure externe gauche (et
reacuteciproquement) en substituant les relations opeacuterandes R1 et R2
Synonymes Jointure droite
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Martin Georges 40
Tableau 18 Homme
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV NULL
Tableau 19 Voiture
Soit lopeacuteration suivante
R = JointureExterne (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Martin Georges 40 NULL NULL NULL
NULL NULL NULL Citroeumln 3 CV NULL
Tableau 20 R
Une jointure externe gauche naurait renvoyeacute que les trois premiers tuples et une jointure externe droite
naurait renvoyeacutee que les deux premiers et le dernier tuple
Algegravebre relationnelle
90
c) Opeacuterateurs ensemblistes
Atention Les opeacuterateurs ensemblistes sont des relations binaires (cest agrave dire entre deux relations) portant
sur des relations de mecircme scheacutema
Deacutefinition Union
Lunion de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee de
lensemble des tuples appartenant agrave R1 etou agrave R2
Deacutefinition Difeacuterence
La diffeacuterence entre deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema
constitueacutee de lensemble des tuples de R1 nappartenant pas agrave R2 Notons que la diffeacuterence entre R1 et R2
nest pas eacutegale agrave la diffeacuterence entre R2 et R1
Deacutefinition Intersection
Lintersection de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee
de lensemble des tuples appartenant agrave la fois agrave R1 et agrave R2 Notons que lintersection nest pas une opeacuteration
de base car elle est eacutequivalent agrave deux opeacuterations de diffeacuterence successives
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Femme (Nom Preacutenom Age)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 21 Homme
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 22 Femme
Soit lopeacuteration suivante
R = Union (Homme Femme) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20
Durand Jean 30
Algegravebre relationnelle
91
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 23 R
La diffeacuterence entre Homme et Femme (respectivement entre Femme et Homme) renvoie la relation Homme
(respectivement Femme) car aucun tuple nest commun aux deux relations Lintersection entre Homme est
Femme est vide pour la mecircme raison
Remarque Union externe
Il est possible de deacutefinir une opeacuteration dunion externe qui permet de reacutealiser lunion de deux relations de
scheacutema diffeacuterent en ramenant les relations aux mecircmes scheacutemas et en les compleacutetant avec des valeurs nulles
d) Division
Deacutefinition Division
La division est une opeacuteration binaire (cest agrave dire portant sur deux relations) La division de R1 par R2 sachant
que R1 et R2 ont au moins un attribut commun (cest agrave dire de mecircme nom et de mecircme domaine) produit
une relation R3 qui comporte les attributs appartenant agrave R1 mais nappartenant pas agrave R2 et lensemble des
tuples qui concateacuteneacutes agrave ceux de R2 donnent toujours un tuple de R1
Exemtple
Soit les deux relations suivantes
Pratique (Homme Meacutetier Salaire) Meacutetier (Metier)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Ingeacutenieur 35
Durand Professeur 40
Dupont Ingeacutenieur 45
Martin Ingeacutenieur 50
Tableau 24 Pratique
Ingeacutenieur
Professeur
Tableau 25 Meacutetier
Soit lopeacuteration suivante
R = Division (Homme Meacutetier) 1
Algegravebre relationnelle
92
On obtient alors la relation R composeacutee des tuples suivants
Dupont 35
Tableau 26 R
Meacutethode Reacutetponse aux questions Pour tous les
La division permet de reacutepondre aux questions du type Donnez toutes les personnes qui pratiquent tous les
meacutetiers de la relation meacutetier
Remarque Otpeacuteration additionnelle
La division nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit la restriction et la
diffeacuterence
e) Proposition de notations Introduction Il existe plusieurs syntaxes pour eacutecrire des opeacuterations dalgegravebre relationnelle certaines inspireacutees de lalgegravebre
classiques dautres reposant sur des notations graphiques Nous proposons une notation fonctionnelle qui a
le meacuterite decirctre facile agrave eacutecrire et decirctre lisible Si cette notation peut parfois perdre en simpliciteacute lorsquelle
concerne un nombre eacuteleveacute dopeacuterateurs il est possible de deacutecomposer une opeacuteration compliqueacutee afin de
lalleacuteger
Syntaxe
R = Union (R1 R2) R = Diffeacuterence (R1 R2) R = Intersection (R1 R2) R = Projection (R1 A1 A2 ) R = Restriction (R1 condition) R = Produit (R1 R2) R = Jointure (R1 R2 condition) R = JointureNaturelle (R1 R2) R = JointureExterne (R1 R2 condition) R = JointureGauche (R1 R2 condition) R = JointureDroite (R1 R2 condition) R = Division (R1 R2)
1 2 3 4 5 6 7 8 9
10 11 12
Exemtple Notation syntheacutetique
R = Projection(Restriction(R1 A1=1 AND A2=2) A3) 1
Exemtple Notation deacutecomtposeacutee
R = Restriction(R1 A1=1 AND A2=2) R = Projection (R A3)
1 2
Algegravebre relationnelle
93
f) Exercice Soit les deux relations R1 et R2 suivantes deacutefinies en extension
A B
1 A
2 B
3 C
Tableau 27 R1
A
1
2
Tableau 28 R2
Combien de tuples renvoie lopeacuteration relationnelle suivante
R3 = JointureNaturelle (Intersection (Projection(R1A) R2) R2) 1
g) Opeacuterateurs de base et additionnels Reacuteeacutecrivez les opeacuterateurs additionnels suivants agrave partir dopeacuterateurs de base
Question 1
Reacuteeacutecrivez Intersection agrave partir de Diffeacuterence
Question 2
Reacuteeacutecrivez Jointure agrave partir de Produit et Restriction
Algegravebre relationnelle
94
B Exercices
1 Faire du Cineacutema
[30 minutes] On considegravere les deux relations suivantes
FILMS (titre pays anneacutee reacutealisateur dureacutee) ACTEURS (titre acteur)
1 2
ougrave les attributs ont les significations et les types suivants
titre titre dun film (chaicircne 50 caractegraveres)
pays pays dougrave un film est originaire (chaicircne 10 caractegraveres)
annee anneacutee de sortie du film (entier 4 chiffres)
realisateur nom du reacutealisateur du film (chaicircne 20 caractegraveres)
duree dureacutee du film en minutes (entier 3 chiffres)
acteur nom dacteur (chaicircne 20 caractegraveres)
La relation FILMS donne pour chaque film identifieacute par son titre le pays lanneacutee de sortie reacutealisateur et la
dureacutee
La relation ACTEURS donne pour chaque film lensemble des principaux acteurs
Agrave laide de lalgegravebre relationnelle exprimer les requecirctes suivantes
Question 1
Lister les films franccedilais (titre anneacutee reacutealisateur)
Question 2
Donnez les anneacutees de sortie des films dans lesquels lacteur Jean GABIN a joueacute
Question 3
Trouver les acteurs qui ont tourneacute avec Franccedilois Truffaut comme reacutealisateur
Question 4
Trouver tous les acteurs qui ont eacuteteacute partenaires de lactrice Catherine Deneuve
Question 5
Lister les films dans lesquels le reacutealisateur est aussi acteur
Question 6
Lister les reacutealisateurs nayant joueacute comme acteurs que dans des films quils ne reacutealisaient pas eux-mecircmes
Question 7
Lister les reacutealisateurs ayant joueacute comme acteurs dans des films quils ne reacutealisaient pas eux-mecircmes
Question 8
Donnez les acteurs qui jouent dans tous les films de Franccedilois TRUFFAUT
Algegravebre relationnelle
95
2 Qiz Algegravebre relationnelle
Exercice 1 Quelles sont les opeacuterations relationnelles qui appliqueacutees sur les relations instancieacutees cidessous renvoient un ensemble non nul de tuples
Num Nom Famille
1 Ours Mammifegravere
2 Truite Poisson
3 Homme Mammifegravere
4 Martinshypecirccheur Oiseau
Tableau 29 Animal
Num Nom
1 Forecirct
2 Montagne
3 Ciel
4 Riviegravere
5 Mer
Tableau 30 Environnement
Animal Environnement
1 1
1 2
1 4
2 4
4 3
Tableau 31 Habiter
Mangeur Mangeacute Freacutequence
1 2 Souvent
1 3 Rarement
1 4 Rarement
4 2 Souvent
3 1 Rarement
Algegravebre relationnelle
96
3 2 Souvent
Tableau 32 Manger
Restriction( Projection (Animal Nom Famille) Famille=Mammifegravere)
Restriction( Jointure( Jointure (Animal Habiter AnimalNum=HabiterAnimal) Environnement
EnvironnementNum=HabiterEnvironnement) AnimalNum=3)
Restriction( JointureExterneGauche( Animal Habiter
AnimalNum=HabiterAnimal) AnimalNom=Homme)
Jointure( Animal Manger AnimalNum=MangerMangeur AND AnimalNum=MangerMangeacute)
Exercice 2 Soit le scheacutema relationnel
R1(X Y) R2(X Y)
1 2
Quelles sont les opeacuterations relationnelles eacutequivalentes agrave lopeacuteration
Projection( JointureNaturelle(R1R2) R1X) 1
JointureNaturelle(Projection(R1 X) Projection(R2 X))
Projection( Selection (Produit(R1 R2) R1X=R2X AND R1Y=R2Y) R1X)
Projection( Union( R1 R2) R1X)
Projection( JointureExterne ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Projection( Jointure ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Algegravebre relationnelle
97
Exercice 3 Soit la relation instancieacutee suivante
A B C
1 1 0
1 0 1
0 1 1
Tableau 33 Relation R1
Quelles relations sont retourneacutees par lopeacuteration relationnelle suivante
R2 = JointureNaturelle(R1 R1) 1
1 1 0
1 0 1
0 1 1
Tableau 34 R2a
1 1 0
1 0 1
0 1 1
1 1 0
1 0 1
0 1 1
Tableau 35 R2b
1 1 1
0 0 0
Tableau 36 R2c
1 1 0 1 1 0
1 0 1 1 0 1
0 1 1 0 1 1
Algegravebre relationnelle
98
Tableau 37 R2d
R2a
R2b
R2c
R2d
Une relation vide (aucun tuple)
3 Le retour des eacutecoliers
[45 minutes] Soit le scheacutema relationnel suivant
IMMEUBLE (ADI NBETAGES DATEC PROP) APPIM (ADI NAPR OCCUP TYPE SUPER ETAGE) PERSONNE (NOM AGE PROF ADR NAPR) EacuteCOLE (NOMEC ADEC DIR) CLASSE (NOMEC NCL MAITRE) ENFANT (NOMP PRENOM AN NOMEC NCL)
1 2 3 4 5 6
Avec la signification suivante
Relation IMMEUBLE
ADI adresse dimmeuble cleacute on fait lhypothegravese pour simplifier que ladresse identifie de maniegravere
unique un immeuble NBETAGES nombre deacutetages dun immeuble
DATEC date de construction (anneacutee)
PROP nom du proprieacutetaire de limmeuble qui est une personne
Relation APPIM (Appartement) ADI
adresse dimmeuble
NAPR numeacutero dappartement
OCCUP occupant de lappartement (nom de la personne ayant signeacute le contrat de location
eacuteventuellement aucun)
TYPE type de lappartement (Studio F2 )
SUPER superficie de lappartement
ETAGE eacutetage ougrave se situe lappartement
Relation PERSONNE
NOM nom de personne cleacute on fait lhypothegravese pour simplifier que ce nom est unique sur lensemble
des personnes que lon considegravere dans la base
AGE acircge de la personne
PROF profession de la personne
ADR adresse de la reacutesidence dune personne il sagit dun immeuble NAPR numeacutero
dappartement
Relation EacuteCOLE
NOMEC nom dune eacutecole cleacute
ADEC adresse dune eacutecole
DIR nom du directeur
Algegravebre relationnelle
99
Relation CLASSE
NOMEC nom dune eacutecole
NCL nom de la classe eg CP1 CE2 CE3 etc MAITRE nom
de linstituteur
Relation ENFANT
NOMP nom de la personne responsable de lenfant cleacute eg pegravere megravere etc
PRENOM preacutenom de lenfant
AN anneacutee de naissance
NOMEC nom dune eacutecole
NCL nom de la classe
La relation IMMEUBLE deacutecrit un ensemble dimmeubles Chaque immeuble a un proprieacutetaire La relation APPIM
deacutecrit pour chaque immeuble lensemble des appartements qui le compose (il y a au mimimum un appartement
par immeuble) Chaque appartement peut heacuteberger plusieurs personnes mais il y en a une qui est responsable
(par exemple la personne qui a signeacute le contrat de location) et qui est deacutesigneacutee par lattribut OCCUP Si
lappartement est inoccupeacute il prend la valeur NULL La relation PERSONNE deacutecrit un ensemble de personnes
ADR et NAPR repreacutesentent ladresse ougrave reacuteside une personne Une personne peut avoir plusieurs enfants deacutecrits
par la relation ENFANT Pour simplifier on ne considegravere que les enfants allant agrave leacutecole primaire Les eacutecoles et
les classes sont deacutecrites dans les relations EacuteCOLE et CLASSE chaque eacutecole est composeacutee au minimum dune
classe et chaque classe est au moins freacutequenteacutee par un enfant
Question 1
Donner ladresse des immeubles ayant plus de 10 eacutetages et construits avant 1970
Question 2
Donner les noms des personnes qui habitent dans un immeuble dont ils sont proprieacutetaires
Question 3
Donner les noms des personnes qui ne sont pas proprieacutetaires
Question 4
Donner les adresses des immeubles posseacutedeacutes par des informaticiens dont lacircge est infeacuterieur agrave 40 ans
Question 5
Donner la liste des occupants (nom acircge profession) des immeubles posseacutedeacutes par DUPONT
Question 6
Donner le nom et la profession des proprieacutetaires dimmeubles dans lesquels il y a des appartements vides
Question 7
Donner les noms des maicirctres qui habitent dans le mecircme immeuble (agrave la mecircme adresse) quau moins un de
leurs eacutelegraveves (on suppose que les enfants vivent sous le mecircme toit que leur parents)
Question 8
Donner ladresse de limmeuble la date de construction le type dappartement et leacutetage ougrave habitent chacun
des maicirctres des enfants de DUPONT
Algegravebre relationnelle
100
101
Qestions de synthegravese
Pourquoi est-il fondamental mais difficile de parvenir agrave un MCD correct
Eacutenoncer quelques actions agrave mener pour reacutealiser une speacutecification geacuteneacuterale de lexistant et des besoins
Quest ce qui diffeacuterencie fondamentalement un MCD dun MLD
Questions de synthegravese
102
Quels sont les principaux eacuteleacutements du diagramme de classes UML
Quelles sont les diffeacuterences et points communs entre la diagramme de classe UML et le modegravele E-A
eacutetendu
Questions de synthegravese
103
Quest ce quun domaine
Comment identifie-t-on un attribut dune relation
Comment identifie-t-on un enregistrement dune relation
Questions de synthegravese
104
Quand doit-on ajouter des cleacutes artificielles
Quelle problegraveme pose la redondance et comment le reacutesoudre
A quoi sert le LDD
Questions de synthegravese
105
Quel rapport y-a-t il entre le LDD et le concept de relation
Pourquoi la jointure est-elle un opeacuterateur essentiel
Questions de synthegravese
106
Quels sont les opeacuterateurs algeacutebriques de base Quels sont les autres opeacuterateurs Quest ce qui les diffeacuterencie
Quels sont les opeacuterateurs ensemblistes Quest ce qui les caracteacuterise
Pourquoi la jointure est-elle un opeacuterateur essentiel
Quest ce qui diffeacuterencie une jointure externe dune jointure classique
107
Glossaire
Cleacute artificielle
Une cleacute artificielle est un attribut ajouteacute agrave une relation afin didentifier ses enregistrements On fait appel agrave
une cleacute artificielle lorsque la relation ne comporte aucune cleacute naturelle ou que ses cleacutes naturelles sont jugeacutees
inadapteacutees agrave lidentification au sein de la base de donneacutees
Extension
Lextension est lexplicitation dun domaine par leacutenonciation exhaustive de lensemble des objets du domaine
Elle soppose agrave linstension qui est une description abstraite des caracteacuteristiques du domaine
Exemple bleu rouge vert
Contre-exemple Le domaine des couleurs
Intension
Lintension est lexplicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa
compreacutehension abstraite geacuteneacuterale)
Elle soppose agrave lextension qui est leacutenonciation exhaustive de lensemble des objets du domaine
Exemple Le domaine des couleurs
Contre-exemple bleu rouge vert
108
Signification des abreacuteviations
- ANSI American National Standards Institute
- BD Base de Donneacutees
- E-A Entiteacute-Association
- ISO International Standardization Organization
- LCD Langage de Controcircle de Donneacutees
- LDD Langage de Deacutefinition de Donneacutees
- LMD Langage de Manipulation de Donneacutees
- OMG Object Management Group
- PSM Persistent Stored Modules
- RO Relationnel-Objet
- SGBD Systegraveme de Gestion de Bases de Donneacutees
- SGBDR Systegraveme de Gestion de Bases de Donneacutees Relationnelles
- SQL Structured Query Language
- UML Unified Modeling Language
- XML eXtensible Markup Language
Reacutefeacuterences
[dbdiscocrztfr] httpdbdiscocrztfr3
109
3 - httpdbdiscocrztfr
Bibliographie
[Arribe 2014] ARRIBE THIBAUT 2014 Conception des chaicircnes eacuteditoriales documentariser lactiviteacute et structurer le graphe documentaire pour ameacuteliorer la maicirctrise de la reacuteeacuteditorialisation Universiteacute de Technologie de
Compiegravegne Meacutemoire de Doctorat httpicsutcfr~tha
[Codd70] CODD EF A relational model for large shared data banks Communications de lACM juin 1970
[Delmal01] DELMAL PIERRE SQL2 SQL3 applications agrave Oracle De Boeck Universiteacute 2001
[Gardarin99] GARDARIN GEORGES Bases de donneacutees objet et relationnel Eyrolles 1999
[Gulutzan and Pelzer 1999] GULUTZAN PETER PELZER TRUDY 1999 SQL-99 complete really CMP books
[Muller98] MULLER PA Modeacutelisation objet avec UML Eyrolles 1998
[Roques04] ROQUES PASCAL VALLEacuteE FRANCK UML 2 en action De lanalyse des besoins agrave la conception J2EE
ISBN 2212-11462-1 (3egraveme eacutedition) Paris Eyrolles 2004 385 p architecte logiciel
[Rothenberg et al 1989] ROTHENBERG JEFF WIDMAN LAWRENCE E LOPARO KENNETH A NIELSEN NORMAN R 1989 The nature of modeling Rand vol3027
[Soutou02] SOUTOU CHRISTIAN De UML agrave SQL Conception de bases de donneacutees Eyrolles 2002
[Tardieu83] TARDIEU H ROCHFELD A COLLETI R Meacutethode MERISE Tome 1 Principes et outils Les Editions dOrganisation 1983
Webographie
[w_journaldunetcom(1)] MORLON JEacuteROcircME UML en 5 eacutetapes httpdeveloppeurjournaldunetcomdossiersalg_umlshtml 2004
[w_journaldunetcom(2)] BORDERIE XAVIER Cinq petits conseils pour un scheacutema UML efficace
httpdeveloppeurjournaldunetcomtutorielcpt031013cpt_uml5conseilsshtml 2004
[w_objecteering] Objecteering software httpwwwobjecteeringcom [2002-septembre]
[w_umlfreefr] UML en Franccedilais httpumlfreefr consulteacute en 2002
Questions de synthegravese
110
Index
11 p54 Error Reference source
not found 1N p53 Error Reference source
not found Algegravebre p48 71 71 72 73 74 75
76 76 76 78 79 80 ALTER TABLE p67 68 Analyse p9 11 12 13 Application p6 Association pError Reference
source not found 31 Error
Reference source not found 32 44
Error Reference source not found
53 Error Reference source not
found 53 Error Reference source
not found 54 Error Reference
source not found 54 Attribut p28 32 40 41 41 42 44
51 52 54 Base de donneacutees p17 BD p4
Cardinaliteacute p32 Error
Reference source not found Error
Reference source not found Carteacutesien p74 CHECK p62 63 Classe p27 50 54 Cleacute p41 42 42 44 Cleacute artificielle p42 Cleacute candidate p42 Cleacute primaire p42 42 Cleacute signifiante p42 Codd p39 Composition pError Reference
source not found Error Reference
source not found Conception p9 11
Conceptuel p9 11 13 15 26 27
50 53
CREATE TABLE p59
Creacuteation p58 Deacuteclaratif p58 DELETE p65 66 Diagramme p26 Diffeacuterence p78 Division p79 Domaine p39 48 48 60 61 DROP p67 E-A p32 Enregistrement p40 41 Externe p15 76 FOREIGN KEY p62 63 INSERT p65 65 Instance p15 Interne p15 Intersection p78 Jointure p75 76 76 Langage p8 65 LDD p8 58 67 Lien p44 LMD p8 65 Logique p38 38 39 39 41 50
53 Manipulation p71 Meacutethode p30 Modegravele p13 23 38 39 39 41 45
46 Modeacutelisation p42 Modification p67 NM p53 N M pError Reference source not
found Naturelle p76 NOT NULL p62 63 Null p61 OMG p27 Opeacuteration p30 48 Passage p50 53 PostgreSQL p17
PRIMARY KEY p62 63 Produit p48 48 74
Projection p72 Proprieacuteteacute p28 32 Reacutefeacuterence p44 REFERENCES p62 63 Relation p40 41 41 42 44 44 45
48 Relationnel p5 Error
Reference source not found 38 38
39 39 41 45 46 48 48 50 50
51 Error Reference source not
found 52 53 53 Error Reference
source not found 53 Error Reference source not found 54
Error Reference source not found 54 71
71 76 80 Relationnel-objet p38 39 Requecircte p65 Restriction p73 Scheacutema p15 45 46 SGBD p5 Speacutecifications p12 SQL p8 58 65 67 Suppression p67 Table p58 67 Tuple p40 Type p60 61 UML p13 26 27 27 28
Error Reference source not found
30 31 Error Reference source not found 32 50
50 51 Error Reference source not
found 52 53 53 Error Reference source not
found 53 Error Reference source not
found 54 Error Reference source not found
54 Union p78 UNIQUE p62 63 UPDATE p65 66
wwwsambaconsultantscom 111
Contenus annexes
- Deacutefinition du mouvement NoSQL
Deacutefinition
Le NoSQL regroupe de nombreuses bases de donneacutees reacutecentes pour la plupart qui se caracteacuterisent par une logique de repreacutesentation de donneacutees non relationnelle et qui noffrent donc pas une interface de requecirctes en SQL
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-dedonnees-nosql4
NoSQL signifie Not Only SQL et non pas No SQL il sagit de compleacutements aux SGBDR pour des
besoins speacutecifiques et non de solutions de remplacement Exemtple
BD orienteacutee cleacute-valeur
BD orienteacutee graphe
BD orienteacutee colonne
BD orienteacutee document
Comtpleacutement
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql5
- Transformation des meacutethodes par des vues
Meacutethode
Lorsquune meacutethode est speacutecifieacutee sur un diagramme UML pour une classe C si cette meacutethode est une fonction
relationnelle (elle renvoie une unique valeur et elle peut ecirctre reacutesolue par une requecircte SQL) alors on creacutee une
vue qui reprend les attributs de la classe C et ajoute des colonnes calculeacutees pour les meacutethodes
Remarque Atributs deacuteriveacutes
Les attributs deacuteriveacutes eacutetant apparenteacutes agrave des meacutethodes ils peuvent eacutegalement ecirctre geacutereacutes par des vues
Contenus annexes
112
- Composition
Deacutefinition Association de comtposition
On appelle composition une association particuliegravere qui possegravede les proprieacuteteacutes suivantes
La composition associe une classe composite et des classes parties tel que tout objet partie appartient
agrave un et un seul objet composite Cest donc une association 1N (voire 11)
La composition nest pas partageable donc un objet partie ne peut appartenir quagrave un seul objet
composite agrave la fois
Le cycle de vie des objets parties est lieacute agrave celui de lobjet composite donc un objet partie disparaicirct
quand lobjet composite auquel il est associeacute disparaicirct
Remarque
La composition est une association particuliegravere (binaire de cardinaliteacute contrainte)
La composition nest pas symeacutetrique une classe joue le rocircle de conteneur pour les classes lieacutees elle
prend donc un rocircle particulier a priori
La composition est une agreacutegation avec des contraintes suppleacutementaires (non partageabiliteacute et cycle
de vie lieacute)
Image 14 Notation de la composition en UML
Atention Composition et cardinaliteacute
La cardinaliteacute cocircteacute composite est toujours de exactement 1
Cocircteacute partie la cardinaliteacute est libre elle peut ecirctre 01 1 ou bien 1
Image 15 Un livre
On voit bien ici quun chapitre na de sens que faisant partie dun livre quil ne peut exister dans deux livres
diffeacuterents et que si le livre nexiste plus les chapitres le composant non plus
Remarque Comtposition et entiteacutes faibles
Syntaxe
Contenus annexes
113
wwwsambaconsultantscom
La composition permet dexprimer une association analogue agrave celle qui relie une entiteacute faible agrave une entiteacute
identifiante en modeacutelisation E-A Lentiteacute de type faible correspond agrave un objet partie et lentiteacute identifiante
agrave un objet composite
Conseil Comtposition et atribut multivalueacute
Une composition avec une classe partie doteacutee dun seul attribut peut seacutecrire avec un attribut multivalueacute
Un attribut composeacute et multivalueacute peut seacutecrire avec une composition
Ratptpel Voir aussi
Attributs
Agreacutegation - p100
- Agreacutegation
Deacutefinition Association dagreacutegation
Lagreacutegation est une association particuliegravere utiliseacutee pour preacuteciser une relation toutpartie (ou
ensembleeacuteleacutement) on parle dassociation meacutereacuteologique
Elle possegravede la proprieacuteteacute suivante Lagreacutegation associe une classe agreacutegat et des classes parties tel que tout
objet partie appartient agrave au moins un objet agreacutegat
Remarque
Lagreacutegation est une association particuliegravere (binaire de cardinaliteacute libre)
Lagreacutegation nest pas symeacutetrique Syntaxe
Image 16 Notation de lagreacutegation en UML
La cardinaliteacute peut ecirctre exprimeacutee librement en particulier les instances de la classe Eacuteleacutement peuvent ecirctre
associeacutees agrave plusieurs instances de la classe Ensemble et mecircme de plusieurs classes
Atention
Lagreacutegation garde toutes les proprieacuteteacutes dune association classique (cardinaliteacute cycle de vie
etc) elle ajoute simplement une terminologie un plus preacutecise via la notion de toutpartie
- Explicitation des associations
Syntaxe Sens de lecture
Il est possible dajouter le sens de lecture du verbe caracteacuterisant lassociation sur un diagramme de classe
UML afin den faciliter la lecture On ajoute pour cela un signe lt ou gt (ou un triangle noir) agrave cocircteacute du nom
de lassociation
Contenus annexes
114
Syntaxe Rocircle
Il est possible de preacuteciser le rocircle joueacute par une ou plusieurs des classes composant une association afin den
faciliter la compreacutehension On ajoute pour cela ce rocircle agrave cocircteacute de la classe concerneacutee (parfois dans un petit
encadreacute colleacute au trait de lassociation
Exemtple
Image 17 Rocircle et sens de lecture sur une association
Deacutefinition Association reacuteflexive
Une association reacuteflexive est une association qui associe une classe avec elle-mecircme
Lexplicitation des associations est particuliegraverement utile dans le cas des associations reacuteflexives
- Associations ternaires
Image 18 Notation dune association ternaire
Conseil Ne tpas abuser des associations ternaires
Il est toujours possible de reacuteeacutecrire une association ternaire avec trois associations binaires en transformant
lassociation en classe
Conseil Pas de degreacute sutpeacuterieur agrave 3
En pratique on nutilise jamais en UML dassociation de degreacute supeacuterieur agrave 3
- Transformation des agreacutegations
Ratptpel Agreacutegation
Les associations de type agreacutegation se traitent de la mecircme faccedilon que les associations classiques
Syntaxe
Contenus annexes
115
wwwsambaconsultantscom
Graphique 12 Agreacutegation 1N
Classe1(ab)
Classe2(cda=gtClasse1)
Graphique 13 Agreacutegation NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
- Transformation des compositions
Meacutethode
Une composition
est transformeacutee comme une association 1N
puis on ajoute agrave la cleacute de la classe partie (dite cleacute locale) la cleacute eacutetrangegravere vers la classe composite pour
construire une cleacute primaire composeacutee
Graphique 14 Composition
Classe1(ab)
Classe2(ca=gtClasse1d)
Remarque Cleacute locale
Pour identifier une classe partie dans une composition on utilise une cleacute locale concateacuteneacutee agrave la cleacute eacutetrangegravere
vers la classe composite afin dexprimer la deacutependance entre les deux classes
Si une cleacute naturelle globale permet didentifier de faccedilon unique une partie indeacutependamment du tout on
preacutefeacuterera la conserver comme cleacute candidate plutocirct que de la prendre pour cleacute primaire
Contenus annexes
116
Si on la choisit comme cleacute primaire cela revient agrave avoir transformeacute la composition en agreacutegation en redonnant
une vie propre aux objets composants
Comtpleacutement Comtposition et entiteacutes faibles en E-A
Une composition est transformeacutee selon les mecircmes principes quune entiteacute faible en E-A
Comtpleacutement Atributs multivalueacutes et comtposeacutes
La transformation dun attribut composeacute multivalueacute donne un reacutesultat eacutequivalent agrave la transformation dune
composition
Classe1
a key b [0N] -b1 -b2
Graphique 15 Composition et attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
La transformation dune composition avec un seul attribut pour la classe composante donne un reacutesultat
eacutequivalent agrave la transformation dun attribut multivalueacute
Graphique 16 Composition et attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Ratptpel Voir aussi
Transformation des attributs
- Contrainte de cardinaliteacute minimale 1 dans les associations 1N
Ratptpel
Transformation des associations 1N
Meacutethode
a key
Classe1
0 N
( b1b2) local key
Contenus annexes
117
wwwsambaconsultantscom
Classe1
1 association 1N
Classe2
a key
b c key
d
Graphique 17 Association 1N
Si la cardinaliteacute est exactement 1 (11) cocircteacute 1 alors on ajoutera une contrainte de non nulliteacute sur la
cleacute eacutetrangegravere
si la cardinaliteacute est au moins 1 (1N) cocircteacute N on ajoutera une contrainte dexistence de tuples
reacutefeacuterenccedilant pour chaque tuple de la relation reacutefeacuterenceacutee
Classe1(ab)
Classe2(cda=gtClasse1)
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Graphique 18 Classe dassociation (1N)
Classe1(ab)
Classe2(cda=gtClasse1 e f) avec e KEY
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Comtpleacutement
Projection
- Contrainte de cardinaliteacute minimale 1 dans les associations NM
Ratptpel
Transformation des associations NM
Meacutethode
Si la cardinaliteacute est exactement au moins 1 (1N) dun cocircteacute etou de lautre alors des contraintes
dexistence simultaneacutee de tuple devront ecirctre ajouteacutee
Ce nest pas neacutecessaire si la cardinaliteacute est 0N
a key b
Classe1
c key d
Classe2
1 N 1
e loc al key f
Cl-A ssoc
Contenus annexes
118
Graphique 19 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Graphique 20 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Cl-Assoc(a=gtClasse1c=gtClasse2ef)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Comtpleacutement
Projection
- Transformation des associations 11 (approche geacuteneacuterale) Il existe deux solutions pour transformer une association 11
Avec deux relations on traite lassociation 11 comme une association 1N puis lon ajoute une
contrainte UNIQUE sur la cleacute eacutetrangegravere pour limiter la cardinaliteacute maximale agrave 1
Avec une seule relation on fusionne les deux classes en une seule relation
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 21 Association 11
Meacutethode Avec deux relations (cleacute eacutetrangegravere)
Une des deux relations est choisie pour porter la cleacute eacutetrangegravere
on ajoute les contraintes UNIQUE ou KEY (cleacute candidate) sur la cleacute eacutetrangegravere et si neacutecessaire une
contrainte imposant linstanciation simultaneacutee des deux relations
Classe1(abc=gtClasse2) avec c UNIQUE ou KEY
Classe2(cd)
a key b
Classe1
c key d
Classe2
1 N 1 N
e key f
ssoc Cl-A
Contenus annexes
119
wwwsambaconsultantscom
Contrainte (eacuteventuellement) PROJ(Classe1c)=PROJ(Classe2c) ou
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE ou KEY
Contrainte (eacuteventuellement) PROJ(Classe1a)=PROJ(Classe2a)
Meacutethode Avec une relation (fusion)
On creacuteeacute une seule relation contenant lensemble des attributs des deux classes on
choisit une cleacute parmi les cleacutes candidates
Classe12(abcd) avec c UNIQUE ou KEY ou
Classe21(cdab) avec a UNIQUE ou KEY
RemarqueFusion des relations dans le cas de la traduction de lassociation 11
Ce choix entre les deux meacutethodes sera conduit par une appreacuteciation du rapport entre
La complexiteacute introduite par le fait davoir deux relations lagrave ou une suffit
La pertinence de la seacuteparation des deux relations dun point de vue seacutemantique
Les pertes de performance dues agrave leacuteclatement des relations
Les pertes de performance dues au fait davoir une grande relation
Les questions de seacutecuriteacute et de sucircreteacute factoriseacutees ou non au niveau des deux relations
Introduction geacuteneacuterale aux bases de donneacutees
3
wwwsambaconsultantscom
A Cours 82
1 Opeacuterateurs fondamentaux projection restriction et jointure 82
2 Opeacuterateurs compleacutementaires 88
B Exercices 94
1 Faire du Cineacutema 94
2 Quiz Algegravebre relationnelle 95
3 Le retour des eacutecoliers 98
Questions de synthegravese 101
Glossaire 107
Signification des abreacuteviations 108
Reacutefeacuterences 108
Bibliographie 109
Webographie 109
Index 110
Contenus annexes 111
wwwsambaconsultantscom 4
I - Introduction geacuteneacuterale
aux bases de donneacutees
A Cours
Les BD sont neacutees agrave la fin des anneacutees 1960 pour combler les lacunes des systegravemes de fichiers et faciliter la
gestion qualitative et quantitative des donneacutees informatiques Les SGBD sont des applications informatiques
permettant de creacuteer et de geacuterer des BD (comme Oracle ou PostgreSQL par exemple)
Les BD relationnelles issues de la recherche de Codd sont celles qui ont connu le plus grand essor depuis les
anneacutees et qui reste encore aujourdhui les plus utiliseacutees On utilise des SGBDR pour les impleacutementer Le
langage SQL est le langage commun agrave tous les SGBDR ce qui permet de concevoir des BD relativement
indeacutependamment des systegravemes utiliseacutes
Les usages de BD se sont aujourdhui geacuteneacuteraliseacutes pour entrer dans tous les secteurs de lentreprise depuis
les petites bases utiliseacutees par quelques personnes dans un service pour des besoins de gestion de donneacutees
locales jusquaux bases qui gegraverent de faccedilon centraliseacutee des donneacutees partageacutees par tous les acteurs de
lentreprise
Laccroissement de lutilisation du numeacuterique comme outil de manipulation de toutes donneacutees (bureautique
informatique applicative etc) et comme outil dextension des moyens de communication (reacuteseaux) ainsi que
les eacutevolutions technologiques (puissance des PC Internet etc) ont rendu indispensable mais aussi
complexifieacute la probleacutematique des BD
Les conseacutequences de cette geacuteneacuteralisation et de cette diversification des usages se retrouvent dans leacutemergence
de solutions conceptuelles et technologiques nouvelles les bases de donneacutees du mouvement NoSQL
particuliegraverement utiliseacutees par les grands acteurs du web
I
Introduction geacuteneacuterale aux bases de donneacutees
5
wwwsambaconsultantscom
1 Notions fondamentales donneacutee base de donneacutees
systegraveme de gestion de bases de donneacutees
a) Base de donneacutees
Logiciel et donneacutees
Un logiciel informatique est composeacute de programmes cest agrave dire dinstructions donneacutees agrave lordinateur et de
donneacutees auxquelles sappliquent ces instructions
Par exemple un logiciel de traitement de texte est composeacute de fonctions - ouvrir copier coller inseacuterer une
image changer la police enregistrer - et de fichiers sur lesquels elles sappliquent Dans ce cas les fichiers
de traitement de texte sont les donneacutees
Deacutefinition Deacutefinition lacircche de base de donneacutees un ensemble de donneacutees
On appelle parfois base de donneacutees tout ensemble de donneacutees stockeacute numeacuteriquement et pouvant servir agrave un
ou plusieurs programme De ce point de vue des fichiers sur un disque dur un fichier de tableur voire un
fichier de traitement de texte peuvent constituer des bases de donneacutees
Deacutefinition Deacutefinition restreinte de base de donneacutees un ensemble de donneacutees
structureacute
On appellera base de donneacutees un ensemble de donneacutees numeacuteriques qui possegravede une structure cest agrave dire
dont lorganisation reacutepond agrave une logique systeacutematique
On parlera de modegravele logique de donneacutees pour deacutecrire cette structure
Exemtple Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tableaux (appeleacutes relations)
espegravece eucaryote multicellulaire proprieacuteteacute
bacteacuteries false false
archeacutees false false
protistes true false
champignons true true deacutecompose
veacutegeacutetaux true true photosyntheacutetise
animaux true true ingegravere
Tableau 1 Base de donneacutees de classification classique des espegraveces animales
Fondamental Fonctions dune base de donneacutees
wwwsambaconsultantscom 6
Une base de donneacutees est structureacutee afin de pouvoir mieux reacutepondre agrave des fonctions
fondamentales en informatique telles que
Stocker linformation de faccedilon fiable (cest agrave dire ecirctre capable de restituer linformation
entreacutee dans le systegraveme)
Traiter de grands volumes de donneacutees (massification)
Traiter rapidement les donneacutees (optimisation)
Seacutecuriser les accegraves aux donneacutees (geacuterer les autorisations selon les utilisateurs)
Controcircler la qualiteacute des donneacutees (par exemple la coheacuterence par rapport agrave un modegravele preacute-
eacutetabli)
Partager les donneacutees (entre plusieurs applications deacutedieacutees agrave plusieurs meacutetiers)
Rendre accessible les donneacutees en reacuteseau (geacuterer la concurrence des accegraves parallegraveles)
b) Systegraveme de gestion de bases de donneacutees (SGBD)
Deacutefinition Systegraveme de Gestion de Bases de Donneacutees
Un SGBD est un logiciel qui prend en charge la structuration le stockage la mise agrave jour et la maintenance
dune base de donneacutees Il est lunique interface entre les informaticiens et les donneacutees (deacutefinition des scheacutemas
programmation des applications) ainsi quentre les utilisateurs et les donneacutees (consultation et mise agrave jour)
Introduction geacuteneacuterale aux bases de donneacutees
7
Exemtple Exemtples de SGBD
Oracle est un SGBD relationnel et relationnel-objet tregraves utiliseacute pour les applications professionnelles
PostgreSQL est un SGBD relationnel puissant qui offre une alternative libre (licence BSD) aux solutions
commerciales comme Oracle ou IBM
Access est un SGBD relationnel Microsoft qui offre une interface graphique permettant de concevoir
rapidement des applications de petite envergure ou de reacutealiser des prototypes
MongoDb est un SGBD non-relationnel libre (licence Apache) orienteacute document Il permet de geacuterer
facilement de tregraves grandes quantiteacutes de donneacutees - dans un format arborescent JSON - reacuteparties sur
de nombreux ordinateurs
Comtpleacutement SGBD relationnel et non-relationnel
Les SGBR relationnels (SGBDR) sont les plus courants des SGBD jusquau deacutebut des anneacutees 2000 la plupart
des bases de donneacutees eacutetaient relationnelles
Mais avec larriveacutee des geacuteants du web ces entreprises qui gegraverent des quantiteacutes eacutenormes de donneacutees comme
Google Amazon ou Facebook sest deacuteveloppeacute un mouvement important de deacuteveloppement de bases de
donneacutees nonrelationnelles eacutegalement appeleacutees NoSQL
c) Application de base de donneacutees Une base de donneacutees seule nest pas directement utilisable par un utilisateur humain elle nest utilisable que
par les informaticiens qui connaissent son langage de programmation et par les applications qui ont eacuteteacute
programmeacutees pour sen servir
Deacutefinition
On appelle application de base de donneacutees un logiciel informatique permettant agrave un utilisateur final de
manipuler (lire ou eacutecrire) les donneacutees dune base de donneacutees
Exemtple Atptplication web
Une application web est composeacutee dinterfaces en HTML qui permettent deacutecrire et de lire des donneacutees dans
une base de donneacutees via un langage applicatif comme par exemple PHP
Exemtple Twiter
Lapplication Twitter est composeacutee dinterfaces web
permettant dentrer des donneacutees (saisir son profil twitter
retwitter ) et de sortir des donneacutees (consulter un fil
twitter faire une recherche sur un hashtag) dune base
de donneacutees (Twitter utilise une base de donneacutees NoSQL
Apache Cassandra)
Cette base de donneacutees est stockeacutee sur les serveurs de
Twitter et elle contient tous les profils de tous les
utilisateurs tous les tweets tous les hashtags
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 8
Exemtple Comtpagnie aeacuterienne Une base de donneacutees de gestion de lactiviteacute dune compagnie aeacuterienne concerne les voyageurs les vols les
avions le personnel les reacuteservations
Une application agrave partir dune telle base de donneacutees pourra permettre la gestion des reacuteservations des
disponibiliteacutes des avions en fonction des vols agrave effectuer des affectations des personnels volants
Exemtple Atptplication de bureau Access
Avec un logiciel comme Access on peut reacutealiser agrave la fois une base de donneacutees et une application permettant
de manipuler cette base de donneacutees pour des besoins bureautiques simples
d) Donneacutee (en relationnel) table objet proprieacuteteacute domaine
atomiciteacute
Ratptpel Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tables (appeleacutes relations)
Chaque case de la table contient une information atomique
Deacutefinition Objet (ligne)
Chaque ligne de la table correspond agrave un objet que lon veut geacuterer dans la base de donneacutees une voiture une
personne une espegravece
Fondamental
Toutes les lignes dune mecircme table correspondent agrave des objets du mecircme type donc dans une
table on met soit des voitures soit des personnes mais on ne meacutelange pas les deux
Deacutefinition Protprieacuteteacute et domaine (colonne)
Chaque colonne de la table correspond agrave une proprieacuteteacute des objets qui se trouvent dans la table tous les
objets de la table partagent donc les mecircmes proprieacuteteacutes
Fondamental Domaine
Chaque colonne de la table est associeacutee agrave un domaine de valeur fixeacute a priori par exemple entier
texte booleacuteen
Deacutefinition Donneacutee en relationnel (cellule)
Une donneacutee en relationnel cest une cellule dune table qui correspond agrave la proprieacuteteacute dun objet
proprieacuteteacute 1 domaine
d1 proprieacuteteacute 2 domaine
d2
objet1 donneacutee 1 objet1 donneacutee 2
Introduction geacuteneacuterale aux bases de donneacutees
9
objet2 donneacutee 1 objet2 donneacutee 2
Tableau 2 Une table ou relation ( en relationnel)
Exemtple
espegravece domaine
texte eucaryote domaine
booleacuteen
bacteacuteries false
archeacutees false
Tableau 3 Exemple de relation instancieacutee
Atention Atomiciteacute
Pour que la base de donneacutees fonctionne correctement on veille agrave ne mettre quune seule donneacutee
par case cest le principe datomiciteacute en relationnel
espegravece domaine texte
bacteacuteries procaryotes unicellulaires
archeacutees procaryotes unicellulaires
protistes eucaryotes unicellulaires
champignons eucaryotes multicellulaires qui deacutecomposent
veacutegeacutetaux eucaryotes multicellulaires qui photosyntheacutetisent
animaux eucaryotes multicellulaires qui ingegraverent
Tableau 4 Un mauvais exemple de relation les donneacutees ne sont pas atomiques (il y a
plusieurs donneacutees par case de la table)
e) Langage de donneacutees lexemple du langage SQL
Deacutefinition Langage de donneacutees
Un langage de donneacutees est un langage informatique permettant de deacutecrire et de manipuler les scheacutemas et les
donneacutees dune BD
Synonymes Langage orienteacute donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 10
Fondamental SQL
SQL est le langage consacreacute aux SGBD relationnels et relationnels-objet
Il permet de
creacuteer des tables en deacutefinissant le domaine de chaque colonne
inseacuterer des lignes dans les tables
lire les donneacutees entreacutees dans la base de donneacutees
Exemtple Creacuteation de table en SQL (deacutefinition du scheacutema de donneacutees)
CREATE TABLE Etudiant ( NumEtu
integer PRIMARY KEY Nom varchar Ville varchar)
1 2 3 4
Cette instruction permet de creacuteer une relation Etudiant comportant les proprieacuteteacutes NumEtu Nom et Ville
de domaines respectivement entier texte et texte
Exemtple Insertion de ligne en SQL (creacuteation de donneacutees)
INSERT INTO Etudiant (NumEtu Nom Ville) VALUES (1 Holmes Londres) 1
Cette instruction permet de creacuteer leacutetudiant numeacutero 1 de nom Holmes qui habite la ville de Londres
Exemtple Manitpulation de donneacutees en SQL (extploitation des donneacutees)
SELECT Nom FROM Etudiant WHERE Ville = Compiegravegne
1 2 3
Cette instruction permet de rechercher les noms de tous les eacutetudiants habitant la ville de Compiegravegne
Comtpleacutement Autres langages de donneacutees
XQuery est un langage de donneacutees mobiliseacute dans les bases de donneacutees arborescentes XML
Les bases NoSQL proposent des langages de donneacutees speacutecifiques souvent inspireacutes du
SQL Par exemple le langage de MongoDB permet de manipuler une base de contenus JSON
2 Approche geacuteneacuterale pour la conception des bases de
donneacutees
a) Exercice Eacutetapes de la conception dune base de donneacutees
relationnelle Mettre dans lordre les eacutetapes de conception suivantes
1 Creacuteation du code SQL pour un SGBDR
2 Modeacutelisation conceptuelle en UML ou E-A
Introduction geacuteneacuterale aux bases de donneacutees
11
3 Eacutelaboration du modegravele logique en relationnel
4 Analyse de la situation existante et des besoins
Reacuteponse ___ ___ ___ ___
b) Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
Meacutethode Eacutetatpes de la concetption dune base de donneacutees
1 Analyse de la situation existante et des besoins (clarification) 2 Creacuteation dun modegravele conceptuel qui permet de repreacutesenter tous les aspects importants du problegraveme 3 Traduction du modegravele conceptuel en modegravele logique (et normalisation de ce modegravele logique) 4 Impleacutementation dune base de donneacutees dans un SGBD agrave partir du modegravele logique (et optimisation)
Graphique 1 Processus de conception dune base de donneacutees
On distingue quatre eacutetapes dans la conception dune base de donneacutees
Lanalyse
Elle consiste agrave eacutetudier le problegraveme et agrave consigner dans un document la note de clarification les
besoins les choix les contraintes
La modeacutelisation conceptuelle
Elle permet de deacutecrire le problegraveme poseacute de faccedilon non-formelle (en geacuteneacuterale graphique) en prenant
des hypothegraveses de simplification Ce nest pas une description du reacuteel mais une repreacutesentation
simplifieacutee dune reacutealiteacute
La modeacutelisation logique
Ele permet de deacutecrire une solution en prenant une orientation informatique geacuteneacuterale (type de SGBD
typiquement) formelle mais indeacutependamment de choix dimpleacutementation speacutecifiques
Limpleacutementation
Elle correspond aux choix techniques en terme de SGBD choisi et agrave leur mise en œuvre
(programmation optimisation)
Fondamental
Bien analyser le problegraveme poseacute en amont
BD solution proposeacutee
Domaine problegraveme poseacute
Modegravele Conceptuel
Modegravele Logique
Repreacutesenter
Impleacutementer
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 12
Bien modeacuteliser le problegraveme au niveau conceptuel avant de passer au niveau logique et agrave
limpleacutementation
Conseil Limtportance de leacutetatpe danalyse
La premiegravere eacutetape de la conception repose sur lanalyse de lexistant et des besoins De la qualiteacute de la
reacutealisation de cette premiegravere eacutetape deacutependra ensuite la pertinence de la base de donneacutees par rapports aux
usages Cette premiegravere eacutetape est donc essentielle et doit ecirctre meneacutee avec soins
Si la premiegravere eacutetape est fondamentale dans le processus de conception elle est aussi la plus deacutelicate En effet
tandis que des formalismes puissants existent pour la modeacutelisation conceptuelle puis pour la modeacutelisation
logique la perception de lexistant et des besoins reste une eacutetape qui repose essentiellement sur lexpertise
danalyse de lingeacutenieur
Conseil Limtportance de leacutetatpe de modeacutelisation concetptuelle
Eacutetant donneacutee une analyse des besoins correctement reacutealiseacutee la seconde eacutetape consiste agrave la traduire selon un
modegravele conceptuel Le modegravele conceptuel eacutetant formel il va permettre de passer dune speacutecification en
langage naturel et donc soumise agrave interpreacutetation agrave une speacutecification non ambiguumle Le recours aux
formalismes de modeacutelisation tels que E-A ou UML est donc une aide fondamentale pour parvenir agrave une
repreacutesentation qui ne sera plus lieacutee agrave linterpreacutetation du lecteur
La traduction dun cahier des charges speacutecifiant lexistant et les besoins en modegravele conceptuel reste neacuteanmoins
une eacutetape deacutelicate qui va conditionner ensuite lensemble de limpleacutementation informatique En effet les eacutetape
suivantes sont plus meacutecaniques dans la mesure ougrave un modegravele logique est deacuteduit de faccedilon systeacutematique du
modegravele conceptuel et que limpleacutementation logicielle est eacutegalement reacutealiseacutee par traduction directe du modegravele
logique
RemarqueLes eacutetatpes de traduction logique et dimtpleacutementation
Des logiciels speacutecialiseacutes (par exemple Objecteering [w_objecteering]) sont capables agrave partir dun modegravele
conceptuel dappliquer des algorithmes de traduction qui permettent dobtenir directement le modegravele logique
puis les instructions pour la creacuteation de la base de donneacutees dans un langage orienteacute donneacutees tel que SQL
Lexistence de tels algorithmes de traduction montre que les eacutetapes de traduction logique et dimpleacutementation
sont moins complexes que les preacuteceacutedentes car plus systeacutematiques
Neacuteanmoins ces eacutetapes exigent tout de mecircme des compeacutetences techniques pour optimiser les modegraveles logiques
(normalisation) puis les impleacutementations en fonction dun contexte de mise en œuvre mateacuteriel logiciel et
humain
c) Qatre eacutetapes pour reacuteduire la complexiteacute La reacutealisation dune base de donneacutees est une tacircche complexe le deacutecoupage en quatre eacutetapes permet de geacuterer
cette complexiteacute
Clarification ModeacutelisationConceptuelle ModeacutelisationLogique Im pleacutem entation
Conception en quatre eacutetapes
Introduction geacuteneacuterale aux bases de donneacutees
13
Lideacutee geacuteneacuterale est de ne pas meacutelanger la nature des tacircches typiquement on ne veut pas en mecircme temps
se poser des questions geacuteneacuterales relatives aux besoins (ce que je veux faire) et des questions techniques tregraves
speacutecifiques (comment repreacutesenter telle information)
Meacutethode
Lapproche est donc
de regarder agrave gauche on regarde le monde quand on clarifie on regarde la note de clarification
quand on fait le MCD on regarde le MCD quand on fait le MLD on regarde le MLD quand on
impleacutemente
et de ne pas regarder trop loin on anticipe deacutejagrave le MCD pendant la clarification mais on ne se
preacuteoccupe pas de questions dimpleacutementation quand on fait le MLD on ne se pose plus de question
sur le monde la clarification et le MCD ont ducirc deacutejagrave reacutepondre quand on impleacutemente on ne se pose
plus de question de modeacutelisation on soccupe des programmes de la machine
Fondamental
On peut toujours revenir sur une eacutetape la conception est iteacuterative mais on ne doit pas tout le
temps se poser tous les problegravemes en mecircme temps
d) Eacuteleacutements pour lanalyse de lexistant et des besoins La phase danalyse de lexistant et des besoins est une phase essentielle et complexe Elle doit aboutir agrave des
speacutecifications geacuteneacuterales qui deacutecrivent en langage naturel les donneacutees manipuleacutees et les traitements agrave
effectuer sur ces donneacutees
On se propose de donner une liste non exhaustive dactions agrave mener pour reacutediger de telles speacutecifications
Meacutethode Lanalyse de documents existants
La conception dune base de donneacutees sinscrit geacuteneacuteralement au sein dusages existants Ces usages sont
geacuteneacuteralement au moins en partie instrumenteacutes agrave travers des documents eacutelectroniques ou non (papier
typiquement) Il est fondamental danalyser ces documents et de recenser les donneacutees quils manipulent
Exemtple Exemtples de document existants agrave analyser
Fichiers papiers de stockage des donneacutees (personnel produits etc)
Formulaires papiers denregistrement des donneacutees (fiche didentification dun salarieacute fiche de
description dun produit bon de commande etc)
Documents eacutelectroniques de type traitement de texte (lettres mailing proceacutedures etc)
Documents eacutelectroniques de type tableurs (bilans statistiques calculs etc)
Bases de donneacutees existantes agrave remplacer ou avec lesquelles saccorder (gestion des salaires de la
production etc)
Intranet dentreprise (information teacuteleacutechargement de documents etc)
etc
Meacutethode Le recueil dextpertise meacutetier
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 14
Les donneacutees que la base va devoir manipuler sont toujours relatives aux meacutetiers de lentreprise et il existe
des experts qui pratiquent ces meacutetiers Le dialogue avec ces experts est une source importante dinformations
Il permet eacutegalement de fixer la terminologie du domaine
Exemtple Exemtples dextperts agrave consulter
Praticiens (secreacutetaires ouvrier controcircleurs etc)
Cadres (responsables de service contre-maicirctres etc)
Experts externes (clients fournisseurs etc)
etc
Meacutethode Le dialogue avec les usagers
La base de donneacutees concerne des utilisateurs cibles cest agrave dire ceux qui produiront et consommeront
effectivement les donneacutees de la base Il est neacutecessaire de dialoguer avec ces utilisateurs qui sont les
deacutetenteurs des connaissances relatives aux besoins reacuteels lieacutes agrave leur reacutealiteacute actuelle (aspects de lorganisation
fonctionnant correctement ou deacutefaillants) et agrave la reacutealiteacute souhaiteacutee (eacutevolutions lacunes etc)
Exemtple Exemtples dutilisateurs avec qui dialoguer
Personnes qui vont effectuer les saisies dinformation (agrave partir de quelles sources Quelle est leur
responsabiliteacute etc)
Personnes qui vont consulter les informations saisies (pour quel usage pour quel destinataire etc)
Personnes qui vont mettre agrave jour les informations (pour quelles raisons comment le processus est
enclencheacute etc)
etc
Meacutethode Leacutetude des autres systegravemes informatiques existants
la base de donneacutees va geacuteneacuteralement (et en fait quasi systeacutematiquement aujourdhui) sinseacuterer parmi un
ensemble dautres logiciels informatiques travaillant sur les donneacutees de lentreprise Il est important danalyser
ces systegravemes afin de mieux comprendre les meacutecanismes existants leurs forces et leurs lacunes et de preacuteparer
linteacutegration de la base avec ces autres systegravemes Une partie de ces systegravemes seront dailleurs souvent
eacutegalement des utilisateurs de la base de donneacutees tandis que la base de donneacutees sera elle mecircme utilisatrice
dautre systegravemes
Exemtple Exemtples dautres systegravemes coexistants agrave eacutetudier
Autres bases de donneacutees (les donneacutees sont elle disjointes ou partiellement communes avec celles de la
base agrave concevoir quelles sont les technologies logicielles sur lesquelles reposent ces BD etc)
Systegravemes de fichiers classiques (certains fichiers ont-ils vocations agrave ecirctre supplanteacutes par la base agrave ecirctre
geacuteneacutereacutes par la base agrave alimenter la base etc)
Applications (ces applications ont elles besoins de donneacutees de la base peuvent-elles lui en fournir
etc)
etc
Comtpleacutement Meacutethodes danalyse
Il existe des outils et meacutethodes danalyse en ingeacutenierie comme lanalyse fonctionnelle (AF) qui deacutepassent le
cadre de la conception des bases de donneacutees mais sont tout agrave fait compleacutementaires
Introduction geacuteneacuterale aux bases de donneacutees
15
e) Modeacutelisation conceptuelle de donneacutees Lobjection du modegravele conceptuel est de repreacutesenter le problegraveme agrave laide de repreacutesentations graphiques et
partiellement formelles
Les principales caracteacuteristiques du modegravele conceptuel sont
Une repreacutesentation graphique simple
Une puissance dexpression eacuteleveacutee pour un nombre de symboles raisonnables
Une lecture accessible agrave tous et donc un bon outil de dialogue entre les acteurs techniques et non
techniques
Une formalisation peu ambigueuml et donc un bon outil de speacutecification deacutetailleacutee
Remarque
Le modegravele nest pas encore formel donc certaines repreacutesentations peuvent ecirctre eacutequivoques mecircme si on a
leveacute de tregraves nombreuses ambiguiumlteacutes
E-A
La modeacutelisation conceptuelle en bases de donneacutees relationnelle eacutetait agrave lorigine faite avec le formalisme E-A
de la meacutethode MERISE
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 16
Modegravele E-A gestion de projets
UML
UML est un autre langage de modeacutelisation plus reacutecent que E-A et couvrant un spectre plus large que les
bases de donneacutees En tant que standard de lOMG et en tant que outil tregraves utiliseacute pour la programmation
orienteacutee objet il a supplanteacute la modeacutelisation E-A
Remarque
En BD on utilise uniquement le diagramme de classe dUML pour modeacuteliser conceptuellement les donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 17
Modegravele UML gestion de projets
f) Modeacutelisation logique de donneacutees
Deacutefinition Modegravele logique de donneacutees
Un modegravele logique de donneacutees est une description au moyen dun langage formel dun ensemble de donneacutees
Un scheacutema permet de deacutecrire la structure dune base de donneacutees en deacutecrivant lensemble des types de
donneacutees de la base Une instance de base de donneacutees est constitueacutee dun ensemble de donneacutees qui respectent
le scheacutema de la base
Synonyme scheacutema de donneacutees scheacutema
Exemtple Modegravele logique de donneacutees relationnel
Un modegravele logique de donneacutees relationnel permet de repreacutesenter une base de donneacutees relationnelles cest agrave
dire des tables des proprieacuteteacutes des domaines
Exemtple Scheacutema dune relation
Espece(nomchaicircne eucaryotebooleacuteen multicellulairebooleacuteen proprieacuteteacutechaicircne) 1
Exemtple Scheacutema dune base de donneacutees avec tplusieurs relations
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 18
Etudiant (numentier nomchaicircne villechaicircne) Module(numentier titrechaicircne) Inscription(numetuentier nummodentier anneacuteeentier(4))
1 2 3
Instance de base de donneacutees
Etudiant Module
172 Dupont Lille
173 Durand Paris
174 Martin Isabelle
1 SGBD
2 OS
Inscription 172 1 2016 172 2 2016 173 1 2015 174 2 2017
Comtpleacutement Exemtple de formalismes de modeacutelisation logique
Le modegravele CODASYL anteacuterieur au modegravele relationnel est un modegravele hieacuterarchique (Tardieu 1983
[Tardieu83])
Le modegravele relationnel (tabulaire) est le modegravele dominant agrave la base des SGBDR
Le modegravele relationnel-objet (adaptation des modegraveles relationnels et objets au cadre des SGBD) est
actuellement en croissance
Dautres modegraveles (document graphe ) se deacuteveloppent dans le cadre du mouvement NoSQL
Comtpleacutement Voir aussi
Bregraveve introduction aux bases de donneacutees NoSQL - p98
g) Synthegravese Les trois niveaux de conception Niveau Conceptuel
Modegravele conceptuel graphique -
Exemples E-A
UML
Niveau Logique
Scheacutema logique indeacutependant dun SGBD -
Exemples Relationnel
Objet
Relationnel-Objet
Graphe
Document
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 19
Niveau Informatique
Impleacutementation pour un SGBD particulier -
Exemples Oracle
MySQL
PostgreSQL
DB2
Access
SQLServer
MongoDB
Cassandra
Modeacutelisation Modeacutelisation Im pleacutem entation Clarification Conceptuelle
Logique
AF UML Relationnel SQL Conception en quatre eacutetapes exemple de
formalismes
B Exercices
1 Deacutecouverte dune base de donneacutees relationnelle
Cette seacuterie dexercices est destineacutee agrave faire expeacuterimenter un SGBDR afin de se familiariser avec les concepts
classiques des bases de donneacutees relationnelles
Pour la reacutealisation de cet exercice se connecter sur le site dbdiscocrztfr et conserver la fenecirctre du navigateur
ouverte
Db Discodbdiscocrztfr
Objectifs
Deacutecouvrir le modegravele relationnel Deacutecouvrir un SGBDR Deacutecouvrir le langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 20
a) Notion de table
Creacuteer sa premiegravere table Une base de donneacutees relationnelle est principalement constitueacutee de tables (ou laquo relations raquo dougrave le nom
de relationnel) Une table est basiquement un eacuteleacutement dorganisation de linformation constitueacute de colonnes
(ou attributs) et de lignes (ou enregistrements)
Nous allons dans un premier temps creacuteer le scheacutema dune table cest agrave dire deacutefinir ses colonnes Pour cela
nous utiliserons linstruction SQL LDD laquo CREATE raquo
Question 1
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
CREATE TABLE tEtu ( pk_numSecu CHAR(13) PRIMARY KEY k_numEtu
VARCHAR(20) UNIQUE NOT NULL nom
VARCHAR(50) prenom VARCHAR(50))
1 2 3 4 5
Introduction geacuteneacuterale aux bases de donneacutees
21
Alimenter la table Une fois les colonnes de la table deacutefinies nous pouvons en deacuteclarer les lignes Nous utilisons pour cela
linstruction SQL LMD laquo INSERT raquo
Question 2
Exeacutecuter les deux instructions suivantes et deacutecrire ce quelles font
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 AB3937098X Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2820475001124 XGB67668 Durand Anne)
1 2 3 4
Interroger la table Une fois une table creacuteeacutee il est possible agrave tout moment den inspecter le contenu Nous utilisons pour cela
linstruction SQL LMD laquo SELECT raquo
Question 3
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT pk_numSecu k_numEtu nom prenom FROM tEtu
1 2
Question 4
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT nom prenom FROM tEtu WHERE pk_numSecu=2820475001124
1 2 3
b) Notion de contraintes
Contrainte de domaine Lorsque lon deacutefinit une table on deacutefinit eacutegalement des contraintes sur cette table qui serviront agrave controcircler
son inteacutegriteacute par rapport agrave des regravegles que lon aura fixeacutees
Cest notamment le cas des contraintes de domaine qui permettent de veacuterifier quune colonne prend ses
valeurs parmi un ensemble deacutetermineacute (les chaicircnes de 10 caractegraveres au plus les entier de 1 agrave 1000 etc)
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi le systegraveme renvoie une erreur
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (XXXXXXXXXXXXXXX XXXXXX Dupont Pierre)
1 2
Question 2
Donner un exemple de contrainte qui nest pas formuleacutee dans la deacutefinition de la table tEtu et que lon aurait
pu souhaiter
Indice
Pour indiquer quun eacuteleacutement est obligatoire on ajoute la clause NOT NULL apregraves la deacutefinition de son domaine dans linstruction CREATE TABLE
Introduction geacuteneacuterale aux bases de donneacutees
22
Contraintes de cleacute Les contraintes de cleacute se composent de contraintes duniciteacute et de contraintes de non nulliteacute Elles
permettent dassurer que toutes les valeurs dune colonne seront diffeacuterentes pour chaque ligne
Question 3
Exeacutecuter les trois instructions suivantes (les unes apregraves les autres) et expliquer ce qui se passe
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 HGYT67655Y Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 XGB67668 Durand Anne) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 HGYT67655Y Duchemin Aline)
1 2 3 4 5 6
Question 4
Explorer le contenu de votre table en exeacutecutant linstruction suivante et veacuterifier vos explications preacuteceacutedentes
SELECT FROM tEtu
1 2
Question 5
Pourrait-on inseacuterer dans la table une seconde personne qui aurait le preacutenom Aline et le nom Duchemin
Pourquoi
c) Notion de reacutefeacuterences
Cleacute eacutetrangegravere Une base de donneacutees est en geacuteneacuteral constitueacutee de plusieurs tables Ces tables se reacutefeacuterencent entre elles en
utilisant une cleacute eacutetrangegravere cest agrave dire quune des colonnes de la table est utiliseacutee pour faire reacutefeacuterence agrave la
colonne dune autre table
On va agrave preacutesent creacuteer une seconde table qui permettra dassocier des Uniteacutes de Valeurs (UVs) aux eacutetudiants
puis inseacuterer des valeurs dans cette table
CREATE TABLE tUv ( pk_code
CHAR(4) NOT NULL fk_etu
CHAR(13) NOT NULL PRIMARY KEY (pk_code fk_etu) FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu))
1 2 3 4 5
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF26 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF29 1800675001066)
1 2 3 4 5 6
Question 1
Introduction geacuteneacuterale aux bases de donneacutees
23
Expliciter ce quexprime le contenu de la table tUv
Contraintes dinteacutegriteacute reacutefeacuterentielle Lorsque nous avons deacutefini la table tUv nous avons deacutefini une contrainte suppleacutementaire dite dinteacutegriteacute
reacutefeacuterentielle contrainte de type FOREIGN KEY
Question 2
En exeacutecutant les instructions suivantes expliquer quel est le rocircle dune contrainte dinteacutegriteacute reacutefeacuterentielle
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 2810592012232) INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1700792001278)
1 2 3 4
d) Projection restriction et jointure Linstruction SELECT du langage SQL LMD nous donne de larges possibiliteacutes pour interroger les tables dune
base de donneacutees Cette instruction se fonde notamment sur les opeacuterations matheacutematiques de lalgegravebre
relationnelle dont les principales sont la projection la restriction le produit et la jointure
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi cest une projection
SELECT nom prenom FROM tEtu
1 2
Question 2
Exeacutecuter linstruction suivante et expliquer pourquoi cest une restriction
SELECT FROM tEtu WHERE nom=Dupont
1 2 3
Question 3
Exeacutecuter linstruction suivante et expliquer pourquoi cest un produit (carteacutesien)
SELECT FROM tEtutUv
1 2
Question 4
Exeacutecuter linstruction suivante et expliquer pourquoi cest une jointure
SELECT FROM tEtu JOIN tUv ON pk_numSecu=fk_etu
1 2
Question 5
Exeacutecuter linstruction suivante et montrer quune jointure est la composition dun produit et dune restriction
SELECT FROM tEtutUv WHERE pk_numSecu=fk_etu
1 2 3
Introduction geacuteneacuterale aux bases de donneacutees
24
e) Fonctions et agreacutegats Linstruction SELECT permet eacutegalement deffectuer des calculs qui portent sur plusieurs lignes ce que lon
appelle des agreacutegats
Question 1
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT COUNT(pk_code) FROM tUv
1 2
WHERE fk_etu=1800675001066 3
Question 2
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT fk_etu COUNT(pk_code) FROM tUv GROUP BY fk_etu
1 2 3
Question 3
Compleacuteter la requecircte SQL suivante afin quelle renvoie pour chaque UV le nombre deacutetudiants inscrits
SELECT _______ COUNT(______) FROM tUv GROUP BY _______
1 2 3
Agrave lissue de cette seacuterie dexercices vous devez savoir deacutefinir les termes suivants
table ou relation
scheacutema relationnel
domaine
cleacute
cleacute eacutetrangegravere
opeacuterations de projection restriction jointure produit
Introduction geacuteneacuterale aux bases de donneacutees
25
2 Lab 0
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux meacutedicaments
avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi quune description
longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le nombre de pilules par boicircte
(qui est un nombre entier)
Ce problegraveme est un exemple tregraves simple que lon pourra modeacuteliser avec une base de donneacutees relationnelle agrave
une seule table
Vous pouvez tester vos instructions SQL ici Db Discodbdiscocrztfr
Question 1
Proposer une clarification du problegraveme (par exemple sous la forme dune liste des proprieacuteteacutes de la relation
viseacutee)
Question 2
Proposer un exemple de donneacutees
Question 3
Dessiner un modegravele conceptuel de donneacutees en UML Il ne contient quune seule classe
Indice Modeacutelisation conceptuelle de donneacutees
Question 4
Proposer un modegravele logique de donneacutees sous forme de scheacutema relationnel Il ne contient quune seule relation
Indice Modeacutelisation logique de donneacutees
Question 5
Proposer une impleacutementation en SQL standard de votre modegravele relationnel Il ne contient quune seule
instruction CREATE TABLE
Indice Langage de donneacutees lexemple du langage SQL
Question 6
Eacutecrivez les instructions SQL permettant dinseacuterer vos donneacutees de test dans votre base de donneacutees
Indice Langage de donneacutees lexemple du langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
26
27
II - Introduction agrave la
modeacutelisation
conceptuelle de donneacutees avec
UML
A Cours
La modeacutelisation conceptuelle est leacutetape fondatrice du processus de conception de BD Elle consiste agrave
abstraire le problegraveme reacuteel poseacute pour en faire une reformulation qui trouvera une solution dans le cadre
technologique dun
SGBD
Si le modegravele dominant en conception de bases de donneacutees a longtemps eacuteteacute le modegravele E-A le modegravele UML
se geacuteneacuteralise de plus en plus Nous proposons ici une introduction au diagramme de classes agrave travers la
repreacutesentation de classes et dassociations simples (il existe dautres diagrammes UML par exemple le
diagramme de cas et dautres primitives de repreacutesentation dans le diagramme de classe par exemple
lheacuteritage)
II
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
28
1 Notion de modegravele
a) Exercice Centre meacutedical [5 min]
Soit le modegravele conceptuel suivant repreacutesentant des visites dans un centre meacutedical Quelles sont les assertions vraies selon ce scheacutema
Image 1
Un patient peut effectuer plusieurs visites
Tous les patients ont effectueacute au moins une consultation
Un meacutedecin peut recevoir plusieurs patients pendant la mecircme consultation
Un meacutedecin peut prescrire plusieurs meacutedicaments lors dune mecircme consultation
Deux meacutedecins diffeacuterents peuvent prescrire le mecircme meacutedicament
b) Qest ce quun modegravele
Deacutefinition Modegravele
laquo Modeling in the broadest sense is the cost-effective use of something in place of something else for some
cognitive purpose It allows us to use something that is simpler safer or cheaper than reality instead of reality
for some purpose A model represents reality for the given purpose the model is an abstraction of reality in
the sense that it cannot represent all aspects of reality raquo (Rothenberg 1989 [Rothenberg et al 1989] citeacute
par Arribe 2014 [Arribe 2014])
laquo Systegraveme physique matheacutematique ou logique repreacutesentant les structures essentielles dune reacutealiteacute et capable
agrave son niveau den expliquer ou den reproduire dynamiquement le fonctionnement raquo (TLFi)
Fondamental Modegravele
Un modegravele est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser quelque chose
Objectifs
Savoir ce quest un modegravele
Savoir ce quest le langage UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
29
c) Qest ce quun modegravele en informatique
Deacutefinition Modegravele informatique
Un modegravele informatique est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser un traitement avec
un ordinateur
Comtpleacutement Numeacuterisation et abstraction Toute information numeacuterique a
eacuteteacute codeacutee selon un modegravele donneacute
laquo Tout numeacuterisation est une repreacutesentation de la reacutealiteacute sous la forme dune modeacutelisation numeacuterique Cette
modeacutelisation procegravede dune abstraction au sens ougrave cest une seacuteparation davec le reacuteel au sens ougrave cest une
construction destineacutee agrave la manipulation (algorithmique en loccurrence) et au sens ougrave cest une simplification
de la reacutealiteacute raquo
httpaswemayfrcotropism-preshtml1
d) Qest ce quun bon modegravele
Atention
Un modegravele est une abstraction une simplification de la reacutealiteacute ce nest pas la reacutealiteacute il nest
jamais complegravetement fidegravele par construction
Le seul modegravele complegravetement fidegravele agrave la reacutealiteacute est la reacutealiteacute elle-mecircme et ce nest donc pas un
modegravele
Exemtple La carte et le territoire
Une carte est un modegravele dun territoire Elle est une repreacutesentation simplifieacutee destineacute agrave un usage particulier
randonner agrave pied en veacutelo
se diriger en voiture sur des grands axes sur des axes secondaires
voler en avion de tourisme en avion de ligne
naviguer sur fleuve sur mer
eacutetudier les frontiegraveres dune reacutegion dun pays de la terre
eacutetudier la deacutemographie leacuteconomie
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
30
Fondamental
Agrave partir de cet exemple on notera que 1 Un modegravele est orienteacute par un usage
Chacune de ces cartes est tregraves diffeacuterente selon ce que lon veut faire 2 Un modegravele ne cherche pas agrave ecirctre proche de la reacutealiteacute
Chacune de ces cartes est tregraves diffeacuterente de la reacutealiteacute quelle repreacutesente 3 Un modegravele adresse un niveau dinformation qui existe mais qui nest pas accessible dans
la reacutealiteacute Chacune de ces cartes permet quelque chose que ne permet pas laccegraves direct agrave la reacutealiteacute
ndash wwwsambaconsultantscom
Meacutethode Le rasoir dOckham Entre deux modegraveles donneacutes le meilleur modegravele est-il
toujours le tplus fourni
La meacutethode de raisonnement connue sous le nom de rasoir dOckham (du nom du philosophe eacuteponyme)
consiste agrave preacutefeacuterer les solutions les plus simples aux plus complexes lorsquelles semblent permettre
eacutegalement de reacutesoudre un problegraveme donneacute entre deux theacuteories eacutequivalentes toujours preacutefeacuterer la plus simple
Ce principe sapplique tregraves bien agrave la modeacutelisation eacutetant donneacute un objectif et plusieurs modegraveles possibles il
ne faut pas choisir a priori celui qui repreacutesente le plus de choses mais preacutefeacuterer le plus simple degraves quil couvre
le besoin
Cest un principe deacuteconomie (il coucircte moins cher agrave produire) et defficaciteacute (car les eacuteleacutements inutiles du modegravele
plus fourni nuiront agrave lefficaciteacute de la tacircche)
Exemtple
Ainsi pour naviguer en voiture il est plus simple de ne pas avoir sur la carte les chemins de randonneacutees qui
ne sont pas praticables en voiture
2 Introduction au diagramme de classes UML classes et
associations
a) Lab I
Description du problegraveme [15 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
Objectifs
Savoir faire un modegravele conceptuel
Savoir interpreacuteter un modegravele conceptuel
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
31
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
b) Preacutesentation dUML UML est un langage de repreacutesentation destineacute en particulier agrave la modeacutelisation objet UML est devenu une
norme OMG en 1997
UML propose un formalisme qui impose de penser objet et permet de rester indeacutependant dun langage de
programmation donneacute Pour ce faire UML normalise les concepts de lobjet (eacutenumeacuteration et deacutefinition
exhaustive des concepts) ainsi que leur notation graphique Il peut donc ecirctre utiliseacute comme un moyen de
communication entre les eacutetapes de speacutecification conceptuelle et les eacutetapes de speacutecifications techniques
Fondamental Diagramme de classe
Le diagramme de classes est un sous ensemble dUML qui sattache agrave la description statique dun
modegravele de donneacutees repreacutesenteacutees par des classes dobjets
Remarque
Dans le domaine des bases de donneacutees UML peut ecirctre utiliseacute agrave la place du modegravele E-A pour modeacuteliser le
domaine De la mecircme faccedilon un scheacutema conceptuel UML peut alors ecirctre traduit en scheacutema logique (relationnel
ou relationnel-objet typiquement)
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
32
c) Classes
Deacutefinition Classe
Une classe est un type abstrait caracteacuteriseacute par des proprieacuteteacutes (attributs et meacutethodes) communes agrave un ensemble
dobjets et permettant de creacuteer des instances de ces objets ayant ces proprieacuteteacutes
Image 2 Repreacutesentation UML dune classe
Exemtple La classe Voiture
Lobjet V1 est une instance de la classe Voiture
V1 Voiture
Marque Citroeumln
Type ZX
Portes 5
Puissance 6
Kilomeacutetrage 300000
Comtpleacutement
La modeacutelisation sous forme de diagramme de classes est une modeacutelisation statique qui met en exergue la
structure dun modegravele mais ne rend pas compte de son eacutevolution temporelle UML propose dautres types de
diagrammes pour traiter notamment de ces aspects
d) Atributs
Deacutefinition Atribut
Un attribut est une information eacuteleacutementaire qui caracteacuterise une classe et dont la valeur deacutepend de lobjet
instancieacute
Syntaxe
Image 3 Exemple de classe repreacutesenteacutee en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
33
Un attribut est typeacute Le domaine des valeurs que peut prendre lattribut est fixeacute a priori
Un attribut peut ecirctre multivalueacute Il peut prendre plusieurs valeurs distinctes dans son domaine
Un attribut peut ecirctre deacuteriveacute Sa valeur alors est une fonction sur dautres attributs de la classe
Un attribut peut ecirctre composeacute (ou composite) Il joue alors le rocircle dun groupe dattributs (par
exemple une adresse peut ecirctre un attribut composeacute des attributs numeacutero type de voie nom de la
voie) Cette notion renvoie agrave la notion de variable de type Record dans les langages de programmation
classiques
Atention On utilise peu les atributs deacuteriveacutes et composeacutes en UML
En UML on preacutefegravere lusage de meacutethodes aux attributs deacuteriveacutes On utilisera toujours des
meacutethodes degraves que la valeur de lattribut deacuteriveacute deacutepend dautres attributs exteacuterieurs agrave sa
classe
En UML on preacutefegravere lusage de compositions aux attributs composeacutes On utilisera toujours
des compositions pour les attributs composeacutes et multivalueacutes
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
34
Syntaxe
attributtype attribut_multivalueacute[nbMinValeursnbMaxValeurs]type attribut_deacuteriveacutetype attribut_composeacute - sous-attribut1type - sous-attribut2type -
1 2 3 4 5 6 7
Image 4 Repreacutesentation dattributs en UML
Dans cet exemple les attributs Nom Preacutenom sont de type string lun de 20 caractegraveres et lautre de 10 tandis
que DateNaissance est de type date et Age de type integer Preacutenom est un attribut multivalueacute ici une personne
peut avoir de 1 agrave 3 preacutenoms Age est un attribut deacuteriveacute il est calculeacute par une fonction sur DateNaissance
Comtpleacutement Voir aussi
Meacutethodes
Composition - p99
e) Repeacuterage des cleacutes Un attribut ou un groupe dattributs peut ecirctre annoteacute comme eacutetant cleacute sil permet didentifier de faccedilon unique
un objet de la classe
On ajoute le symbole key agrave cocircteacute du ou des attributs concerneacutes
Cleacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
35
Cleacute composeacutee de deux attributs
Meacutethode
Le repeacuterage des cleacutes nest pas systeacutematique en UML (la deacutefinition des cleacutes se fera essentiellement au niveau
logique) On cherchera neacuteanmoins agrave repeacuterer les cleacutes rendues eacutevidentes par la phase de clarification
Atention
On najoutera jamais de cleacute artificielle au niveau du MCD Si aucune cleacute nest eacutevidente on laisse
la classe sans cleacute Atention Atribut souligneacute et
On trouvera dans ce cours des exemples dattributs souligneacutes ou preacuteceacutedeacutes de pour exprimer
luniciteacute Ce nest pas une pratique standard et la notation key devrait lui ecirctre substitueacutee
Un attribut souligneacute est normalement un attribut de classe ou static en UML Un
attribut preacuteceacutedeacute de est normalement un attribut proteacutegeacute en UML
Mais les concepts dattribut de classe et dattribut proteacutegeacute ne sont pas utiliseacutes dans le cadre des
bases de donneacutees
f) Meacutethodes
Deacutefinition Meacutethode
Une meacutethode (ou opeacuteration) est une fonction associeacutee agrave une classe dobjet qui permet dagir sur les objets de
la classe ou qui permet agrave ces objets de renvoyer des valeurs (calculeacutees en fonction de paramegravetres)
Syntaxe
methode(paramegravetres)type 1
Remarque Meacutethodes et modeacutelisation de BD
Pour la modeacutelisation des bases de donneacutees les meacutethodes sont surtout utiliseacutees pour repreacutesenter des donneacutees
calculeacutees (agrave linstar des attributs deacuteriveacutees) ou pour mettre en exergue des fonctions importantes du systegraveme
cible Seules les meacutethodes les plus importantes sont repreacutesenteacutees lapproche est moins systeacutematique quen
modeacutelisation objet par exemple
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
36
Remarque Meacutethodes relationnel relationnel-objet
Lors de la transformation du modegravele conceptuel UML en modegravele logique relationnel les meacutethodes ne seront
geacuteneacuteralement pas impleacutementeacutees Leur repeacuterage au niveau conceptuel sert donc surtout daide-meacutemoire
pour limpleacutementation au niveau applicatif
Au contraire un modegravele logique relationnel-objet permettra limpleacutementation de meacutethodes directement
associeacutees agrave des tables Leur repeacuterage au niveau conceptuel est donc encore plus important
Comtpleacutement Transformation des meacutethodes par des vues - p98
g) Associations
Deacutefinition Association
Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire)
qui deacutefinit un ensemble de liens entre les objets de ces classes
Une association est nommeacutee geacuteneacuteralement par un verbe Une association peut avoir des proprieacuteteacutes (agrave linstar
dune classe) Une association deacutefinit le nombre minimum et maximum dinstances autoriseacutee dans la relation
(on parle de cardinaliteacute)
Syntaxe
Image 5 Notation de lassociation en UML
Atention
Le nom de lassociation (verbe qui la deacutecrit) est obligatoire au mecircme titre que le nom dune
classe ou dun attribut
Remarque
Une association est geacuteneacuteralement bidirectionnelle (cest agrave dire quelle peut se lire dans les deux sens) Les
associations qui ne respectent pas cette proprieacuteteacute sont dites unidirectionnelles ou agrave navigation restreinte
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
37
Image 6 Repreacutesentation dassociation en UML
Lassociation Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des
voitures
Comtpleacutement Voir aussi
Cardinaliteacute
Explicitation des associations - p100
Associations ternaires - p101
Contraintes sur les associations - p101
h) Cardinaliteacute
Deacutefinition Cardinaliteacute dune association
La cardinaliteacute dune association permet de repreacutesenter le nombre minimum et maximum dinstances qui sont
autoriseacutees agrave participer agrave la relation La cardinaliteacute est deacutefinie pour les deux sens de la relation
Syntaxe
Si mina (resp maxa) est le nombre minimum (resp maximum) dinstances de la classe A autoriseacutees agrave participer
agrave lassociation on note sur la relation agrave cocircteacute de la classe A minamaxa
Si le nombre maximum est indeacutetermineacute on note n ou
Atention
La notation de la cardinaliteacute en UML est opposeacutee agrave celle adopteacutee en E-A En UML on note agrave gauche
(resp agrave droite) le nombre dinstances de la classe de gauche (resp de droite) autoriseacutees dans
lassociation En E-A on note agrave gauche (resp agrave droite) le nombre dinstances de la classe de
droite (resp de gauche) autoriseacutees dans lassociation
Remarque
Les cardinaliteacutes les plus courantes sont
01 (optionnel)
11 ou 1 (un)
Lassociation Conduit
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
38
0n ou 0 ou (plusieurs)
Ici un conducteur peut posseacuteder plusieurs voitures (y compris aucune) et une voiture nest posseacutedeacutee que par
un seul conducteur
i) Classe dassociation
Deacutefinition Classe dassociation
On utilise la notation des classes dassociation lorsque lon souhaite ajouter des proprieacuteteacutes agrave une association
Syntaxe Notation dune classe dassociation en UML
Image 8 Notation dune classe dassociation en UML
1 n ou 1 (obligatoire )
Image 7 Repreacutesentation de cardinaliteacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
39
Image 9 Emplois
B Exercices
1 Exercice Lire lUML [15 min]
Tennis Le scheacutema suivant repreacutesente les rencontres lors dun tournoi de tennis Quelles sont les assertions vraies selon ce scheacutema
Image 10
On peut jouer des matchs de double
Un joueur peut gagner un match sans y avoir participeacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
40
Il peut y avoir deux matchs sur le mecircme terrain agrave la mecircme heure
Connaissant un joueur on peut savoir sur quels terrains il a joueacute
Journal Voici le scheacutema conceptuel du systegraveme dinformation (tregraves simplifieacute) dun quotidien Quelles sont les assertions vraies selon ce scheacutema
Image 11
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
41
Un article peut ecirctre reacutedigeacute par plusieurs journalistes
Un article peut ecirctre publieacute plusieurs fois dans le mecircme journal
Un article peut ecirctre publieacute dans un journal par un journaliste qui ne travaille pas pour ce
journal
Il peut y avoir plusieurs articles sur le mecircme sujet
Un journaliste peut interviewer une personnaliteacute sans faire darticle agrave ce propos
Logistique Une socieacuteteacute de transport routier veut installer un systegraveme dinformation pour rendre plus efficace sa logistique Embaucheacute au service informatique de cette compagnie vous ecirctes donc chargeacute de reprendre le travail deacutejagrave effectueacute (cest agrave dire le scheacutema suivant)
Quelles sont les assertions vraies selon ce scheacutema
Image 12
Un conducteur peut conduire plusieurs camions
Un conducteur peut conduire un camion sans y ecirctre autoriseacute
Il peut y avoir plusieurs conducteurs pour le mecircme camion
Un conducteur peut livrer sa propre ville
2 Gestion dune coopeacuterative viticole
[20 minutes] Cet exercice a eacuteteacute inspireacute par Bases de donneacutees objet et relationnel [Gardarin99]
On considegravere une base Coopeacuterative qui possegravede les caracteacuteristiques suivantes
Un vin est caracteacuteriseacute par un numeacutero entier unique nv un cru une anneacutee de production et un degreacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
42
Un viticulteur est caracteacuteriseacute par un numeacutero entier unique nvt un nom et une ville Un viticulteur produit un ou plusieurs vins et reacuteciproquement un vin est produit par un ou plusieurs
producteurs (eacuteventuellement aucun)
Les buveurs sont caracteacuteriseacutes par un numeacutero de buveur nb un nom preacutenom et une adresse (limiteacutee agrave
la ville pour simplifier)
Un buveur consomme des vins et peut passer des commandes pour acheter des vins
Question 1
Lister tous les types dobjet agrave consideacuterer les attributs associeacutes et les domaines de valeurs de ces attributs
Repeacuterer les eacuteventuelles cleacutes
Question 2
Lister toutes les associations agrave consideacuterer et indiquer leurs cardinaliteacutes
Question 3
Donner le diagramme UML de cette situation
3 Cours et intervenants
[20 min] On souhaite reacutealiser une base de donneacutees pour geacuterer les cours dispenseacutes dans une eacutecole dingeacutenieur ainsi
que les personnes qui interviennent dans ces cours
Chaque cours est identifieacute par une anneacutee et un numeacutero Chaque cours a donc un numeacutero unique localement
agrave chaque anneacutee Un cours possegravede un titre et un type (C pour Cours TD ou TP) Un cours possegravede
eacutegalement une date de deacutebut et une date de fin qui est toujours de 5 jours apregraves la date de deacutebut
Chaque intervenant est identifieacute par son nom (deux intervenants ne peuvent pas avoir le mecircme nom) Il a un
preacutenom un bureau un ou plusieurs numeacuteros de teacuteleacutephones (jusquagrave trois numeacuteros) et des speacutecialiteacutes Un
bureau est deacutefini par un centre (R pour Royallieu BF pour Benjamin Franklin et PG pour Pierre Guillaumat)
un bacirctiment (une lettre de A agrave Z) et un numeacutero (infeacuterieur agrave 1000) Les speacutecialiteacutes sont des couples de chaicircnes
de caractegraveres deacutesignant un domaine (par exemple BD) et une speacutecialiteacute (par exemple SGBDRO)
Chaque cours est donneacute par un unique intervenant
Voici un exemple Le cours Machines universelles ndeg21 de lanneacutee 2014 est donneacute par Alan Turing entre le
05012014 et le 10012014 Cest un cours de type C Alan Turing a le bureau 666 au bacirctiment X de PG Il
a les numeacuteros de teacuteleacutephone 0666666666 et 0766666666 Il possegravede les speacutecialiteacutes suivantes
Domaine Matheacutematique Speacutecialiteacute Cryptographie
Domaine Informatique Speacutecialiteacute Algorithmie
Domaine Informatique Speacutecialiteacute Intelligence Artificielle
Question
Reacutealiser le modegravele UML de la base de donneacutees Preacuteciser les cleacutes et les types des attributs
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
43
4 Gestion du personnel
[30 minutes] Le service de gestion du personnel dune entreprise deacutesire seacutequiper dun outil lui permettant de geacuterer
informatiquement ses employeacutes leurs salaires et leurs congeacutes Les speacutecifications suivantes ont pu ecirctre mises
en exergue par une analyse des besoins reacutealiseacutee aupregraves des utilisateurs du service du personnel
Geacuteneacuteraliteacutes
tout employeacute est identifieacute par un nom un preacutenom et une date de naissance
tout employeacute remplit une fonction et appartient agrave un service
pour chaque employeacute on gegravere la date dembauche et la quotiteacute (cest agrave dire le pourcentage de temps
travailleacute par rapport au temps plein en cas de travail agrave temps partiel)
Gestion des salaires
pour chaque employeacute on gegravere lhistorique de ses salaires dans lentreprise chaque salaire eacutetant affecteacute
agrave une peacuteriode de temps
un salaire est composeacute dun salaire brut de charges patronales et de charges salariales
on cherchera agrave partir des ces donneacutees agrave obtenir eacutegalement le salaire chargeacute (brut + charges patronales)
et le salaire net (brut - charges salariales) et ce en particulier pour le salaire en cours (celui que
touche actuellement le salarieacute)
Gestion des congeacutes
pour chaque employeacute on meacutemorise chaque congeacute pris (posant quun congeacute concerne toujours une ou
plusieurs journeacutees entiegraveres)
chaque employeacute a le droit aux jours de congeacutes suivants
- 25 jours (pour une quotiteacute de 1) et 25 x quotiteacute sinon - chaque fonction ouvre les droits agrave un certain nombre de jours de RTT - chaque service ouvre les droits agrave un certain nombre de jours de RTT - chaque tranche de 5 ans passeacutes dans lentreprise donne droit agrave 1 jour suppleacutementaire - les employeacutes de plus de 40 ans ont un jour suppleacutementaire et ceux de plus de 50 ans deux
pour chaque employeacute on cherchera agrave connaicirctre le nombre total de jours de congeacutes autoriseacutes le nombre
de jours pris et le nombre de jours restants sur lanneacutee en cours
Question
Reacutealiser le diagramme de classes permettant de modeacuteliser ce problegraveme
44
III - La modeacutelisation logique
relationnelle
A Cours
Le modegravele relationnel est aux fondements des SGBDR Il a eacuteteacute et continue decirctre le modegravele theacuteorique
dominant pour la repreacutesentation logique des base de donneacutees mecircme si le mouvement NoSQL propose des
alternatives
Le modegravele relationnel permet de reformuler le modegravele conceptuel dans un formalisme - le tableau - beaucoup
plus proche de limpleacutementation informatique bien quencore indeacutependant dune solution technologique
particuliegravere
1 Introduction au modegravele relationnel
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
III
La modeacutelisation logique relationnelle
45
a) Niveau logique Le niveau logique est le lien entre le niveau conceptuel et limpleacutementation effective de lapplication Le modegravele
conceptuel eacutetant un modegravele formel le modegravele logique a pour vocation decirctre eacutegalement un modegravele formel
mais speacutecifiant non plus la reacutealiteacute existante ou rechercheacutee comme le modegravele conceptuel mais les donneacutees
telles quelles vont exister dans lapplication informatique
Pour assumer cette fonction le modegravele relationnel [Codd70] sest imposeacute en reacuteaction aux insuffisances des
modegraveles anteacuterieurs les modegraveles hieacuterarchique et reacuteseau et de part la puissance de ses fondements
matheacutematiques Encore aujourdhui dominant le modegravele relationnel est un fondement indispensable agrave la
conception de bases de donneacutees
Ratptpel
Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
b) Deacutefinition du modegravele relationnel
Introduction
Le modegravele relationnel a eacuteteacute introduit par Codd [Codd70] en 1970 au laboratoire de recherche dIBM de San
Joseacute Il sagit dun modegravele simple et puissant agrave la base de la majoriteacute des bases de donneacutees encore aujourdhui
Les objectifs du modegravele relationnel formuleacutes par Codd sont les suivants
Assurer lindeacutependance des applications et de la repreacutesentation interne des donneacutees
Geacuterer les problegravemes de coheacuterence et de redondance des donneacutees
Utiliser des langages de donneacutees baseacutes sur des theacuteories solides
Deacutefinition Modegravele relationnel
On appelle modegravele relationnel un ensemble de concepts permettant de formaliser logiquement la description
darticles de fichiers plats indeacutependamment de la faccedilon dont ils sont physiquement stockeacutes dans une meacutemoire
numeacuterique
Le modegravele relationnel inclut des concepts pour la description de donneacutees ainsi que des concepts pour la
manipulation de donneacutees
Fondamental Repreacutesenter le monde en tables
Le modegravele relationnel permet de repreacutesenter les donneacutees que lon va geacuterer agrave laide dun tregraves petit
nombre de concepts tregraves simples
Les relations ou tables des lignes et des colonnes
Les domaines de valeurs chaque case dune table prend une unique valeur dans un
domaine preacute-deacutefini
Les cleacutes il existe des cases dont les valeurs doivent ecirctre uniques et non nulles
Les cleacutes eacutetrangegraveres il existe des cases qui doivent prendre une valeur existante dans les
cases dune autre table
La modeacutelisation logique relationnelle
46
Comtpleacutement Extension du modegravele relationnel
Le modegravele relationnel est un standard normaliseacute par lISO agrave travers son langage le SQL Il se veut neacuteanmoins
degraves lorigine extensible pour permettre de geacuterer des donneacutees plus complexes que les donneacutees tabulaires Le
modegravele relationnel-objet est neacute de cette extension
2 Les concepts fondamentaux du modegravele relationnel
atributs enregistrement domaine
a) Domaine
Deacutefinition Domaine
Ensemble caracteacuteriseacute par un nom dans lequel des donneacutees peuvent prendre leurs valeurs
Remarque Un domaine peut-ecirctre deacutefini en intension (cest agrave dire en deacutefinissant les proprieacuteteacutes caracteacuteristiques des
valeurs du domaine on parle aussi de compreacutehension) ou en extension (cest agrave dire en eacutenumeacuterant toutes
les valeurs du domaine)
Exemtple Domaines deacutefinis en intension
Tous les entiers
Les reacuteels infeacuterieur agrave 5
Les booleacuteen (vrai ou faux)
Toutes les chaicircnes de 1 agrave 255 caractegraveres
Les valeurs moneacutetaires deacutefinie comme des deacutecimaux avec deux chiffres apregraves la virgule
Les dates deacutefinies comme des chaicircnes de 10 caractegraveres comprenant des chiffres et des tirets selon le
patron 00-00-0000
Les salaires deacutefinis comme des valeurs moneacutetaires compris entre 15000 et 100000
Exemtple Domaines deacutefinis en extension
Couleur Bleu Vert Rouge Jaune Blanc Noir
SGBD Hieacuterarchique Reacuteseau Relationnel Objet Relationnel-Objet
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
La modeacutelisation logique relationnelle
47
b) Exercice Indiquez quelle deacutefinition et quel exemple correspondent respectivement aux mots intension et extension
1 - Le domaine des couleurs
2 - Eacutenonciation exhaustive de lensemble des objets du domaine
3 - bleu rouge vert
4 - Explicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa compreacutehension
abstraite geacuteneacuterale)
Intension Extension
c) Atribut et enregistrement
Deacutefinition Atribut
On appelle attribut dune relation une colonne de cette relation Un attribut est caracteacuteriseacute par un nom et un
domaine dans lequel il prend ses valeurs
Synonymes Champs Proprieacuteteacute Colonne
Deacutefinition Enregistrement
On appelle enregistrement dune relation une ligne de cette relation Un enregistrement prend une valeur
pour chaque attribut de la relation
Synonymes Tuple N-uplet Vecteur Ligne
La modeacutelisation logique relationnelle
48
Exemtple
A B
1 1
1 2
2 2
Tableau 5 Relation R
La relation R comporte les deux attributs A et B et les trois enregistrements lt11gt lt12gt et lt22gt
Remarque Atribut domaine ordre
Un attribut se distingue dun domaine car il peut ne comporter que certaines valeurs de ce domaine
Les colonnes de la relation ne sont pas ordonneacutees et elles ne sont donc repeacutereacutees que par le nom de lattribut
Remarque Valeur nulle
Un enregistrement peut ne pas avoir de valeur pour certains attributs de la relation parce que cette valeur
est inconnue ou inapplicable sa valeur est alors null
d) Exemple La relation Vol
Exemtple
Numero Compagnie Avion Deacutepart Arriveacutee Date
AF3245 Air France 747 Paris Oulan Bator 01shy08shy2002
AF6767 Air France A320 Paris Toulouse 30shy07shy2002
KLM234 KML 727 Paris Amsterdam 31shy07shy2002
Tableau 6 Relation Vol
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel
Objectifs
Connaicirctre les notions de cleacutes candidates naturelles artificielles primaire eacutetrangegravere
Aborder le principe deacuteclatement des relations et de nonredondance
La modeacutelisation logique relationnelle
49
a) Cleacute
Deacutefinition Cleacute
Une cleacute est un groupe dattributs minimum qui permet didentifier de faccedilon univoque un tuple dans une
relation
Fondamental
Toute relation doit comporter au moins une cleacute ce qui implique quune relation ne peut pas
contenir deux tuples identiques
Atention Atributs de cleacutes unique et non null Afin decirctre deacuteterminants pour lidentification dun enregistrement tous les attributs dune cleacute
doivent ecirctre valueacutes cest-agrave-dire quaucun ne peut avoir de valeur null Dire quun groupe
dattribut est une cleacute eacutequivaut agrave dire quil est unique et non null
Exemtple Numeacutero deacutetudiant
Le numeacutero deacutetudiant dune relation Etudiant est une bonne cleacute car il y aura systeacutematiquement une
valeur non nulle
Le groupe dattributs (nom preacutenom) dune relation Etudiant est en geacuteneacuteral une mauvaise cleacute car les
homonymes existent
b) Deacuteterminer les cleacutes
Deacutetermination dune cleacute
Deacutefinir un groupe dattributs comme eacutetant une cleacute neacutecessite une reacuteflexion seacutemantique sur les donneacutees
composant ces attributs afin de sassurer de leur uniciteacute
Fondamental
La deacutefinition des cleacutes est un acte de modeacutelisation elle ne renvoie pas donc pas agrave une veacuteriteacute
intangible mais agrave la reacutealiteacute telle quelle est repreacutesenteacutee dans le modegravele que lon eacutelabore
Exemtple
Lattribut numeacutero de seacutecuriteacute sociale dune relation personne peut paraicirctre une bonne cleacute a priori car son
uniciteacute est assureacutee Mais tout le monde nen dispose pas forceacutement (les enfants des eacutetrangers) donc ce nest
une cleacute que si lon considegravere des personnes affilieacutees agrave la seacutecuriteacute sociale
c) Cleacute primaire et cleacutes candidates
Deacutefinition Cleacute tprimaire
Si plusieurs cleacutes existent dans une relation on en choisit une parmi celles-ci Cette cleacute est appeleacutee cleacute
primaire
La modeacutelisation logique relationnelle
50
La cleacute primaire est geacuteneacuteralement choisie de faccedilon agrave ce quelle soit la plus simple cest agrave dire portant sur le
moins dattributs et sur les attributs de domaine les plus basiques (entiers ou chaicircnes courtes typiquement)
Deacutefinition Cleacutes candidates
On appelle cleacutes candidates lensemble des cleacutes dune relation qui nont pas eacuteteacute choisies comme cleacute primaire
(elles eacutetaient candidates agrave cette fonction)
d) Cleacute artificielle
Deacutefinition Cleacute artificielle
Sil est impossible de trouver une cleacute primaire ou que les cleacutes candidates sont trop complexes il est possible
de faire appel agrave une cleacute artificielle Une cleacute artificielle est un attribut suppleacutementaire ajouteacute au scheacutema de
la relation qui nest lieacute agrave aucune signification et qui sert uniquement agrave identifier de faccedilon unique les
enregistrements etou agrave simplifier les reacutefeacuterences de cleacutes eacutetrangegraveres
Deacutefinition Cleacute signifiante
Une cleacute est signifiante si elle nest pas artificielle
Synonyme Cleacute naturelle
Atention Cleacute artificielle et niveau logique
Au niveau du modegravele logique il faut eacuteviter la simpliciteacute consistant agrave identifier toutes les relations
avec des cleacutes artificielles et ne reacuteserver cet usage quaux cas particuliers
Conseil
1 Si au moins une cleacute naturelle composeacutee dun seul attribut existe en choisir une parmi celles-ci comme
cleacute primaire 2 Sinon choisir une cleacute naturelle composeacutee de plusieurs attributs si elle ne pose pas de problegraveme identifieacute 3 Toujours justifier lemploi dune cleacute artificielle (au niveau logique uniquement pour des raisons de
complexiteacute du modegravele les questions de performance sont eacutetudieacutees au niveau physique)
RemarqueCleacute artificielle et niveau tphysique eacutevolutiviteacute maintenance et tperformance
Au niveau de limpleacutementation physique par contre il est courant que des cleacutes artificielles soient utiliseacutees de
faccedilon systeacutematique
Du point de vue de leacutevolutiviteacute de la BD il existe toujours un risque quune cleacute nonartificielle perde
sa proprieacuteteacute duniciteacute ou de non-nulliteacute
Du point de vue de la maintenance de la BD il existe toujours un risque quune cleacute non-artificielle
voit sa valeur modifieacutee et dans ce cas la reacutepercution de ce changement pour mettre agrave jour toutes les
reacutefeacuterences peut poser problegraveme
Du point de vue de la performance de la BD les cleacutes non-artificielles ne sont pas en geacuteneacuteral optimiseacutees
en terme de type et de taille et donc peuvent limiter les performances dans le cadre des jointures
Preacutecisons neacuteanmoins quinversement les cleacutes artificielles ont pour conseacutequence de systeacutematiser des
jointures qui auraient pu ecirctre eacuteviteacutees avec des cleacutes primaires signifiantes
La modeacutelisation logique relationnelle
51
Exemtple Problegraveme deacutevolutiviteacute tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD franccedilaise elle ne permettra pas dentrer
un individu non-franccedilais issu dun pays ne disposant pas dun tel numeacutero
Exemtple Problegraveme de maintenance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD centrale dont les donneacutees sont exploiteacutees
par dautres tables dautres BD qui viennent piocher dans cette BD pour leurs propres usages sans que la
BD centrale ne connaisse ses clients Soit une erreur dans la saisie dun numeacutero de seacutecuriteacute sociale dans la
BD centrale si ce numeacutero est corrigeacute il faudrait (ce qui nest pas possible dans notre cas) impeacuterativement en
avertir toutes les bases utilisatrices pour quelles mettent agrave jour leurs reacutefeacuterences
Exemtple Problegraveme de tperformance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table comptant un million denregistrements ce numeacutero
est geacuteneacuteralement un nombre agrave 13 chiffres ou une chaicircne agrave 13 caractegraveres ce qui dans les deux cas est supeacuterieur
au nombre agrave 7 chiffres suffisant pour identifier tous les individus de la BD Les performances seront donc
toujours moins bonnes lors des jointures si une cleacute prend deux fois plus de place en meacutemoire que son
optimum Mais ajoutons que cette perte de performance na pas toujours de conseacutequence sur la reacutealiteacute
perceptible par les utilisateurs de la BD
Inversement soit une cleacute artificielle la cleacute primaire dune table T1 par ailleurs reacutefeacuterenceacutee par une autre table
T2 Soit le numeacutero de seacutecuriteacute sociale un attribut cleacute de T1 Si lon veut par requecircte disposer des informations
de T2 ainsi que du numeacutero de seacutecuriteacute sociale de T1 alors il faudra faire une jointure tandis que si ce numeacutero
signifiant avait eacuteteacute choisi comme cleacute primaire cela naurait pas eacuteteacute neacutecessaire
La modeacutelisation logique relationnelle
52
e) Cleacute eacutetrangegravere
Deacutefinition Cleacute eacutetrangegravere
Une cleacute eacutetrangegravere est un attribut ou un groupe dattributs dune relation R1 devant apparaicirctre comme cleacute
primaire dans une relation R2 afin de mateacuterialiser une reacutefeacuterence entre les tuples de R1 et les tuples de R2
Une cleacute eacutetrangegravere dun tuple reacutefeacuterence une cleacute primaire dun autre tuple
Atention
Seule une cleacute primaire peut ecirctre reacutefeacuterenceacutee par une cleacute eacutetrangegravere cest mecircme le seule fonction
de la cleacute primaire ecirctre la cleacute qui peut ecirctre reacutefeacuterenceacutee par les cleacutes eacutetrangegraveres
Deacutefinition Contrainte dinteacutegriteacute reacutefeacuterentielle
Une cleacute eacutetrangegravere respecte la contrainte dinteacutegriteacute reacutefeacuterentielle si sa valeur est effectivement existante dans
la cleacute primaire dun tuple de la relation reacutefeacuterenceacutee ou si sa valeur est null
Une cleacute eacutetrangegravere qui ne respecte pas la contrainte dinteacutegriteacute reacutefeacuterentielle exprime un lien vers un tuple qui
nexiste pas et donc nest pas coheacuterente
f) Reacutefeacuterence entre relations Le modegravele relationnel a pour objectif la structuration de donneacutees selon des relations Lenjeu est de parvenir
agrave traduire un modegravele conceptuel en modegravele logique relationnel Or il ny a pas de notion dassociation en
relationnel donc il faudra pouvoir traduire les associations avec les concepts dont on dispose relation cleacute
cleacute eacutetrangegravere
Afin de repreacutesenter des reacutefeacuterences entre relations dans un modegravele relationnel la seule solution est de stocker
linformation dans une relation et donc que certains attributs dune relation servent agrave pointer sur dautres
relations
Atention
Il ny a pas vraiment de reacutefeacuterence ou de lien en relationnel puisque nous ne disposons que de
tables de cleacutes de cleacutes eacutetrangegravere et de valeurs
On va donc devoir se servir de ces outils pour mateacuterialiser une notion de reacutefeacuterence
Meacutethode Reacutefeacuterence
La reacutefeacuterence entre deux tuples T1 et T2 de deux relations diffeacuterentes est exprimable par une valeur identique
entre une cleacute eacutetrangegravere du tuple T1 et la cleacute primaire de lautre tuple T2 Synonyme Lien Exemtple
R1 R2 a1 a2=gtR2 b1 b2
La modeacutelisation logique relationnelle
53
F
Image 13
Lattribut a2 de la relation R1 reacutefeacuterence lattribut b1 de la relation R2 car a2 est une cleacute eacutetrangegravere de R1 vers
R2 (b1 est la cleacute primaire de R2)
Ici on a donc par exemple les tuples identifieacutes par B et C de R1 qui reacutefeacuterencent le tuple identifieacute par 1 dans
R2
g) Scheacutema relationnel
Deacutefinition Scheacutema dune relation
Le scheacutema dune relation deacutefinit cette relation en intension Il est composeacute
du nom de la relation
de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs
de la cleacute primaire
des cleacutes eacutetrangegraveres
des cleacutes candidates
Deacutefinition Scheacutema relationnel dune base de donneacutee
Le scheacutema relationnel dune BD est la deacutefinition en intension de cette BD (par opposition agrave linstance de la
BD qui est une extension de la BD) Il est composeacute de lensemble des scheacutemas de chaque relation de la BD
Syntaxe Relation
Relation (Attribut1Domaine1 Attribut2Domaine2 AttributNDomaineN) 1
La relation Relation contient N attributs chacun deacutefini sur son domaine
Syntaxe Cleacute tprimaire
Relation (Attribut1Domaine1 AttributMDomaineM AttributNDomaineN)
1
La cleacute de la relation Relation est composeacutee des attributs Attribut1 agrave AttributM (attribut preacuteceacutedeacutes de ou
bien souligneacutes)
En geacuteneacuteral on note la cleacute primaire en premier dans la relation
Syntaxe Cleacute eacutetrangegravere
Relation1 ( AttributM=gtRelation2 AttributN=gtRelation2) 1
La relation Relation1 comporte une cleacute eacutetrangegravere (composeacutee des attributs AttributM agrave AttributN)
reacutefeacuterenccedilant la cleacute primaire de Relation2 Bien sucircr il peut exister plusieurs cleacutes eacutetrangegraveres vers plusieurs
La modeacutelisation logique relationnelle
54
relations distinctes Une cleacute eacutetrangegravere et sa cleacute primaire reacutefeacuterenceacutee sont toujours composeacutees du mecircme nombre
dattributs Il nest pas neacutecessaire de preacuteciser les domaines des attributs appartenant agrave la cleacute eacutetrangegravere car ce
sont forceacutement les mecircmes que ceux de la cleacute primaire reacutefeacuterenceacutee Il nest pas non plus en geacuteneacuteral neacutecessaire
de preacuteciser dans le scheacutema relationnel quels attributs de la cleacute eacutetrangegravere reacutefeacuterencent quels attributs de la cleacute
primaire (cela est geacuteneacuteralement eacutevident) mais il est possible de la faire on notant Attribut=gtRelationAttribut
En geacuteneacuteral on note les cleacutes eacutetrangegraveres en dernier dans la relation sauf pour les cleacutes eacutetrangegraveres qui font partie
de la cleacute primaire (cleacutes identifiantes)
Syntaxe Cleacute candidates
Relation1 (AttributMDomaineM ) avec AttributM cleacute 1
Les cleacutes candidates doivent ecirctre noteacutees sur le scheacutema relationnel
Sil ny a quune ou deux cleacutes candidates les noter directement apregraves la deacutefinition de la relation
Sil y a beaucoup de cleacutes pour ne pas trop alourdir la notation renvoyer agrave un tableau agrave part
Atention Cleacutes candidates et cleacute primaire
La notation R(ab) signifie toujours que R a comme cleacute primaire (ab) et non que R aurait
deux cleacutes a et b (dont on ne saurait pas laquelle est primaire)
La notation R(ab) avec b cleacute signifie bien que a et b sont deux cleacutes de R et que a est primaire
Il ne faut pas confondre une cleacute composeacutee de deux attributs avec deux cleacutes
h) Exemple de scheacutema relationnel pour la geacuteographie
Exemtple
Personne (NumeroEntier NomChaicircne PreacutenomChaicircne LieuNaissance=gtVille) Pays (NomChaicircne PopulationEntier SuperficieReacuteel Dirigeant=gtPersonne) Reacutegion (Pays=gtPays NomChaicircne Superficie Dirigeant=gtPersonne) Ville (CodePostalCP NomChaicircne Pays=gtReacutegionPays Reacutegion=gtReacutegionNom Dirigeant=gtPersonne)
1 2 3 4
Exemtple Exemtple dinstance de la base de donneacutees
Personne Num ero Nom Prenom LieuNaissance
1 Durand Pierre 60200 2 Dupont Marie 60200
Pays
Nom Population Superficie Dirig eant
France 60 50000101 2 Allemagne 80 60000023564 2 Espagne 40 3500001 1
La modeacutelisation logique relationnelle
55
Reacutegion Pays Nom Superficie Dirig eant France Picardie 50 1 Espagne Picardie 40 1 France Normandie 30 2
Ville CodePostal Nom Pays Reacuteg ion Dirig eant F60200 Compiegravegne France Picardie 1
F60300 Senlis France Picardie 2 F60301 Senlis France Picardie 2 E8000 Senlis Espagne Picardie 2
Le scheacutema relationnel preacuteceacutedent deacutecrit
Des personnes
Elles sont identifieacutees par un numeacutero qui est en fait une cleacute artificielle En effet mecircme une cleacute composeacutee
de tous les attributs (Nom Preacutenom LieuNaissance) laisse une possibiliteacute de doublons (homonymes
neacutes dans la mecircme ville)
La cleacute eacutetrangegravere LieuNaissance fait reacutefeacuterence agrave la relation Ville et plus preacuteciseacutement agrave sa cleacute primaire
CodePostal ce qui est est laisseacute implicite car eacutevident
Des pays
Ils sont identifieacutes par leur nom puisque deux pays ne peuvent avoir le mecircme nom Les pays sont
dirigeacutes par des personnes et ce lien est mateacuterialiseacute par la cleacute eacutetrangegravere Dirigeant
Des reacutegions
Elles font partie dun pays et ont un nom Deux reacutegions de pays diffeacuterents pouvant avoir le mecircme
nom il faut utiliser une cleacute primaire composeacutee agrave la fois du nom de la reacutegion et du nom du pays qui
est une cleacute eacutetrangegravere (le nom est appeleacute cleacute locale car il nest pas suffisant pour identifier un tuple de
la relation Reacutegion et la cleacute eacutetrangegravere vers la relation Pays est appeleacutee cleacute identifiante)
Des villes
Elles sont identifieacute par un code postal qui est unique dans le monde (en utilisant le preacutefixe de pays de
type F-60200) Ce code postal a pour domaine CP qui est une chaicircne composeacutee dune ou deux
lettres dun tiret puis dune seacuterie de chiffres
Le lien dappartenance entre une ville et une reacutegion est mateacuterialiseacute par la cleacute eacutetrangegravere composeacutee des
deux attributs Pays et Reacutegion Cette cleacute reacutefeacuterence la cleacute primaire de la relation Reacutegion eacutegalement composeacutee
de deux attributs Pour clairement expliciter les reacutefeacuterences (bien que seacutemantiquement la deacutenomination des
attributs ne laisse pas de place au doute) on utilise la syntaxe ReacutegionPays et ReacutegionNom
4 Synthegravese
a) Synthegravese Scheacutema relationnel
Scheacutema relationnel
Un scheacutema relationnel permet une formalisation dun modegravele logique
Relation ou table
La modeacutelisation logique relationnelle
56
Sous-ensemble dun produit carteacutesien -
Attribut ou colonne Prend ses valeurs dans un domaine
- Enregistrement ou ligne Pose une valeur (y compris la valeur null) pour chaque attribut
Cleacute
Groupe dattributs ayant un rocircle didentification au sein dun enregistrement - Cleacute candidate
Identifie de faccedilon unique un enregistrement - Cleacute primaire
Cleacute candidate choisie pour repreacutesenter un enregistrement pour sa faciliteacute dusage - Cleacute eacutetrangegravere
Reacutefeacuterence la cleacute primaire dun tuple dune autre relation pour exprimer un lien
b) Bibliographie commenteacutee sur le modegravele relationnel
Comtpleacutement Synthegraveses
SQL2 SQL3 applications agrave Oracle [Delmal01]
Une deacutefinition syntheacutetique et efficace du domaine relationnel relation domaine attribut cleacute inteacutegriteacute
opeacuterateurs (Premier chapitre)
5 Deacutefinition formelle dune relation
a) Produit carteacutesien
Deacutefinition Produit carteacutesien
Le produit carteacutesien noteacute X des domaines D1 D2 Dn noteacute D1 X D2 X X Dn est lensemble des
tuples (ou n-uplets ou vecteurs) ltV1V2Vngt tel que Vi est une valeur de Di et tel que toutes les
combinaisons de valeurs possibles sont exprimeacutees
Exemtple
D1 = A B C D2 = 1 2 3 D1 X D2 = ltA1gt ltA2gt ltA3gt ltB1gt ltB2gt ltB3gt ltC1gt ltC2gt ltC3gt
1 2 3
b) Relation
Deacutefinition Relation
Une relation sur les domaines D1 D2 Dn est un sous-ensemble du produit carteacutesien D1 X D2 X X Dn
Une relation est caracteacuteriseacutee par un nom Synonymes Table tableau
Syntaxe
La modeacutelisation logique relationnelle
57
On peut repreacutesenter la relation R sur les domaine D1 Dn par une table comportant une colonne pour
chaque domaine et une ligne pour chaque tuple de la relation
D1 Dn
V1 Vn
V1 Vn
Tableau 7 Relation R
Remarque
Une relation est deacutefinie en extension par leacutenumeacuteration des tuples la composant
B Exercices
1 Lab I-
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Dessiner des relations instancieacutees (en extension donc) remplies avec les donneacutees fournies en exemple
La modeacutelisation logique relationnelle
58
Question 2
Eacutecrivez le scheacutema relationnel (deacutefinition en intension donc) permettant de repreacutesenter une base de donneacutees
relationnelle pour le laboratoire
59
IV - Introduction au
passage
UMLRelationnel classes et
associations
A Cours
Afin de pouvoir impleacutementer une base de donneacutees il faut pouvoir traduire le modegravele conceptuel en modegravele
logique Cela signifie quil faut pouvoir convertir un modegravele UML en modegravele relationnel Les modegraveles
conceptuels sont suffisamment formels pour que ce passage soit systeacutematiseacute dans la plupart des cas
1 Transformation des classes et atributs
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
IV
Introduction au passage UML-Relationnel classes et associations
60
a) Transformation des classes
Meacutethode Classe
Pour chaque classe non abstraite
on creacutee une relation dont le scheacutema est celui de la classe
la cleacute primaire de cette relation est une des cleacutes de la classe
Classe1
Graphique 2 Classe
Classe1()
Remarque
Les classes abstraites sont ignoreacutees agrave ce stade et neacutetant pas instanciables ne donnent geacuteneacuteralement pas
lieu agrave la creacuteation de relation
b) Transformation des atributs
Meacutethode Atributs simtples
Pour chaque attribut eacuteleacutementaire et monovalueacute dune
classe on creacutee un attribut correspondant
Classe1
a key
b
Graphique 3 Attribut
Classe1(ab)
Meacutethode Atributs comtposites
Pour chaque attribut composite comprenant N sous-attributs dune classe
on creacutee N attributs correspondants
dont les noms sont la concateacutenation du nom de lattribut composite avec celui du sous attribut
Classe1
a key b -b1 -b2
Introduction au passage UML-Relationnel classes et associations
61
Graphique 4 Attribut composeacute
Classe1(ab_b1b_b2)
Meacutethode Atributs multivalueacutes
Pour chaque attribut multivalueacute b dune classe C
on creacutee une nouvelle relation RB
qui comprend un attribut monovalueacute correspondant agrave b
plus la cleacute de la relation repreacutesentant C
la cleacute de RB est la concateacutenation des deux attributs
Classe1
a key
b[110]
Graphique 5 Attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Meacutethode Atributs multivalueacutes (meacutethode alternative)
Dans le cas ougrave le nombre maximum de b est fini et petit on peut eacutegalement adopter la transformation
suivante
Classe1(ab1b2b3b4b5b6b7b8b9b10)
Si le nombre dattributs est infini (b[1]) cest impossible sil est trop grand ce nest pas souhaitable
Meacutethode Atributs comtposeacutes multivalueacutes
On combine les regravegles eacutenonceacutees pour les attributs composeacutes et pour les attributs multivalueacutes
Classe1
a key b [0N] -b1 -b2
Graphique 6 Attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
Ratptpel Voir aussi
Transformation des compositions - p102
Introduction au passage UML-Relationnel classes et associations
62
c) Transformation des atributs deacuteriveacutes et meacutethodes
Meacutethode Atributs deacuteriveacutes et meacutethodes
On ne repreacutesente pas en geacuteneacuteral les attributs deacuteriveacutes ni les meacutethodes dans le modegravele relationnel ils seront
calculeacutes dynamiquement soit par des proceacutedures internes agrave la BD (proceacutedures stockeacutees) soit par des
proceacutedures au niveau applicatif
Classe1
a key
b
m()
Graphique 7 Attribut deacuteriveacute et meacutethodes
Classe1(a)
Comtpleacutement Atribut deacuteriveacute stockeacutes
On peut deacutecider (pour des raisons de performance essentiellement) de repreacutesenter lattribut deacuteriveacute ou la
meacutethode comme sil sagissait dun attribut simple mais il sera neacutecessaire dans ce cas dajouter des
meacutecanismes de validation de contraintes dynamiques (avec des triggers par exemple) pour assurer que la
valeur stockeacutee eacutevolue en mecircme temps que les attributs sur lesquels le calcul deacuteriveacute porte
Notons quintroduire un attribut deacuteriveacute ou un reacutesultat de meacutethode dans le modegravele relationnel eacutequivaut agrave
introduire de la redondance ce qui est en geacuteneacuteral deacuteconseilleacute et ce qui doit ecirctre dans tous les cas controcircleacute
2 Transformation des associations
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
a) Transformation des associations 1N
Meacutethode
Pour chaque association binaire de type 1N
on ajoute agrave la relation cocircteacute N une cleacute eacutetrangegravere vers la relation cocircteacute 1
Classe1
01 association 0N
Classe2
a key
b c key
d
Graphique 8 Association 1N
Classe1(ab)
Introduction au passage UML-Relationnel classes et associations
63
Classe2(cda=gtClasse1)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations 1N - p103
b) Transformation des associations NM
Meacutethode
Pour chaque association binaire de type MN
on creacutee une nouvelle relation
composeacutee de cleacutes eacutetrangegraveres vers chaque relation associeacutee
et dont la cleacute primaire est la concateacutenation de ces cleacutes eacutetrangegraveres
Graphique 9 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations NM - p104
c) Transformation des associations 11 (approche simplifieacutee)
Meacutethode
La solution la plus simple et la plus geacuteneacuterale pour transformer une association 11 consiste agrave traiter cette
association 11 comme une association 1N puis agrave ajouter une contrainte UNIQUE sur la cleacute eacutetrangegravere pour
limiter la cardinaliteacute maximale agrave 1
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 10 Association 11
Classe1(abc=gtClasse2) avec c UNIQUE
Classe2(cd) ou
Introduction au passage UML-Relationnel classes et associations
64
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE
Remarque
Il existe toujours deux solutions selon que lon choisit une ou lautre relation pour accueillir la cleacute eacutetrangegravere
Selon la cardinaliteacute minimale un des deux choix peut ecirctre plus pertinent
Comtpleacutement
Il est parfois possible de choisir de fusionner les deux classes au sein dune seule relation plutocirct que dopter
pour une cleacute eacutetrangegravere
Comtpleacutement
Transformation des associations 11 (approche geacuteneacuterale) - p105
d) Transformation des classes dassociation
Meacutethode Classe dassociation NM
Graphique 11 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2ef)
Comtpleacutement Classe dassociation 1N
Les attributs de la classe dassociation sont ajouteacutes agrave la relation issue de la classe cocircteacute N
Comtpleacutement Classe dassociation 11
Les attributs de la classe dassociation sont ajouteacutes agrave la relation qui a eacuteteacute choisie pour recevoir la cleacute eacutetrangegravere
Si les deux classes ont eacuteteacute fusionneacutees en une seule relation les attributs sont ajouteacutes agrave celle-ci
a key b
Classe1
c key d
Classe2
0 N 0 N
e f
Cl-A ssoc
Introduction au passage UML-Relationnel classes et associations
65
B Exercices
1 Lab I+
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
Question 3
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 4
Dessiner des tableaux remplis avec les donneacutees fournies en exemple afin de montrer que le modegravele fonctionne
selon le besoin exprimeacute initialement On pourra mettre le premier mot seulement des descriptions pour gagner
du temps
Introduction au passage UML-Relationnel classes et associations
66
2 Usine de production
[30 minutes] Une usine cherche agrave modeacuteliser sa production de veacutehicules et de moteurs
Les veacutehicules sont identifieacutes par un numeacutero dimmatriculation alphanumeacuterique et caracteacuteriseacutes par une
couleur dont la deacutenomination est une chaicircne de caractegraveres Chaque veacutehicule peut comporter un
unique moteur etou un nombre quelconque de pneus
Chaque moteur est monteacute sur un et un seul veacutehicule et est identifieacute par un numeacutero de seacuterie Un moteur
est caracteacuteriseacute par une puissance en chevaux
Tout pneu est monteacute sur un unique veacutehicule et est identifieacute par un numeacutero de seacuterie Sa position est
deacutefinie localement sur ce veacutehicule et par rapport agrave lessieu Dn pour les pneus situeacute sur la droite de
lessieu et Gn pour les pneus situeacutes agrave gauche n repreacutesentant le numeacutero de lessieu (1 pour celui situeacute
devant 2 pour la deuxiegraveme rangeacutee etc) Un pneu est caracteacuteriseacute par un diamegravetre et une largeur en
pouces
Les moteurs les pneus et les veacutehicules sont fabriqueacutes sous une marque Les mecircmes marques peuvent
fabriquer indiffeacuteremment des moteurs des pneus etou des veacutehicules et un veacutehicule dune certaine
marque peut comporter un moteur etou des pneus de marque diffeacuterente
Question 1
Reacutealiser le modegravele UML de ce problegraveme en faisant apparaicirctre les domaines et les cleacutes
Question 2
Reacutealiser le passage au modegravele relationnel en faisant apparaicirctre les cleacutes primaires candidates et eacutetrangegraveres
Question 3
Dessiner les tableaux correspondant aux relations du modegravele Instancier au minimum deux veacutehicules et quatre
marques
Question 4
Donner quatre exemples denregistrements qui seront refuseacutes - eacutetant donneacutees les donneacutees deacutejagrave inseacutereacutees -
pour quatre raisons diffeacuterentes
contrainte de cleacute sur une cleacute primaire
contrainte de cleacute sur une cleacute candidate
contrainte dinteacutegriteacute reacutefeacuterentielle
contrainte de non nulliteacute
67
V - Creacuteation et
alimentation de bases
de donneacutees SQL
A Cours
1 Le langage SQL
Deacutefinition SQL
SQL (pour langage de requecirctes structureacute) est un langage deacuteclaratif destineacute agrave la manipulation de bases de
donneacutees au sein des SGBD et plus particuliegraverement des SGBDR
SQL LDD LCD LMD LCT
SQL est un langage deacuteclaratif il nest donc pas a proprement parleacute un langage de programmation mais plutocirct
une interface standard pour acceacuteder aux bases de donneacutees
Il est composeacute de quatre sous ensembles
Le Langage de Deacutefinition de Donneacutees (LDD ou en anglais DDL Data Definition
Language) pour creacuteer et supprimer des objets dans la base de donneacutees (tables contraintes dinteacutegriteacute
vues etc)
Exemple de commandes CREATE DROP ALTER
Le Langage de Controcircle de Donneacutees (LCD ou en anglais DCL Data Control Language) pour geacuterer les
droits sur les objets de la base (creacuteation des utilisateurs et affectation de leurs droits)
Exemple de commandes GRANT REVOKE
V
Creacuteation et alimentation de bases de donneacutees SQL
68
Le Langage de Manipulation de Donneacutees (LMD ou en anglais DML Data Manipulation
Language) pour la recherche linsertion la mise agrave jour et la suppression de donneacutees Le LMD est baseacute
sur les opeacuterateurs relationnels auxquels sont ajouteacutes des fonctions de calcul dagreacutegats et des
instructions pour reacutealiser les opeacuterations dinsertion mise agrave jour et suppression
Exemple de commandes INSERT UPDATE DELETE SELECT
Le Langage de Controcircle de Transaction (LCT ou en anglais TCL Transaction Control Language) pour
la gestion des transactions (validation ou annulation de modifications de donneacutees dans la BD)
Exemple de commandes COMMIT ROLLBACK
Fondamental Reacutefeacuterence SQL SQL-99 complete really
Gulutzan and Pelzer 1999 [Gulutzan and Pelzer 1999] httpsmariadbcomkbensql-99)2
Comtpleacutement Origine du SQL
Le modegravele relationnel a eacuteteacute inventeacute par EF Codd (Directeur de recherche du centre IBM de San Joseacute) en
1970 suite agrave quoi de nombreux langages ont fait leur apparition
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel2
IBM SystemR
IBM DB2
Ce sont ces langages qui ont donneacute naissance au standard SQL normaliseacute en 1986 au Eacutetats-Unis par lANSI
pour donner SQL86 (puis au niveau international par lISO en 1987)
Comtpleacutement Versions de SQL
SQL-86 (ou SQL-87) Version dorigine
SQL-89 (ou SQL-1) Ameacuteliorations mineures
SQL-92 (ou SQL-2) Extensions fonctionnelles majeures (types de donneacutees opeacuterations relationnelles
instruction LDD transactions etc
SQL-99 (ou SQL-3) Introduction du PSM (couche proceacutedurale sous forme de proceacutedure stockeacutees)
et du RO
SQL-2003 Extensions XML
SQL-2006 Ameacuteliorations mineures (pour XML notamment)
SQL-2008 Ameacuteliorations mineures (pour le RO notamment)
Remarque Version SQL et imtpleacutementations SGBD
Selon leur niveau dimpleacutementation de SQL les SGBD acceptent ou non certaines fonctions
Certains SGBD ayant entameacute certaines impleacutementations avant leur standardisation deacutefinitive ces
impleacutementations peuvent diffeacuterer de la norme
Creacuteation et alimentation de bases de donneacutees SQL
69
2 Creacuteer des tables en SQL (Langage de Deacutefinition de
Donneacutees)
Le LDD est la partie du langage SQL qui permet de creacuteer de faccedilon deacuteclarative les objets composant une
BD Il permet notamment la deacutefinition des scheacutemas des relations des contraintes dinteacutegriteacute des vues
Rappel Le code SQL peut ecirctre testeacute avec Db Discodbdiscocrztfr
2 - httpsmariadbcomkbensql-99
a) Lab I++
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
70
Question 2
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 3
Creacuteer une base de donneacutees en SQL correspondant au modegravele relationnel
Question 4
Inseacuterer les donneacutees fournies en exemple dans la base de donneacutees
b) Creacuteation de tables
Ratptpel
Quest ce que le SQL
Introduction
La creacuteation de table est le fondement de la creacuteation dune base de donneacutees en SQL
Deacutefinition Creacuteation de table
La creacuteation de table est la deacutefinition dun scheacutema de relation en intension par la speacutecification de tous les
attributs le composant avec leurs domaines respectifs
Syntaxe
CREATE TABLE nom_table ( nom_colonne1 domaine1 nom_colonne2 domaine2 nom_colonneN domaineN )
1 2 3 4 5 6
Exemtple
CREATE TABLE Personne ( Nom VARCHAR(25) Prenom VARCHAR(25) Age NUMERIC(3) )
1 2 3 4 5
Atention Contrainte dinteacutegriteacute
La deacutefinition des types nest pas suffisante pour deacutefinir un scheacutema relationnel il faut lui adjoindre
la deacutefinition de contraintes dinteacutegriteacute qui permette de poser les notions de cleacute dinteacutegriteacute
reacutefeacuterentielle de restriction de domaines etc
Creacuteation et alimentation de bases de donneacutees SQL
71
c) Domaines de donneacutees
Introduction
Un attribut dune relation est deacutefini pour un certain domaine ou type Les types de donneacutees disponibles en
SQL varient dun SGBD agrave lautre on peut neacuteanmoins citer un certain nombre de types standards que lon
retrouve dans tous les SGBD
Fondamental Les types standard
INTEGER ou INT SMALLINT
NUMERIC(X)
DECIMAL(XY) ou NUMERIC(XY)
FLOAT(X) REAL
CHAR(X)
VARCHAR(X)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HHMMSS)
Les tytpes numeacuteriques standard
Les nombres entiers
INTEGER (ou INT) et SMALLINT permettent de coder des entiers sur 4 octets (2147483648 agrave
2147483647) ou 2 octets (-32768 agrave 32767)
Les nombres entiers
NUMERIC(X) deacutesigne un entier de X chiffres au maximum
Les nombres deacutecimaux
DECIMAL(XY) ougrave X et Y sont optionnels et deacutesignent respectivement le nombre de chiffres maximum
pouvant composer le nombre et le nombre de chiffres apregraves la virgule
NUMERIC(XY) est un synonyme standard
Les nombres agrave virgule flottante
FLOAT(X) avec X deacutefinissant la preacutecision (nombre de bits de codage de la mantisse)
REAL est un synonyme standard de FLOAT(24)
Conseil FLOAT versus DECIMAL
Il est conseilleacute dutiliser DECIMAL qui est un nombre exact plutocirct que FLOAT qui est un nombre approximatif
si la preacutecision requise est suffisante FLOAT sera reacuteserveacute typiquement agrave des calculs scientifiques neacutecessitant
un degreacute de preacutecision supeacuterieur
Les tytpes chaicircne de caractegraveres standard
On distingue principalement les types CHAR(X) et VARCHAR(X) ougrave X est obligatoire et deacutesigne la longueur de
la chaicircne
CHAR deacutefinit des chaicircnes de longueur fixe (compleacuteteacutee agrave droites par des espaces si la longueur est
infeacuterieure agrave X)
et VARCHAR des chaicircnes de longueurs variables
Creacuteation et alimentation de bases de donneacutees SQL
72
CHAR et VARCHAR sont geacuteneacuteralement limiteacutes agrave 255 caractegraveres La plupart des SGBD proposent des types tels
que TEXT ou CLOB (Character Long Object) pour repreacutesenter des chaicircnes de caractegraveres longues jusquagrave
65000 caractegraveres par exemple
Les tytpes date standard
Les types date dont introduits avec la norme SQL2 On distingue
DATE qui repreacutesente une date selon un format de type AAAA-MM-JJ
et DATETIME qui repreacutesente une date plus une heure dans un format tel que AAAAMM-JJ HHMMSS
Comtpleacutement Les autres tytpes
En fonction du SGBD il peut exister de nombreux autres types On peut citer par exemple
MONEY pour repreacutesenter des deacutecimaux associeacutes agrave une monnaie
BOOLEAN pour repreacutesenter des booleacuteens
BLOB (pour Binary Long Oject) pour repreacutesenter des donneacutees binaires tels que des documents
multimeacutedia (images bitmap videacuteo etc)
d) La valeur NULL Labsence de valeur repreacutesenteacutee par la valeur NULL est une information fondamentale en SQL quil ne faut
pas confondre avec la chaicircne espace de caractegravere ougrave bien la valeur 0 Il ne sagit pas dun type agrave proprement
parler mais dune valeur possible dans tous les types
Fondamental
Par deacutefaut en SQL NULL fait partie du domaine il faut lexclure explicitement par la clause NOT
NULL apregraves la deacutefinition de type si on ne le souhaite pas Syntaxe
CREATE TABLE nom de table ( 1
CREATE TABLE nom_table ( nom_colonne1 domaine1 NOT NULL
nom_colonne2 domaine2
nom_colonneN domaineN NOT NULL )
2 3 4 5 6 7
e) Contraintes dinteacutegriteacute
Fondamental
PRIMARY KEY (ltliste dattibutsgt)
UNIQUE (ltliste dattibutsgt)
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt)
CHECK (ltconditiongt)
Une contrainte dinteacutegriteacute est une regravegle qui deacutefinit la coheacuterence dune donneacutee ou dun ensemble de donneacutees
de la
Creacuteation et alimentation de bases de donneacutees SQL
73
BD
Il existe deux types de contraintes
sur une colonne unique
ou sur une table lorsque la contrainte porte sur une ou plusieurs colonnes
Les contraintes sont deacutefinies au moment de la creacuteation des tables
Deacutefinition Contraintes dinteacutegriteacute sur une colonne
Les contraintes dinteacutegriteacute sur une colonne sont
PRIMARY KEY deacutefinit lattribut comme la cleacute primaire
UNIQUE interdit que deux tuples de la relation aient la mecircme valeur pour lattribut
REFERENCES ltnom tablegt (ltnom colonnesgt) controcircle linteacutegriteacute reacutefeacuterentielle entre lattribut et la
table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur de lattribut speacutecifieacute dans la condition dans le
cadre dune restriction de domaine
Deacutefinition Contraintes dinteacutegriteacute sur une table
Les contraintes dinteacutegriteacute sur une table sont
PRIMARY KEY (ltliste dattibutsgt) deacutefinit les attributs de la liste comme la cleacute primaire
UNIQUE (ltliste dattibutsgt) interdit que deux tuples de la relation aient les mecircmes valeurs pour
lensemble des attributs de la liste
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt) controcircle linteacutegriteacute
reacutefeacuterentielle entre les attributs de la liste et la table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur des attributs speacutecifieacutes dans la condition dans le
cadre dune restriction de domaine Syntaxe
CREATE TABLE nom de table ( CREATE TABLE nom_table ( nom_colonne1 domaine1 ltcontraintes colonne1gt nom_colonne2 domaine2 ltcontraintes colonne2gt nom_colonneN domaineN ltcontraintes colonneNgt
1 2 3 4 5 6
ltcontraintes de tablegt )
7 8
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) UNIQUE
(Nom Prenom) )
1 2 3 4 5 6 7 8
Remarque Cleacute candidate
La clause UNIQUE NOT NULL sur un attribut ou un groupe dattributs deacutefinit une cleacute candidate non primaire
Creacuteation et alimentation de bases de donneacutees SQL
74
Remarque
Les contraintes sur une colonne et sur une table peuvent ecirctre combineacutees dans la deacutefinition dun mecircme scheacutema
de relation
Remarque
Une contrainte sur une colonne peut toujours ecirctre remplaceacutee par une contrainte sur une table
f) Exemple de contraintes dinteacutegriteacute
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) Codepostal INTEGER(5) Pays VARCHAR(50) UNIQUE (Nom Prenom) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) CHECK (Initiale = LEFT(Pays 1)) PRIMARY KEY (CP Pays) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
Dans la deacutefinition de scheacutema preacuteceacutedente on a poseacute les contraintes suivantes
La cleacute primaire de Personne est NdegSS et la cleacute primaire de Adresse est (CP Pays)
Nom Preacutenom ne peuvent pas ecirctre null et (Nom Preacutenom) est une cleacute
Age doit ecirctre compris entre 18 et 65 et Initiale doit ecirctre la premiegravere lettre de Pays (avec la fonction
LEFT qui renvoie la sous chaicircne agrave gauche de la chaicircne passeacutee en premier argument sur le nombre de
caractegraveres passeacutes en second argument)
Mariage est cleacute eacutetrangegravere vers Personne et (Codepostal Pays) est une cleacute eacutetrangegravere vers Adresse
Exemtple Reacuteeacutecriture avec uniquement des contraintes de table
Creacuteation et alimentation de bases de donneacutees SQL
75
CREATE TABLE Personne ( NdegSS CHAR(13) Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) Mariage CHAR(13) Codepostal INTEGER(5) Pays VARCHAR(50) PRIMARY KEY (NdegSS) UNIQUE (Nom Prenom) CHECK (Age BETWEEN 18 AND 65) FOREIGN KEY (Mariage) REFERENCES Personne(NdegSS) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) PRIMARY KEY (CP Pays) CHECK
(Initiale = LEFT(Pays 1)) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22
Ce scheacutema est strictement le mecircme que le preacuteceacutedent simplement les contraintes ont toutes eacuteteacute reacuteeacutecrites
comme des contraintes de table
g) Exercice Les instructions SQL ci-apregraves ont-elles pu permettre de creacuteer le scheacutema des trois relations instancieacutees ci-dessous
CREATE TABLE A ( A1 CHAR(255) A2 CHAR(255) A3 CHAR(255) A4 CHAR(255) ) CREATE TABLE B ( B1 CHAR(255) B2 CHAR(255) B3 CHAR(255) B4 CHAR(255) B5 CHAR(255) B6 CHAR(255) B7 CHAR(255) ) CREATE TABLE C ( C1 CHAR(255) C2 CHAR(255) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Oui
Non
Creacuteation et alimentation de bases de donneacutees SQL
76
3 Inseacuterer modifier et supprimer des donneacutees en SQL
(Langage de Manipulation de Donneacutees)
Objectifs
Maicirctriser les bases du SQL pour entrer modifier et effacer des donneacutees dans les
tables
a) Exercice Quelle valeur renvoie la derniegravere instruction SQL de la liste ci-dessous
CREATE TABLE t ( a integer b integer c integer)
INSERT INTO t VALUES (0 0 0)
INSERT INTO t VALUES (1 0 0)
INSERT INTO t SELECT FROM t
SELECT sum(a) + count(b) FROM t
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
b) Insertion de donneacutees Le langage SQL fournit des instructions pour ajouter des nouveaux tuples agrave une relation Il offre ainsi une
interface standard pour ajouter des information dans une base de donneacutees
Il existe deux moyens dajouter des donneacutees soit par fourniture directe des valeurs des proprieacuteteacutes du tuple agrave
ajouter soit par seacutelection des tuples agrave ajouter dans une autre relation
Syntaxe Insertion directe de valeurs
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) VALUES (ltListe ordonneacutee
des valeurs agrave affecter aux proprieacuteteacutes speacutecifieacutees cidessusgt) 1 2
Exemtple Insertion directe de valeurs
INSERT INTO Virement (Date Montant Objet) VALUES (14-07-1975 1000 Prime de naissance)
1 2
Syntaxe Insertion de valeurs tpar lintermeacutediaire dune seacutelection
Creacuteation et alimentation de bases de donneacutees SQL
77
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) SELECT 1 2
Linstruction SELECT projetant un nombre de proprieacuteteacutes identiques aux proprieacuteteacutes agrave valoriser
Exemtple Insertion de valeurs tpar lintermeacutediaire dune seacutelection
INSERT INTO Credit (Date Montant Objet) SELECT Date Montant Annulation de deacutebit FROM Debit WHERE DebitDate = 25-12-2001
1 2 3 4
Dans cet exemple tous les deacutebits effectueacutes le 25 deacutecembre 2001 sont re-creacutediteacutes pour le mecircme montant (et
agrave la mecircme date) avec la mention annulation dans lobjet du creacutedit Ceci pourrait typiquement reacutealiseacute en cas
de deacutebits erroneacutes ce jour lagrave
Remarque
Les proprieacuteteacutes non valoriseacutees sont affecteacutees agrave la valeur NULL
Il est possible de ne pas speacutecifier les proprieacuteteacutes agrave valoriser dans ce cas toutes les proprieacuteteacutes de la
relation seront consideacutereacutees dans leur ordre de deacutefinition dans la relation (agrave nutiliser que dans les cas
les plus simples)
c) Mise agrave jour de donneacutees Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation
Syntaxe Mise agrave jour directe de valeurs
1 UPDATE ltNom de la relationgt
2 SET ltListe daffectations Proprieacuteteacute=Valeur Proprieacuteteacute=Valeurgt 3 WHERE ltCondition pour filtrer les tuples agrave mettre agrave jourgt
1 UPDATE r
2 SET a=1 b=x 3 WHERE c=0
Exemtple Mise agrave jour directe de valeurs
UPDATE Compte SET Monnaie=Euro WHERE Monnaie=Franc
1 2 3
Exemtple Mise agrave jour tpar calcul sur lancienne valeur
UPDATE Compte SET Total=Total 655957 WHERE Monnaie=Euro
1 2 3
Creacuteation et alimentation de bases de donneacutees SQL
78
d) Suppression de donneacutees Le langage SQL fournit une instruction pour supprimer des tuples existants dans une relation
Syntaxe
DELETE FROM ltNom de la relationgt WHERE ltCondition pour filtrer les tuples agrave supprimergt
1 2
Exemtple Sutptpression de tous les tutples dune relation
DELETE FROM FaussesFactures 1
Exemtple Sutptpression seacutelective
DELETE FROM FaussesFactures WHERE Auteur=Moi
1 2
4 Supprimer et modifier des tables en SQL (Langage de
Deacutefinition de Donneacutees)
Le LDD permet de creacuteer les objets composant une BD de faccedilon deacuteclarative Il permet notamment la
deacutefinition des scheacutemas des relations la deacutefinition des contraintes dinteacutegriteacute la deacutefinition de vues
relationnelles
a) Suppression dobjets Il est possible de supprimer des objets de la BD tels que les tables ou les vues
Syntaxe
DROP lttype objetgt ltnom objetgt 1
Exemtple
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
79
DROP TABLE Personne DROP VIEW Employe
1 2
b) Modification de tables
Introduction
Linstruction ALTER TABLE permet de modifier la deacutefinition dune table (colonnes ou contraintes) preacutealablement
creacuteeacutee
Cette commande absente de SQL-89 est normaliseacutee dans SQL-92
Syntaxe Ajout de colonne
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de colonnegt
1 2
Syntaxe Sutptpression de colonne
ALTER TABLE ltnom de tablegt DROP ltnom de colonnegt
1 2
Syntaxe Ajout de contrainte
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de contrainte de tablegt
1 2
RemarqueModification de table sans donneacutee sans la commande ALTER
Pour modifier une table ne contenant pas encore de donneacutee la commande ALTER nest pas indispensable
lon peut supprimer la table agrave modifier (DROP) et la recreacuteer telle quon la souhaite Notons neacuteanmoins que si
la table est reacutefeacuterenceacutee par des clauses FOREIGN KEY cette suppression sera plus compliqueacutee car il faudra
eacutegalement supprimer et recreacuteer les tables reacutefeacuterenccedilantes (ce qui ce complique encore si ces derniegraveres
contiennent des donneacutees)
RemarqueModification de table avec donneacutees sans la commande ALTER
Pour modifier une table contenant des donneacutees la commande ALTER nest pas indispensable On peut en effet
1 Copier les donneacutees dans une table temporaire de mecircme scheacutema que la table agrave modifier
2 Supprimer et recreacuteer la table agrave modifier avec le nouveau scheacutema 3 Copier les donneacutees depuis la table temporaire vers la table modifieacutee
c) Exemple de modifications de tables
Table initiale
Soit une table initiale telle que deacutefinie ci-apregraves
Creacuteation et alimentation de bases de donneacutees SQL
80
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) prenom
VARCHAR(50) PRIMARY KEY
(pk_n) )
1 2 3 4 5 6
Modifications
On deacutecide dapporter les ameacutenagements suivants agrave la table on deacutefinit nom comme UNIQUE et on supprime
le champ prenom
ALTER TABLE Personne ADD UNIQUE (nom)
ALTER TABLE Personne DROP prenom
1 2 3 4 5
Table finale
La table obtenue apregraves modification est identique agrave la table qui aurait eacuteteacute deacutefinie directement telle que ci-
apregraves
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) PRIMARY KEY (pk_n) UNIQUE
(nom) )
1 2 3 4 5 6
B Exercices
1 The show
[30 minutes] Soit le scheacutema relationnel suivant deacutecrivant un systegraveme de reacuteservations de places de spectacles
SPECTACLE (nospectacleint nomstr dureacuteeint typetheacuteacirctre|danse|concert) SALLE (nosalleint nbplacesint) REPRESENTATION (datedate nospectacle=gtSPECTACLE nosalle=gtSALLE prixdecimal)
1 2 3
En faisant les suppositions suivantes
On gegravere un espace de spectacles ayant un ensemble de salles (deacutecrit par la relation SALLE)
On suppose que pour un jour donneacute et une salle donneacutee il ny a quun seul spectacle repreacutesenteacute
Question 1
Retro-concevoir le MCD en UML
Question 2
Proposer des contraintes dinteacutegriteacute reacutealistes pour ce scheacutema (en franccedilais)
Question 3
Creacuteation et alimentation de bases de donneacutees SQL
81
Proposer une deacutefinition du scheacutema en SQL qui prenne en compte certaines de ces contraintes
Question 4
Inseacuterer des donneacutees reacutealistes dans votre scheacutema afin de veacuterifier son bon fonctionnement
2 Du producteur au consommateur
[30 min] Soit le modegravele relationnel suivant
Producteur(raison_socialechaicircne(25) villechaicircne(255)) Consommateur(loginchaicircne(10)
emailchaicircne(50) nomchaicircne(50)prenomchaicircne(50) villechaicircne(255)) Produit(identier descriptionchaicircne(100) produit-par=gtProducteur consommepar-
login=gtConsommateur consomme-par-email=gtConsommateur)
1 2
3
On ajoute que
(nomprenomville) est une cleacute candidate de Consommateur
Tous les produits sont produits
Tous les produits ne sont pas consommeacutes
Question 1
Reacutetro-concevez le modegravele conceptuel sous-jacent agrave ce modegravele relationnel
Question 2
Eacutetablissez le code LDD standard permettant dimpleacutementer ce modegravele en SQL
Question 3
Inseacuterez les donneacutees dans votre base de donneacutees correspondant aux assertions suivantes
Lentreprise de Compiegravegne Pommes Picardes SARL a produit 4 lots de pommes et 2 lots de cidre
Il existe trois utilisateurs consommateurs dans la base donc les adresses mails sont
AlUncompiegnefr - BobDeuxcompiegnefr - CharlieTroiscompiegnefr
Ce sont des employeacutes de la ville de Compiegravegne qui habitent cette ville Leur mail est construit sur le
modegravele PrenomNomcompiegnefr Leur login est leur preacutenom
Question 4
Modifiez les donneacutees de votre base de donneacutees pour inteacutegrer les assertions suivantes
1 lots de pommes a eacuteteacute consommeacutes par Al Un
2 lots de pomme ont eacuteteacute consommeacute par Bob Deux
Tous les lots de cidre ont eacuteteacute consommeacutes par Al Un
Question 5
Charlie Trois nayant rien consommeacute modifiez votre base de donneacutees afin de le supprimer de la base
82
VI - Algegravebre relationnelle
A Cours
1 Opeacuterateurs fondamentaux projection restriction et
jointure
Objectifs
Connaicirctre et savoir utiliser les opeacuterateurs relationnels de projection restriction
produit et jointure
a) Introduction La repreacutesentation dinformation sous forme relationnelle est inteacuteressante car les fondements matheacutematiques
du relationnel outre quils permettent une modeacutelisation logique simple et puissante fournissent eacutegalement
un ensemble de concepts pour manipuler formellement linformation ainsi modeacuteliseacutee
Ainsi une algegravebre relationnelle sous forme dun ensemble dopeacuterations formelles permet dexprimer des
questions ou requecirctes poseacutees agrave une repreacutesentation relationnelle sous forme dexpressions algeacutebriques
Lalgegravebre relationnelle est composeacutee par les cinq opeacuterateurs de base et les trois opeacuterateurs additionnels
suivants
Opeacuterateurs de base
- Union - Diffeacuterence - Projection - Restriction
VI
Algegravebre relationnelle
83
- Produit carteacutesien
Opeacuterateurs additionels
- Intersection - Jointure - Division
Fondamental Algegravebre relationnelle et SQL
Les questions formuleacutees en algegravebre relationnelle sont la base des questions formuleacutees en SQL
pour interroger une base de donneacutees relationnelle
b) Employeacutes et deacutepartements
[30 minutes] Soit les deux relations EMP et DEPT ci-apregraves
EMP (ENO ENOM PROF SAL COMM DNO=gtDEPT(DNO)) DEPT (DNO DNOM DIR=gtEMP(ENO) VILLE)
1 2
ENO numeacutero demployeacute cleacute
ENOM nom de lemployeacute
PROF profession (directeur nest pas une profession)
SAL salaire
COMM commission (un employeacute peut ne pas avoir de commission)
DNO numeacutero de deacutepartement auquel appartient lemployeacute
DNO numeacutero de deacutepartement cleacute
DNOM nom du deacutepartement
DIR numeacutero demployeacute du directeur du deacutepartement
VILLE lieu du deacutepartement (ville)
Eacutecrire en algegravebre relationnelle les requecirctes permettant dobtenir les informations suivantes
Question 1
Lister les employeacutes ayant des revenus supeacuterieurs agrave 10000 euros
Question 2
Trouver le nom et la profession de lemployeacute numeacutero 10
Question 3
Lister les noms des employeacutes qui travaillent agrave Paris
Question 4
Trouver le nom du directeur du deacutepartement Commercial
Question 5
Trouver les professions des directeurs des deacutepartements
Question 6
Algegravebre relationnelle
84
Trouver le nom des directeurs de deacutepartement ayant comme profession Ingeacutenieur
c) Projection
Deacutefinition Projection
La projection est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La projection de R1 sur
une partie de ses attributs A1 A2 produit une relation R2 dont le scheacutema est restreint aux attributs
mentionneacutes en opeacuterande comportant les mecircmes tuples que R1 et dont les doublons sont eacutelimineacutes
Remarque Eacutelimination des doublons
Apregraves suppression dune partie des attributs du scheacutema la relation peut comporter des doublons Eacutetant donneacute
que lon ne pourrait plus identifier ces doublons les uns par rapport aux autres la seule solution senseacutee est
donc de consideacuterer que deux doublons sont eacutequivalents et donc de nen garder quun seul dans la relation
reacutesultante
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Dupont Pierre 20
Durand Jean 30
Tableau 8 Personne
Soit lopeacuteration suivante
R = Projection (Personne Nom Age) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont 20
Durand 30
Tableau 9 R
d) Restriction
Deacutefinition Restriction
La restriction est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La restriction de R1 eacutetant
donneacutee une condition C produit une relation R2 de mecircme scheacutema que R1 et dont les tuples sont les tuples
de R1 veacuterifiant la condition C
Algegravebre relationnelle
85
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Soit les tuples suivants
Dupont Pierre 20
Durand Jean 30
Tableau 10 Personne
Soit lopeacuteration suivante
R = Restriction (Personne Agegt25) 1
On obtient alors la relation R composeacutee de lunique tuple restant suivant
Durand Jean 30
Tableau 11 R
e) Produit
Deacutefinition Produit carteacutesien
Le produit carteacutesien est une opeacuteration binaire (cest agrave dire portant sur deux relations) Le produit de R1 par
R2 (eacutequivalent au produit de R2 par R1) produit une relation R3 ayant pour scheacutema la juxtaposition de ceux
des relations R1 et R2 et pour tuples lensemble des combinaisons possibles entre les tuples de R1 et ceux de
R2 Synonymes Produit
Remarque
Le nombre de tuples reacutesultant du produit de R1 par R2 est eacutegal au nombre de tuples de R1 fois le nombre de
tuples de R2
Remarque
Le nombre de colonne du produit de R1 par R2 est eacutegal au nombre de colonne de R1 plus le nombre de
colonnes de R2
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Algegravebre relationnelle
86
Durand Jean 30
Tableau 12 Homme
Tesla Model X
Citroeumln 2 CV
Tableau 13 Voiture
Soit lopeacuteration suivante
R = Produit (Homme Voiture) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X
Dupont Pierre 20 Citroeumln 2 CV
Durand Jean 30 Tesla Model X
Durand Jean 30 Citroeumln 2 CV
Tableau 14 R
Remarque
Le produit carteacutesien est rarement utiliseacute seul mais il est agrave la base de la jointure
f) Jointure
Deacutefinition Jointure
La jointure est une opeacuteration binaire (cest agrave dire portant sur deux relations) La jointure de R1 et R2 eacutetant
donneacute une condition C portant sur des attributs de R1 et de R2 de mecircme domaine produit une relation R3
ayant pour scheacutema la juxtaposition de ceux des relations R1 et R2 et pour tuples lensemble de ceux obtenus
par concateacutenation des tuples de R1 et de R2 et qui veacuterifient la condition C
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 15 Homme
Algegravebre relationnelle
87
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV Dupont
Tableau 16 Voiture
Soit lopeacuteration suivante
R = Jointure (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Dupont Pierre 20 Citroeumln 3 CV Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Tableau 17 R
(Dupont Pierre 20 Dupont Georges 1) (Dupont Pierre 20 Dupont Jacques 3)
1 2
Fondamental
La jointure est lopeacuteration qui permet de rassembler les informations seacutepareacutees entre plusieurs
tables et reacutefeacuterenceacutees par des cleacutes eacutetrangegraveres
Remarque Otpeacuteration additionnelle
La jointure nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit et la restriction
g) Exercice Quelles sont les expressions relationnelles eacutequivalentes agrave
Projection ( Jointure (R1 R2 R1A1=R2A1) R1A1 R2A2) 1
Jointure ( Projection(R1 A1) Projection(R2 A2) R1A1=R2A1)
Projection ( Jointure (R2 R1 R2A1=R1A1) R1A1 R2A2)
Projection ( Restriction ( Produit(R1 R2) R1A1=R2A1) R1A1 R2A2)
Produit (R1 R2 R1A1=R2A1 R1A1 R2A2)
Algegravebre relationnelle
88
2 Opeacuterateurs compleacutementaires
a) Jointure naturelle
Deacutefinition Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition est leacutegaliteacute entre les attributs
de mecircme nom de R1 et de R2 Il est donc inutile de speacutecifier la condition dans une jointure naturelle elle
reste toujours implicite
Exemtple
Soit deux relations R1 (A B C) et R2 (A D) lopeacuteration Jointure(R1R2R1A=R2A) est eacutequivalente agrave
lopeacuteration JointureNaturelle(R1R2)
Remarque
Pour appliquer une jointure naturelle il faut que les deux relations opeacuterandes aient au moins un attribut ayant
le mecircme nom en commun
b) Jointure externe
Introduction
La jointure est une opeacuteration qui entraicircne la perte de certains tuples ceux qui appartiennent agrave une des deux
relations opeacuterandes et qui nont pas de correspondance dans lautre relation Il est neacutecessaire dans certains
cas de palier cette lacune et lon introduit pour cela la notion de jointure externe
Deacutefinition Jointure externe
La jointure externe entre R1 et R2 est une jointure qui produit une relation R3 agrave laquelle on ajoute les tuples
de R1 et de R2 exclus par la jointure en compleacutetant avec des valeurs nulles pour les attributs de lautre
relation
Deacutefinition Jointure externe gauche
La jointure externe gauche entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les
tuples de R1 (cest agrave dire la relation de gauche) ayant eacuteteacute exclus
Synonymes Jointure gauche
Deacutefinition Jointure externe droite
Objectifs
Maicirctriser lalgegravebre relationnelle
Algegravebre relationnelle
89
La jointure externe droite entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les tuples
de R2 (cest agrave dire la relation de droite) ayant eacuteteacute exclus
Bien entendu une jointure externe droite peut ecirctre reacuteeacutecrite par une jointure externe gauche (et
reacuteciproquement) en substituant les relations opeacuterandes R1 et R2
Synonymes Jointure droite
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Martin Georges 40
Tableau 18 Homme
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV NULL
Tableau 19 Voiture
Soit lopeacuteration suivante
R = JointureExterne (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Martin Georges 40 NULL NULL NULL
NULL NULL NULL Citroeumln 3 CV NULL
Tableau 20 R
Une jointure externe gauche naurait renvoyeacute que les trois premiers tuples et une jointure externe droite
naurait renvoyeacutee que les deux premiers et le dernier tuple
Algegravebre relationnelle
90
c) Opeacuterateurs ensemblistes
Atention Les opeacuterateurs ensemblistes sont des relations binaires (cest agrave dire entre deux relations) portant
sur des relations de mecircme scheacutema
Deacutefinition Union
Lunion de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee de
lensemble des tuples appartenant agrave R1 etou agrave R2
Deacutefinition Difeacuterence
La diffeacuterence entre deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema
constitueacutee de lensemble des tuples de R1 nappartenant pas agrave R2 Notons que la diffeacuterence entre R1 et R2
nest pas eacutegale agrave la diffeacuterence entre R2 et R1
Deacutefinition Intersection
Lintersection de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee
de lensemble des tuples appartenant agrave la fois agrave R1 et agrave R2 Notons que lintersection nest pas une opeacuteration
de base car elle est eacutequivalent agrave deux opeacuterations de diffeacuterence successives
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Femme (Nom Preacutenom Age)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 21 Homme
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 22 Femme
Soit lopeacuteration suivante
R = Union (Homme Femme) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20
Durand Jean 30
Algegravebre relationnelle
91
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 23 R
La diffeacuterence entre Homme et Femme (respectivement entre Femme et Homme) renvoie la relation Homme
(respectivement Femme) car aucun tuple nest commun aux deux relations Lintersection entre Homme est
Femme est vide pour la mecircme raison
Remarque Union externe
Il est possible de deacutefinir une opeacuteration dunion externe qui permet de reacutealiser lunion de deux relations de
scheacutema diffeacuterent en ramenant les relations aux mecircmes scheacutemas et en les compleacutetant avec des valeurs nulles
d) Division
Deacutefinition Division
La division est une opeacuteration binaire (cest agrave dire portant sur deux relations) La division de R1 par R2 sachant
que R1 et R2 ont au moins un attribut commun (cest agrave dire de mecircme nom et de mecircme domaine) produit
une relation R3 qui comporte les attributs appartenant agrave R1 mais nappartenant pas agrave R2 et lensemble des
tuples qui concateacuteneacutes agrave ceux de R2 donnent toujours un tuple de R1
Exemtple
Soit les deux relations suivantes
Pratique (Homme Meacutetier Salaire) Meacutetier (Metier)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Ingeacutenieur 35
Durand Professeur 40
Dupont Ingeacutenieur 45
Martin Ingeacutenieur 50
Tableau 24 Pratique
Ingeacutenieur
Professeur
Tableau 25 Meacutetier
Soit lopeacuteration suivante
R = Division (Homme Meacutetier) 1
Algegravebre relationnelle
92
On obtient alors la relation R composeacutee des tuples suivants
Dupont 35
Tableau 26 R
Meacutethode Reacutetponse aux questions Pour tous les
La division permet de reacutepondre aux questions du type Donnez toutes les personnes qui pratiquent tous les
meacutetiers de la relation meacutetier
Remarque Otpeacuteration additionnelle
La division nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit la restriction et la
diffeacuterence
e) Proposition de notations Introduction Il existe plusieurs syntaxes pour eacutecrire des opeacuterations dalgegravebre relationnelle certaines inspireacutees de lalgegravebre
classiques dautres reposant sur des notations graphiques Nous proposons une notation fonctionnelle qui a
le meacuterite decirctre facile agrave eacutecrire et decirctre lisible Si cette notation peut parfois perdre en simpliciteacute lorsquelle
concerne un nombre eacuteleveacute dopeacuterateurs il est possible de deacutecomposer une opeacuteration compliqueacutee afin de
lalleacuteger
Syntaxe
R = Union (R1 R2) R = Diffeacuterence (R1 R2) R = Intersection (R1 R2) R = Projection (R1 A1 A2 ) R = Restriction (R1 condition) R = Produit (R1 R2) R = Jointure (R1 R2 condition) R = JointureNaturelle (R1 R2) R = JointureExterne (R1 R2 condition) R = JointureGauche (R1 R2 condition) R = JointureDroite (R1 R2 condition) R = Division (R1 R2)
1 2 3 4 5 6 7 8 9
10 11 12
Exemtple Notation syntheacutetique
R = Projection(Restriction(R1 A1=1 AND A2=2) A3) 1
Exemtple Notation deacutecomtposeacutee
R = Restriction(R1 A1=1 AND A2=2) R = Projection (R A3)
1 2
Algegravebre relationnelle
93
f) Exercice Soit les deux relations R1 et R2 suivantes deacutefinies en extension
A B
1 A
2 B
3 C
Tableau 27 R1
A
1
2
Tableau 28 R2
Combien de tuples renvoie lopeacuteration relationnelle suivante
R3 = JointureNaturelle (Intersection (Projection(R1A) R2) R2) 1
g) Opeacuterateurs de base et additionnels Reacuteeacutecrivez les opeacuterateurs additionnels suivants agrave partir dopeacuterateurs de base
Question 1
Reacuteeacutecrivez Intersection agrave partir de Diffeacuterence
Question 2
Reacuteeacutecrivez Jointure agrave partir de Produit et Restriction
Algegravebre relationnelle
94
B Exercices
1 Faire du Cineacutema
[30 minutes] On considegravere les deux relations suivantes
FILMS (titre pays anneacutee reacutealisateur dureacutee) ACTEURS (titre acteur)
1 2
ougrave les attributs ont les significations et les types suivants
titre titre dun film (chaicircne 50 caractegraveres)
pays pays dougrave un film est originaire (chaicircne 10 caractegraveres)
annee anneacutee de sortie du film (entier 4 chiffres)
realisateur nom du reacutealisateur du film (chaicircne 20 caractegraveres)
duree dureacutee du film en minutes (entier 3 chiffres)
acteur nom dacteur (chaicircne 20 caractegraveres)
La relation FILMS donne pour chaque film identifieacute par son titre le pays lanneacutee de sortie reacutealisateur et la
dureacutee
La relation ACTEURS donne pour chaque film lensemble des principaux acteurs
Agrave laide de lalgegravebre relationnelle exprimer les requecirctes suivantes
Question 1
Lister les films franccedilais (titre anneacutee reacutealisateur)
Question 2
Donnez les anneacutees de sortie des films dans lesquels lacteur Jean GABIN a joueacute
Question 3
Trouver les acteurs qui ont tourneacute avec Franccedilois Truffaut comme reacutealisateur
Question 4
Trouver tous les acteurs qui ont eacuteteacute partenaires de lactrice Catherine Deneuve
Question 5
Lister les films dans lesquels le reacutealisateur est aussi acteur
Question 6
Lister les reacutealisateurs nayant joueacute comme acteurs que dans des films quils ne reacutealisaient pas eux-mecircmes
Question 7
Lister les reacutealisateurs ayant joueacute comme acteurs dans des films quils ne reacutealisaient pas eux-mecircmes
Question 8
Donnez les acteurs qui jouent dans tous les films de Franccedilois TRUFFAUT
Algegravebre relationnelle
95
2 Qiz Algegravebre relationnelle
Exercice 1 Quelles sont les opeacuterations relationnelles qui appliqueacutees sur les relations instancieacutees cidessous renvoient un ensemble non nul de tuples
Num Nom Famille
1 Ours Mammifegravere
2 Truite Poisson
3 Homme Mammifegravere
4 Martinshypecirccheur Oiseau
Tableau 29 Animal
Num Nom
1 Forecirct
2 Montagne
3 Ciel
4 Riviegravere
5 Mer
Tableau 30 Environnement
Animal Environnement
1 1
1 2
1 4
2 4
4 3
Tableau 31 Habiter
Mangeur Mangeacute Freacutequence
1 2 Souvent
1 3 Rarement
1 4 Rarement
4 2 Souvent
3 1 Rarement
Algegravebre relationnelle
96
3 2 Souvent
Tableau 32 Manger
Restriction( Projection (Animal Nom Famille) Famille=Mammifegravere)
Restriction( Jointure( Jointure (Animal Habiter AnimalNum=HabiterAnimal) Environnement
EnvironnementNum=HabiterEnvironnement) AnimalNum=3)
Restriction( JointureExterneGauche( Animal Habiter
AnimalNum=HabiterAnimal) AnimalNom=Homme)
Jointure( Animal Manger AnimalNum=MangerMangeur AND AnimalNum=MangerMangeacute)
Exercice 2 Soit le scheacutema relationnel
R1(X Y) R2(X Y)
1 2
Quelles sont les opeacuterations relationnelles eacutequivalentes agrave lopeacuteration
Projection( JointureNaturelle(R1R2) R1X) 1
JointureNaturelle(Projection(R1 X) Projection(R2 X))
Projection( Selection (Produit(R1 R2) R1X=R2X AND R1Y=R2Y) R1X)
Projection( Union( R1 R2) R1X)
Projection( JointureExterne ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Projection( Jointure ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Algegravebre relationnelle
97
Exercice 3 Soit la relation instancieacutee suivante
A B C
1 1 0
1 0 1
0 1 1
Tableau 33 Relation R1
Quelles relations sont retourneacutees par lopeacuteration relationnelle suivante
R2 = JointureNaturelle(R1 R1) 1
1 1 0
1 0 1
0 1 1
Tableau 34 R2a
1 1 0
1 0 1
0 1 1
1 1 0
1 0 1
0 1 1
Tableau 35 R2b
1 1 1
0 0 0
Tableau 36 R2c
1 1 0 1 1 0
1 0 1 1 0 1
0 1 1 0 1 1
Algegravebre relationnelle
98
Tableau 37 R2d
R2a
R2b
R2c
R2d
Une relation vide (aucun tuple)
3 Le retour des eacutecoliers
[45 minutes] Soit le scheacutema relationnel suivant
IMMEUBLE (ADI NBETAGES DATEC PROP) APPIM (ADI NAPR OCCUP TYPE SUPER ETAGE) PERSONNE (NOM AGE PROF ADR NAPR) EacuteCOLE (NOMEC ADEC DIR) CLASSE (NOMEC NCL MAITRE) ENFANT (NOMP PRENOM AN NOMEC NCL)
1 2 3 4 5 6
Avec la signification suivante
Relation IMMEUBLE
ADI adresse dimmeuble cleacute on fait lhypothegravese pour simplifier que ladresse identifie de maniegravere
unique un immeuble NBETAGES nombre deacutetages dun immeuble
DATEC date de construction (anneacutee)
PROP nom du proprieacutetaire de limmeuble qui est une personne
Relation APPIM (Appartement) ADI
adresse dimmeuble
NAPR numeacutero dappartement
OCCUP occupant de lappartement (nom de la personne ayant signeacute le contrat de location
eacuteventuellement aucun)
TYPE type de lappartement (Studio F2 )
SUPER superficie de lappartement
ETAGE eacutetage ougrave se situe lappartement
Relation PERSONNE
NOM nom de personne cleacute on fait lhypothegravese pour simplifier que ce nom est unique sur lensemble
des personnes que lon considegravere dans la base
AGE acircge de la personne
PROF profession de la personne
ADR adresse de la reacutesidence dune personne il sagit dun immeuble NAPR numeacutero
dappartement
Relation EacuteCOLE
NOMEC nom dune eacutecole cleacute
ADEC adresse dune eacutecole
DIR nom du directeur
Algegravebre relationnelle
99
Relation CLASSE
NOMEC nom dune eacutecole
NCL nom de la classe eg CP1 CE2 CE3 etc MAITRE nom
de linstituteur
Relation ENFANT
NOMP nom de la personne responsable de lenfant cleacute eg pegravere megravere etc
PRENOM preacutenom de lenfant
AN anneacutee de naissance
NOMEC nom dune eacutecole
NCL nom de la classe
La relation IMMEUBLE deacutecrit un ensemble dimmeubles Chaque immeuble a un proprieacutetaire La relation APPIM
deacutecrit pour chaque immeuble lensemble des appartements qui le compose (il y a au mimimum un appartement
par immeuble) Chaque appartement peut heacuteberger plusieurs personnes mais il y en a une qui est responsable
(par exemple la personne qui a signeacute le contrat de location) et qui est deacutesigneacutee par lattribut OCCUP Si
lappartement est inoccupeacute il prend la valeur NULL La relation PERSONNE deacutecrit un ensemble de personnes
ADR et NAPR repreacutesentent ladresse ougrave reacuteside une personne Une personne peut avoir plusieurs enfants deacutecrits
par la relation ENFANT Pour simplifier on ne considegravere que les enfants allant agrave leacutecole primaire Les eacutecoles et
les classes sont deacutecrites dans les relations EacuteCOLE et CLASSE chaque eacutecole est composeacutee au minimum dune
classe et chaque classe est au moins freacutequenteacutee par un enfant
Question 1
Donner ladresse des immeubles ayant plus de 10 eacutetages et construits avant 1970
Question 2
Donner les noms des personnes qui habitent dans un immeuble dont ils sont proprieacutetaires
Question 3
Donner les noms des personnes qui ne sont pas proprieacutetaires
Question 4
Donner les adresses des immeubles posseacutedeacutes par des informaticiens dont lacircge est infeacuterieur agrave 40 ans
Question 5
Donner la liste des occupants (nom acircge profession) des immeubles posseacutedeacutes par DUPONT
Question 6
Donner le nom et la profession des proprieacutetaires dimmeubles dans lesquels il y a des appartements vides
Question 7
Donner les noms des maicirctres qui habitent dans le mecircme immeuble (agrave la mecircme adresse) quau moins un de
leurs eacutelegraveves (on suppose que les enfants vivent sous le mecircme toit que leur parents)
Question 8
Donner ladresse de limmeuble la date de construction le type dappartement et leacutetage ougrave habitent chacun
des maicirctres des enfants de DUPONT
Algegravebre relationnelle
100
101
Qestions de synthegravese
Pourquoi est-il fondamental mais difficile de parvenir agrave un MCD correct
Eacutenoncer quelques actions agrave mener pour reacutealiser une speacutecification geacuteneacuterale de lexistant et des besoins
Quest ce qui diffeacuterencie fondamentalement un MCD dun MLD
Questions de synthegravese
102
Quels sont les principaux eacuteleacutements du diagramme de classes UML
Quelles sont les diffeacuterences et points communs entre la diagramme de classe UML et le modegravele E-A
eacutetendu
Questions de synthegravese
103
Quest ce quun domaine
Comment identifie-t-on un attribut dune relation
Comment identifie-t-on un enregistrement dune relation
Questions de synthegravese
104
Quand doit-on ajouter des cleacutes artificielles
Quelle problegraveme pose la redondance et comment le reacutesoudre
A quoi sert le LDD
Questions de synthegravese
105
Quel rapport y-a-t il entre le LDD et le concept de relation
Pourquoi la jointure est-elle un opeacuterateur essentiel
Questions de synthegravese
106
Quels sont les opeacuterateurs algeacutebriques de base Quels sont les autres opeacuterateurs Quest ce qui les diffeacuterencie
Quels sont les opeacuterateurs ensemblistes Quest ce qui les caracteacuterise
Pourquoi la jointure est-elle un opeacuterateur essentiel
Quest ce qui diffeacuterencie une jointure externe dune jointure classique
107
Glossaire
Cleacute artificielle
Une cleacute artificielle est un attribut ajouteacute agrave une relation afin didentifier ses enregistrements On fait appel agrave
une cleacute artificielle lorsque la relation ne comporte aucune cleacute naturelle ou que ses cleacutes naturelles sont jugeacutees
inadapteacutees agrave lidentification au sein de la base de donneacutees
Extension
Lextension est lexplicitation dun domaine par leacutenonciation exhaustive de lensemble des objets du domaine
Elle soppose agrave linstension qui est une description abstraite des caracteacuteristiques du domaine
Exemple bleu rouge vert
Contre-exemple Le domaine des couleurs
Intension
Lintension est lexplicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa
compreacutehension abstraite geacuteneacuterale)
Elle soppose agrave lextension qui est leacutenonciation exhaustive de lensemble des objets du domaine
Exemple Le domaine des couleurs
Contre-exemple bleu rouge vert
108
Signification des abreacuteviations
- ANSI American National Standards Institute
- BD Base de Donneacutees
- E-A Entiteacute-Association
- ISO International Standardization Organization
- LCD Langage de Controcircle de Donneacutees
- LDD Langage de Deacutefinition de Donneacutees
- LMD Langage de Manipulation de Donneacutees
- OMG Object Management Group
- PSM Persistent Stored Modules
- RO Relationnel-Objet
- SGBD Systegraveme de Gestion de Bases de Donneacutees
- SGBDR Systegraveme de Gestion de Bases de Donneacutees Relationnelles
- SQL Structured Query Language
- UML Unified Modeling Language
- XML eXtensible Markup Language
Reacutefeacuterences
[dbdiscocrztfr] httpdbdiscocrztfr3
109
3 - httpdbdiscocrztfr
Bibliographie
[Arribe 2014] ARRIBE THIBAUT 2014 Conception des chaicircnes eacuteditoriales documentariser lactiviteacute et structurer le graphe documentaire pour ameacuteliorer la maicirctrise de la reacuteeacuteditorialisation Universiteacute de Technologie de
Compiegravegne Meacutemoire de Doctorat httpicsutcfr~tha
[Codd70] CODD EF A relational model for large shared data banks Communications de lACM juin 1970
[Delmal01] DELMAL PIERRE SQL2 SQL3 applications agrave Oracle De Boeck Universiteacute 2001
[Gardarin99] GARDARIN GEORGES Bases de donneacutees objet et relationnel Eyrolles 1999
[Gulutzan and Pelzer 1999] GULUTZAN PETER PELZER TRUDY 1999 SQL-99 complete really CMP books
[Muller98] MULLER PA Modeacutelisation objet avec UML Eyrolles 1998
[Roques04] ROQUES PASCAL VALLEacuteE FRANCK UML 2 en action De lanalyse des besoins agrave la conception J2EE
ISBN 2212-11462-1 (3egraveme eacutedition) Paris Eyrolles 2004 385 p architecte logiciel
[Rothenberg et al 1989] ROTHENBERG JEFF WIDMAN LAWRENCE E LOPARO KENNETH A NIELSEN NORMAN R 1989 The nature of modeling Rand vol3027
[Soutou02] SOUTOU CHRISTIAN De UML agrave SQL Conception de bases de donneacutees Eyrolles 2002
[Tardieu83] TARDIEU H ROCHFELD A COLLETI R Meacutethode MERISE Tome 1 Principes et outils Les Editions dOrganisation 1983
Webographie
[w_journaldunetcom(1)] MORLON JEacuteROcircME UML en 5 eacutetapes httpdeveloppeurjournaldunetcomdossiersalg_umlshtml 2004
[w_journaldunetcom(2)] BORDERIE XAVIER Cinq petits conseils pour un scheacutema UML efficace
httpdeveloppeurjournaldunetcomtutorielcpt031013cpt_uml5conseilsshtml 2004
[w_objecteering] Objecteering software httpwwwobjecteeringcom [2002-septembre]
[w_umlfreefr] UML en Franccedilais httpumlfreefr consulteacute en 2002
Questions de synthegravese
110
Index
11 p54 Error Reference source
not found 1N p53 Error Reference source
not found Algegravebre p48 71 71 72 73 74 75
76 76 76 78 79 80 ALTER TABLE p67 68 Analyse p9 11 12 13 Application p6 Association pError Reference
source not found 31 Error
Reference source not found 32 44
Error Reference source not found
53 Error Reference source not
found 53 Error Reference source
not found 54 Error Reference
source not found 54 Attribut p28 32 40 41 41 42 44
51 52 54 Base de donneacutees p17 BD p4
Cardinaliteacute p32 Error
Reference source not found Error
Reference source not found Carteacutesien p74 CHECK p62 63 Classe p27 50 54 Cleacute p41 42 42 44 Cleacute artificielle p42 Cleacute candidate p42 Cleacute primaire p42 42 Cleacute signifiante p42 Codd p39 Composition pError Reference
source not found Error Reference
source not found Conception p9 11
Conceptuel p9 11 13 15 26 27
50 53
CREATE TABLE p59
Creacuteation p58 Deacuteclaratif p58 DELETE p65 66 Diagramme p26 Diffeacuterence p78 Division p79 Domaine p39 48 48 60 61 DROP p67 E-A p32 Enregistrement p40 41 Externe p15 76 FOREIGN KEY p62 63 INSERT p65 65 Instance p15 Interne p15 Intersection p78 Jointure p75 76 76 Langage p8 65 LDD p8 58 67 Lien p44 LMD p8 65 Logique p38 38 39 39 41 50
53 Manipulation p71 Meacutethode p30 Modegravele p13 23 38 39 39 41 45
46 Modeacutelisation p42 Modification p67 NM p53 N M pError Reference source not
found Naturelle p76 NOT NULL p62 63 Null p61 OMG p27 Opeacuteration p30 48 Passage p50 53 PostgreSQL p17
PRIMARY KEY p62 63 Produit p48 48 74
Projection p72 Proprieacuteteacute p28 32 Reacutefeacuterence p44 REFERENCES p62 63 Relation p40 41 41 42 44 44 45
48 Relationnel p5 Error
Reference source not found 38 38
39 39 41 45 46 48 48 50 50
51 Error Reference source not
found 52 53 53 Error Reference
source not found 53 Error Reference source not found 54
Error Reference source not found 54 71
71 76 80 Relationnel-objet p38 39 Requecircte p65 Restriction p73 Scheacutema p15 45 46 SGBD p5 Speacutecifications p12 SQL p8 58 65 67 Suppression p67 Table p58 67 Tuple p40 Type p60 61 UML p13 26 27 27 28
Error Reference source not found
30 31 Error Reference source not found 32 50
50 51 Error Reference source not
found 52 53 53 Error Reference source not
found 53 Error Reference source not
found 54 Error Reference source not found
54 Union p78 UNIQUE p62 63 UPDATE p65 66
wwwsambaconsultantscom 111
Contenus annexes
- Deacutefinition du mouvement NoSQL
Deacutefinition
Le NoSQL regroupe de nombreuses bases de donneacutees reacutecentes pour la plupart qui se caracteacuterisent par une logique de repreacutesentation de donneacutees non relationnelle et qui noffrent donc pas une interface de requecirctes en SQL
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-dedonnees-nosql4
NoSQL signifie Not Only SQL et non pas No SQL il sagit de compleacutements aux SGBDR pour des
besoins speacutecifiques et non de solutions de remplacement Exemtple
BD orienteacutee cleacute-valeur
BD orienteacutee graphe
BD orienteacutee colonne
BD orienteacutee document
Comtpleacutement
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql5
- Transformation des meacutethodes par des vues
Meacutethode
Lorsquune meacutethode est speacutecifieacutee sur un diagramme UML pour une classe C si cette meacutethode est une fonction
relationnelle (elle renvoie une unique valeur et elle peut ecirctre reacutesolue par une requecircte SQL) alors on creacutee une
vue qui reprend les attributs de la classe C et ajoute des colonnes calculeacutees pour les meacutethodes
Remarque Atributs deacuteriveacutes
Les attributs deacuteriveacutes eacutetant apparenteacutes agrave des meacutethodes ils peuvent eacutegalement ecirctre geacutereacutes par des vues
Contenus annexes
112
- Composition
Deacutefinition Association de comtposition
On appelle composition une association particuliegravere qui possegravede les proprieacuteteacutes suivantes
La composition associe une classe composite et des classes parties tel que tout objet partie appartient
agrave un et un seul objet composite Cest donc une association 1N (voire 11)
La composition nest pas partageable donc un objet partie ne peut appartenir quagrave un seul objet
composite agrave la fois
Le cycle de vie des objets parties est lieacute agrave celui de lobjet composite donc un objet partie disparaicirct
quand lobjet composite auquel il est associeacute disparaicirct
Remarque
La composition est une association particuliegravere (binaire de cardinaliteacute contrainte)
La composition nest pas symeacutetrique une classe joue le rocircle de conteneur pour les classes lieacutees elle
prend donc un rocircle particulier a priori
La composition est une agreacutegation avec des contraintes suppleacutementaires (non partageabiliteacute et cycle
de vie lieacute)
Image 14 Notation de la composition en UML
Atention Composition et cardinaliteacute
La cardinaliteacute cocircteacute composite est toujours de exactement 1
Cocircteacute partie la cardinaliteacute est libre elle peut ecirctre 01 1 ou bien 1
Image 15 Un livre
On voit bien ici quun chapitre na de sens que faisant partie dun livre quil ne peut exister dans deux livres
diffeacuterents et que si le livre nexiste plus les chapitres le composant non plus
Remarque Comtposition et entiteacutes faibles
Syntaxe
Contenus annexes
113
wwwsambaconsultantscom
La composition permet dexprimer une association analogue agrave celle qui relie une entiteacute faible agrave une entiteacute
identifiante en modeacutelisation E-A Lentiteacute de type faible correspond agrave un objet partie et lentiteacute identifiante
agrave un objet composite
Conseil Comtposition et atribut multivalueacute
Une composition avec une classe partie doteacutee dun seul attribut peut seacutecrire avec un attribut multivalueacute
Un attribut composeacute et multivalueacute peut seacutecrire avec une composition
Ratptpel Voir aussi
Attributs
Agreacutegation - p100
- Agreacutegation
Deacutefinition Association dagreacutegation
Lagreacutegation est une association particuliegravere utiliseacutee pour preacuteciser une relation toutpartie (ou
ensembleeacuteleacutement) on parle dassociation meacutereacuteologique
Elle possegravede la proprieacuteteacute suivante Lagreacutegation associe une classe agreacutegat et des classes parties tel que tout
objet partie appartient agrave au moins un objet agreacutegat
Remarque
Lagreacutegation est une association particuliegravere (binaire de cardinaliteacute libre)
Lagreacutegation nest pas symeacutetrique Syntaxe
Image 16 Notation de lagreacutegation en UML
La cardinaliteacute peut ecirctre exprimeacutee librement en particulier les instances de la classe Eacuteleacutement peuvent ecirctre
associeacutees agrave plusieurs instances de la classe Ensemble et mecircme de plusieurs classes
Atention
Lagreacutegation garde toutes les proprieacuteteacutes dune association classique (cardinaliteacute cycle de vie
etc) elle ajoute simplement une terminologie un plus preacutecise via la notion de toutpartie
- Explicitation des associations
Syntaxe Sens de lecture
Il est possible dajouter le sens de lecture du verbe caracteacuterisant lassociation sur un diagramme de classe
UML afin den faciliter la lecture On ajoute pour cela un signe lt ou gt (ou un triangle noir) agrave cocircteacute du nom
de lassociation
Contenus annexes
114
Syntaxe Rocircle
Il est possible de preacuteciser le rocircle joueacute par une ou plusieurs des classes composant une association afin den
faciliter la compreacutehension On ajoute pour cela ce rocircle agrave cocircteacute de la classe concerneacutee (parfois dans un petit
encadreacute colleacute au trait de lassociation
Exemtple
Image 17 Rocircle et sens de lecture sur une association
Deacutefinition Association reacuteflexive
Une association reacuteflexive est une association qui associe une classe avec elle-mecircme
Lexplicitation des associations est particuliegraverement utile dans le cas des associations reacuteflexives
- Associations ternaires
Image 18 Notation dune association ternaire
Conseil Ne tpas abuser des associations ternaires
Il est toujours possible de reacuteeacutecrire une association ternaire avec trois associations binaires en transformant
lassociation en classe
Conseil Pas de degreacute sutpeacuterieur agrave 3
En pratique on nutilise jamais en UML dassociation de degreacute supeacuterieur agrave 3
- Transformation des agreacutegations
Ratptpel Agreacutegation
Les associations de type agreacutegation se traitent de la mecircme faccedilon que les associations classiques
Syntaxe
Contenus annexes
115
wwwsambaconsultantscom
Graphique 12 Agreacutegation 1N
Classe1(ab)
Classe2(cda=gtClasse1)
Graphique 13 Agreacutegation NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
- Transformation des compositions
Meacutethode
Une composition
est transformeacutee comme une association 1N
puis on ajoute agrave la cleacute de la classe partie (dite cleacute locale) la cleacute eacutetrangegravere vers la classe composite pour
construire une cleacute primaire composeacutee
Graphique 14 Composition
Classe1(ab)
Classe2(ca=gtClasse1d)
Remarque Cleacute locale
Pour identifier une classe partie dans une composition on utilise une cleacute locale concateacuteneacutee agrave la cleacute eacutetrangegravere
vers la classe composite afin dexprimer la deacutependance entre les deux classes
Si une cleacute naturelle globale permet didentifier de faccedilon unique une partie indeacutependamment du tout on
preacutefeacuterera la conserver comme cleacute candidate plutocirct que de la prendre pour cleacute primaire
Contenus annexes
116
Si on la choisit comme cleacute primaire cela revient agrave avoir transformeacute la composition en agreacutegation en redonnant
une vie propre aux objets composants
Comtpleacutement Comtposition et entiteacutes faibles en E-A
Une composition est transformeacutee selon les mecircmes principes quune entiteacute faible en E-A
Comtpleacutement Atributs multivalueacutes et comtposeacutes
La transformation dun attribut composeacute multivalueacute donne un reacutesultat eacutequivalent agrave la transformation dune
composition
Classe1
a key b [0N] -b1 -b2
Graphique 15 Composition et attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
La transformation dune composition avec un seul attribut pour la classe composante donne un reacutesultat
eacutequivalent agrave la transformation dun attribut multivalueacute
Graphique 16 Composition et attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Ratptpel Voir aussi
Transformation des attributs
- Contrainte de cardinaliteacute minimale 1 dans les associations 1N
Ratptpel
Transformation des associations 1N
Meacutethode
a key
Classe1
0 N
( b1b2) local key
Contenus annexes
117
wwwsambaconsultantscom
Classe1
1 association 1N
Classe2
a key
b c key
d
Graphique 17 Association 1N
Si la cardinaliteacute est exactement 1 (11) cocircteacute 1 alors on ajoutera une contrainte de non nulliteacute sur la
cleacute eacutetrangegravere
si la cardinaliteacute est au moins 1 (1N) cocircteacute N on ajoutera une contrainte dexistence de tuples
reacutefeacuterenccedilant pour chaque tuple de la relation reacutefeacuterenceacutee
Classe1(ab)
Classe2(cda=gtClasse1)
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Graphique 18 Classe dassociation (1N)
Classe1(ab)
Classe2(cda=gtClasse1 e f) avec e KEY
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Comtpleacutement
Projection
- Contrainte de cardinaliteacute minimale 1 dans les associations NM
Ratptpel
Transformation des associations NM
Meacutethode
Si la cardinaliteacute est exactement au moins 1 (1N) dun cocircteacute etou de lautre alors des contraintes
dexistence simultaneacutee de tuple devront ecirctre ajouteacutee
Ce nest pas neacutecessaire si la cardinaliteacute est 0N
a key b
Classe1
c key d
Classe2
1 N 1
e loc al key f
Cl-A ssoc
Contenus annexes
118
Graphique 19 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Graphique 20 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Cl-Assoc(a=gtClasse1c=gtClasse2ef)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Comtpleacutement
Projection
- Transformation des associations 11 (approche geacuteneacuterale) Il existe deux solutions pour transformer une association 11
Avec deux relations on traite lassociation 11 comme une association 1N puis lon ajoute une
contrainte UNIQUE sur la cleacute eacutetrangegravere pour limiter la cardinaliteacute maximale agrave 1
Avec une seule relation on fusionne les deux classes en une seule relation
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 21 Association 11
Meacutethode Avec deux relations (cleacute eacutetrangegravere)
Une des deux relations est choisie pour porter la cleacute eacutetrangegravere
on ajoute les contraintes UNIQUE ou KEY (cleacute candidate) sur la cleacute eacutetrangegravere et si neacutecessaire une
contrainte imposant linstanciation simultaneacutee des deux relations
Classe1(abc=gtClasse2) avec c UNIQUE ou KEY
Classe2(cd)
a key b
Classe1
c key d
Classe2
1 N 1 N
e key f
ssoc Cl-A
Contenus annexes
119
wwwsambaconsultantscom
Contrainte (eacuteventuellement) PROJ(Classe1c)=PROJ(Classe2c) ou
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE ou KEY
Contrainte (eacuteventuellement) PROJ(Classe1a)=PROJ(Classe2a)
Meacutethode Avec une relation (fusion)
On creacuteeacute une seule relation contenant lensemble des attributs des deux classes on
choisit une cleacute parmi les cleacutes candidates
Classe12(abcd) avec c UNIQUE ou KEY ou
Classe21(cdab) avec a UNIQUE ou KEY
RemarqueFusion des relations dans le cas de la traduction de lassociation 11
Ce choix entre les deux meacutethodes sera conduit par une appreacuteciation du rapport entre
La complexiteacute introduite par le fait davoir deux relations lagrave ou une suffit
La pertinence de la seacuteparation des deux relations dun point de vue seacutemantique
Les pertes de performance dues agrave leacuteclatement des relations
Les pertes de performance dues au fait davoir une grande relation
Les questions de seacutecuriteacute et de sucircreteacute factoriseacutees ou non au niveau des deux relations
wwwsambaconsultantscom 4
I - Introduction geacuteneacuterale
aux bases de donneacutees
A Cours
Les BD sont neacutees agrave la fin des anneacutees 1960 pour combler les lacunes des systegravemes de fichiers et faciliter la
gestion qualitative et quantitative des donneacutees informatiques Les SGBD sont des applications informatiques
permettant de creacuteer et de geacuterer des BD (comme Oracle ou PostgreSQL par exemple)
Les BD relationnelles issues de la recherche de Codd sont celles qui ont connu le plus grand essor depuis les
anneacutees et qui reste encore aujourdhui les plus utiliseacutees On utilise des SGBDR pour les impleacutementer Le
langage SQL est le langage commun agrave tous les SGBDR ce qui permet de concevoir des BD relativement
indeacutependamment des systegravemes utiliseacutes
Les usages de BD se sont aujourdhui geacuteneacuteraliseacutes pour entrer dans tous les secteurs de lentreprise depuis
les petites bases utiliseacutees par quelques personnes dans un service pour des besoins de gestion de donneacutees
locales jusquaux bases qui gegraverent de faccedilon centraliseacutee des donneacutees partageacutees par tous les acteurs de
lentreprise
Laccroissement de lutilisation du numeacuterique comme outil de manipulation de toutes donneacutees (bureautique
informatique applicative etc) et comme outil dextension des moyens de communication (reacuteseaux) ainsi que
les eacutevolutions technologiques (puissance des PC Internet etc) ont rendu indispensable mais aussi
complexifieacute la probleacutematique des BD
Les conseacutequences de cette geacuteneacuteralisation et de cette diversification des usages se retrouvent dans leacutemergence
de solutions conceptuelles et technologiques nouvelles les bases de donneacutees du mouvement NoSQL
particuliegraverement utiliseacutees par les grands acteurs du web
I
Introduction geacuteneacuterale aux bases de donneacutees
5
wwwsambaconsultantscom
1 Notions fondamentales donneacutee base de donneacutees
systegraveme de gestion de bases de donneacutees
a) Base de donneacutees
Logiciel et donneacutees
Un logiciel informatique est composeacute de programmes cest agrave dire dinstructions donneacutees agrave lordinateur et de
donneacutees auxquelles sappliquent ces instructions
Par exemple un logiciel de traitement de texte est composeacute de fonctions - ouvrir copier coller inseacuterer une
image changer la police enregistrer - et de fichiers sur lesquels elles sappliquent Dans ce cas les fichiers
de traitement de texte sont les donneacutees
Deacutefinition Deacutefinition lacircche de base de donneacutees un ensemble de donneacutees
On appelle parfois base de donneacutees tout ensemble de donneacutees stockeacute numeacuteriquement et pouvant servir agrave un
ou plusieurs programme De ce point de vue des fichiers sur un disque dur un fichier de tableur voire un
fichier de traitement de texte peuvent constituer des bases de donneacutees
Deacutefinition Deacutefinition restreinte de base de donneacutees un ensemble de donneacutees
structureacute
On appellera base de donneacutees un ensemble de donneacutees numeacuteriques qui possegravede une structure cest agrave dire
dont lorganisation reacutepond agrave une logique systeacutematique
On parlera de modegravele logique de donneacutees pour deacutecrire cette structure
Exemtple Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tableaux (appeleacutes relations)
espegravece eucaryote multicellulaire proprieacuteteacute
bacteacuteries false false
archeacutees false false
protistes true false
champignons true true deacutecompose
veacutegeacutetaux true true photosyntheacutetise
animaux true true ingegravere
Tableau 1 Base de donneacutees de classification classique des espegraveces animales
Fondamental Fonctions dune base de donneacutees
wwwsambaconsultantscom 6
Une base de donneacutees est structureacutee afin de pouvoir mieux reacutepondre agrave des fonctions
fondamentales en informatique telles que
Stocker linformation de faccedilon fiable (cest agrave dire ecirctre capable de restituer linformation
entreacutee dans le systegraveme)
Traiter de grands volumes de donneacutees (massification)
Traiter rapidement les donneacutees (optimisation)
Seacutecuriser les accegraves aux donneacutees (geacuterer les autorisations selon les utilisateurs)
Controcircler la qualiteacute des donneacutees (par exemple la coheacuterence par rapport agrave un modegravele preacute-
eacutetabli)
Partager les donneacutees (entre plusieurs applications deacutedieacutees agrave plusieurs meacutetiers)
Rendre accessible les donneacutees en reacuteseau (geacuterer la concurrence des accegraves parallegraveles)
b) Systegraveme de gestion de bases de donneacutees (SGBD)
Deacutefinition Systegraveme de Gestion de Bases de Donneacutees
Un SGBD est un logiciel qui prend en charge la structuration le stockage la mise agrave jour et la maintenance
dune base de donneacutees Il est lunique interface entre les informaticiens et les donneacutees (deacutefinition des scheacutemas
programmation des applications) ainsi quentre les utilisateurs et les donneacutees (consultation et mise agrave jour)
Introduction geacuteneacuterale aux bases de donneacutees
7
Exemtple Exemtples de SGBD
Oracle est un SGBD relationnel et relationnel-objet tregraves utiliseacute pour les applications professionnelles
PostgreSQL est un SGBD relationnel puissant qui offre une alternative libre (licence BSD) aux solutions
commerciales comme Oracle ou IBM
Access est un SGBD relationnel Microsoft qui offre une interface graphique permettant de concevoir
rapidement des applications de petite envergure ou de reacutealiser des prototypes
MongoDb est un SGBD non-relationnel libre (licence Apache) orienteacute document Il permet de geacuterer
facilement de tregraves grandes quantiteacutes de donneacutees - dans un format arborescent JSON - reacuteparties sur
de nombreux ordinateurs
Comtpleacutement SGBD relationnel et non-relationnel
Les SGBR relationnels (SGBDR) sont les plus courants des SGBD jusquau deacutebut des anneacutees 2000 la plupart
des bases de donneacutees eacutetaient relationnelles
Mais avec larriveacutee des geacuteants du web ces entreprises qui gegraverent des quantiteacutes eacutenormes de donneacutees comme
Google Amazon ou Facebook sest deacuteveloppeacute un mouvement important de deacuteveloppement de bases de
donneacutees nonrelationnelles eacutegalement appeleacutees NoSQL
c) Application de base de donneacutees Une base de donneacutees seule nest pas directement utilisable par un utilisateur humain elle nest utilisable que
par les informaticiens qui connaissent son langage de programmation et par les applications qui ont eacuteteacute
programmeacutees pour sen servir
Deacutefinition
On appelle application de base de donneacutees un logiciel informatique permettant agrave un utilisateur final de
manipuler (lire ou eacutecrire) les donneacutees dune base de donneacutees
Exemtple Atptplication web
Une application web est composeacutee dinterfaces en HTML qui permettent deacutecrire et de lire des donneacutees dans
une base de donneacutees via un langage applicatif comme par exemple PHP
Exemtple Twiter
Lapplication Twitter est composeacutee dinterfaces web
permettant dentrer des donneacutees (saisir son profil twitter
retwitter ) et de sortir des donneacutees (consulter un fil
twitter faire une recherche sur un hashtag) dune base
de donneacutees (Twitter utilise une base de donneacutees NoSQL
Apache Cassandra)
Cette base de donneacutees est stockeacutee sur les serveurs de
Twitter et elle contient tous les profils de tous les
utilisateurs tous les tweets tous les hashtags
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 8
Exemtple Comtpagnie aeacuterienne Une base de donneacutees de gestion de lactiviteacute dune compagnie aeacuterienne concerne les voyageurs les vols les
avions le personnel les reacuteservations
Une application agrave partir dune telle base de donneacutees pourra permettre la gestion des reacuteservations des
disponibiliteacutes des avions en fonction des vols agrave effectuer des affectations des personnels volants
Exemtple Atptplication de bureau Access
Avec un logiciel comme Access on peut reacutealiser agrave la fois une base de donneacutees et une application permettant
de manipuler cette base de donneacutees pour des besoins bureautiques simples
d) Donneacutee (en relationnel) table objet proprieacuteteacute domaine
atomiciteacute
Ratptpel Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tables (appeleacutes relations)
Chaque case de la table contient une information atomique
Deacutefinition Objet (ligne)
Chaque ligne de la table correspond agrave un objet que lon veut geacuterer dans la base de donneacutees une voiture une
personne une espegravece
Fondamental
Toutes les lignes dune mecircme table correspondent agrave des objets du mecircme type donc dans une
table on met soit des voitures soit des personnes mais on ne meacutelange pas les deux
Deacutefinition Protprieacuteteacute et domaine (colonne)
Chaque colonne de la table correspond agrave une proprieacuteteacute des objets qui se trouvent dans la table tous les
objets de la table partagent donc les mecircmes proprieacuteteacutes
Fondamental Domaine
Chaque colonne de la table est associeacutee agrave un domaine de valeur fixeacute a priori par exemple entier
texte booleacuteen
Deacutefinition Donneacutee en relationnel (cellule)
Une donneacutee en relationnel cest une cellule dune table qui correspond agrave la proprieacuteteacute dun objet
proprieacuteteacute 1 domaine
d1 proprieacuteteacute 2 domaine
d2
objet1 donneacutee 1 objet1 donneacutee 2
Introduction geacuteneacuterale aux bases de donneacutees
9
objet2 donneacutee 1 objet2 donneacutee 2
Tableau 2 Une table ou relation ( en relationnel)
Exemtple
espegravece domaine
texte eucaryote domaine
booleacuteen
bacteacuteries false
archeacutees false
Tableau 3 Exemple de relation instancieacutee
Atention Atomiciteacute
Pour que la base de donneacutees fonctionne correctement on veille agrave ne mettre quune seule donneacutee
par case cest le principe datomiciteacute en relationnel
espegravece domaine texte
bacteacuteries procaryotes unicellulaires
archeacutees procaryotes unicellulaires
protistes eucaryotes unicellulaires
champignons eucaryotes multicellulaires qui deacutecomposent
veacutegeacutetaux eucaryotes multicellulaires qui photosyntheacutetisent
animaux eucaryotes multicellulaires qui ingegraverent
Tableau 4 Un mauvais exemple de relation les donneacutees ne sont pas atomiques (il y a
plusieurs donneacutees par case de la table)
e) Langage de donneacutees lexemple du langage SQL
Deacutefinition Langage de donneacutees
Un langage de donneacutees est un langage informatique permettant de deacutecrire et de manipuler les scheacutemas et les
donneacutees dune BD
Synonymes Langage orienteacute donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 10
Fondamental SQL
SQL est le langage consacreacute aux SGBD relationnels et relationnels-objet
Il permet de
creacuteer des tables en deacutefinissant le domaine de chaque colonne
inseacuterer des lignes dans les tables
lire les donneacutees entreacutees dans la base de donneacutees
Exemtple Creacuteation de table en SQL (deacutefinition du scheacutema de donneacutees)
CREATE TABLE Etudiant ( NumEtu
integer PRIMARY KEY Nom varchar Ville varchar)
1 2 3 4
Cette instruction permet de creacuteer une relation Etudiant comportant les proprieacuteteacutes NumEtu Nom et Ville
de domaines respectivement entier texte et texte
Exemtple Insertion de ligne en SQL (creacuteation de donneacutees)
INSERT INTO Etudiant (NumEtu Nom Ville) VALUES (1 Holmes Londres) 1
Cette instruction permet de creacuteer leacutetudiant numeacutero 1 de nom Holmes qui habite la ville de Londres
Exemtple Manitpulation de donneacutees en SQL (extploitation des donneacutees)
SELECT Nom FROM Etudiant WHERE Ville = Compiegravegne
1 2 3
Cette instruction permet de rechercher les noms de tous les eacutetudiants habitant la ville de Compiegravegne
Comtpleacutement Autres langages de donneacutees
XQuery est un langage de donneacutees mobiliseacute dans les bases de donneacutees arborescentes XML
Les bases NoSQL proposent des langages de donneacutees speacutecifiques souvent inspireacutes du
SQL Par exemple le langage de MongoDB permet de manipuler une base de contenus JSON
2 Approche geacuteneacuterale pour la conception des bases de
donneacutees
a) Exercice Eacutetapes de la conception dune base de donneacutees
relationnelle Mettre dans lordre les eacutetapes de conception suivantes
1 Creacuteation du code SQL pour un SGBDR
2 Modeacutelisation conceptuelle en UML ou E-A
Introduction geacuteneacuterale aux bases de donneacutees
11
3 Eacutelaboration du modegravele logique en relationnel
4 Analyse de la situation existante et des besoins
Reacuteponse ___ ___ ___ ___
b) Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
Meacutethode Eacutetatpes de la concetption dune base de donneacutees
1 Analyse de la situation existante et des besoins (clarification) 2 Creacuteation dun modegravele conceptuel qui permet de repreacutesenter tous les aspects importants du problegraveme 3 Traduction du modegravele conceptuel en modegravele logique (et normalisation de ce modegravele logique) 4 Impleacutementation dune base de donneacutees dans un SGBD agrave partir du modegravele logique (et optimisation)
Graphique 1 Processus de conception dune base de donneacutees
On distingue quatre eacutetapes dans la conception dune base de donneacutees
Lanalyse
Elle consiste agrave eacutetudier le problegraveme et agrave consigner dans un document la note de clarification les
besoins les choix les contraintes
La modeacutelisation conceptuelle
Elle permet de deacutecrire le problegraveme poseacute de faccedilon non-formelle (en geacuteneacuterale graphique) en prenant
des hypothegraveses de simplification Ce nest pas une description du reacuteel mais une repreacutesentation
simplifieacutee dune reacutealiteacute
La modeacutelisation logique
Ele permet de deacutecrire une solution en prenant une orientation informatique geacuteneacuterale (type de SGBD
typiquement) formelle mais indeacutependamment de choix dimpleacutementation speacutecifiques
Limpleacutementation
Elle correspond aux choix techniques en terme de SGBD choisi et agrave leur mise en œuvre
(programmation optimisation)
Fondamental
Bien analyser le problegraveme poseacute en amont
BD solution proposeacutee
Domaine problegraveme poseacute
Modegravele Conceptuel
Modegravele Logique
Repreacutesenter
Impleacutementer
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 12
Bien modeacuteliser le problegraveme au niveau conceptuel avant de passer au niveau logique et agrave
limpleacutementation
Conseil Limtportance de leacutetatpe danalyse
La premiegravere eacutetape de la conception repose sur lanalyse de lexistant et des besoins De la qualiteacute de la
reacutealisation de cette premiegravere eacutetape deacutependra ensuite la pertinence de la base de donneacutees par rapports aux
usages Cette premiegravere eacutetape est donc essentielle et doit ecirctre meneacutee avec soins
Si la premiegravere eacutetape est fondamentale dans le processus de conception elle est aussi la plus deacutelicate En effet
tandis que des formalismes puissants existent pour la modeacutelisation conceptuelle puis pour la modeacutelisation
logique la perception de lexistant et des besoins reste une eacutetape qui repose essentiellement sur lexpertise
danalyse de lingeacutenieur
Conseil Limtportance de leacutetatpe de modeacutelisation concetptuelle
Eacutetant donneacutee une analyse des besoins correctement reacutealiseacutee la seconde eacutetape consiste agrave la traduire selon un
modegravele conceptuel Le modegravele conceptuel eacutetant formel il va permettre de passer dune speacutecification en
langage naturel et donc soumise agrave interpreacutetation agrave une speacutecification non ambiguumle Le recours aux
formalismes de modeacutelisation tels que E-A ou UML est donc une aide fondamentale pour parvenir agrave une
repreacutesentation qui ne sera plus lieacutee agrave linterpreacutetation du lecteur
La traduction dun cahier des charges speacutecifiant lexistant et les besoins en modegravele conceptuel reste neacuteanmoins
une eacutetape deacutelicate qui va conditionner ensuite lensemble de limpleacutementation informatique En effet les eacutetape
suivantes sont plus meacutecaniques dans la mesure ougrave un modegravele logique est deacuteduit de faccedilon systeacutematique du
modegravele conceptuel et que limpleacutementation logicielle est eacutegalement reacutealiseacutee par traduction directe du modegravele
logique
RemarqueLes eacutetatpes de traduction logique et dimtpleacutementation
Des logiciels speacutecialiseacutes (par exemple Objecteering [w_objecteering]) sont capables agrave partir dun modegravele
conceptuel dappliquer des algorithmes de traduction qui permettent dobtenir directement le modegravele logique
puis les instructions pour la creacuteation de la base de donneacutees dans un langage orienteacute donneacutees tel que SQL
Lexistence de tels algorithmes de traduction montre que les eacutetapes de traduction logique et dimpleacutementation
sont moins complexes que les preacuteceacutedentes car plus systeacutematiques
Neacuteanmoins ces eacutetapes exigent tout de mecircme des compeacutetences techniques pour optimiser les modegraveles logiques
(normalisation) puis les impleacutementations en fonction dun contexte de mise en œuvre mateacuteriel logiciel et
humain
c) Qatre eacutetapes pour reacuteduire la complexiteacute La reacutealisation dune base de donneacutees est une tacircche complexe le deacutecoupage en quatre eacutetapes permet de geacuterer
cette complexiteacute
Clarification ModeacutelisationConceptuelle ModeacutelisationLogique Im pleacutem entation
Conception en quatre eacutetapes
Introduction geacuteneacuterale aux bases de donneacutees
13
Lideacutee geacuteneacuterale est de ne pas meacutelanger la nature des tacircches typiquement on ne veut pas en mecircme temps
se poser des questions geacuteneacuterales relatives aux besoins (ce que je veux faire) et des questions techniques tregraves
speacutecifiques (comment repreacutesenter telle information)
Meacutethode
Lapproche est donc
de regarder agrave gauche on regarde le monde quand on clarifie on regarde la note de clarification
quand on fait le MCD on regarde le MCD quand on fait le MLD on regarde le MLD quand on
impleacutemente
et de ne pas regarder trop loin on anticipe deacutejagrave le MCD pendant la clarification mais on ne se
preacuteoccupe pas de questions dimpleacutementation quand on fait le MLD on ne se pose plus de question
sur le monde la clarification et le MCD ont ducirc deacutejagrave reacutepondre quand on impleacutemente on ne se pose
plus de question de modeacutelisation on soccupe des programmes de la machine
Fondamental
On peut toujours revenir sur une eacutetape la conception est iteacuterative mais on ne doit pas tout le
temps se poser tous les problegravemes en mecircme temps
d) Eacuteleacutements pour lanalyse de lexistant et des besoins La phase danalyse de lexistant et des besoins est une phase essentielle et complexe Elle doit aboutir agrave des
speacutecifications geacuteneacuterales qui deacutecrivent en langage naturel les donneacutees manipuleacutees et les traitements agrave
effectuer sur ces donneacutees
On se propose de donner une liste non exhaustive dactions agrave mener pour reacutediger de telles speacutecifications
Meacutethode Lanalyse de documents existants
La conception dune base de donneacutees sinscrit geacuteneacuteralement au sein dusages existants Ces usages sont
geacuteneacuteralement au moins en partie instrumenteacutes agrave travers des documents eacutelectroniques ou non (papier
typiquement) Il est fondamental danalyser ces documents et de recenser les donneacutees quils manipulent
Exemtple Exemtples de document existants agrave analyser
Fichiers papiers de stockage des donneacutees (personnel produits etc)
Formulaires papiers denregistrement des donneacutees (fiche didentification dun salarieacute fiche de
description dun produit bon de commande etc)
Documents eacutelectroniques de type traitement de texte (lettres mailing proceacutedures etc)
Documents eacutelectroniques de type tableurs (bilans statistiques calculs etc)
Bases de donneacutees existantes agrave remplacer ou avec lesquelles saccorder (gestion des salaires de la
production etc)
Intranet dentreprise (information teacuteleacutechargement de documents etc)
etc
Meacutethode Le recueil dextpertise meacutetier
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 14
Les donneacutees que la base va devoir manipuler sont toujours relatives aux meacutetiers de lentreprise et il existe
des experts qui pratiquent ces meacutetiers Le dialogue avec ces experts est une source importante dinformations
Il permet eacutegalement de fixer la terminologie du domaine
Exemtple Exemtples dextperts agrave consulter
Praticiens (secreacutetaires ouvrier controcircleurs etc)
Cadres (responsables de service contre-maicirctres etc)
Experts externes (clients fournisseurs etc)
etc
Meacutethode Le dialogue avec les usagers
La base de donneacutees concerne des utilisateurs cibles cest agrave dire ceux qui produiront et consommeront
effectivement les donneacutees de la base Il est neacutecessaire de dialoguer avec ces utilisateurs qui sont les
deacutetenteurs des connaissances relatives aux besoins reacuteels lieacutes agrave leur reacutealiteacute actuelle (aspects de lorganisation
fonctionnant correctement ou deacutefaillants) et agrave la reacutealiteacute souhaiteacutee (eacutevolutions lacunes etc)
Exemtple Exemtples dutilisateurs avec qui dialoguer
Personnes qui vont effectuer les saisies dinformation (agrave partir de quelles sources Quelle est leur
responsabiliteacute etc)
Personnes qui vont consulter les informations saisies (pour quel usage pour quel destinataire etc)
Personnes qui vont mettre agrave jour les informations (pour quelles raisons comment le processus est
enclencheacute etc)
etc
Meacutethode Leacutetude des autres systegravemes informatiques existants
la base de donneacutees va geacuteneacuteralement (et en fait quasi systeacutematiquement aujourdhui) sinseacuterer parmi un
ensemble dautres logiciels informatiques travaillant sur les donneacutees de lentreprise Il est important danalyser
ces systegravemes afin de mieux comprendre les meacutecanismes existants leurs forces et leurs lacunes et de preacuteparer
linteacutegration de la base avec ces autres systegravemes Une partie de ces systegravemes seront dailleurs souvent
eacutegalement des utilisateurs de la base de donneacutees tandis que la base de donneacutees sera elle mecircme utilisatrice
dautre systegravemes
Exemtple Exemtples dautres systegravemes coexistants agrave eacutetudier
Autres bases de donneacutees (les donneacutees sont elle disjointes ou partiellement communes avec celles de la
base agrave concevoir quelles sont les technologies logicielles sur lesquelles reposent ces BD etc)
Systegravemes de fichiers classiques (certains fichiers ont-ils vocations agrave ecirctre supplanteacutes par la base agrave ecirctre
geacuteneacutereacutes par la base agrave alimenter la base etc)
Applications (ces applications ont elles besoins de donneacutees de la base peuvent-elles lui en fournir
etc)
etc
Comtpleacutement Meacutethodes danalyse
Il existe des outils et meacutethodes danalyse en ingeacutenierie comme lanalyse fonctionnelle (AF) qui deacutepassent le
cadre de la conception des bases de donneacutees mais sont tout agrave fait compleacutementaires
Introduction geacuteneacuterale aux bases de donneacutees
15
e) Modeacutelisation conceptuelle de donneacutees Lobjection du modegravele conceptuel est de repreacutesenter le problegraveme agrave laide de repreacutesentations graphiques et
partiellement formelles
Les principales caracteacuteristiques du modegravele conceptuel sont
Une repreacutesentation graphique simple
Une puissance dexpression eacuteleveacutee pour un nombre de symboles raisonnables
Une lecture accessible agrave tous et donc un bon outil de dialogue entre les acteurs techniques et non
techniques
Une formalisation peu ambigueuml et donc un bon outil de speacutecification deacutetailleacutee
Remarque
Le modegravele nest pas encore formel donc certaines repreacutesentations peuvent ecirctre eacutequivoques mecircme si on a
leveacute de tregraves nombreuses ambiguiumlteacutes
E-A
La modeacutelisation conceptuelle en bases de donneacutees relationnelle eacutetait agrave lorigine faite avec le formalisme E-A
de la meacutethode MERISE
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 16
Modegravele E-A gestion de projets
UML
UML est un autre langage de modeacutelisation plus reacutecent que E-A et couvrant un spectre plus large que les
bases de donneacutees En tant que standard de lOMG et en tant que outil tregraves utiliseacute pour la programmation
orienteacutee objet il a supplanteacute la modeacutelisation E-A
Remarque
En BD on utilise uniquement le diagramme de classe dUML pour modeacuteliser conceptuellement les donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 17
Modegravele UML gestion de projets
f) Modeacutelisation logique de donneacutees
Deacutefinition Modegravele logique de donneacutees
Un modegravele logique de donneacutees est une description au moyen dun langage formel dun ensemble de donneacutees
Un scheacutema permet de deacutecrire la structure dune base de donneacutees en deacutecrivant lensemble des types de
donneacutees de la base Une instance de base de donneacutees est constitueacutee dun ensemble de donneacutees qui respectent
le scheacutema de la base
Synonyme scheacutema de donneacutees scheacutema
Exemtple Modegravele logique de donneacutees relationnel
Un modegravele logique de donneacutees relationnel permet de repreacutesenter une base de donneacutees relationnelles cest agrave
dire des tables des proprieacuteteacutes des domaines
Exemtple Scheacutema dune relation
Espece(nomchaicircne eucaryotebooleacuteen multicellulairebooleacuteen proprieacuteteacutechaicircne) 1
Exemtple Scheacutema dune base de donneacutees avec tplusieurs relations
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 18
Etudiant (numentier nomchaicircne villechaicircne) Module(numentier titrechaicircne) Inscription(numetuentier nummodentier anneacuteeentier(4))
1 2 3
Instance de base de donneacutees
Etudiant Module
172 Dupont Lille
173 Durand Paris
174 Martin Isabelle
1 SGBD
2 OS
Inscription 172 1 2016 172 2 2016 173 1 2015 174 2 2017
Comtpleacutement Exemtple de formalismes de modeacutelisation logique
Le modegravele CODASYL anteacuterieur au modegravele relationnel est un modegravele hieacuterarchique (Tardieu 1983
[Tardieu83])
Le modegravele relationnel (tabulaire) est le modegravele dominant agrave la base des SGBDR
Le modegravele relationnel-objet (adaptation des modegraveles relationnels et objets au cadre des SGBD) est
actuellement en croissance
Dautres modegraveles (document graphe ) se deacuteveloppent dans le cadre du mouvement NoSQL
Comtpleacutement Voir aussi
Bregraveve introduction aux bases de donneacutees NoSQL - p98
g) Synthegravese Les trois niveaux de conception Niveau Conceptuel
Modegravele conceptuel graphique -
Exemples E-A
UML
Niveau Logique
Scheacutema logique indeacutependant dun SGBD -
Exemples Relationnel
Objet
Relationnel-Objet
Graphe
Document
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 19
Niveau Informatique
Impleacutementation pour un SGBD particulier -
Exemples Oracle
MySQL
PostgreSQL
DB2
Access
SQLServer
MongoDB
Cassandra
Modeacutelisation Modeacutelisation Im pleacutem entation Clarification Conceptuelle
Logique
AF UML Relationnel SQL Conception en quatre eacutetapes exemple de
formalismes
B Exercices
1 Deacutecouverte dune base de donneacutees relationnelle
Cette seacuterie dexercices est destineacutee agrave faire expeacuterimenter un SGBDR afin de se familiariser avec les concepts
classiques des bases de donneacutees relationnelles
Pour la reacutealisation de cet exercice se connecter sur le site dbdiscocrztfr et conserver la fenecirctre du navigateur
ouverte
Db Discodbdiscocrztfr
Objectifs
Deacutecouvrir le modegravele relationnel Deacutecouvrir un SGBDR Deacutecouvrir le langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 20
a) Notion de table
Creacuteer sa premiegravere table Une base de donneacutees relationnelle est principalement constitueacutee de tables (ou laquo relations raquo dougrave le nom
de relationnel) Une table est basiquement un eacuteleacutement dorganisation de linformation constitueacute de colonnes
(ou attributs) et de lignes (ou enregistrements)
Nous allons dans un premier temps creacuteer le scheacutema dune table cest agrave dire deacutefinir ses colonnes Pour cela
nous utiliserons linstruction SQL LDD laquo CREATE raquo
Question 1
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
CREATE TABLE tEtu ( pk_numSecu CHAR(13) PRIMARY KEY k_numEtu
VARCHAR(20) UNIQUE NOT NULL nom
VARCHAR(50) prenom VARCHAR(50))
1 2 3 4 5
Introduction geacuteneacuterale aux bases de donneacutees
21
Alimenter la table Une fois les colonnes de la table deacutefinies nous pouvons en deacuteclarer les lignes Nous utilisons pour cela
linstruction SQL LMD laquo INSERT raquo
Question 2
Exeacutecuter les deux instructions suivantes et deacutecrire ce quelles font
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 AB3937098X Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2820475001124 XGB67668 Durand Anne)
1 2 3 4
Interroger la table Une fois une table creacuteeacutee il est possible agrave tout moment den inspecter le contenu Nous utilisons pour cela
linstruction SQL LMD laquo SELECT raquo
Question 3
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT pk_numSecu k_numEtu nom prenom FROM tEtu
1 2
Question 4
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT nom prenom FROM tEtu WHERE pk_numSecu=2820475001124
1 2 3
b) Notion de contraintes
Contrainte de domaine Lorsque lon deacutefinit une table on deacutefinit eacutegalement des contraintes sur cette table qui serviront agrave controcircler
son inteacutegriteacute par rapport agrave des regravegles que lon aura fixeacutees
Cest notamment le cas des contraintes de domaine qui permettent de veacuterifier quune colonne prend ses
valeurs parmi un ensemble deacutetermineacute (les chaicircnes de 10 caractegraveres au plus les entier de 1 agrave 1000 etc)
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi le systegraveme renvoie une erreur
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (XXXXXXXXXXXXXXX XXXXXX Dupont Pierre)
1 2
Question 2
Donner un exemple de contrainte qui nest pas formuleacutee dans la deacutefinition de la table tEtu et que lon aurait
pu souhaiter
Indice
Pour indiquer quun eacuteleacutement est obligatoire on ajoute la clause NOT NULL apregraves la deacutefinition de son domaine dans linstruction CREATE TABLE
Introduction geacuteneacuterale aux bases de donneacutees
22
Contraintes de cleacute Les contraintes de cleacute se composent de contraintes duniciteacute et de contraintes de non nulliteacute Elles
permettent dassurer que toutes les valeurs dune colonne seront diffeacuterentes pour chaque ligne
Question 3
Exeacutecuter les trois instructions suivantes (les unes apregraves les autres) et expliquer ce qui se passe
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 HGYT67655Y Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 XGB67668 Durand Anne) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 HGYT67655Y Duchemin Aline)
1 2 3 4 5 6
Question 4
Explorer le contenu de votre table en exeacutecutant linstruction suivante et veacuterifier vos explications preacuteceacutedentes
SELECT FROM tEtu
1 2
Question 5
Pourrait-on inseacuterer dans la table une seconde personne qui aurait le preacutenom Aline et le nom Duchemin
Pourquoi
c) Notion de reacutefeacuterences
Cleacute eacutetrangegravere Une base de donneacutees est en geacuteneacuteral constitueacutee de plusieurs tables Ces tables se reacutefeacuterencent entre elles en
utilisant une cleacute eacutetrangegravere cest agrave dire quune des colonnes de la table est utiliseacutee pour faire reacutefeacuterence agrave la
colonne dune autre table
On va agrave preacutesent creacuteer une seconde table qui permettra dassocier des Uniteacutes de Valeurs (UVs) aux eacutetudiants
puis inseacuterer des valeurs dans cette table
CREATE TABLE tUv ( pk_code
CHAR(4) NOT NULL fk_etu
CHAR(13) NOT NULL PRIMARY KEY (pk_code fk_etu) FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu))
1 2 3 4 5
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF26 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF29 1800675001066)
1 2 3 4 5 6
Question 1
Introduction geacuteneacuterale aux bases de donneacutees
23
Expliciter ce quexprime le contenu de la table tUv
Contraintes dinteacutegriteacute reacutefeacuterentielle Lorsque nous avons deacutefini la table tUv nous avons deacutefini une contrainte suppleacutementaire dite dinteacutegriteacute
reacutefeacuterentielle contrainte de type FOREIGN KEY
Question 2
En exeacutecutant les instructions suivantes expliquer quel est le rocircle dune contrainte dinteacutegriteacute reacutefeacuterentielle
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 2810592012232) INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1700792001278)
1 2 3 4
d) Projection restriction et jointure Linstruction SELECT du langage SQL LMD nous donne de larges possibiliteacutes pour interroger les tables dune
base de donneacutees Cette instruction se fonde notamment sur les opeacuterations matheacutematiques de lalgegravebre
relationnelle dont les principales sont la projection la restriction le produit et la jointure
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi cest une projection
SELECT nom prenom FROM tEtu
1 2
Question 2
Exeacutecuter linstruction suivante et expliquer pourquoi cest une restriction
SELECT FROM tEtu WHERE nom=Dupont
1 2 3
Question 3
Exeacutecuter linstruction suivante et expliquer pourquoi cest un produit (carteacutesien)
SELECT FROM tEtutUv
1 2
Question 4
Exeacutecuter linstruction suivante et expliquer pourquoi cest une jointure
SELECT FROM tEtu JOIN tUv ON pk_numSecu=fk_etu
1 2
Question 5
Exeacutecuter linstruction suivante et montrer quune jointure est la composition dun produit et dune restriction
SELECT FROM tEtutUv WHERE pk_numSecu=fk_etu
1 2 3
Introduction geacuteneacuterale aux bases de donneacutees
24
e) Fonctions et agreacutegats Linstruction SELECT permet eacutegalement deffectuer des calculs qui portent sur plusieurs lignes ce que lon
appelle des agreacutegats
Question 1
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT COUNT(pk_code) FROM tUv
1 2
WHERE fk_etu=1800675001066 3
Question 2
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT fk_etu COUNT(pk_code) FROM tUv GROUP BY fk_etu
1 2 3
Question 3
Compleacuteter la requecircte SQL suivante afin quelle renvoie pour chaque UV le nombre deacutetudiants inscrits
SELECT _______ COUNT(______) FROM tUv GROUP BY _______
1 2 3
Agrave lissue de cette seacuterie dexercices vous devez savoir deacutefinir les termes suivants
table ou relation
scheacutema relationnel
domaine
cleacute
cleacute eacutetrangegravere
opeacuterations de projection restriction jointure produit
Introduction geacuteneacuterale aux bases de donneacutees
25
2 Lab 0
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux meacutedicaments
avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi quune description
longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le nombre de pilules par boicircte
(qui est un nombre entier)
Ce problegraveme est un exemple tregraves simple que lon pourra modeacuteliser avec une base de donneacutees relationnelle agrave
une seule table
Vous pouvez tester vos instructions SQL ici Db Discodbdiscocrztfr
Question 1
Proposer une clarification du problegraveme (par exemple sous la forme dune liste des proprieacuteteacutes de la relation
viseacutee)
Question 2
Proposer un exemple de donneacutees
Question 3
Dessiner un modegravele conceptuel de donneacutees en UML Il ne contient quune seule classe
Indice Modeacutelisation conceptuelle de donneacutees
Question 4
Proposer un modegravele logique de donneacutees sous forme de scheacutema relationnel Il ne contient quune seule relation
Indice Modeacutelisation logique de donneacutees
Question 5
Proposer une impleacutementation en SQL standard de votre modegravele relationnel Il ne contient quune seule
instruction CREATE TABLE
Indice Langage de donneacutees lexemple du langage SQL
Question 6
Eacutecrivez les instructions SQL permettant dinseacuterer vos donneacutees de test dans votre base de donneacutees
Indice Langage de donneacutees lexemple du langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
26
27
II - Introduction agrave la
modeacutelisation
conceptuelle de donneacutees avec
UML
A Cours
La modeacutelisation conceptuelle est leacutetape fondatrice du processus de conception de BD Elle consiste agrave
abstraire le problegraveme reacuteel poseacute pour en faire une reformulation qui trouvera une solution dans le cadre
technologique dun
SGBD
Si le modegravele dominant en conception de bases de donneacutees a longtemps eacuteteacute le modegravele E-A le modegravele UML
se geacuteneacuteralise de plus en plus Nous proposons ici une introduction au diagramme de classes agrave travers la
repreacutesentation de classes et dassociations simples (il existe dautres diagrammes UML par exemple le
diagramme de cas et dautres primitives de repreacutesentation dans le diagramme de classe par exemple
lheacuteritage)
II
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
28
1 Notion de modegravele
a) Exercice Centre meacutedical [5 min]
Soit le modegravele conceptuel suivant repreacutesentant des visites dans un centre meacutedical Quelles sont les assertions vraies selon ce scheacutema
Image 1
Un patient peut effectuer plusieurs visites
Tous les patients ont effectueacute au moins une consultation
Un meacutedecin peut recevoir plusieurs patients pendant la mecircme consultation
Un meacutedecin peut prescrire plusieurs meacutedicaments lors dune mecircme consultation
Deux meacutedecins diffeacuterents peuvent prescrire le mecircme meacutedicament
b) Qest ce quun modegravele
Deacutefinition Modegravele
laquo Modeling in the broadest sense is the cost-effective use of something in place of something else for some
cognitive purpose It allows us to use something that is simpler safer or cheaper than reality instead of reality
for some purpose A model represents reality for the given purpose the model is an abstraction of reality in
the sense that it cannot represent all aspects of reality raquo (Rothenberg 1989 [Rothenberg et al 1989] citeacute
par Arribe 2014 [Arribe 2014])
laquo Systegraveme physique matheacutematique ou logique repreacutesentant les structures essentielles dune reacutealiteacute et capable
agrave son niveau den expliquer ou den reproduire dynamiquement le fonctionnement raquo (TLFi)
Fondamental Modegravele
Un modegravele est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser quelque chose
Objectifs
Savoir ce quest un modegravele
Savoir ce quest le langage UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
29
c) Qest ce quun modegravele en informatique
Deacutefinition Modegravele informatique
Un modegravele informatique est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser un traitement avec
un ordinateur
Comtpleacutement Numeacuterisation et abstraction Toute information numeacuterique a
eacuteteacute codeacutee selon un modegravele donneacute
laquo Tout numeacuterisation est une repreacutesentation de la reacutealiteacute sous la forme dune modeacutelisation numeacuterique Cette
modeacutelisation procegravede dune abstraction au sens ougrave cest une seacuteparation davec le reacuteel au sens ougrave cest une
construction destineacutee agrave la manipulation (algorithmique en loccurrence) et au sens ougrave cest une simplification
de la reacutealiteacute raquo
httpaswemayfrcotropism-preshtml1
d) Qest ce quun bon modegravele
Atention
Un modegravele est une abstraction une simplification de la reacutealiteacute ce nest pas la reacutealiteacute il nest
jamais complegravetement fidegravele par construction
Le seul modegravele complegravetement fidegravele agrave la reacutealiteacute est la reacutealiteacute elle-mecircme et ce nest donc pas un
modegravele
Exemtple La carte et le territoire
Une carte est un modegravele dun territoire Elle est une repreacutesentation simplifieacutee destineacute agrave un usage particulier
randonner agrave pied en veacutelo
se diriger en voiture sur des grands axes sur des axes secondaires
voler en avion de tourisme en avion de ligne
naviguer sur fleuve sur mer
eacutetudier les frontiegraveres dune reacutegion dun pays de la terre
eacutetudier la deacutemographie leacuteconomie
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
30
Fondamental
Agrave partir de cet exemple on notera que 1 Un modegravele est orienteacute par un usage
Chacune de ces cartes est tregraves diffeacuterente selon ce que lon veut faire 2 Un modegravele ne cherche pas agrave ecirctre proche de la reacutealiteacute
Chacune de ces cartes est tregraves diffeacuterente de la reacutealiteacute quelle repreacutesente 3 Un modegravele adresse un niveau dinformation qui existe mais qui nest pas accessible dans
la reacutealiteacute Chacune de ces cartes permet quelque chose que ne permet pas laccegraves direct agrave la reacutealiteacute
ndash wwwsambaconsultantscom
Meacutethode Le rasoir dOckham Entre deux modegraveles donneacutes le meilleur modegravele est-il
toujours le tplus fourni
La meacutethode de raisonnement connue sous le nom de rasoir dOckham (du nom du philosophe eacuteponyme)
consiste agrave preacutefeacuterer les solutions les plus simples aux plus complexes lorsquelles semblent permettre
eacutegalement de reacutesoudre un problegraveme donneacute entre deux theacuteories eacutequivalentes toujours preacutefeacuterer la plus simple
Ce principe sapplique tregraves bien agrave la modeacutelisation eacutetant donneacute un objectif et plusieurs modegraveles possibles il
ne faut pas choisir a priori celui qui repreacutesente le plus de choses mais preacutefeacuterer le plus simple degraves quil couvre
le besoin
Cest un principe deacuteconomie (il coucircte moins cher agrave produire) et defficaciteacute (car les eacuteleacutements inutiles du modegravele
plus fourni nuiront agrave lefficaciteacute de la tacircche)
Exemtple
Ainsi pour naviguer en voiture il est plus simple de ne pas avoir sur la carte les chemins de randonneacutees qui
ne sont pas praticables en voiture
2 Introduction au diagramme de classes UML classes et
associations
a) Lab I
Description du problegraveme [15 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
Objectifs
Savoir faire un modegravele conceptuel
Savoir interpreacuteter un modegravele conceptuel
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
31
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
b) Preacutesentation dUML UML est un langage de repreacutesentation destineacute en particulier agrave la modeacutelisation objet UML est devenu une
norme OMG en 1997
UML propose un formalisme qui impose de penser objet et permet de rester indeacutependant dun langage de
programmation donneacute Pour ce faire UML normalise les concepts de lobjet (eacutenumeacuteration et deacutefinition
exhaustive des concepts) ainsi que leur notation graphique Il peut donc ecirctre utiliseacute comme un moyen de
communication entre les eacutetapes de speacutecification conceptuelle et les eacutetapes de speacutecifications techniques
Fondamental Diagramme de classe
Le diagramme de classes est un sous ensemble dUML qui sattache agrave la description statique dun
modegravele de donneacutees repreacutesenteacutees par des classes dobjets
Remarque
Dans le domaine des bases de donneacutees UML peut ecirctre utiliseacute agrave la place du modegravele E-A pour modeacuteliser le
domaine De la mecircme faccedilon un scheacutema conceptuel UML peut alors ecirctre traduit en scheacutema logique (relationnel
ou relationnel-objet typiquement)
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
32
c) Classes
Deacutefinition Classe
Une classe est un type abstrait caracteacuteriseacute par des proprieacuteteacutes (attributs et meacutethodes) communes agrave un ensemble
dobjets et permettant de creacuteer des instances de ces objets ayant ces proprieacuteteacutes
Image 2 Repreacutesentation UML dune classe
Exemtple La classe Voiture
Lobjet V1 est une instance de la classe Voiture
V1 Voiture
Marque Citroeumln
Type ZX
Portes 5
Puissance 6
Kilomeacutetrage 300000
Comtpleacutement
La modeacutelisation sous forme de diagramme de classes est une modeacutelisation statique qui met en exergue la
structure dun modegravele mais ne rend pas compte de son eacutevolution temporelle UML propose dautres types de
diagrammes pour traiter notamment de ces aspects
d) Atributs
Deacutefinition Atribut
Un attribut est une information eacuteleacutementaire qui caracteacuterise une classe et dont la valeur deacutepend de lobjet
instancieacute
Syntaxe
Image 3 Exemple de classe repreacutesenteacutee en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
33
Un attribut est typeacute Le domaine des valeurs que peut prendre lattribut est fixeacute a priori
Un attribut peut ecirctre multivalueacute Il peut prendre plusieurs valeurs distinctes dans son domaine
Un attribut peut ecirctre deacuteriveacute Sa valeur alors est une fonction sur dautres attributs de la classe
Un attribut peut ecirctre composeacute (ou composite) Il joue alors le rocircle dun groupe dattributs (par
exemple une adresse peut ecirctre un attribut composeacute des attributs numeacutero type de voie nom de la
voie) Cette notion renvoie agrave la notion de variable de type Record dans les langages de programmation
classiques
Atention On utilise peu les atributs deacuteriveacutes et composeacutes en UML
En UML on preacutefegravere lusage de meacutethodes aux attributs deacuteriveacutes On utilisera toujours des
meacutethodes degraves que la valeur de lattribut deacuteriveacute deacutepend dautres attributs exteacuterieurs agrave sa
classe
En UML on preacutefegravere lusage de compositions aux attributs composeacutes On utilisera toujours
des compositions pour les attributs composeacutes et multivalueacutes
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
34
Syntaxe
attributtype attribut_multivalueacute[nbMinValeursnbMaxValeurs]type attribut_deacuteriveacutetype attribut_composeacute - sous-attribut1type - sous-attribut2type -
1 2 3 4 5 6 7
Image 4 Repreacutesentation dattributs en UML
Dans cet exemple les attributs Nom Preacutenom sont de type string lun de 20 caractegraveres et lautre de 10 tandis
que DateNaissance est de type date et Age de type integer Preacutenom est un attribut multivalueacute ici une personne
peut avoir de 1 agrave 3 preacutenoms Age est un attribut deacuteriveacute il est calculeacute par une fonction sur DateNaissance
Comtpleacutement Voir aussi
Meacutethodes
Composition - p99
e) Repeacuterage des cleacutes Un attribut ou un groupe dattributs peut ecirctre annoteacute comme eacutetant cleacute sil permet didentifier de faccedilon unique
un objet de la classe
On ajoute le symbole key agrave cocircteacute du ou des attributs concerneacutes
Cleacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
35
Cleacute composeacutee de deux attributs
Meacutethode
Le repeacuterage des cleacutes nest pas systeacutematique en UML (la deacutefinition des cleacutes se fera essentiellement au niveau
logique) On cherchera neacuteanmoins agrave repeacuterer les cleacutes rendues eacutevidentes par la phase de clarification
Atention
On najoutera jamais de cleacute artificielle au niveau du MCD Si aucune cleacute nest eacutevidente on laisse
la classe sans cleacute Atention Atribut souligneacute et
On trouvera dans ce cours des exemples dattributs souligneacutes ou preacuteceacutedeacutes de pour exprimer
luniciteacute Ce nest pas une pratique standard et la notation key devrait lui ecirctre substitueacutee
Un attribut souligneacute est normalement un attribut de classe ou static en UML Un
attribut preacuteceacutedeacute de est normalement un attribut proteacutegeacute en UML
Mais les concepts dattribut de classe et dattribut proteacutegeacute ne sont pas utiliseacutes dans le cadre des
bases de donneacutees
f) Meacutethodes
Deacutefinition Meacutethode
Une meacutethode (ou opeacuteration) est une fonction associeacutee agrave une classe dobjet qui permet dagir sur les objets de
la classe ou qui permet agrave ces objets de renvoyer des valeurs (calculeacutees en fonction de paramegravetres)
Syntaxe
methode(paramegravetres)type 1
Remarque Meacutethodes et modeacutelisation de BD
Pour la modeacutelisation des bases de donneacutees les meacutethodes sont surtout utiliseacutees pour repreacutesenter des donneacutees
calculeacutees (agrave linstar des attributs deacuteriveacutees) ou pour mettre en exergue des fonctions importantes du systegraveme
cible Seules les meacutethodes les plus importantes sont repreacutesenteacutees lapproche est moins systeacutematique quen
modeacutelisation objet par exemple
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
36
Remarque Meacutethodes relationnel relationnel-objet
Lors de la transformation du modegravele conceptuel UML en modegravele logique relationnel les meacutethodes ne seront
geacuteneacuteralement pas impleacutementeacutees Leur repeacuterage au niveau conceptuel sert donc surtout daide-meacutemoire
pour limpleacutementation au niveau applicatif
Au contraire un modegravele logique relationnel-objet permettra limpleacutementation de meacutethodes directement
associeacutees agrave des tables Leur repeacuterage au niveau conceptuel est donc encore plus important
Comtpleacutement Transformation des meacutethodes par des vues - p98
g) Associations
Deacutefinition Association
Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire)
qui deacutefinit un ensemble de liens entre les objets de ces classes
Une association est nommeacutee geacuteneacuteralement par un verbe Une association peut avoir des proprieacuteteacutes (agrave linstar
dune classe) Une association deacutefinit le nombre minimum et maximum dinstances autoriseacutee dans la relation
(on parle de cardinaliteacute)
Syntaxe
Image 5 Notation de lassociation en UML
Atention
Le nom de lassociation (verbe qui la deacutecrit) est obligatoire au mecircme titre que le nom dune
classe ou dun attribut
Remarque
Une association est geacuteneacuteralement bidirectionnelle (cest agrave dire quelle peut se lire dans les deux sens) Les
associations qui ne respectent pas cette proprieacuteteacute sont dites unidirectionnelles ou agrave navigation restreinte
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
37
Image 6 Repreacutesentation dassociation en UML
Lassociation Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des
voitures
Comtpleacutement Voir aussi
Cardinaliteacute
Explicitation des associations - p100
Associations ternaires - p101
Contraintes sur les associations - p101
h) Cardinaliteacute
Deacutefinition Cardinaliteacute dune association
La cardinaliteacute dune association permet de repreacutesenter le nombre minimum et maximum dinstances qui sont
autoriseacutees agrave participer agrave la relation La cardinaliteacute est deacutefinie pour les deux sens de la relation
Syntaxe
Si mina (resp maxa) est le nombre minimum (resp maximum) dinstances de la classe A autoriseacutees agrave participer
agrave lassociation on note sur la relation agrave cocircteacute de la classe A minamaxa
Si le nombre maximum est indeacutetermineacute on note n ou
Atention
La notation de la cardinaliteacute en UML est opposeacutee agrave celle adopteacutee en E-A En UML on note agrave gauche
(resp agrave droite) le nombre dinstances de la classe de gauche (resp de droite) autoriseacutees dans
lassociation En E-A on note agrave gauche (resp agrave droite) le nombre dinstances de la classe de
droite (resp de gauche) autoriseacutees dans lassociation
Remarque
Les cardinaliteacutes les plus courantes sont
01 (optionnel)
11 ou 1 (un)
Lassociation Conduit
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
38
0n ou 0 ou (plusieurs)
Ici un conducteur peut posseacuteder plusieurs voitures (y compris aucune) et une voiture nest posseacutedeacutee que par
un seul conducteur
i) Classe dassociation
Deacutefinition Classe dassociation
On utilise la notation des classes dassociation lorsque lon souhaite ajouter des proprieacuteteacutes agrave une association
Syntaxe Notation dune classe dassociation en UML
Image 8 Notation dune classe dassociation en UML
1 n ou 1 (obligatoire )
Image 7 Repreacutesentation de cardinaliteacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
39
Image 9 Emplois
B Exercices
1 Exercice Lire lUML [15 min]
Tennis Le scheacutema suivant repreacutesente les rencontres lors dun tournoi de tennis Quelles sont les assertions vraies selon ce scheacutema
Image 10
On peut jouer des matchs de double
Un joueur peut gagner un match sans y avoir participeacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
40
Il peut y avoir deux matchs sur le mecircme terrain agrave la mecircme heure
Connaissant un joueur on peut savoir sur quels terrains il a joueacute
Journal Voici le scheacutema conceptuel du systegraveme dinformation (tregraves simplifieacute) dun quotidien Quelles sont les assertions vraies selon ce scheacutema
Image 11
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
41
Un article peut ecirctre reacutedigeacute par plusieurs journalistes
Un article peut ecirctre publieacute plusieurs fois dans le mecircme journal
Un article peut ecirctre publieacute dans un journal par un journaliste qui ne travaille pas pour ce
journal
Il peut y avoir plusieurs articles sur le mecircme sujet
Un journaliste peut interviewer une personnaliteacute sans faire darticle agrave ce propos
Logistique Une socieacuteteacute de transport routier veut installer un systegraveme dinformation pour rendre plus efficace sa logistique Embaucheacute au service informatique de cette compagnie vous ecirctes donc chargeacute de reprendre le travail deacutejagrave effectueacute (cest agrave dire le scheacutema suivant)
Quelles sont les assertions vraies selon ce scheacutema
Image 12
Un conducteur peut conduire plusieurs camions
Un conducteur peut conduire un camion sans y ecirctre autoriseacute
Il peut y avoir plusieurs conducteurs pour le mecircme camion
Un conducteur peut livrer sa propre ville
2 Gestion dune coopeacuterative viticole
[20 minutes] Cet exercice a eacuteteacute inspireacute par Bases de donneacutees objet et relationnel [Gardarin99]
On considegravere une base Coopeacuterative qui possegravede les caracteacuteristiques suivantes
Un vin est caracteacuteriseacute par un numeacutero entier unique nv un cru une anneacutee de production et un degreacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
42
Un viticulteur est caracteacuteriseacute par un numeacutero entier unique nvt un nom et une ville Un viticulteur produit un ou plusieurs vins et reacuteciproquement un vin est produit par un ou plusieurs
producteurs (eacuteventuellement aucun)
Les buveurs sont caracteacuteriseacutes par un numeacutero de buveur nb un nom preacutenom et une adresse (limiteacutee agrave
la ville pour simplifier)
Un buveur consomme des vins et peut passer des commandes pour acheter des vins
Question 1
Lister tous les types dobjet agrave consideacuterer les attributs associeacutes et les domaines de valeurs de ces attributs
Repeacuterer les eacuteventuelles cleacutes
Question 2
Lister toutes les associations agrave consideacuterer et indiquer leurs cardinaliteacutes
Question 3
Donner le diagramme UML de cette situation
3 Cours et intervenants
[20 min] On souhaite reacutealiser une base de donneacutees pour geacuterer les cours dispenseacutes dans une eacutecole dingeacutenieur ainsi
que les personnes qui interviennent dans ces cours
Chaque cours est identifieacute par une anneacutee et un numeacutero Chaque cours a donc un numeacutero unique localement
agrave chaque anneacutee Un cours possegravede un titre et un type (C pour Cours TD ou TP) Un cours possegravede
eacutegalement une date de deacutebut et une date de fin qui est toujours de 5 jours apregraves la date de deacutebut
Chaque intervenant est identifieacute par son nom (deux intervenants ne peuvent pas avoir le mecircme nom) Il a un
preacutenom un bureau un ou plusieurs numeacuteros de teacuteleacutephones (jusquagrave trois numeacuteros) et des speacutecialiteacutes Un
bureau est deacutefini par un centre (R pour Royallieu BF pour Benjamin Franklin et PG pour Pierre Guillaumat)
un bacirctiment (une lettre de A agrave Z) et un numeacutero (infeacuterieur agrave 1000) Les speacutecialiteacutes sont des couples de chaicircnes
de caractegraveres deacutesignant un domaine (par exemple BD) et une speacutecialiteacute (par exemple SGBDRO)
Chaque cours est donneacute par un unique intervenant
Voici un exemple Le cours Machines universelles ndeg21 de lanneacutee 2014 est donneacute par Alan Turing entre le
05012014 et le 10012014 Cest un cours de type C Alan Turing a le bureau 666 au bacirctiment X de PG Il
a les numeacuteros de teacuteleacutephone 0666666666 et 0766666666 Il possegravede les speacutecialiteacutes suivantes
Domaine Matheacutematique Speacutecialiteacute Cryptographie
Domaine Informatique Speacutecialiteacute Algorithmie
Domaine Informatique Speacutecialiteacute Intelligence Artificielle
Question
Reacutealiser le modegravele UML de la base de donneacutees Preacuteciser les cleacutes et les types des attributs
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
43
4 Gestion du personnel
[30 minutes] Le service de gestion du personnel dune entreprise deacutesire seacutequiper dun outil lui permettant de geacuterer
informatiquement ses employeacutes leurs salaires et leurs congeacutes Les speacutecifications suivantes ont pu ecirctre mises
en exergue par une analyse des besoins reacutealiseacutee aupregraves des utilisateurs du service du personnel
Geacuteneacuteraliteacutes
tout employeacute est identifieacute par un nom un preacutenom et une date de naissance
tout employeacute remplit une fonction et appartient agrave un service
pour chaque employeacute on gegravere la date dembauche et la quotiteacute (cest agrave dire le pourcentage de temps
travailleacute par rapport au temps plein en cas de travail agrave temps partiel)
Gestion des salaires
pour chaque employeacute on gegravere lhistorique de ses salaires dans lentreprise chaque salaire eacutetant affecteacute
agrave une peacuteriode de temps
un salaire est composeacute dun salaire brut de charges patronales et de charges salariales
on cherchera agrave partir des ces donneacutees agrave obtenir eacutegalement le salaire chargeacute (brut + charges patronales)
et le salaire net (brut - charges salariales) et ce en particulier pour le salaire en cours (celui que
touche actuellement le salarieacute)
Gestion des congeacutes
pour chaque employeacute on meacutemorise chaque congeacute pris (posant quun congeacute concerne toujours une ou
plusieurs journeacutees entiegraveres)
chaque employeacute a le droit aux jours de congeacutes suivants
- 25 jours (pour une quotiteacute de 1) et 25 x quotiteacute sinon - chaque fonction ouvre les droits agrave un certain nombre de jours de RTT - chaque service ouvre les droits agrave un certain nombre de jours de RTT - chaque tranche de 5 ans passeacutes dans lentreprise donne droit agrave 1 jour suppleacutementaire - les employeacutes de plus de 40 ans ont un jour suppleacutementaire et ceux de plus de 50 ans deux
pour chaque employeacute on cherchera agrave connaicirctre le nombre total de jours de congeacutes autoriseacutes le nombre
de jours pris et le nombre de jours restants sur lanneacutee en cours
Question
Reacutealiser le diagramme de classes permettant de modeacuteliser ce problegraveme
44
III - La modeacutelisation logique
relationnelle
A Cours
Le modegravele relationnel est aux fondements des SGBDR Il a eacuteteacute et continue decirctre le modegravele theacuteorique
dominant pour la repreacutesentation logique des base de donneacutees mecircme si le mouvement NoSQL propose des
alternatives
Le modegravele relationnel permet de reformuler le modegravele conceptuel dans un formalisme - le tableau - beaucoup
plus proche de limpleacutementation informatique bien quencore indeacutependant dune solution technologique
particuliegravere
1 Introduction au modegravele relationnel
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
III
La modeacutelisation logique relationnelle
45
a) Niveau logique Le niveau logique est le lien entre le niveau conceptuel et limpleacutementation effective de lapplication Le modegravele
conceptuel eacutetant un modegravele formel le modegravele logique a pour vocation decirctre eacutegalement un modegravele formel
mais speacutecifiant non plus la reacutealiteacute existante ou rechercheacutee comme le modegravele conceptuel mais les donneacutees
telles quelles vont exister dans lapplication informatique
Pour assumer cette fonction le modegravele relationnel [Codd70] sest imposeacute en reacuteaction aux insuffisances des
modegraveles anteacuterieurs les modegraveles hieacuterarchique et reacuteseau et de part la puissance de ses fondements
matheacutematiques Encore aujourdhui dominant le modegravele relationnel est un fondement indispensable agrave la
conception de bases de donneacutees
Ratptpel
Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
b) Deacutefinition du modegravele relationnel
Introduction
Le modegravele relationnel a eacuteteacute introduit par Codd [Codd70] en 1970 au laboratoire de recherche dIBM de San
Joseacute Il sagit dun modegravele simple et puissant agrave la base de la majoriteacute des bases de donneacutees encore aujourdhui
Les objectifs du modegravele relationnel formuleacutes par Codd sont les suivants
Assurer lindeacutependance des applications et de la repreacutesentation interne des donneacutees
Geacuterer les problegravemes de coheacuterence et de redondance des donneacutees
Utiliser des langages de donneacutees baseacutes sur des theacuteories solides
Deacutefinition Modegravele relationnel
On appelle modegravele relationnel un ensemble de concepts permettant de formaliser logiquement la description
darticles de fichiers plats indeacutependamment de la faccedilon dont ils sont physiquement stockeacutes dans une meacutemoire
numeacuterique
Le modegravele relationnel inclut des concepts pour la description de donneacutees ainsi que des concepts pour la
manipulation de donneacutees
Fondamental Repreacutesenter le monde en tables
Le modegravele relationnel permet de repreacutesenter les donneacutees que lon va geacuterer agrave laide dun tregraves petit
nombre de concepts tregraves simples
Les relations ou tables des lignes et des colonnes
Les domaines de valeurs chaque case dune table prend une unique valeur dans un
domaine preacute-deacutefini
Les cleacutes il existe des cases dont les valeurs doivent ecirctre uniques et non nulles
Les cleacutes eacutetrangegraveres il existe des cases qui doivent prendre une valeur existante dans les
cases dune autre table
La modeacutelisation logique relationnelle
46
Comtpleacutement Extension du modegravele relationnel
Le modegravele relationnel est un standard normaliseacute par lISO agrave travers son langage le SQL Il se veut neacuteanmoins
degraves lorigine extensible pour permettre de geacuterer des donneacutees plus complexes que les donneacutees tabulaires Le
modegravele relationnel-objet est neacute de cette extension
2 Les concepts fondamentaux du modegravele relationnel
atributs enregistrement domaine
a) Domaine
Deacutefinition Domaine
Ensemble caracteacuteriseacute par un nom dans lequel des donneacutees peuvent prendre leurs valeurs
Remarque Un domaine peut-ecirctre deacutefini en intension (cest agrave dire en deacutefinissant les proprieacuteteacutes caracteacuteristiques des
valeurs du domaine on parle aussi de compreacutehension) ou en extension (cest agrave dire en eacutenumeacuterant toutes
les valeurs du domaine)
Exemtple Domaines deacutefinis en intension
Tous les entiers
Les reacuteels infeacuterieur agrave 5
Les booleacuteen (vrai ou faux)
Toutes les chaicircnes de 1 agrave 255 caractegraveres
Les valeurs moneacutetaires deacutefinie comme des deacutecimaux avec deux chiffres apregraves la virgule
Les dates deacutefinies comme des chaicircnes de 10 caractegraveres comprenant des chiffres et des tirets selon le
patron 00-00-0000
Les salaires deacutefinis comme des valeurs moneacutetaires compris entre 15000 et 100000
Exemtple Domaines deacutefinis en extension
Couleur Bleu Vert Rouge Jaune Blanc Noir
SGBD Hieacuterarchique Reacuteseau Relationnel Objet Relationnel-Objet
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
La modeacutelisation logique relationnelle
47
b) Exercice Indiquez quelle deacutefinition et quel exemple correspondent respectivement aux mots intension et extension
1 - Le domaine des couleurs
2 - Eacutenonciation exhaustive de lensemble des objets du domaine
3 - bleu rouge vert
4 - Explicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa compreacutehension
abstraite geacuteneacuterale)
Intension Extension
c) Atribut et enregistrement
Deacutefinition Atribut
On appelle attribut dune relation une colonne de cette relation Un attribut est caracteacuteriseacute par un nom et un
domaine dans lequel il prend ses valeurs
Synonymes Champs Proprieacuteteacute Colonne
Deacutefinition Enregistrement
On appelle enregistrement dune relation une ligne de cette relation Un enregistrement prend une valeur
pour chaque attribut de la relation
Synonymes Tuple N-uplet Vecteur Ligne
La modeacutelisation logique relationnelle
48
Exemtple
A B
1 1
1 2
2 2
Tableau 5 Relation R
La relation R comporte les deux attributs A et B et les trois enregistrements lt11gt lt12gt et lt22gt
Remarque Atribut domaine ordre
Un attribut se distingue dun domaine car il peut ne comporter que certaines valeurs de ce domaine
Les colonnes de la relation ne sont pas ordonneacutees et elles ne sont donc repeacutereacutees que par le nom de lattribut
Remarque Valeur nulle
Un enregistrement peut ne pas avoir de valeur pour certains attributs de la relation parce que cette valeur
est inconnue ou inapplicable sa valeur est alors null
d) Exemple La relation Vol
Exemtple
Numero Compagnie Avion Deacutepart Arriveacutee Date
AF3245 Air France 747 Paris Oulan Bator 01shy08shy2002
AF6767 Air France A320 Paris Toulouse 30shy07shy2002
KLM234 KML 727 Paris Amsterdam 31shy07shy2002
Tableau 6 Relation Vol
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel
Objectifs
Connaicirctre les notions de cleacutes candidates naturelles artificielles primaire eacutetrangegravere
Aborder le principe deacuteclatement des relations et de nonredondance
La modeacutelisation logique relationnelle
49
a) Cleacute
Deacutefinition Cleacute
Une cleacute est un groupe dattributs minimum qui permet didentifier de faccedilon univoque un tuple dans une
relation
Fondamental
Toute relation doit comporter au moins une cleacute ce qui implique quune relation ne peut pas
contenir deux tuples identiques
Atention Atributs de cleacutes unique et non null Afin decirctre deacuteterminants pour lidentification dun enregistrement tous les attributs dune cleacute
doivent ecirctre valueacutes cest-agrave-dire quaucun ne peut avoir de valeur null Dire quun groupe
dattribut est une cleacute eacutequivaut agrave dire quil est unique et non null
Exemtple Numeacutero deacutetudiant
Le numeacutero deacutetudiant dune relation Etudiant est une bonne cleacute car il y aura systeacutematiquement une
valeur non nulle
Le groupe dattributs (nom preacutenom) dune relation Etudiant est en geacuteneacuteral une mauvaise cleacute car les
homonymes existent
b) Deacuteterminer les cleacutes
Deacutetermination dune cleacute
Deacutefinir un groupe dattributs comme eacutetant une cleacute neacutecessite une reacuteflexion seacutemantique sur les donneacutees
composant ces attributs afin de sassurer de leur uniciteacute
Fondamental
La deacutefinition des cleacutes est un acte de modeacutelisation elle ne renvoie pas donc pas agrave une veacuteriteacute
intangible mais agrave la reacutealiteacute telle quelle est repreacutesenteacutee dans le modegravele que lon eacutelabore
Exemtple
Lattribut numeacutero de seacutecuriteacute sociale dune relation personne peut paraicirctre une bonne cleacute a priori car son
uniciteacute est assureacutee Mais tout le monde nen dispose pas forceacutement (les enfants des eacutetrangers) donc ce nest
une cleacute que si lon considegravere des personnes affilieacutees agrave la seacutecuriteacute sociale
c) Cleacute primaire et cleacutes candidates
Deacutefinition Cleacute tprimaire
Si plusieurs cleacutes existent dans une relation on en choisit une parmi celles-ci Cette cleacute est appeleacutee cleacute
primaire
La modeacutelisation logique relationnelle
50
La cleacute primaire est geacuteneacuteralement choisie de faccedilon agrave ce quelle soit la plus simple cest agrave dire portant sur le
moins dattributs et sur les attributs de domaine les plus basiques (entiers ou chaicircnes courtes typiquement)
Deacutefinition Cleacutes candidates
On appelle cleacutes candidates lensemble des cleacutes dune relation qui nont pas eacuteteacute choisies comme cleacute primaire
(elles eacutetaient candidates agrave cette fonction)
d) Cleacute artificielle
Deacutefinition Cleacute artificielle
Sil est impossible de trouver une cleacute primaire ou que les cleacutes candidates sont trop complexes il est possible
de faire appel agrave une cleacute artificielle Une cleacute artificielle est un attribut suppleacutementaire ajouteacute au scheacutema de
la relation qui nest lieacute agrave aucune signification et qui sert uniquement agrave identifier de faccedilon unique les
enregistrements etou agrave simplifier les reacutefeacuterences de cleacutes eacutetrangegraveres
Deacutefinition Cleacute signifiante
Une cleacute est signifiante si elle nest pas artificielle
Synonyme Cleacute naturelle
Atention Cleacute artificielle et niveau logique
Au niveau du modegravele logique il faut eacuteviter la simpliciteacute consistant agrave identifier toutes les relations
avec des cleacutes artificielles et ne reacuteserver cet usage quaux cas particuliers
Conseil
1 Si au moins une cleacute naturelle composeacutee dun seul attribut existe en choisir une parmi celles-ci comme
cleacute primaire 2 Sinon choisir une cleacute naturelle composeacutee de plusieurs attributs si elle ne pose pas de problegraveme identifieacute 3 Toujours justifier lemploi dune cleacute artificielle (au niveau logique uniquement pour des raisons de
complexiteacute du modegravele les questions de performance sont eacutetudieacutees au niveau physique)
RemarqueCleacute artificielle et niveau tphysique eacutevolutiviteacute maintenance et tperformance
Au niveau de limpleacutementation physique par contre il est courant que des cleacutes artificielles soient utiliseacutees de
faccedilon systeacutematique
Du point de vue de leacutevolutiviteacute de la BD il existe toujours un risque quune cleacute nonartificielle perde
sa proprieacuteteacute duniciteacute ou de non-nulliteacute
Du point de vue de la maintenance de la BD il existe toujours un risque quune cleacute non-artificielle
voit sa valeur modifieacutee et dans ce cas la reacutepercution de ce changement pour mettre agrave jour toutes les
reacutefeacuterences peut poser problegraveme
Du point de vue de la performance de la BD les cleacutes non-artificielles ne sont pas en geacuteneacuteral optimiseacutees
en terme de type et de taille et donc peuvent limiter les performances dans le cadre des jointures
Preacutecisons neacuteanmoins quinversement les cleacutes artificielles ont pour conseacutequence de systeacutematiser des
jointures qui auraient pu ecirctre eacuteviteacutees avec des cleacutes primaires signifiantes
La modeacutelisation logique relationnelle
51
Exemtple Problegraveme deacutevolutiviteacute tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD franccedilaise elle ne permettra pas dentrer
un individu non-franccedilais issu dun pays ne disposant pas dun tel numeacutero
Exemtple Problegraveme de maintenance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD centrale dont les donneacutees sont exploiteacutees
par dautres tables dautres BD qui viennent piocher dans cette BD pour leurs propres usages sans que la
BD centrale ne connaisse ses clients Soit une erreur dans la saisie dun numeacutero de seacutecuriteacute sociale dans la
BD centrale si ce numeacutero est corrigeacute il faudrait (ce qui nest pas possible dans notre cas) impeacuterativement en
avertir toutes les bases utilisatrices pour quelles mettent agrave jour leurs reacutefeacuterences
Exemtple Problegraveme de tperformance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table comptant un million denregistrements ce numeacutero
est geacuteneacuteralement un nombre agrave 13 chiffres ou une chaicircne agrave 13 caractegraveres ce qui dans les deux cas est supeacuterieur
au nombre agrave 7 chiffres suffisant pour identifier tous les individus de la BD Les performances seront donc
toujours moins bonnes lors des jointures si une cleacute prend deux fois plus de place en meacutemoire que son
optimum Mais ajoutons que cette perte de performance na pas toujours de conseacutequence sur la reacutealiteacute
perceptible par les utilisateurs de la BD
Inversement soit une cleacute artificielle la cleacute primaire dune table T1 par ailleurs reacutefeacuterenceacutee par une autre table
T2 Soit le numeacutero de seacutecuriteacute sociale un attribut cleacute de T1 Si lon veut par requecircte disposer des informations
de T2 ainsi que du numeacutero de seacutecuriteacute sociale de T1 alors il faudra faire une jointure tandis que si ce numeacutero
signifiant avait eacuteteacute choisi comme cleacute primaire cela naurait pas eacuteteacute neacutecessaire
La modeacutelisation logique relationnelle
52
e) Cleacute eacutetrangegravere
Deacutefinition Cleacute eacutetrangegravere
Une cleacute eacutetrangegravere est un attribut ou un groupe dattributs dune relation R1 devant apparaicirctre comme cleacute
primaire dans une relation R2 afin de mateacuterialiser une reacutefeacuterence entre les tuples de R1 et les tuples de R2
Une cleacute eacutetrangegravere dun tuple reacutefeacuterence une cleacute primaire dun autre tuple
Atention
Seule une cleacute primaire peut ecirctre reacutefeacuterenceacutee par une cleacute eacutetrangegravere cest mecircme le seule fonction
de la cleacute primaire ecirctre la cleacute qui peut ecirctre reacutefeacuterenceacutee par les cleacutes eacutetrangegraveres
Deacutefinition Contrainte dinteacutegriteacute reacutefeacuterentielle
Une cleacute eacutetrangegravere respecte la contrainte dinteacutegriteacute reacutefeacuterentielle si sa valeur est effectivement existante dans
la cleacute primaire dun tuple de la relation reacutefeacuterenceacutee ou si sa valeur est null
Une cleacute eacutetrangegravere qui ne respecte pas la contrainte dinteacutegriteacute reacutefeacuterentielle exprime un lien vers un tuple qui
nexiste pas et donc nest pas coheacuterente
f) Reacutefeacuterence entre relations Le modegravele relationnel a pour objectif la structuration de donneacutees selon des relations Lenjeu est de parvenir
agrave traduire un modegravele conceptuel en modegravele logique relationnel Or il ny a pas de notion dassociation en
relationnel donc il faudra pouvoir traduire les associations avec les concepts dont on dispose relation cleacute
cleacute eacutetrangegravere
Afin de repreacutesenter des reacutefeacuterences entre relations dans un modegravele relationnel la seule solution est de stocker
linformation dans une relation et donc que certains attributs dune relation servent agrave pointer sur dautres
relations
Atention
Il ny a pas vraiment de reacutefeacuterence ou de lien en relationnel puisque nous ne disposons que de
tables de cleacutes de cleacutes eacutetrangegravere et de valeurs
On va donc devoir se servir de ces outils pour mateacuterialiser une notion de reacutefeacuterence
Meacutethode Reacutefeacuterence
La reacutefeacuterence entre deux tuples T1 et T2 de deux relations diffeacuterentes est exprimable par une valeur identique
entre une cleacute eacutetrangegravere du tuple T1 et la cleacute primaire de lautre tuple T2 Synonyme Lien Exemtple
R1 R2 a1 a2=gtR2 b1 b2
La modeacutelisation logique relationnelle
53
F
Image 13
Lattribut a2 de la relation R1 reacutefeacuterence lattribut b1 de la relation R2 car a2 est une cleacute eacutetrangegravere de R1 vers
R2 (b1 est la cleacute primaire de R2)
Ici on a donc par exemple les tuples identifieacutes par B et C de R1 qui reacutefeacuterencent le tuple identifieacute par 1 dans
R2
g) Scheacutema relationnel
Deacutefinition Scheacutema dune relation
Le scheacutema dune relation deacutefinit cette relation en intension Il est composeacute
du nom de la relation
de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs
de la cleacute primaire
des cleacutes eacutetrangegraveres
des cleacutes candidates
Deacutefinition Scheacutema relationnel dune base de donneacutee
Le scheacutema relationnel dune BD est la deacutefinition en intension de cette BD (par opposition agrave linstance de la
BD qui est une extension de la BD) Il est composeacute de lensemble des scheacutemas de chaque relation de la BD
Syntaxe Relation
Relation (Attribut1Domaine1 Attribut2Domaine2 AttributNDomaineN) 1
La relation Relation contient N attributs chacun deacutefini sur son domaine
Syntaxe Cleacute tprimaire
Relation (Attribut1Domaine1 AttributMDomaineM AttributNDomaineN)
1
La cleacute de la relation Relation est composeacutee des attributs Attribut1 agrave AttributM (attribut preacuteceacutedeacutes de ou
bien souligneacutes)
En geacuteneacuteral on note la cleacute primaire en premier dans la relation
Syntaxe Cleacute eacutetrangegravere
Relation1 ( AttributM=gtRelation2 AttributN=gtRelation2) 1
La relation Relation1 comporte une cleacute eacutetrangegravere (composeacutee des attributs AttributM agrave AttributN)
reacutefeacuterenccedilant la cleacute primaire de Relation2 Bien sucircr il peut exister plusieurs cleacutes eacutetrangegraveres vers plusieurs
La modeacutelisation logique relationnelle
54
relations distinctes Une cleacute eacutetrangegravere et sa cleacute primaire reacutefeacuterenceacutee sont toujours composeacutees du mecircme nombre
dattributs Il nest pas neacutecessaire de preacuteciser les domaines des attributs appartenant agrave la cleacute eacutetrangegravere car ce
sont forceacutement les mecircmes que ceux de la cleacute primaire reacutefeacuterenceacutee Il nest pas non plus en geacuteneacuteral neacutecessaire
de preacuteciser dans le scheacutema relationnel quels attributs de la cleacute eacutetrangegravere reacutefeacuterencent quels attributs de la cleacute
primaire (cela est geacuteneacuteralement eacutevident) mais il est possible de la faire on notant Attribut=gtRelationAttribut
En geacuteneacuteral on note les cleacutes eacutetrangegraveres en dernier dans la relation sauf pour les cleacutes eacutetrangegraveres qui font partie
de la cleacute primaire (cleacutes identifiantes)
Syntaxe Cleacute candidates
Relation1 (AttributMDomaineM ) avec AttributM cleacute 1
Les cleacutes candidates doivent ecirctre noteacutees sur le scheacutema relationnel
Sil ny a quune ou deux cleacutes candidates les noter directement apregraves la deacutefinition de la relation
Sil y a beaucoup de cleacutes pour ne pas trop alourdir la notation renvoyer agrave un tableau agrave part
Atention Cleacutes candidates et cleacute primaire
La notation R(ab) signifie toujours que R a comme cleacute primaire (ab) et non que R aurait
deux cleacutes a et b (dont on ne saurait pas laquelle est primaire)
La notation R(ab) avec b cleacute signifie bien que a et b sont deux cleacutes de R et que a est primaire
Il ne faut pas confondre une cleacute composeacutee de deux attributs avec deux cleacutes
h) Exemple de scheacutema relationnel pour la geacuteographie
Exemtple
Personne (NumeroEntier NomChaicircne PreacutenomChaicircne LieuNaissance=gtVille) Pays (NomChaicircne PopulationEntier SuperficieReacuteel Dirigeant=gtPersonne) Reacutegion (Pays=gtPays NomChaicircne Superficie Dirigeant=gtPersonne) Ville (CodePostalCP NomChaicircne Pays=gtReacutegionPays Reacutegion=gtReacutegionNom Dirigeant=gtPersonne)
1 2 3 4
Exemtple Exemtple dinstance de la base de donneacutees
Personne Num ero Nom Prenom LieuNaissance
1 Durand Pierre 60200 2 Dupont Marie 60200
Pays
Nom Population Superficie Dirig eant
France 60 50000101 2 Allemagne 80 60000023564 2 Espagne 40 3500001 1
La modeacutelisation logique relationnelle
55
Reacutegion Pays Nom Superficie Dirig eant France Picardie 50 1 Espagne Picardie 40 1 France Normandie 30 2
Ville CodePostal Nom Pays Reacuteg ion Dirig eant F60200 Compiegravegne France Picardie 1
F60300 Senlis France Picardie 2 F60301 Senlis France Picardie 2 E8000 Senlis Espagne Picardie 2
Le scheacutema relationnel preacuteceacutedent deacutecrit
Des personnes
Elles sont identifieacutees par un numeacutero qui est en fait une cleacute artificielle En effet mecircme une cleacute composeacutee
de tous les attributs (Nom Preacutenom LieuNaissance) laisse une possibiliteacute de doublons (homonymes
neacutes dans la mecircme ville)
La cleacute eacutetrangegravere LieuNaissance fait reacutefeacuterence agrave la relation Ville et plus preacuteciseacutement agrave sa cleacute primaire
CodePostal ce qui est est laisseacute implicite car eacutevident
Des pays
Ils sont identifieacutes par leur nom puisque deux pays ne peuvent avoir le mecircme nom Les pays sont
dirigeacutes par des personnes et ce lien est mateacuterialiseacute par la cleacute eacutetrangegravere Dirigeant
Des reacutegions
Elles font partie dun pays et ont un nom Deux reacutegions de pays diffeacuterents pouvant avoir le mecircme
nom il faut utiliser une cleacute primaire composeacutee agrave la fois du nom de la reacutegion et du nom du pays qui
est une cleacute eacutetrangegravere (le nom est appeleacute cleacute locale car il nest pas suffisant pour identifier un tuple de
la relation Reacutegion et la cleacute eacutetrangegravere vers la relation Pays est appeleacutee cleacute identifiante)
Des villes
Elles sont identifieacute par un code postal qui est unique dans le monde (en utilisant le preacutefixe de pays de
type F-60200) Ce code postal a pour domaine CP qui est une chaicircne composeacutee dune ou deux
lettres dun tiret puis dune seacuterie de chiffres
Le lien dappartenance entre une ville et une reacutegion est mateacuterialiseacute par la cleacute eacutetrangegravere composeacutee des
deux attributs Pays et Reacutegion Cette cleacute reacutefeacuterence la cleacute primaire de la relation Reacutegion eacutegalement composeacutee
de deux attributs Pour clairement expliciter les reacutefeacuterences (bien que seacutemantiquement la deacutenomination des
attributs ne laisse pas de place au doute) on utilise la syntaxe ReacutegionPays et ReacutegionNom
4 Synthegravese
a) Synthegravese Scheacutema relationnel
Scheacutema relationnel
Un scheacutema relationnel permet une formalisation dun modegravele logique
Relation ou table
La modeacutelisation logique relationnelle
56
Sous-ensemble dun produit carteacutesien -
Attribut ou colonne Prend ses valeurs dans un domaine
- Enregistrement ou ligne Pose une valeur (y compris la valeur null) pour chaque attribut
Cleacute
Groupe dattributs ayant un rocircle didentification au sein dun enregistrement - Cleacute candidate
Identifie de faccedilon unique un enregistrement - Cleacute primaire
Cleacute candidate choisie pour repreacutesenter un enregistrement pour sa faciliteacute dusage - Cleacute eacutetrangegravere
Reacutefeacuterence la cleacute primaire dun tuple dune autre relation pour exprimer un lien
b) Bibliographie commenteacutee sur le modegravele relationnel
Comtpleacutement Synthegraveses
SQL2 SQL3 applications agrave Oracle [Delmal01]
Une deacutefinition syntheacutetique et efficace du domaine relationnel relation domaine attribut cleacute inteacutegriteacute
opeacuterateurs (Premier chapitre)
5 Deacutefinition formelle dune relation
a) Produit carteacutesien
Deacutefinition Produit carteacutesien
Le produit carteacutesien noteacute X des domaines D1 D2 Dn noteacute D1 X D2 X X Dn est lensemble des
tuples (ou n-uplets ou vecteurs) ltV1V2Vngt tel que Vi est une valeur de Di et tel que toutes les
combinaisons de valeurs possibles sont exprimeacutees
Exemtple
D1 = A B C D2 = 1 2 3 D1 X D2 = ltA1gt ltA2gt ltA3gt ltB1gt ltB2gt ltB3gt ltC1gt ltC2gt ltC3gt
1 2 3
b) Relation
Deacutefinition Relation
Une relation sur les domaines D1 D2 Dn est un sous-ensemble du produit carteacutesien D1 X D2 X X Dn
Une relation est caracteacuteriseacutee par un nom Synonymes Table tableau
Syntaxe
La modeacutelisation logique relationnelle
57
On peut repreacutesenter la relation R sur les domaine D1 Dn par une table comportant une colonne pour
chaque domaine et une ligne pour chaque tuple de la relation
D1 Dn
V1 Vn
V1 Vn
Tableau 7 Relation R
Remarque
Une relation est deacutefinie en extension par leacutenumeacuteration des tuples la composant
B Exercices
1 Lab I-
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Dessiner des relations instancieacutees (en extension donc) remplies avec les donneacutees fournies en exemple
La modeacutelisation logique relationnelle
58
Question 2
Eacutecrivez le scheacutema relationnel (deacutefinition en intension donc) permettant de repreacutesenter une base de donneacutees
relationnelle pour le laboratoire
59
IV - Introduction au
passage
UMLRelationnel classes et
associations
A Cours
Afin de pouvoir impleacutementer une base de donneacutees il faut pouvoir traduire le modegravele conceptuel en modegravele
logique Cela signifie quil faut pouvoir convertir un modegravele UML en modegravele relationnel Les modegraveles
conceptuels sont suffisamment formels pour que ce passage soit systeacutematiseacute dans la plupart des cas
1 Transformation des classes et atributs
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
IV
Introduction au passage UML-Relationnel classes et associations
60
a) Transformation des classes
Meacutethode Classe
Pour chaque classe non abstraite
on creacutee une relation dont le scheacutema est celui de la classe
la cleacute primaire de cette relation est une des cleacutes de la classe
Classe1
Graphique 2 Classe
Classe1()
Remarque
Les classes abstraites sont ignoreacutees agrave ce stade et neacutetant pas instanciables ne donnent geacuteneacuteralement pas
lieu agrave la creacuteation de relation
b) Transformation des atributs
Meacutethode Atributs simtples
Pour chaque attribut eacuteleacutementaire et monovalueacute dune
classe on creacutee un attribut correspondant
Classe1
a key
b
Graphique 3 Attribut
Classe1(ab)
Meacutethode Atributs comtposites
Pour chaque attribut composite comprenant N sous-attributs dune classe
on creacutee N attributs correspondants
dont les noms sont la concateacutenation du nom de lattribut composite avec celui du sous attribut
Classe1
a key b -b1 -b2
Introduction au passage UML-Relationnel classes et associations
61
Graphique 4 Attribut composeacute
Classe1(ab_b1b_b2)
Meacutethode Atributs multivalueacutes
Pour chaque attribut multivalueacute b dune classe C
on creacutee une nouvelle relation RB
qui comprend un attribut monovalueacute correspondant agrave b
plus la cleacute de la relation repreacutesentant C
la cleacute de RB est la concateacutenation des deux attributs
Classe1
a key
b[110]
Graphique 5 Attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Meacutethode Atributs multivalueacutes (meacutethode alternative)
Dans le cas ougrave le nombre maximum de b est fini et petit on peut eacutegalement adopter la transformation
suivante
Classe1(ab1b2b3b4b5b6b7b8b9b10)
Si le nombre dattributs est infini (b[1]) cest impossible sil est trop grand ce nest pas souhaitable
Meacutethode Atributs comtposeacutes multivalueacutes
On combine les regravegles eacutenonceacutees pour les attributs composeacutes et pour les attributs multivalueacutes
Classe1
a key b [0N] -b1 -b2
Graphique 6 Attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
Ratptpel Voir aussi
Transformation des compositions - p102
Introduction au passage UML-Relationnel classes et associations
62
c) Transformation des atributs deacuteriveacutes et meacutethodes
Meacutethode Atributs deacuteriveacutes et meacutethodes
On ne repreacutesente pas en geacuteneacuteral les attributs deacuteriveacutes ni les meacutethodes dans le modegravele relationnel ils seront
calculeacutes dynamiquement soit par des proceacutedures internes agrave la BD (proceacutedures stockeacutees) soit par des
proceacutedures au niveau applicatif
Classe1
a key
b
m()
Graphique 7 Attribut deacuteriveacute et meacutethodes
Classe1(a)
Comtpleacutement Atribut deacuteriveacute stockeacutes
On peut deacutecider (pour des raisons de performance essentiellement) de repreacutesenter lattribut deacuteriveacute ou la
meacutethode comme sil sagissait dun attribut simple mais il sera neacutecessaire dans ce cas dajouter des
meacutecanismes de validation de contraintes dynamiques (avec des triggers par exemple) pour assurer que la
valeur stockeacutee eacutevolue en mecircme temps que les attributs sur lesquels le calcul deacuteriveacute porte
Notons quintroduire un attribut deacuteriveacute ou un reacutesultat de meacutethode dans le modegravele relationnel eacutequivaut agrave
introduire de la redondance ce qui est en geacuteneacuteral deacuteconseilleacute et ce qui doit ecirctre dans tous les cas controcircleacute
2 Transformation des associations
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
a) Transformation des associations 1N
Meacutethode
Pour chaque association binaire de type 1N
on ajoute agrave la relation cocircteacute N une cleacute eacutetrangegravere vers la relation cocircteacute 1
Classe1
01 association 0N
Classe2
a key
b c key
d
Graphique 8 Association 1N
Classe1(ab)
Introduction au passage UML-Relationnel classes et associations
63
Classe2(cda=gtClasse1)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations 1N - p103
b) Transformation des associations NM
Meacutethode
Pour chaque association binaire de type MN
on creacutee une nouvelle relation
composeacutee de cleacutes eacutetrangegraveres vers chaque relation associeacutee
et dont la cleacute primaire est la concateacutenation de ces cleacutes eacutetrangegraveres
Graphique 9 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations NM - p104
c) Transformation des associations 11 (approche simplifieacutee)
Meacutethode
La solution la plus simple et la plus geacuteneacuterale pour transformer une association 11 consiste agrave traiter cette
association 11 comme une association 1N puis agrave ajouter une contrainte UNIQUE sur la cleacute eacutetrangegravere pour
limiter la cardinaliteacute maximale agrave 1
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 10 Association 11
Classe1(abc=gtClasse2) avec c UNIQUE
Classe2(cd) ou
Introduction au passage UML-Relationnel classes et associations
64
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE
Remarque
Il existe toujours deux solutions selon que lon choisit une ou lautre relation pour accueillir la cleacute eacutetrangegravere
Selon la cardinaliteacute minimale un des deux choix peut ecirctre plus pertinent
Comtpleacutement
Il est parfois possible de choisir de fusionner les deux classes au sein dune seule relation plutocirct que dopter
pour une cleacute eacutetrangegravere
Comtpleacutement
Transformation des associations 11 (approche geacuteneacuterale) - p105
d) Transformation des classes dassociation
Meacutethode Classe dassociation NM
Graphique 11 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2ef)
Comtpleacutement Classe dassociation 1N
Les attributs de la classe dassociation sont ajouteacutes agrave la relation issue de la classe cocircteacute N
Comtpleacutement Classe dassociation 11
Les attributs de la classe dassociation sont ajouteacutes agrave la relation qui a eacuteteacute choisie pour recevoir la cleacute eacutetrangegravere
Si les deux classes ont eacuteteacute fusionneacutees en une seule relation les attributs sont ajouteacutes agrave celle-ci
a key b
Classe1
c key d
Classe2
0 N 0 N
e f
Cl-A ssoc
Introduction au passage UML-Relationnel classes et associations
65
B Exercices
1 Lab I+
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
Question 3
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 4
Dessiner des tableaux remplis avec les donneacutees fournies en exemple afin de montrer que le modegravele fonctionne
selon le besoin exprimeacute initialement On pourra mettre le premier mot seulement des descriptions pour gagner
du temps
Introduction au passage UML-Relationnel classes et associations
66
2 Usine de production
[30 minutes] Une usine cherche agrave modeacuteliser sa production de veacutehicules et de moteurs
Les veacutehicules sont identifieacutes par un numeacutero dimmatriculation alphanumeacuterique et caracteacuteriseacutes par une
couleur dont la deacutenomination est une chaicircne de caractegraveres Chaque veacutehicule peut comporter un
unique moteur etou un nombre quelconque de pneus
Chaque moteur est monteacute sur un et un seul veacutehicule et est identifieacute par un numeacutero de seacuterie Un moteur
est caracteacuteriseacute par une puissance en chevaux
Tout pneu est monteacute sur un unique veacutehicule et est identifieacute par un numeacutero de seacuterie Sa position est
deacutefinie localement sur ce veacutehicule et par rapport agrave lessieu Dn pour les pneus situeacute sur la droite de
lessieu et Gn pour les pneus situeacutes agrave gauche n repreacutesentant le numeacutero de lessieu (1 pour celui situeacute
devant 2 pour la deuxiegraveme rangeacutee etc) Un pneu est caracteacuteriseacute par un diamegravetre et une largeur en
pouces
Les moteurs les pneus et les veacutehicules sont fabriqueacutes sous une marque Les mecircmes marques peuvent
fabriquer indiffeacuteremment des moteurs des pneus etou des veacutehicules et un veacutehicule dune certaine
marque peut comporter un moteur etou des pneus de marque diffeacuterente
Question 1
Reacutealiser le modegravele UML de ce problegraveme en faisant apparaicirctre les domaines et les cleacutes
Question 2
Reacutealiser le passage au modegravele relationnel en faisant apparaicirctre les cleacutes primaires candidates et eacutetrangegraveres
Question 3
Dessiner les tableaux correspondant aux relations du modegravele Instancier au minimum deux veacutehicules et quatre
marques
Question 4
Donner quatre exemples denregistrements qui seront refuseacutes - eacutetant donneacutees les donneacutees deacutejagrave inseacutereacutees -
pour quatre raisons diffeacuterentes
contrainte de cleacute sur une cleacute primaire
contrainte de cleacute sur une cleacute candidate
contrainte dinteacutegriteacute reacutefeacuterentielle
contrainte de non nulliteacute
67
V - Creacuteation et
alimentation de bases
de donneacutees SQL
A Cours
1 Le langage SQL
Deacutefinition SQL
SQL (pour langage de requecirctes structureacute) est un langage deacuteclaratif destineacute agrave la manipulation de bases de
donneacutees au sein des SGBD et plus particuliegraverement des SGBDR
SQL LDD LCD LMD LCT
SQL est un langage deacuteclaratif il nest donc pas a proprement parleacute un langage de programmation mais plutocirct
une interface standard pour acceacuteder aux bases de donneacutees
Il est composeacute de quatre sous ensembles
Le Langage de Deacutefinition de Donneacutees (LDD ou en anglais DDL Data Definition
Language) pour creacuteer et supprimer des objets dans la base de donneacutees (tables contraintes dinteacutegriteacute
vues etc)
Exemple de commandes CREATE DROP ALTER
Le Langage de Controcircle de Donneacutees (LCD ou en anglais DCL Data Control Language) pour geacuterer les
droits sur les objets de la base (creacuteation des utilisateurs et affectation de leurs droits)
Exemple de commandes GRANT REVOKE
V
Creacuteation et alimentation de bases de donneacutees SQL
68
Le Langage de Manipulation de Donneacutees (LMD ou en anglais DML Data Manipulation
Language) pour la recherche linsertion la mise agrave jour et la suppression de donneacutees Le LMD est baseacute
sur les opeacuterateurs relationnels auxquels sont ajouteacutes des fonctions de calcul dagreacutegats et des
instructions pour reacutealiser les opeacuterations dinsertion mise agrave jour et suppression
Exemple de commandes INSERT UPDATE DELETE SELECT
Le Langage de Controcircle de Transaction (LCT ou en anglais TCL Transaction Control Language) pour
la gestion des transactions (validation ou annulation de modifications de donneacutees dans la BD)
Exemple de commandes COMMIT ROLLBACK
Fondamental Reacutefeacuterence SQL SQL-99 complete really
Gulutzan and Pelzer 1999 [Gulutzan and Pelzer 1999] httpsmariadbcomkbensql-99)2
Comtpleacutement Origine du SQL
Le modegravele relationnel a eacuteteacute inventeacute par EF Codd (Directeur de recherche du centre IBM de San Joseacute) en
1970 suite agrave quoi de nombreux langages ont fait leur apparition
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel2
IBM SystemR
IBM DB2
Ce sont ces langages qui ont donneacute naissance au standard SQL normaliseacute en 1986 au Eacutetats-Unis par lANSI
pour donner SQL86 (puis au niveau international par lISO en 1987)
Comtpleacutement Versions de SQL
SQL-86 (ou SQL-87) Version dorigine
SQL-89 (ou SQL-1) Ameacuteliorations mineures
SQL-92 (ou SQL-2) Extensions fonctionnelles majeures (types de donneacutees opeacuterations relationnelles
instruction LDD transactions etc
SQL-99 (ou SQL-3) Introduction du PSM (couche proceacutedurale sous forme de proceacutedure stockeacutees)
et du RO
SQL-2003 Extensions XML
SQL-2006 Ameacuteliorations mineures (pour XML notamment)
SQL-2008 Ameacuteliorations mineures (pour le RO notamment)
Remarque Version SQL et imtpleacutementations SGBD
Selon leur niveau dimpleacutementation de SQL les SGBD acceptent ou non certaines fonctions
Certains SGBD ayant entameacute certaines impleacutementations avant leur standardisation deacutefinitive ces
impleacutementations peuvent diffeacuterer de la norme
Creacuteation et alimentation de bases de donneacutees SQL
69
2 Creacuteer des tables en SQL (Langage de Deacutefinition de
Donneacutees)
Le LDD est la partie du langage SQL qui permet de creacuteer de faccedilon deacuteclarative les objets composant une
BD Il permet notamment la deacutefinition des scheacutemas des relations des contraintes dinteacutegriteacute des vues
Rappel Le code SQL peut ecirctre testeacute avec Db Discodbdiscocrztfr
2 - httpsmariadbcomkbensql-99
a) Lab I++
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
70
Question 2
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 3
Creacuteer une base de donneacutees en SQL correspondant au modegravele relationnel
Question 4
Inseacuterer les donneacutees fournies en exemple dans la base de donneacutees
b) Creacuteation de tables
Ratptpel
Quest ce que le SQL
Introduction
La creacuteation de table est le fondement de la creacuteation dune base de donneacutees en SQL
Deacutefinition Creacuteation de table
La creacuteation de table est la deacutefinition dun scheacutema de relation en intension par la speacutecification de tous les
attributs le composant avec leurs domaines respectifs
Syntaxe
CREATE TABLE nom_table ( nom_colonne1 domaine1 nom_colonne2 domaine2 nom_colonneN domaineN )
1 2 3 4 5 6
Exemtple
CREATE TABLE Personne ( Nom VARCHAR(25) Prenom VARCHAR(25) Age NUMERIC(3) )
1 2 3 4 5
Atention Contrainte dinteacutegriteacute
La deacutefinition des types nest pas suffisante pour deacutefinir un scheacutema relationnel il faut lui adjoindre
la deacutefinition de contraintes dinteacutegriteacute qui permette de poser les notions de cleacute dinteacutegriteacute
reacutefeacuterentielle de restriction de domaines etc
Creacuteation et alimentation de bases de donneacutees SQL
71
c) Domaines de donneacutees
Introduction
Un attribut dune relation est deacutefini pour un certain domaine ou type Les types de donneacutees disponibles en
SQL varient dun SGBD agrave lautre on peut neacuteanmoins citer un certain nombre de types standards que lon
retrouve dans tous les SGBD
Fondamental Les types standard
INTEGER ou INT SMALLINT
NUMERIC(X)
DECIMAL(XY) ou NUMERIC(XY)
FLOAT(X) REAL
CHAR(X)
VARCHAR(X)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HHMMSS)
Les tytpes numeacuteriques standard
Les nombres entiers
INTEGER (ou INT) et SMALLINT permettent de coder des entiers sur 4 octets (2147483648 agrave
2147483647) ou 2 octets (-32768 agrave 32767)
Les nombres entiers
NUMERIC(X) deacutesigne un entier de X chiffres au maximum
Les nombres deacutecimaux
DECIMAL(XY) ougrave X et Y sont optionnels et deacutesignent respectivement le nombre de chiffres maximum
pouvant composer le nombre et le nombre de chiffres apregraves la virgule
NUMERIC(XY) est un synonyme standard
Les nombres agrave virgule flottante
FLOAT(X) avec X deacutefinissant la preacutecision (nombre de bits de codage de la mantisse)
REAL est un synonyme standard de FLOAT(24)
Conseil FLOAT versus DECIMAL
Il est conseilleacute dutiliser DECIMAL qui est un nombre exact plutocirct que FLOAT qui est un nombre approximatif
si la preacutecision requise est suffisante FLOAT sera reacuteserveacute typiquement agrave des calculs scientifiques neacutecessitant
un degreacute de preacutecision supeacuterieur
Les tytpes chaicircne de caractegraveres standard
On distingue principalement les types CHAR(X) et VARCHAR(X) ougrave X est obligatoire et deacutesigne la longueur de
la chaicircne
CHAR deacutefinit des chaicircnes de longueur fixe (compleacuteteacutee agrave droites par des espaces si la longueur est
infeacuterieure agrave X)
et VARCHAR des chaicircnes de longueurs variables
Creacuteation et alimentation de bases de donneacutees SQL
72
CHAR et VARCHAR sont geacuteneacuteralement limiteacutes agrave 255 caractegraveres La plupart des SGBD proposent des types tels
que TEXT ou CLOB (Character Long Object) pour repreacutesenter des chaicircnes de caractegraveres longues jusquagrave
65000 caractegraveres par exemple
Les tytpes date standard
Les types date dont introduits avec la norme SQL2 On distingue
DATE qui repreacutesente une date selon un format de type AAAA-MM-JJ
et DATETIME qui repreacutesente une date plus une heure dans un format tel que AAAAMM-JJ HHMMSS
Comtpleacutement Les autres tytpes
En fonction du SGBD il peut exister de nombreux autres types On peut citer par exemple
MONEY pour repreacutesenter des deacutecimaux associeacutes agrave une monnaie
BOOLEAN pour repreacutesenter des booleacuteens
BLOB (pour Binary Long Oject) pour repreacutesenter des donneacutees binaires tels que des documents
multimeacutedia (images bitmap videacuteo etc)
d) La valeur NULL Labsence de valeur repreacutesenteacutee par la valeur NULL est une information fondamentale en SQL quil ne faut
pas confondre avec la chaicircne espace de caractegravere ougrave bien la valeur 0 Il ne sagit pas dun type agrave proprement
parler mais dune valeur possible dans tous les types
Fondamental
Par deacutefaut en SQL NULL fait partie du domaine il faut lexclure explicitement par la clause NOT
NULL apregraves la deacutefinition de type si on ne le souhaite pas Syntaxe
CREATE TABLE nom de table ( 1
CREATE TABLE nom_table ( nom_colonne1 domaine1 NOT NULL
nom_colonne2 domaine2
nom_colonneN domaineN NOT NULL )
2 3 4 5 6 7
e) Contraintes dinteacutegriteacute
Fondamental
PRIMARY KEY (ltliste dattibutsgt)
UNIQUE (ltliste dattibutsgt)
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt)
CHECK (ltconditiongt)
Une contrainte dinteacutegriteacute est une regravegle qui deacutefinit la coheacuterence dune donneacutee ou dun ensemble de donneacutees
de la
Creacuteation et alimentation de bases de donneacutees SQL
73
BD
Il existe deux types de contraintes
sur une colonne unique
ou sur une table lorsque la contrainte porte sur une ou plusieurs colonnes
Les contraintes sont deacutefinies au moment de la creacuteation des tables
Deacutefinition Contraintes dinteacutegriteacute sur une colonne
Les contraintes dinteacutegriteacute sur une colonne sont
PRIMARY KEY deacutefinit lattribut comme la cleacute primaire
UNIQUE interdit que deux tuples de la relation aient la mecircme valeur pour lattribut
REFERENCES ltnom tablegt (ltnom colonnesgt) controcircle linteacutegriteacute reacutefeacuterentielle entre lattribut et la
table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur de lattribut speacutecifieacute dans la condition dans le
cadre dune restriction de domaine
Deacutefinition Contraintes dinteacutegriteacute sur une table
Les contraintes dinteacutegriteacute sur une table sont
PRIMARY KEY (ltliste dattibutsgt) deacutefinit les attributs de la liste comme la cleacute primaire
UNIQUE (ltliste dattibutsgt) interdit que deux tuples de la relation aient les mecircmes valeurs pour
lensemble des attributs de la liste
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt) controcircle linteacutegriteacute
reacutefeacuterentielle entre les attributs de la liste et la table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur des attributs speacutecifieacutes dans la condition dans le
cadre dune restriction de domaine Syntaxe
CREATE TABLE nom de table ( CREATE TABLE nom_table ( nom_colonne1 domaine1 ltcontraintes colonne1gt nom_colonne2 domaine2 ltcontraintes colonne2gt nom_colonneN domaineN ltcontraintes colonneNgt
1 2 3 4 5 6
ltcontraintes de tablegt )
7 8
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) UNIQUE
(Nom Prenom) )
1 2 3 4 5 6 7 8
Remarque Cleacute candidate
La clause UNIQUE NOT NULL sur un attribut ou un groupe dattributs deacutefinit une cleacute candidate non primaire
Creacuteation et alimentation de bases de donneacutees SQL
74
Remarque
Les contraintes sur une colonne et sur une table peuvent ecirctre combineacutees dans la deacutefinition dun mecircme scheacutema
de relation
Remarque
Une contrainte sur une colonne peut toujours ecirctre remplaceacutee par une contrainte sur une table
f) Exemple de contraintes dinteacutegriteacute
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) Codepostal INTEGER(5) Pays VARCHAR(50) UNIQUE (Nom Prenom) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) CHECK (Initiale = LEFT(Pays 1)) PRIMARY KEY (CP Pays) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
Dans la deacutefinition de scheacutema preacuteceacutedente on a poseacute les contraintes suivantes
La cleacute primaire de Personne est NdegSS et la cleacute primaire de Adresse est (CP Pays)
Nom Preacutenom ne peuvent pas ecirctre null et (Nom Preacutenom) est une cleacute
Age doit ecirctre compris entre 18 et 65 et Initiale doit ecirctre la premiegravere lettre de Pays (avec la fonction
LEFT qui renvoie la sous chaicircne agrave gauche de la chaicircne passeacutee en premier argument sur le nombre de
caractegraveres passeacutes en second argument)
Mariage est cleacute eacutetrangegravere vers Personne et (Codepostal Pays) est une cleacute eacutetrangegravere vers Adresse
Exemtple Reacuteeacutecriture avec uniquement des contraintes de table
Creacuteation et alimentation de bases de donneacutees SQL
75
CREATE TABLE Personne ( NdegSS CHAR(13) Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) Mariage CHAR(13) Codepostal INTEGER(5) Pays VARCHAR(50) PRIMARY KEY (NdegSS) UNIQUE (Nom Prenom) CHECK (Age BETWEEN 18 AND 65) FOREIGN KEY (Mariage) REFERENCES Personne(NdegSS) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) PRIMARY KEY (CP Pays) CHECK
(Initiale = LEFT(Pays 1)) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22
Ce scheacutema est strictement le mecircme que le preacuteceacutedent simplement les contraintes ont toutes eacuteteacute reacuteeacutecrites
comme des contraintes de table
g) Exercice Les instructions SQL ci-apregraves ont-elles pu permettre de creacuteer le scheacutema des trois relations instancieacutees ci-dessous
CREATE TABLE A ( A1 CHAR(255) A2 CHAR(255) A3 CHAR(255) A4 CHAR(255) ) CREATE TABLE B ( B1 CHAR(255) B2 CHAR(255) B3 CHAR(255) B4 CHAR(255) B5 CHAR(255) B6 CHAR(255) B7 CHAR(255) ) CREATE TABLE C ( C1 CHAR(255) C2 CHAR(255) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Oui
Non
Creacuteation et alimentation de bases de donneacutees SQL
76
3 Inseacuterer modifier et supprimer des donneacutees en SQL
(Langage de Manipulation de Donneacutees)
Objectifs
Maicirctriser les bases du SQL pour entrer modifier et effacer des donneacutees dans les
tables
a) Exercice Quelle valeur renvoie la derniegravere instruction SQL de la liste ci-dessous
CREATE TABLE t ( a integer b integer c integer)
INSERT INTO t VALUES (0 0 0)
INSERT INTO t VALUES (1 0 0)
INSERT INTO t SELECT FROM t
SELECT sum(a) + count(b) FROM t
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
b) Insertion de donneacutees Le langage SQL fournit des instructions pour ajouter des nouveaux tuples agrave une relation Il offre ainsi une
interface standard pour ajouter des information dans une base de donneacutees
Il existe deux moyens dajouter des donneacutees soit par fourniture directe des valeurs des proprieacuteteacutes du tuple agrave
ajouter soit par seacutelection des tuples agrave ajouter dans une autre relation
Syntaxe Insertion directe de valeurs
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) VALUES (ltListe ordonneacutee
des valeurs agrave affecter aux proprieacuteteacutes speacutecifieacutees cidessusgt) 1 2
Exemtple Insertion directe de valeurs
INSERT INTO Virement (Date Montant Objet) VALUES (14-07-1975 1000 Prime de naissance)
1 2
Syntaxe Insertion de valeurs tpar lintermeacutediaire dune seacutelection
Creacuteation et alimentation de bases de donneacutees SQL
77
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) SELECT 1 2
Linstruction SELECT projetant un nombre de proprieacuteteacutes identiques aux proprieacuteteacutes agrave valoriser
Exemtple Insertion de valeurs tpar lintermeacutediaire dune seacutelection
INSERT INTO Credit (Date Montant Objet) SELECT Date Montant Annulation de deacutebit FROM Debit WHERE DebitDate = 25-12-2001
1 2 3 4
Dans cet exemple tous les deacutebits effectueacutes le 25 deacutecembre 2001 sont re-creacutediteacutes pour le mecircme montant (et
agrave la mecircme date) avec la mention annulation dans lobjet du creacutedit Ceci pourrait typiquement reacutealiseacute en cas
de deacutebits erroneacutes ce jour lagrave
Remarque
Les proprieacuteteacutes non valoriseacutees sont affecteacutees agrave la valeur NULL
Il est possible de ne pas speacutecifier les proprieacuteteacutes agrave valoriser dans ce cas toutes les proprieacuteteacutes de la
relation seront consideacutereacutees dans leur ordre de deacutefinition dans la relation (agrave nutiliser que dans les cas
les plus simples)
c) Mise agrave jour de donneacutees Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation
Syntaxe Mise agrave jour directe de valeurs
1 UPDATE ltNom de la relationgt
2 SET ltListe daffectations Proprieacuteteacute=Valeur Proprieacuteteacute=Valeurgt 3 WHERE ltCondition pour filtrer les tuples agrave mettre agrave jourgt
1 UPDATE r
2 SET a=1 b=x 3 WHERE c=0
Exemtple Mise agrave jour directe de valeurs
UPDATE Compte SET Monnaie=Euro WHERE Monnaie=Franc
1 2 3
Exemtple Mise agrave jour tpar calcul sur lancienne valeur
UPDATE Compte SET Total=Total 655957 WHERE Monnaie=Euro
1 2 3
Creacuteation et alimentation de bases de donneacutees SQL
78
d) Suppression de donneacutees Le langage SQL fournit une instruction pour supprimer des tuples existants dans une relation
Syntaxe
DELETE FROM ltNom de la relationgt WHERE ltCondition pour filtrer les tuples agrave supprimergt
1 2
Exemtple Sutptpression de tous les tutples dune relation
DELETE FROM FaussesFactures 1
Exemtple Sutptpression seacutelective
DELETE FROM FaussesFactures WHERE Auteur=Moi
1 2
4 Supprimer et modifier des tables en SQL (Langage de
Deacutefinition de Donneacutees)
Le LDD permet de creacuteer les objets composant une BD de faccedilon deacuteclarative Il permet notamment la
deacutefinition des scheacutemas des relations la deacutefinition des contraintes dinteacutegriteacute la deacutefinition de vues
relationnelles
a) Suppression dobjets Il est possible de supprimer des objets de la BD tels que les tables ou les vues
Syntaxe
DROP lttype objetgt ltnom objetgt 1
Exemtple
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
79
DROP TABLE Personne DROP VIEW Employe
1 2
b) Modification de tables
Introduction
Linstruction ALTER TABLE permet de modifier la deacutefinition dune table (colonnes ou contraintes) preacutealablement
creacuteeacutee
Cette commande absente de SQL-89 est normaliseacutee dans SQL-92
Syntaxe Ajout de colonne
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de colonnegt
1 2
Syntaxe Sutptpression de colonne
ALTER TABLE ltnom de tablegt DROP ltnom de colonnegt
1 2
Syntaxe Ajout de contrainte
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de contrainte de tablegt
1 2
RemarqueModification de table sans donneacutee sans la commande ALTER
Pour modifier une table ne contenant pas encore de donneacutee la commande ALTER nest pas indispensable
lon peut supprimer la table agrave modifier (DROP) et la recreacuteer telle quon la souhaite Notons neacuteanmoins que si
la table est reacutefeacuterenceacutee par des clauses FOREIGN KEY cette suppression sera plus compliqueacutee car il faudra
eacutegalement supprimer et recreacuteer les tables reacutefeacuterenccedilantes (ce qui ce complique encore si ces derniegraveres
contiennent des donneacutees)
RemarqueModification de table avec donneacutees sans la commande ALTER
Pour modifier une table contenant des donneacutees la commande ALTER nest pas indispensable On peut en effet
1 Copier les donneacutees dans une table temporaire de mecircme scheacutema que la table agrave modifier
2 Supprimer et recreacuteer la table agrave modifier avec le nouveau scheacutema 3 Copier les donneacutees depuis la table temporaire vers la table modifieacutee
c) Exemple de modifications de tables
Table initiale
Soit une table initiale telle que deacutefinie ci-apregraves
Creacuteation et alimentation de bases de donneacutees SQL
80
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) prenom
VARCHAR(50) PRIMARY KEY
(pk_n) )
1 2 3 4 5 6
Modifications
On deacutecide dapporter les ameacutenagements suivants agrave la table on deacutefinit nom comme UNIQUE et on supprime
le champ prenom
ALTER TABLE Personne ADD UNIQUE (nom)
ALTER TABLE Personne DROP prenom
1 2 3 4 5
Table finale
La table obtenue apregraves modification est identique agrave la table qui aurait eacuteteacute deacutefinie directement telle que ci-
apregraves
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) PRIMARY KEY (pk_n) UNIQUE
(nom) )
1 2 3 4 5 6
B Exercices
1 The show
[30 minutes] Soit le scheacutema relationnel suivant deacutecrivant un systegraveme de reacuteservations de places de spectacles
SPECTACLE (nospectacleint nomstr dureacuteeint typetheacuteacirctre|danse|concert) SALLE (nosalleint nbplacesint) REPRESENTATION (datedate nospectacle=gtSPECTACLE nosalle=gtSALLE prixdecimal)
1 2 3
En faisant les suppositions suivantes
On gegravere un espace de spectacles ayant un ensemble de salles (deacutecrit par la relation SALLE)
On suppose que pour un jour donneacute et une salle donneacutee il ny a quun seul spectacle repreacutesenteacute
Question 1
Retro-concevoir le MCD en UML
Question 2
Proposer des contraintes dinteacutegriteacute reacutealistes pour ce scheacutema (en franccedilais)
Question 3
Creacuteation et alimentation de bases de donneacutees SQL
81
Proposer une deacutefinition du scheacutema en SQL qui prenne en compte certaines de ces contraintes
Question 4
Inseacuterer des donneacutees reacutealistes dans votre scheacutema afin de veacuterifier son bon fonctionnement
2 Du producteur au consommateur
[30 min] Soit le modegravele relationnel suivant
Producteur(raison_socialechaicircne(25) villechaicircne(255)) Consommateur(loginchaicircne(10)
emailchaicircne(50) nomchaicircne(50)prenomchaicircne(50) villechaicircne(255)) Produit(identier descriptionchaicircne(100) produit-par=gtProducteur consommepar-
login=gtConsommateur consomme-par-email=gtConsommateur)
1 2
3
On ajoute que
(nomprenomville) est une cleacute candidate de Consommateur
Tous les produits sont produits
Tous les produits ne sont pas consommeacutes
Question 1
Reacutetro-concevez le modegravele conceptuel sous-jacent agrave ce modegravele relationnel
Question 2
Eacutetablissez le code LDD standard permettant dimpleacutementer ce modegravele en SQL
Question 3
Inseacuterez les donneacutees dans votre base de donneacutees correspondant aux assertions suivantes
Lentreprise de Compiegravegne Pommes Picardes SARL a produit 4 lots de pommes et 2 lots de cidre
Il existe trois utilisateurs consommateurs dans la base donc les adresses mails sont
AlUncompiegnefr - BobDeuxcompiegnefr - CharlieTroiscompiegnefr
Ce sont des employeacutes de la ville de Compiegravegne qui habitent cette ville Leur mail est construit sur le
modegravele PrenomNomcompiegnefr Leur login est leur preacutenom
Question 4
Modifiez les donneacutees de votre base de donneacutees pour inteacutegrer les assertions suivantes
1 lots de pommes a eacuteteacute consommeacutes par Al Un
2 lots de pomme ont eacuteteacute consommeacute par Bob Deux
Tous les lots de cidre ont eacuteteacute consommeacutes par Al Un
Question 5
Charlie Trois nayant rien consommeacute modifiez votre base de donneacutees afin de le supprimer de la base
82
VI - Algegravebre relationnelle
A Cours
1 Opeacuterateurs fondamentaux projection restriction et
jointure
Objectifs
Connaicirctre et savoir utiliser les opeacuterateurs relationnels de projection restriction
produit et jointure
a) Introduction La repreacutesentation dinformation sous forme relationnelle est inteacuteressante car les fondements matheacutematiques
du relationnel outre quils permettent une modeacutelisation logique simple et puissante fournissent eacutegalement
un ensemble de concepts pour manipuler formellement linformation ainsi modeacuteliseacutee
Ainsi une algegravebre relationnelle sous forme dun ensemble dopeacuterations formelles permet dexprimer des
questions ou requecirctes poseacutees agrave une repreacutesentation relationnelle sous forme dexpressions algeacutebriques
Lalgegravebre relationnelle est composeacutee par les cinq opeacuterateurs de base et les trois opeacuterateurs additionnels
suivants
Opeacuterateurs de base
- Union - Diffeacuterence - Projection - Restriction
VI
Algegravebre relationnelle
83
- Produit carteacutesien
Opeacuterateurs additionels
- Intersection - Jointure - Division
Fondamental Algegravebre relationnelle et SQL
Les questions formuleacutees en algegravebre relationnelle sont la base des questions formuleacutees en SQL
pour interroger une base de donneacutees relationnelle
b) Employeacutes et deacutepartements
[30 minutes] Soit les deux relations EMP et DEPT ci-apregraves
EMP (ENO ENOM PROF SAL COMM DNO=gtDEPT(DNO)) DEPT (DNO DNOM DIR=gtEMP(ENO) VILLE)
1 2
ENO numeacutero demployeacute cleacute
ENOM nom de lemployeacute
PROF profession (directeur nest pas une profession)
SAL salaire
COMM commission (un employeacute peut ne pas avoir de commission)
DNO numeacutero de deacutepartement auquel appartient lemployeacute
DNO numeacutero de deacutepartement cleacute
DNOM nom du deacutepartement
DIR numeacutero demployeacute du directeur du deacutepartement
VILLE lieu du deacutepartement (ville)
Eacutecrire en algegravebre relationnelle les requecirctes permettant dobtenir les informations suivantes
Question 1
Lister les employeacutes ayant des revenus supeacuterieurs agrave 10000 euros
Question 2
Trouver le nom et la profession de lemployeacute numeacutero 10
Question 3
Lister les noms des employeacutes qui travaillent agrave Paris
Question 4
Trouver le nom du directeur du deacutepartement Commercial
Question 5
Trouver les professions des directeurs des deacutepartements
Question 6
Algegravebre relationnelle
84
Trouver le nom des directeurs de deacutepartement ayant comme profession Ingeacutenieur
c) Projection
Deacutefinition Projection
La projection est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La projection de R1 sur
une partie de ses attributs A1 A2 produit une relation R2 dont le scheacutema est restreint aux attributs
mentionneacutes en opeacuterande comportant les mecircmes tuples que R1 et dont les doublons sont eacutelimineacutes
Remarque Eacutelimination des doublons
Apregraves suppression dune partie des attributs du scheacutema la relation peut comporter des doublons Eacutetant donneacute
que lon ne pourrait plus identifier ces doublons les uns par rapport aux autres la seule solution senseacutee est
donc de consideacuterer que deux doublons sont eacutequivalents et donc de nen garder quun seul dans la relation
reacutesultante
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Dupont Pierre 20
Durand Jean 30
Tableau 8 Personne
Soit lopeacuteration suivante
R = Projection (Personne Nom Age) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont 20
Durand 30
Tableau 9 R
d) Restriction
Deacutefinition Restriction
La restriction est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La restriction de R1 eacutetant
donneacutee une condition C produit une relation R2 de mecircme scheacutema que R1 et dont les tuples sont les tuples
de R1 veacuterifiant la condition C
Algegravebre relationnelle
85
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Soit les tuples suivants
Dupont Pierre 20
Durand Jean 30
Tableau 10 Personne
Soit lopeacuteration suivante
R = Restriction (Personne Agegt25) 1
On obtient alors la relation R composeacutee de lunique tuple restant suivant
Durand Jean 30
Tableau 11 R
e) Produit
Deacutefinition Produit carteacutesien
Le produit carteacutesien est une opeacuteration binaire (cest agrave dire portant sur deux relations) Le produit de R1 par
R2 (eacutequivalent au produit de R2 par R1) produit une relation R3 ayant pour scheacutema la juxtaposition de ceux
des relations R1 et R2 et pour tuples lensemble des combinaisons possibles entre les tuples de R1 et ceux de
R2 Synonymes Produit
Remarque
Le nombre de tuples reacutesultant du produit de R1 par R2 est eacutegal au nombre de tuples de R1 fois le nombre de
tuples de R2
Remarque
Le nombre de colonne du produit de R1 par R2 est eacutegal au nombre de colonne de R1 plus le nombre de
colonnes de R2
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Algegravebre relationnelle
86
Durand Jean 30
Tableau 12 Homme
Tesla Model X
Citroeumln 2 CV
Tableau 13 Voiture
Soit lopeacuteration suivante
R = Produit (Homme Voiture) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X
Dupont Pierre 20 Citroeumln 2 CV
Durand Jean 30 Tesla Model X
Durand Jean 30 Citroeumln 2 CV
Tableau 14 R
Remarque
Le produit carteacutesien est rarement utiliseacute seul mais il est agrave la base de la jointure
f) Jointure
Deacutefinition Jointure
La jointure est une opeacuteration binaire (cest agrave dire portant sur deux relations) La jointure de R1 et R2 eacutetant
donneacute une condition C portant sur des attributs de R1 et de R2 de mecircme domaine produit une relation R3
ayant pour scheacutema la juxtaposition de ceux des relations R1 et R2 et pour tuples lensemble de ceux obtenus
par concateacutenation des tuples de R1 et de R2 et qui veacuterifient la condition C
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 15 Homme
Algegravebre relationnelle
87
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV Dupont
Tableau 16 Voiture
Soit lopeacuteration suivante
R = Jointure (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Dupont Pierre 20 Citroeumln 3 CV Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Tableau 17 R
(Dupont Pierre 20 Dupont Georges 1) (Dupont Pierre 20 Dupont Jacques 3)
1 2
Fondamental
La jointure est lopeacuteration qui permet de rassembler les informations seacutepareacutees entre plusieurs
tables et reacutefeacuterenceacutees par des cleacutes eacutetrangegraveres
Remarque Otpeacuteration additionnelle
La jointure nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit et la restriction
g) Exercice Quelles sont les expressions relationnelles eacutequivalentes agrave
Projection ( Jointure (R1 R2 R1A1=R2A1) R1A1 R2A2) 1
Jointure ( Projection(R1 A1) Projection(R2 A2) R1A1=R2A1)
Projection ( Jointure (R2 R1 R2A1=R1A1) R1A1 R2A2)
Projection ( Restriction ( Produit(R1 R2) R1A1=R2A1) R1A1 R2A2)
Produit (R1 R2 R1A1=R2A1 R1A1 R2A2)
Algegravebre relationnelle
88
2 Opeacuterateurs compleacutementaires
a) Jointure naturelle
Deacutefinition Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition est leacutegaliteacute entre les attributs
de mecircme nom de R1 et de R2 Il est donc inutile de speacutecifier la condition dans une jointure naturelle elle
reste toujours implicite
Exemtple
Soit deux relations R1 (A B C) et R2 (A D) lopeacuteration Jointure(R1R2R1A=R2A) est eacutequivalente agrave
lopeacuteration JointureNaturelle(R1R2)
Remarque
Pour appliquer une jointure naturelle il faut que les deux relations opeacuterandes aient au moins un attribut ayant
le mecircme nom en commun
b) Jointure externe
Introduction
La jointure est une opeacuteration qui entraicircne la perte de certains tuples ceux qui appartiennent agrave une des deux
relations opeacuterandes et qui nont pas de correspondance dans lautre relation Il est neacutecessaire dans certains
cas de palier cette lacune et lon introduit pour cela la notion de jointure externe
Deacutefinition Jointure externe
La jointure externe entre R1 et R2 est une jointure qui produit une relation R3 agrave laquelle on ajoute les tuples
de R1 et de R2 exclus par la jointure en compleacutetant avec des valeurs nulles pour les attributs de lautre
relation
Deacutefinition Jointure externe gauche
La jointure externe gauche entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les
tuples de R1 (cest agrave dire la relation de gauche) ayant eacuteteacute exclus
Synonymes Jointure gauche
Deacutefinition Jointure externe droite
Objectifs
Maicirctriser lalgegravebre relationnelle
Algegravebre relationnelle
89
La jointure externe droite entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les tuples
de R2 (cest agrave dire la relation de droite) ayant eacuteteacute exclus
Bien entendu une jointure externe droite peut ecirctre reacuteeacutecrite par une jointure externe gauche (et
reacuteciproquement) en substituant les relations opeacuterandes R1 et R2
Synonymes Jointure droite
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Martin Georges 40
Tableau 18 Homme
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV NULL
Tableau 19 Voiture
Soit lopeacuteration suivante
R = JointureExterne (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Martin Georges 40 NULL NULL NULL
NULL NULL NULL Citroeumln 3 CV NULL
Tableau 20 R
Une jointure externe gauche naurait renvoyeacute que les trois premiers tuples et une jointure externe droite
naurait renvoyeacutee que les deux premiers et le dernier tuple
Algegravebre relationnelle
90
c) Opeacuterateurs ensemblistes
Atention Les opeacuterateurs ensemblistes sont des relations binaires (cest agrave dire entre deux relations) portant
sur des relations de mecircme scheacutema
Deacutefinition Union
Lunion de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee de
lensemble des tuples appartenant agrave R1 etou agrave R2
Deacutefinition Difeacuterence
La diffeacuterence entre deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema
constitueacutee de lensemble des tuples de R1 nappartenant pas agrave R2 Notons que la diffeacuterence entre R1 et R2
nest pas eacutegale agrave la diffeacuterence entre R2 et R1
Deacutefinition Intersection
Lintersection de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee
de lensemble des tuples appartenant agrave la fois agrave R1 et agrave R2 Notons que lintersection nest pas une opeacuteration
de base car elle est eacutequivalent agrave deux opeacuterations de diffeacuterence successives
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Femme (Nom Preacutenom Age)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 21 Homme
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 22 Femme
Soit lopeacuteration suivante
R = Union (Homme Femme) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20
Durand Jean 30
Algegravebre relationnelle
91
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 23 R
La diffeacuterence entre Homme et Femme (respectivement entre Femme et Homme) renvoie la relation Homme
(respectivement Femme) car aucun tuple nest commun aux deux relations Lintersection entre Homme est
Femme est vide pour la mecircme raison
Remarque Union externe
Il est possible de deacutefinir une opeacuteration dunion externe qui permet de reacutealiser lunion de deux relations de
scheacutema diffeacuterent en ramenant les relations aux mecircmes scheacutemas et en les compleacutetant avec des valeurs nulles
d) Division
Deacutefinition Division
La division est une opeacuteration binaire (cest agrave dire portant sur deux relations) La division de R1 par R2 sachant
que R1 et R2 ont au moins un attribut commun (cest agrave dire de mecircme nom et de mecircme domaine) produit
une relation R3 qui comporte les attributs appartenant agrave R1 mais nappartenant pas agrave R2 et lensemble des
tuples qui concateacuteneacutes agrave ceux de R2 donnent toujours un tuple de R1
Exemtple
Soit les deux relations suivantes
Pratique (Homme Meacutetier Salaire) Meacutetier (Metier)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Ingeacutenieur 35
Durand Professeur 40
Dupont Ingeacutenieur 45
Martin Ingeacutenieur 50
Tableau 24 Pratique
Ingeacutenieur
Professeur
Tableau 25 Meacutetier
Soit lopeacuteration suivante
R = Division (Homme Meacutetier) 1
Algegravebre relationnelle
92
On obtient alors la relation R composeacutee des tuples suivants
Dupont 35
Tableau 26 R
Meacutethode Reacutetponse aux questions Pour tous les
La division permet de reacutepondre aux questions du type Donnez toutes les personnes qui pratiquent tous les
meacutetiers de la relation meacutetier
Remarque Otpeacuteration additionnelle
La division nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit la restriction et la
diffeacuterence
e) Proposition de notations Introduction Il existe plusieurs syntaxes pour eacutecrire des opeacuterations dalgegravebre relationnelle certaines inspireacutees de lalgegravebre
classiques dautres reposant sur des notations graphiques Nous proposons une notation fonctionnelle qui a
le meacuterite decirctre facile agrave eacutecrire et decirctre lisible Si cette notation peut parfois perdre en simpliciteacute lorsquelle
concerne un nombre eacuteleveacute dopeacuterateurs il est possible de deacutecomposer une opeacuteration compliqueacutee afin de
lalleacuteger
Syntaxe
R = Union (R1 R2) R = Diffeacuterence (R1 R2) R = Intersection (R1 R2) R = Projection (R1 A1 A2 ) R = Restriction (R1 condition) R = Produit (R1 R2) R = Jointure (R1 R2 condition) R = JointureNaturelle (R1 R2) R = JointureExterne (R1 R2 condition) R = JointureGauche (R1 R2 condition) R = JointureDroite (R1 R2 condition) R = Division (R1 R2)
1 2 3 4 5 6 7 8 9
10 11 12
Exemtple Notation syntheacutetique
R = Projection(Restriction(R1 A1=1 AND A2=2) A3) 1
Exemtple Notation deacutecomtposeacutee
R = Restriction(R1 A1=1 AND A2=2) R = Projection (R A3)
1 2
Algegravebre relationnelle
93
f) Exercice Soit les deux relations R1 et R2 suivantes deacutefinies en extension
A B
1 A
2 B
3 C
Tableau 27 R1
A
1
2
Tableau 28 R2
Combien de tuples renvoie lopeacuteration relationnelle suivante
R3 = JointureNaturelle (Intersection (Projection(R1A) R2) R2) 1
g) Opeacuterateurs de base et additionnels Reacuteeacutecrivez les opeacuterateurs additionnels suivants agrave partir dopeacuterateurs de base
Question 1
Reacuteeacutecrivez Intersection agrave partir de Diffeacuterence
Question 2
Reacuteeacutecrivez Jointure agrave partir de Produit et Restriction
Algegravebre relationnelle
94
B Exercices
1 Faire du Cineacutema
[30 minutes] On considegravere les deux relations suivantes
FILMS (titre pays anneacutee reacutealisateur dureacutee) ACTEURS (titre acteur)
1 2
ougrave les attributs ont les significations et les types suivants
titre titre dun film (chaicircne 50 caractegraveres)
pays pays dougrave un film est originaire (chaicircne 10 caractegraveres)
annee anneacutee de sortie du film (entier 4 chiffres)
realisateur nom du reacutealisateur du film (chaicircne 20 caractegraveres)
duree dureacutee du film en minutes (entier 3 chiffres)
acteur nom dacteur (chaicircne 20 caractegraveres)
La relation FILMS donne pour chaque film identifieacute par son titre le pays lanneacutee de sortie reacutealisateur et la
dureacutee
La relation ACTEURS donne pour chaque film lensemble des principaux acteurs
Agrave laide de lalgegravebre relationnelle exprimer les requecirctes suivantes
Question 1
Lister les films franccedilais (titre anneacutee reacutealisateur)
Question 2
Donnez les anneacutees de sortie des films dans lesquels lacteur Jean GABIN a joueacute
Question 3
Trouver les acteurs qui ont tourneacute avec Franccedilois Truffaut comme reacutealisateur
Question 4
Trouver tous les acteurs qui ont eacuteteacute partenaires de lactrice Catherine Deneuve
Question 5
Lister les films dans lesquels le reacutealisateur est aussi acteur
Question 6
Lister les reacutealisateurs nayant joueacute comme acteurs que dans des films quils ne reacutealisaient pas eux-mecircmes
Question 7
Lister les reacutealisateurs ayant joueacute comme acteurs dans des films quils ne reacutealisaient pas eux-mecircmes
Question 8
Donnez les acteurs qui jouent dans tous les films de Franccedilois TRUFFAUT
Algegravebre relationnelle
95
2 Qiz Algegravebre relationnelle
Exercice 1 Quelles sont les opeacuterations relationnelles qui appliqueacutees sur les relations instancieacutees cidessous renvoient un ensemble non nul de tuples
Num Nom Famille
1 Ours Mammifegravere
2 Truite Poisson
3 Homme Mammifegravere
4 Martinshypecirccheur Oiseau
Tableau 29 Animal
Num Nom
1 Forecirct
2 Montagne
3 Ciel
4 Riviegravere
5 Mer
Tableau 30 Environnement
Animal Environnement
1 1
1 2
1 4
2 4
4 3
Tableau 31 Habiter
Mangeur Mangeacute Freacutequence
1 2 Souvent
1 3 Rarement
1 4 Rarement
4 2 Souvent
3 1 Rarement
Algegravebre relationnelle
96
3 2 Souvent
Tableau 32 Manger
Restriction( Projection (Animal Nom Famille) Famille=Mammifegravere)
Restriction( Jointure( Jointure (Animal Habiter AnimalNum=HabiterAnimal) Environnement
EnvironnementNum=HabiterEnvironnement) AnimalNum=3)
Restriction( JointureExterneGauche( Animal Habiter
AnimalNum=HabiterAnimal) AnimalNom=Homme)
Jointure( Animal Manger AnimalNum=MangerMangeur AND AnimalNum=MangerMangeacute)
Exercice 2 Soit le scheacutema relationnel
R1(X Y) R2(X Y)
1 2
Quelles sont les opeacuterations relationnelles eacutequivalentes agrave lopeacuteration
Projection( JointureNaturelle(R1R2) R1X) 1
JointureNaturelle(Projection(R1 X) Projection(R2 X))
Projection( Selection (Produit(R1 R2) R1X=R2X AND R1Y=R2Y) R1X)
Projection( Union( R1 R2) R1X)
Projection( JointureExterne ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Projection( Jointure ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Algegravebre relationnelle
97
Exercice 3 Soit la relation instancieacutee suivante
A B C
1 1 0
1 0 1
0 1 1
Tableau 33 Relation R1
Quelles relations sont retourneacutees par lopeacuteration relationnelle suivante
R2 = JointureNaturelle(R1 R1) 1
1 1 0
1 0 1
0 1 1
Tableau 34 R2a
1 1 0
1 0 1
0 1 1
1 1 0
1 0 1
0 1 1
Tableau 35 R2b
1 1 1
0 0 0
Tableau 36 R2c
1 1 0 1 1 0
1 0 1 1 0 1
0 1 1 0 1 1
Algegravebre relationnelle
98
Tableau 37 R2d
R2a
R2b
R2c
R2d
Une relation vide (aucun tuple)
3 Le retour des eacutecoliers
[45 minutes] Soit le scheacutema relationnel suivant
IMMEUBLE (ADI NBETAGES DATEC PROP) APPIM (ADI NAPR OCCUP TYPE SUPER ETAGE) PERSONNE (NOM AGE PROF ADR NAPR) EacuteCOLE (NOMEC ADEC DIR) CLASSE (NOMEC NCL MAITRE) ENFANT (NOMP PRENOM AN NOMEC NCL)
1 2 3 4 5 6
Avec la signification suivante
Relation IMMEUBLE
ADI adresse dimmeuble cleacute on fait lhypothegravese pour simplifier que ladresse identifie de maniegravere
unique un immeuble NBETAGES nombre deacutetages dun immeuble
DATEC date de construction (anneacutee)
PROP nom du proprieacutetaire de limmeuble qui est une personne
Relation APPIM (Appartement) ADI
adresse dimmeuble
NAPR numeacutero dappartement
OCCUP occupant de lappartement (nom de la personne ayant signeacute le contrat de location
eacuteventuellement aucun)
TYPE type de lappartement (Studio F2 )
SUPER superficie de lappartement
ETAGE eacutetage ougrave se situe lappartement
Relation PERSONNE
NOM nom de personne cleacute on fait lhypothegravese pour simplifier que ce nom est unique sur lensemble
des personnes que lon considegravere dans la base
AGE acircge de la personne
PROF profession de la personne
ADR adresse de la reacutesidence dune personne il sagit dun immeuble NAPR numeacutero
dappartement
Relation EacuteCOLE
NOMEC nom dune eacutecole cleacute
ADEC adresse dune eacutecole
DIR nom du directeur
Algegravebre relationnelle
99
Relation CLASSE
NOMEC nom dune eacutecole
NCL nom de la classe eg CP1 CE2 CE3 etc MAITRE nom
de linstituteur
Relation ENFANT
NOMP nom de la personne responsable de lenfant cleacute eg pegravere megravere etc
PRENOM preacutenom de lenfant
AN anneacutee de naissance
NOMEC nom dune eacutecole
NCL nom de la classe
La relation IMMEUBLE deacutecrit un ensemble dimmeubles Chaque immeuble a un proprieacutetaire La relation APPIM
deacutecrit pour chaque immeuble lensemble des appartements qui le compose (il y a au mimimum un appartement
par immeuble) Chaque appartement peut heacuteberger plusieurs personnes mais il y en a une qui est responsable
(par exemple la personne qui a signeacute le contrat de location) et qui est deacutesigneacutee par lattribut OCCUP Si
lappartement est inoccupeacute il prend la valeur NULL La relation PERSONNE deacutecrit un ensemble de personnes
ADR et NAPR repreacutesentent ladresse ougrave reacuteside une personne Une personne peut avoir plusieurs enfants deacutecrits
par la relation ENFANT Pour simplifier on ne considegravere que les enfants allant agrave leacutecole primaire Les eacutecoles et
les classes sont deacutecrites dans les relations EacuteCOLE et CLASSE chaque eacutecole est composeacutee au minimum dune
classe et chaque classe est au moins freacutequenteacutee par un enfant
Question 1
Donner ladresse des immeubles ayant plus de 10 eacutetages et construits avant 1970
Question 2
Donner les noms des personnes qui habitent dans un immeuble dont ils sont proprieacutetaires
Question 3
Donner les noms des personnes qui ne sont pas proprieacutetaires
Question 4
Donner les adresses des immeubles posseacutedeacutes par des informaticiens dont lacircge est infeacuterieur agrave 40 ans
Question 5
Donner la liste des occupants (nom acircge profession) des immeubles posseacutedeacutes par DUPONT
Question 6
Donner le nom et la profession des proprieacutetaires dimmeubles dans lesquels il y a des appartements vides
Question 7
Donner les noms des maicirctres qui habitent dans le mecircme immeuble (agrave la mecircme adresse) quau moins un de
leurs eacutelegraveves (on suppose que les enfants vivent sous le mecircme toit que leur parents)
Question 8
Donner ladresse de limmeuble la date de construction le type dappartement et leacutetage ougrave habitent chacun
des maicirctres des enfants de DUPONT
Algegravebre relationnelle
100
101
Qestions de synthegravese
Pourquoi est-il fondamental mais difficile de parvenir agrave un MCD correct
Eacutenoncer quelques actions agrave mener pour reacutealiser une speacutecification geacuteneacuterale de lexistant et des besoins
Quest ce qui diffeacuterencie fondamentalement un MCD dun MLD
Questions de synthegravese
102
Quels sont les principaux eacuteleacutements du diagramme de classes UML
Quelles sont les diffeacuterences et points communs entre la diagramme de classe UML et le modegravele E-A
eacutetendu
Questions de synthegravese
103
Quest ce quun domaine
Comment identifie-t-on un attribut dune relation
Comment identifie-t-on un enregistrement dune relation
Questions de synthegravese
104
Quand doit-on ajouter des cleacutes artificielles
Quelle problegraveme pose la redondance et comment le reacutesoudre
A quoi sert le LDD
Questions de synthegravese
105
Quel rapport y-a-t il entre le LDD et le concept de relation
Pourquoi la jointure est-elle un opeacuterateur essentiel
Questions de synthegravese
106
Quels sont les opeacuterateurs algeacutebriques de base Quels sont les autres opeacuterateurs Quest ce qui les diffeacuterencie
Quels sont les opeacuterateurs ensemblistes Quest ce qui les caracteacuterise
Pourquoi la jointure est-elle un opeacuterateur essentiel
Quest ce qui diffeacuterencie une jointure externe dune jointure classique
107
Glossaire
Cleacute artificielle
Une cleacute artificielle est un attribut ajouteacute agrave une relation afin didentifier ses enregistrements On fait appel agrave
une cleacute artificielle lorsque la relation ne comporte aucune cleacute naturelle ou que ses cleacutes naturelles sont jugeacutees
inadapteacutees agrave lidentification au sein de la base de donneacutees
Extension
Lextension est lexplicitation dun domaine par leacutenonciation exhaustive de lensemble des objets du domaine
Elle soppose agrave linstension qui est une description abstraite des caracteacuteristiques du domaine
Exemple bleu rouge vert
Contre-exemple Le domaine des couleurs
Intension
Lintension est lexplicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa
compreacutehension abstraite geacuteneacuterale)
Elle soppose agrave lextension qui est leacutenonciation exhaustive de lensemble des objets du domaine
Exemple Le domaine des couleurs
Contre-exemple bleu rouge vert
108
Signification des abreacuteviations
- ANSI American National Standards Institute
- BD Base de Donneacutees
- E-A Entiteacute-Association
- ISO International Standardization Organization
- LCD Langage de Controcircle de Donneacutees
- LDD Langage de Deacutefinition de Donneacutees
- LMD Langage de Manipulation de Donneacutees
- OMG Object Management Group
- PSM Persistent Stored Modules
- RO Relationnel-Objet
- SGBD Systegraveme de Gestion de Bases de Donneacutees
- SGBDR Systegraveme de Gestion de Bases de Donneacutees Relationnelles
- SQL Structured Query Language
- UML Unified Modeling Language
- XML eXtensible Markup Language
Reacutefeacuterences
[dbdiscocrztfr] httpdbdiscocrztfr3
109
3 - httpdbdiscocrztfr
Bibliographie
[Arribe 2014] ARRIBE THIBAUT 2014 Conception des chaicircnes eacuteditoriales documentariser lactiviteacute et structurer le graphe documentaire pour ameacuteliorer la maicirctrise de la reacuteeacuteditorialisation Universiteacute de Technologie de
Compiegravegne Meacutemoire de Doctorat httpicsutcfr~tha
[Codd70] CODD EF A relational model for large shared data banks Communications de lACM juin 1970
[Delmal01] DELMAL PIERRE SQL2 SQL3 applications agrave Oracle De Boeck Universiteacute 2001
[Gardarin99] GARDARIN GEORGES Bases de donneacutees objet et relationnel Eyrolles 1999
[Gulutzan and Pelzer 1999] GULUTZAN PETER PELZER TRUDY 1999 SQL-99 complete really CMP books
[Muller98] MULLER PA Modeacutelisation objet avec UML Eyrolles 1998
[Roques04] ROQUES PASCAL VALLEacuteE FRANCK UML 2 en action De lanalyse des besoins agrave la conception J2EE
ISBN 2212-11462-1 (3egraveme eacutedition) Paris Eyrolles 2004 385 p architecte logiciel
[Rothenberg et al 1989] ROTHENBERG JEFF WIDMAN LAWRENCE E LOPARO KENNETH A NIELSEN NORMAN R 1989 The nature of modeling Rand vol3027
[Soutou02] SOUTOU CHRISTIAN De UML agrave SQL Conception de bases de donneacutees Eyrolles 2002
[Tardieu83] TARDIEU H ROCHFELD A COLLETI R Meacutethode MERISE Tome 1 Principes et outils Les Editions dOrganisation 1983
Webographie
[w_journaldunetcom(1)] MORLON JEacuteROcircME UML en 5 eacutetapes httpdeveloppeurjournaldunetcomdossiersalg_umlshtml 2004
[w_journaldunetcom(2)] BORDERIE XAVIER Cinq petits conseils pour un scheacutema UML efficace
httpdeveloppeurjournaldunetcomtutorielcpt031013cpt_uml5conseilsshtml 2004
[w_objecteering] Objecteering software httpwwwobjecteeringcom [2002-septembre]
[w_umlfreefr] UML en Franccedilais httpumlfreefr consulteacute en 2002
Questions de synthegravese
110
Index
11 p54 Error Reference source
not found 1N p53 Error Reference source
not found Algegravebre p48 71 71 72 73 74 75
76 76 76 78 79 80 ALTER TABLE p67 68 Analyse p9 11 12 13 Application p6 Association pError Reference
source not found 31 Error
Reference source not found 32 44
Error Reference source not found
53 Error Reference source not
found 53 Error Reference source
not found 54 Error Reference
source not found 54 Attribut p28 32 40 41 41 42 44
51 52 54 Base de donneacutees p17 BD p4
Cardinaliteacute p32 Error
Reference source not found Error
Reference source not found Carteacutesien p74 CHECK p62 63 Classe p27 50 54 Cleacute p41 42 42 44 Cleacute artificielle p42 Cleacute candidate p42 Cleacute primaire p42 42 Cleacute signifiante p42 Codd p39 Composition pError Reference
source not found Error Reference
source not found Conception p9 11
Conceptuel p9 11 13 15 26 27
50 53
CREATE TABLE p59
Creacuteation p58 Deacuteclaratif p58 DELETE p65 66 Diagramme p26 Diffeacuterence p78 Division p79 Domaine p39 48 48 60 61 DROP p67 E-A p32 Enregistrement p40 41 Externe p15 76 FOREIGN KEY p62 63 INSERT p65 65 Instance p15 Interne p15 Intersection p78 Jointure p75 76 76 Langage p8 65 LDD p8 58 67 Lien p44 LMD p8 65 Logique p38 38 39 39 41 50
53 Manipulation p71 Meacutethode p30 Modegravele p13 23 38 39 39 41 45
46 Modeacutelisation p42 Modification p67 NM p53 N M pError Reference source not
found Naturelle p76 NOT NULL p62 63 Null p61 OMG p27 Opeacuteration p30 48 Passage p50 53 PostgreSQL p17
PRIMARY KEY p62 63 Produit p48 48 74
Projection p72 Proprieacuteteacute p28 32 Reacutefeacuterence p44 REFERENCES p62 63 Relation p40 41 41 42 44 44 45
48 Relationnel p5 Error
Reference source not found 38 38
39 39 41 45 46 48 48 50 50
51 Error Reference source not
found 52 53 53 Error Reference
source not found 53 Error Reference source not found 54
Error Reference source not found 54 71
71 76 80 Relationnel-objet p38 39 Requecircte p65 Restriction p73 Scheacutema p15 45 46 SGBD p5 Speacutecifications p12 SQL p8 58 65 67 Suppression p67 Table p58 67 Tuple p40 Type p60 61 UML p13 26 27 27 28
Error Reference source not found
30 31 Error Reference source not found 32 50
50 51 Error Reference source not
found 52 53 53 Error Reference source not
found 53 Error Reference source not
found 54 Error Reference source not found
54 Union p78 UNIQUE p62 63 UPDATE p65 66
wwwsambaconsultantscom 111
Contenus annexes
- Deacutefinition du mouvement NoSQL
Deacutefinition
Le NoSQL regroupe de nombreuses bases de donneacutees reacutecentes pour la plupart qui se caracteacuterisent par une logique de repreacutesentation de donneacutees non relationnelle et qui noffrent donc pas une interface de requecirctes en SQL
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-dedonnees-nosql4
NoSQL signifie Not Only SQL et non pas No SQL il sagit de compleacutements aux SGBDR pour des
besoins speacutecifiques et non de solutions de remplacement Exemtple
BD orienteacutee cleacute-valeur
BD orienteacutee graphe
BD orienteacutee colonne
BD orienteacutee document
Comtpleacutement
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql5
- Transformation des meacutethodes par des vues
Meacutethode
Lorsquune meacutethode est speacutecifieacutee sur un diagramme UML pour une classe C si cette meacutethode est une fonction
relationnelle (elle renvoie une unique valeur et elle peut ecirctre reacutesolue par une requecircte SQL) alors on creacutee une
vue qui reprend les attributs de la classe C et ajoute des colonnes calculeacutees pour les meacutethodes
Remarque Atributs deacuteriveacutes
Les attributs deacuteriveacutes eacutetant apparenteacutes agrave des meacutethodes ils peuvent eacutegalement ecirctre geacutereacutes par des vues
Contenus annexes
112
- Composition
Deacutefinition Association de comtposition
On appelle composition une association particuliegravere qui possegravede les proprieacuteteacutes suivantes
La composition associe une classe composite et des classes parties tel que tout objet partie appartient
agrave un et un seul objet composite Cest donc une association 1N (voire 11)
La composition nest pas partageable donc un objet partie ne peut appartenir quagrave un seul objet
composite agrave la fois
Le cycle de vie des objets parties est lieacute agrave celui de lobjet composite donc un objet partie disparaicirct
quand lobjet composite auquel il est associeacute disparaicirct
Remarque
La composition est une association particuliegravere (binaire de cardinaliteacute contrainte)
La composition nest pas symeacutetrique une classe joue le rocircle de conteneur pour les classes lieacutees elle
prend donc un rocircle particulier a priori
La composition est une agreacutegation avec des contraintes suppleacutementaires (non partageabiliteacute et cycle
de vie lieacute)
Image 14 Notation de la composition en UML
Atention Composition et cardinaliteacute
La cardinaliteacute cocircteacute composite est toujours de exactement 1
Cocircteacute partie la cardinaliteacute est libre elle peut ecirctre 01 1 ou bien 1
Image 15 Un livre
On voit bien ici quun chapitre na de sens que faisant partie dun livre quil ne peut exister dans deux livres
diffeacuterents et que si le livre nexiste plus les chapitres le composant non plus
Remarque Comtposition et entiteacutes faibles
Syntaxe
Contenus annexes
113
wwwsambaconsultantscom
La composition permet dexprimer une association analogue agrave celle qui relie une entiteacute faible agrave une entiteacute
identifiante en modeacutelisation E-A Lentiteacute de type faible correspond agrave un objet partie et lentiteacute identifiante
agrave un objet composite
Conseil Comtposition et atribut multivalueacute
Une composition avec une classe partie doteacutee dun seul attribut peut seacutecrire avec un attribut multivalueacute
Un attribut composeacute et multivalueacute peut seacutecrire avec une composition
Ratptpel Voir aussi
Attributs
Agreacutegation - p100
- Agreacutegation
Deacutefinition Association dagreacutegation
Lagreacutegation est une association particuliegravere utiliseacutee pour preacuteciser une relation toutpartie (ou
ensembleeacuteleacutement) on parle dassociation meacutereacuteologique
Elle possegravede la proprieacuteteacute suivante Lagreacutegation associe une classe agreacutegat et des classes parties tel que tout
objet partie appartient agrave au moins un objet agreacutegat
Remarque
Lagreacutegation est une association particuliegravere (binaire de cardinaliteacute libre)
Lagreacutegation nest pas symeacutetrique Syntaxe
Image 16 Notation de lagreacutegation en UML
La cardinaliteacute peut ecirctre exprimeacutee librement en particulier les instances de la classe Eacuteleacutement peuvent ecirctre
associeacutees agrave plusieurs instances de la classe Ensemble et mecircme de plusieurs classes
Atention
Lagreacutegation garde toutes les proprieacuteteacutes dune association classique (cardinaliteacute cycle de vie
etc) elle ajoute simplement une terminologie un plus preacutecise via la notion de toutpartie
- Explicitation des associations
Syntaxe Sens de lecture
Il est possible dajouter le sens de lecture du verbe caracteacuterisant lassociation sur un diagramme de classe
UML afin den faciliter la lecture On ajoute pour cela un signe lt ou gt (ou un triangle noir) agrave cocircteacute du nom
de lassociation
Contenus annexes
114
Syntaxe Rocircle
Il est possible de preacuteciser le rocircle joueacute par une ou plusieurs des classes composant une association afin den
faciliter la compreacutehension On ajoute pour cela ce rocircle agrave cocircteacute de la classe concerneacutee (parfois dans un petit
encadreacute colleacute au trait de lassociation
Exemtple
Image 17 Rocircle et sens de lecture sur une association
Deacutefinition Association reacuteflexive
Une association reacuteflexive est une association qui associe une classe avec elle-mecircme
Lexplicitation des associations est particuliegraverement utile dans le cas des associations reacuteflexives
- Associations ternaires
Image 18 Notation dune association ternaire
Conseil Ne tpas abuser des associations ternaires
Il est toujours possible de reacuteeacutecrire une association ternaire avec trois associations binaires en transformant
lassociation en classe
Conseil Pas de degreacute sutpeacuterieur agrave 3
En pratique on nutilise jamais en UML dassociation de degreacute supeacuterieur agrave 3
- Transformation des agreacutegations
Ratptpel Agreacutegation
Les associations de type agreacutegation se traitent de la mecircme faccedilon que les associations classiques
Syntaxe
Contenus annexes
115
wwwsambaconsultantscom
Graphique 12 Agreacutegation 1N
Classe1(ab)
Classe2(cda=gtClasse1)
Graphique 13 Agreacutegation NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
- Transformation des compositions
Meacutethode
Une composition
est transformeacutee comme une association 1N
puis on ajoute agrave la cleacute de la classe partie (dite cleacute locale) la cleacute eacutetrangegravere vers la classe composite pour
construire une cleacute primaire composeacutee
Graphique 14 Composition
Classe1(ab)
Classe2(ca=gtClasse1d)
Remarque Cleacute locale
Pour identifier une classe partie dans une composition on utilise une cleacute locale concateacuteneacutee agrave la cleacute eacutetrangegravere
vers la classe composite afin dexprimer la deacutependance entre les deux classes
Si une cleacute naturelle globale permet didentifier de faccedilon unique une partie indeacutependamment du tout on
preacutefeacuterera la conserver comme cleacute candidate plutocirct que de la prendre pour cleacute primaire
Contenus annexes
116
Si on la choisit comme cleacute primaire cela revient agrave avoir transformeacute la composition en agreacutegation en redonnant
une vie propre aux objets composants
Comtpleacutement Comtposition et entiteacutes faibles en E-A
Une composition est transformeacutee selon les mecircmes principes quune entiteacute faible en E-A
Comtpleacutement Atributs multivalueacutes et comtposeacutes
La transformation dun attribut composeacute multivalueacute donne un reacutesultat eacutequivalent agrave la transformation dune
composition
Classe1
a key b [0N] -b1 -b2
Graphique 15 Composition et attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
La transformation dune composition avec un seul attribut pour la classe composante donne un reacutesultat
eacutequivalent agrave la transformation dun attribut multivalueacute
Graphique 16 Composition et attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Ratptpel Voir aussi
Transformation des attributs
- Contrainte de cardinaliteacute minimale 1 dans les associations 1N
Ratptpel
Transformation des associations 1N
Meacutethode
a key
Classe1
0 N
( b1b2) local key
Contenus annexes
117
wwwsambaconsultantscom
Classe1
1 association 1N
Classe2
a key
b c key
d
Graphique 17 Association 1N
Si la cardinaliteacute est exactement 1 (11) cocircteacute 1 alors on ajoutera une contrainte de non nulliteacute sur la
cleacute eacutetrangegravere
si la cardinaliteacute est au moins 1 (1N) cocircteacute N on ajoutera une contrainte dexistence de tuples
reacutefeacuterenccedilant pour chaque tuple de la relation reacutefeacuterenceacutee
Classe1(ab)
Classe2(cda=gtClasse1)
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Graphique 18 Classe dassociation (1N)
Classe1(ab)
Classe2(cda=gtClasse1 e f) avec e KEY
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Comtpleacutement
Projection
- Contrainte de cardinaliteacute minimale 1 dans les associations NM
Ratptpel
Transformation des associations NM
Meacutethode
Si la cardinaliteacute est exactement au moins 1 (1N) dun cocircteacute etou de lautre alors des contraintes
dexistence simultaneacutee de tuple devront ecirctre ajouteacutee
Ce nest pas neacutecessaire si la cardinaliteacute est 0N
a key b
Classe1
c key d
Classe2
1 N 1
e loc al key f
Cl-A ssoc
Contenus annexes
118
Graphique 19 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Graphique 20 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Cl-Assoc(a=gtClasse1c=gtClasse2ef)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Comtpleacutement
Projection
- Transformation des associations 11 (approche geacuteneacuterale) Il existe deux solutions pour transformer une association 11
Avec deux relations on traite lassociation 11 comme une association 1N puis lon ajoute une
contrainte UNIQUE sur la cleacute eacutetrangegravere pour limiter la cardinaliteacute maximale agrave 1
Avec une seule relation on fusionne les deux classes en une seule relation
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 21 Association 11
Meacutethode Avec deux relations (cleacute eacutetrangegravere)
Une des deux relations est choisie pour porter la cleacute eacutetrangegravere
on ajoute les contraintes UNIQUE ou KEY (cleacute candidate) sur la cleacute eacutetrangegravere et si neacutecessaire une
contrainte imposant linstanciation simultaneacutee des deux relations
Classe1(abc=gtClasse2) avec c UNIQUE ou KEY
Classe2(cd)
a key b
Classe1
c key d
Classe2
1 N 1 N
e key f
ssoc Cl-A
Contenus annexes
119
wwwsambaconsultantscom
Contrainte (eacuteventuellement) PROJ(Classe1c)=PROJ(Classe2c) ou
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE ou KEY
Contrainte (eacuteventuellement) PROJ(Classe1a)=PROJ(Classe2a)
Meacutethode Avec une relation (fusion)
On creacuteeacute une seule relation contenant lensemble des attributs des deux classes on
choisit une cleacute parmi les cleacutes candidates
Classe12(abcd) avec c UNIQUE ou KEY ou
Classe21(cdab) avec a UNIQUE ou KEY
RemarqueFusion des relations dans le cas de la traduction de lassociation 11
Ce choix entre les deux meacutethodes sera conduit par une appreacuteciation du rapport entre
La complexiteacute introduite par le fait davoir deux relations lagrave ou une suffit
La pertinence de la seacuteparation des deux relations dun point de vue seacutemantique
Les pertes de performance dues agrave leacuteclatement des relations
Les pertes de performance dues au fait davoir une grande relation
Les questions de seacutecuriteacute et de sucircreteacute factoriseacutees ou non au niveau des deux relations
Introduction geacuteneacuterale aux bases de donneacutees
5
wwwsambaconsultantscom
1 Notions fondamentales donneacutee base de donneacutees
systegraveme de gestion de bases de donneacutees
a) Base de donneacutees
Logiciel et donneacutees
Un logiciel informatique est composeacute de programmes cest agrave dire dinstructions donneacutees agrave lordinateur et de
donneacutees auxquelles sappliquent ces instructions
Par exemple un logiciel de traitement de texte est composeacute de fonctions - ouvrir copier coller inseacuterer une
image changer la police enregistrer - et de fichiers sur lesquels elles sappliquent Dans ce cas les fichiers
de traitement de texte sont les donneacutees
Deacutefinition Deacutefinition lacircche de base de donneacutees un ensemble de donneacutees
On appelle parfois base de donneacutees tout ensemble de donneacutees stockeacute numeacuteriquement et pouvant servir agrave un
ou plusieurs programme De ce point de vue des fichiers sur un disque dur un fichier de tableur voire un
fichier de traitement de texte peuvent constituer des bases de donneacutees
Deacutefinition Deacutefinition restreinte de base de donneacutees un ensemble de donneacutees
structureacute
On appellera base de donneacutees un ensemble de donneacutees numeacuteriques qui possegravede une structure cest agrave dire
dont lorganisation reacutepond agrave une logique systeacutematique
On parlera de modegravele logique de donneacutees pour deacutecrire cette structure
Exemtple Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tableaux (appeleacutes relations)
espegravece eucaryote multicellulaire proprieacuteteacute
bacteacuteries false false
archeacutees false false
protistes true false
champignons true true deacutecompose
veacutegeacutetaux true true photosyntheacutetise
animaux true true ingegravere
Tableau 1 Base de donneacutees de classification classique des espegraveces animales
Fondamental Fonctions dune base de donneacutees
wwwsambaconsultantscom 6
Une base de donneacutees est structureacutee afin de pouvoir mieux reacutepondre agrave des fonctions
fondamentales en informatique telles que
Stocker linformation de faccedilon fiable (cest agrave dire ecirctre capable de restituer linformation
entreacutee dans le systegraveme)
Traiter de grands volumes de donneacutees (massification)
Traiter rapidement les donneacutees (optimisation)
Seacutecuriser les accegraves aux donneacutees (geacuterer les autorisations selon les utilisateurs)
Controcircler la qualiteacute des donneacutees (par exemple la coheacuterence par rapport agrave un modegravele preacute-
eacutetabli)
Partager les donneacutees (entre plusieurs applications deacutedieacutees agrave plusieurs meacutetiers)
Rendre accessible les donneacutees en reacuteseau (geacuterer la concurrence des accegraves parallegraveles)
b) Systegraveme de gestion de bases de donneacutees (SGBD)
Deacutefinition Systegraveme de Gestion de Bases de Donneacutees
Un SGBD est un logiciel qui prend en charge la structuration le stockage la mise agrave jour et la maintenance
dune base de donneacutees Il est lunique interface entre les informaticiens et les donneacutees (deacutefinition des scheacutemas
programmation des applications) ainsi quentre les utilisateurs et les donneacutees (consultation et mise agrave jour)
Introduction geacuteneacuterale aux bases de donneacutees
7
Exemtple Exemtples de SGBD
Oracle est un SGBD relationnel et relationnel-objet tregraves utiliseacute pour les applications professionnelles
PostgreSQL est un SGBD relationnel puissant qui offre une alternative libre (licence BSD) aux solutions
commerciales comme Oracle ou IBM
Access est un SGBD relationnel Microsoft qui offre une interface graphique permettant de concevoir
rapidement des applications de petite envergure ou de reacutealiser des prototypes
MongoDb est un SGBD non-relationnel libre (licence Apache) orienteacute document Il permet de geacuterer
facilement de tregraves grandes quantiteacutes de donneacutees - dans un format arborescent JSON - reacuteparties sur
de nombreux ordinateurs
Comtpleacutement SGBD relationnel et non-relationnel
Les SGBR relationnels (SGBDR) sont les plus courants des SGBD jusquau deacutebut des anneacutees 2000 la plupart
des bases de donneacutees eacutetaient relationnelles
Mais avec larriveacutee des geacuteants du web ces entreprises qui gegraverent des quantiteacutes eacutenormes de donneacutees comme
Google Amazon ou Facebook sest deacuteveloppeacute un mouvement important de deacuteveloppement de bases de
donneacutees nonrelationnelles eacutegalement appeleacutees NoSQL
c) Application de base de donneacutees Une base de donneacutees seule nest pas directement utilisable par un utilisateur humain elle nest utilisable que
par les informaticiens qui connaissent son langage de programmation et par les applications qui ont eacuteteacute
programmeacutees pour sen servir
Deacutefinition
On appelle application de base de donneacutees un logiciel informatique permettant agrave un utilisateur final de
manipuler (lire ou eacutecrire) les donneacutees dune base de donneacutees
Exemtple Atptplication web
Une application web est composeacutee dinterfaces en HTML qui permettent deacutecrire et de lire des donneacutees dans
une base de donneacutees via un langage applicatif comme par exemple PHP
Exemtple Twiter
Lapplication Twitter est composeacutee dinterfaces web
permettant dentrer des donneacutees (saisir son profil twitter
retwitter ) et de sortir des donneacutees (consulter un fil
twitter faire une recherche sur un hashtag) dune base
de donneacutees (Twitter utilise une base de donneacutees NoSQL
Apache Cassandra)
Cette base de donneacutees est stockeacutee sur les serveurs de
Twitter et elle contient tous les profils de tous les
utilisateurs tous les tweets tous les hashtags
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 8
Exemtple Comtpagnie aeacuterienne Une base de donneacutees de gestion de lactiviteacute dune compagnie aeacuterienne concerne les voyageurs les vols les
avions le personnel les reacuteservations
Une application agrave partir dune telle base de donneacutees pourra permettre la gestion des reacuteservations des
disponibiliteacutes des avions en fonction des vols agrave effectuer des affectations des personnels volants
Exemtple Atptplication de bureau Access
Avec un logiciel comme Access on peut reacutealiser agrave la fois une base de donneacutees et une application permettant
de manipuler cette base de donneacutees pour des besoins bureautiques simples
d) Donneacutee (en relationnel) table objet proprieacuteteacute domaine
atomiciteacute
Ratptpel Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tables (appeleacutes relations)
Chaque case de la table contient une information atomique
Deacutefinition Objet (ligne)
Chaque ligne de la table correspond agrave un objet que lon veut geacuterer dans la base de donneacutees une voiture une
personne une espegravece
Fondamental
Toutes les lignes dune mecircme table correspondent agrave des objets du mecircme type donc dans une
table on met soit des voitures soit des personnes mais on ne meacutelange pas les deux
Deacutefinition Protprieacuteteacute et domaine (colonne)
Chaque colonne de la table correspond agrave une proprieacuteteacute des objets qui se trouvent dans la table tous les
objets de la table partagent donc les mecircmes proprieacuteteacutes
Fondamental Domaine
Chaque colonne de la table est associeacutee agrave un domaine de valeur fixeacute a priori par exemple entier
texte booleacuteen
Deacutefinition Donneacutee en relationnel (cellule)
Une donneacutee en relationnel cest une cellule dune table qui correspond agrave la proprieacuteteacute dun objet
proprieacuteteacute 1 domaine
d1 proprieacuteteacute 2 domaine
d2
objet1 donneacutee 1 objet1 donneacutee 2
Introduction geacuteneacuterale aux bases de donneacutees
9
objet2 donneacutee 1 objet2 donneacutee 2
Tableau 2 Une table ou relation ( en relationnel)
Exemtple
espegravece domaine
texte eucaryote domaine
booleacuteen
bacteacuteries false
archeacutees false
Tableau 3 Exemple de relation instancieacutee
Atention Atomiciteacute
Pour que la base de donneacutees fonctionne correctement on veille agrave ne mettre quune seule donneacutee
par case cest le principe datomiciteacute en relationnel
espegravece domaine texte
bacteacuteries procaryotes unicellulaires
archeacutees procaryotes unicellulaires
protistes eucaryotes unicellulaires
champignons eucaryotes multicellulaires qui deacutecomposent
veacutegeacutetaux eucaryotes multicellulaires qui photosyntheacutetisent
animaux eucaryotes multicellulaires qui ingegraverent
Tableau 4 Un mauvais exemple de relation les donneacutees ne sont pas atomiques (il y a
plusieurs donneacutees par case de la table)
e) Langage de donneacutees lexemple du langage SQL
Deacutefinition Langage de donneacutees
Un langage de donneacutees est un langage informatique permettant de deacutecrire et de manipuler les scheacutemas et les
donneacutees dune BD
Synonymes Langage orienteacute donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 10
Fondamental SQL
SQL est le langage consacreacute aux SGBD relationnels et relationnels-objet
Il permet de
creacuteer des tables en deacutefinissant le domaine de chaque colonne
inseacuterer des lignes dans les tables
lire les donneacutees entreacutees dans la base de donneacutees
Exemtple Creacuteation de table en SQL (deacutefinition du scheacutema de donneacutees)
CREATE TABLE Etudiant ( NumEtu
integer PRIMARY KEY Nom varchar Ville varchar)
1 2 3 4
Cette instruction permet de creacuteer une relation Etudiant comportant les proprieacuteteacutes NumEtu Nom et Ville
de domaines respectivement entier texte et texte
Exemtple Insertion de ligne en SQL (creacuteation de donneacutees)
INSERT INTO Etudiant (NumEtu Nom Ville) VALUES (1 Holmes Londres) 1
Cette instruction permet de creacuteer leacutetudiant numeacutero 1 de nom Holmes qui habite la ville de Londres
Exemtple Manitpulation de donneacutees en SQL (extploitation des donneacutees)
SELECT Nom FROM Etudiant WHERE Ville = Compiegravegne
1 2 3
Cette instruction permet de rechercher les noms de tous les eacutetudiants habitant la ville de Compiegravegne
Comtpleacutement Autres langages de donneacutees
XQuery est un langage de donneacutees mobiliseacute dans les bases de donneacutees arborescentes XML
Les bases NoSQL proposent des langages de donneacutees speacutecifiques souvent inspireacutes du
SQL Par exemple le langage de MongoDB permet de manipuler une base de contenus JSON
2 Approche geacuteneacuterale pour la conception des bases de
donneacutees
a) Exercice Eacutetapes de la conception dune base de donneacutees
relationnelle Mettre dans lordre les eacutetapes de conception suivantes
1 Creacuteation du code SQL pour un SGBDR
2 Modeacutelisation conceptuelle en UML ou E-A
Introduction geacuteneacuterale aux bases de donneacutees
11
3 Eacutelaboration du modegravele logique en relationnel
4 Analyse de la situation existante et des besoins
Reacuteponse ___ ___ ___ ___
b) Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
Meacutethode Eacutetatpes de la concetption dune base de donneacutees
1 Analyse de la situation existante et des besoins (clarification) 2 Creacuteation dun modegravele conceptuel qui permet de repreacutesenter tous les aspects importants du problegraveme 3 Traduction du modegravele conceptuel en modegravele logique (et normalisation de ce modegravele logique) 4 Impleacutementation dune base de donneacutees dans un SGBD agrave partir du modegravele logique (et optimisation)
Graphique 1 Processus de conception dune base de donneacutees
On distingue quatre eacutetapes dans la conception dune base de donneacutees
Lanalyse
Elle consiste agrave eacutetudier le problegraveme et agrave consigner dans un document la note de clarification les
besoins les choix les contraintes
La modeacutelisation conceptuelle
Elle permet de deacutecrire le problegraveme poseacute de faccedilon non-formelle (en geacuteneacuterale graphique) en prenant
des hypothegraveses de simplification Ce nest pas une description du reacuteel mais une repreacutesentation
simplifieacutee dune reacutealiteacute
La modeacutelisation logique
Ele permet de deacutecrire une solution en prenant une orientation informatique geacuteneacuterale (type de SGBD
typiquement) formelle mais indeacutependamment de choix dimpleacutementation speacutecifiques
Limpleacutementation
Elle correspond aux choix techniques en terme de SGBD choisi et agrave leur mise en œuvre
(programmation optimisation)
Fondamental
Bien analyser le problegraveme poseacute en amont
BD solution proposeacutee
Domaine problegraveme poseacute
Modegravele Conceptuel
Modegravele Logique
Repreacutesenter
Impleacutementer
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 12
Bien modeacuteliser le problegraveme au niveau conceptuel avant de passer au niveau logique et agrave
limpleacutementation
Conseil Limtportance de leacutetatpe danalyse
La premiegravere eacutetape de la conception repose sur lanalyse de lexistant et des besoins De la qualiteacute de la
reacutealisation de cette premiegravere eacutetape deacutependra ensuite la pertinence de la base de donneacutees par rapports aux
usages Cette premiegravere eacutetape est donc essentielle et doit ecirctre meneacutee avec soins
Si la premiegravere eacutetape est fondamentale dans le processus de conception elle est aussi la plus deacutelicate En effet
tandis que des formalismes puissants existent pour la modeacutelisation conceptuelle puis pour la modeacutelisation
logique la perception de lexistant et des besoins reste une eacutetape qui repose essentiellement sur lexpertise
danalyse de lingeacutenieur
Conseil Limtportance de leacutetatpe de modeacutelisation concetptuelle
Eacutetant donneacutee une analyse des besoins correctement reacutealiseacutee la seconde eacutetape consiste agrave la traduire selon un
modegravele conceptuel Le modegravele conceptuel eacutetant formel il va permettre de passer dune speacutecification en
langage naturel et donc soumise agrave interpreacutetation agrave une speacutecification non ambiguumle Le recours aux
formalismes de modeacutelisation tels que E-A ou UML est donc une aide fondamentale pour parvenir agrave une
repreacutesentation qui ne sera plus lieacutee agrave linterpreacutetation du lecteur
La traduction dun cahier des charges speacutecifiant lexistant et les besoins en modegravele conceptuel reste neacuteanmoins
une eacutetape deacutelicate qui va conditionner ensuite lensemble de limpleacutementation informatique En effet les eacutetape
suivantes sont plus meacutecaniques dans la mesure ougrave un modegravele logique est deacuteduit de faccedilon systeacutematique du
modegravele conceptuel et que limpleacutementation logicielle est eacutegalement reacutealiseacutee par traduction directe du modegravele
logique
RemarqueLes eacutetatpes de traduction logique et dimtpleacutementation
Des logiciels speacutecialiseacutes (par exemple Objecteering [w_objecteering]) sont capables agrave partir dun modegravele
conceptuel dappliquer des algorithmes de traduction qui permettent dobtenir directement le modegravele logique
puis les instructions pour la creacuteation de la base de donneacutees dans un langage orienteacute donneacutees tel que SQL
Lexistence de tels algorithmes de traduction montre que les eacutetapes de traduction logique et dimpleacutementation
sont moins complexes que les preacuteceacutedentes car plus systeacutematiques
Neacuteanmoins ces eacutetapes exigent tout de mecircme des compeacutetences techniques pour optimiser les modegraveles logiques
(normalisation) puis les impleacutementations en fonction dun contexte de mise en œuvre mateacuteriel logiciel et
humain
c) Qatre eacutetapes pour reacuteduire la complexiteacute La reacutealisation dune base de donneacutees est une tacircche complexe le deacutecoupage en quatre eacutetapes permet de geacuterer
cette complexiteacute
Clarification ModeacutelisationConceptuelle ModeacutelisationLogique Im pleacutem entation
Conception en quatre eacutetapes
Introduction geacuteneacuterale aux bases de donneacutees
13
Lideacutee geacuteneacuterale est de ne pas meacutelanger la nature des tacircches typiquement on ne veut pas en mecircme temps
se poser des questions geacuteneacuterales relatives aux besoins (ce que je veux faire) et des questions techniques tregraves
speacutecifiques (comment repreacutesenter telle information)
Meacutethode
Lapproche est donc
de regarder agrave gauche on regarde le monde quand on clarifie on regarde la note de clarification
quand on fait le MCD on regarde le MCD quand on fait le MLD on regarde le MLD quand on
impleacutemente
et de ne pas regarder trop loin on anticipe deacutejagrave le MCD pendant la clarification mais on ne se
preacuteoccupe pas de questions dimpleacutementation quand on fait le MLD on ne se pose plus de question
sur le monde la clarification et le MCD ont ducirc deacutejagrave reacutepondre quand on impleacutemente on ne se pose
plus de question de modeacutelisation on soccupe des programmes de la machine
Fondamental
On peut toujours revenir sur une eacutetape la conception est iteacuterative mais on ne doit pas tout le
temps se poser tous les problegravemes en mecircme temps
d) Eacuteleacutements pour lanalyse de lexistant et des besoins La phase danalyse de lexistant et des besoins est une phase essentielle et complexe Elle doit aboutir agrave des
speacutecifications geacuteneacuterales qui deacutecrivent en langage naturel les donneacutees manipuleacutees et les traitements agrave
effectuer sur ces donneacutees
On se propose de donner une liste non exhaustive dactions agrave mener pour reacutediger de telles speacutecifications
Meacutethode Lanalyse de documents existants
La conception dune base de donneacutees sinscrit geacuteneacuteralement au sein dusages existants Ces usages sont
geacuteneacuteralement au moins en partie instrumenteacutes agrave travers des documents eacutelectroniques ou non (papier
typiquement) Il est fondamental danalyser ces documents et de recenser les donneacutees quils manipulent
Exemtple Exemtples de document existants agrave analyser
Fichiers papiers de stockage des donneacutees (personnel produits etc)
Formulaires papiers denregistrement des donneacutees (fiche didentification dun salarieacute fiche de
description dun produit bon de commande etc)
Documents eacutelectroniques de type traitement de texte (lettres mailing proceacutedures etc)
Documents eacutelectroniques de type tableurs (bilans statistiques calculs etc)
Bases de donneacutees existantes agrave remplacer ou avec lesquelles saccorder (gestion des salaires de la
production etc)
Intranet dentreprise (information teacuteleacutechargement de documents etc)
etc
Meacutethode Le recueil dextpertise meacutetier
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 14
Les donneacutees que la base va devoir manipuler sont toujours relatives aux meacutetiers de lentreprise et il existe
des experts qui pratiquent ces meacutetiers Le dialogue avec ces experts est une source importante dinformations
Il permet eacutegalement de fixer la terminologie du domaine
Exemtple Exemtples dextperts agrave consulter
Praticiens (secreacutetaires ouvrier controcircleurs etc)
Cadres (responsables de service contre-maicirctres etc)
Experts externes (clients fournisseurs etc)
etc
Meacutethode Le dialogue avec les usagers
La base de donneacutees concerne des utilisateurs cibles cest agrave dire ceux qui produiront et consommeront
effectivement les donneacutees de la base Il est neacutecessaire de dialoguer avec ces utilisateurs qui sont les
deacutetenteurs des connaissances relatives aux besoins reacuteels lieacutes agrave leur reacutealiteacute actuelle (aspects de lorganisation
fonctionnant correctement ou deacutefaillants) et agrave la reacutealiteacute souhaiteacutee (eacutevolutions lacunes etc)
Exemtple Exemtples dutilisateurs avec qui dialoguer
Personnes qui vont effectuer les saisies dinformation (agrave partir de quelles sources Quelle est leur
responsabiliteacute etc)
Personnes qui vont consulter les informations saisies (pour quel usage pour quel destinataire etc)
Personnes qui vont mettre agrave jour les informations (pour quelles raisons comment le processus est
enclencheacute etc)
etc
Meacutethode Leacutetude des autres systegravemes informatiques existants
la base de donneacutees va geacuteneacuteralement (et en fait quasi systeacutematiquement aujourdhui) sinseacuterer parmi un
ensemble dautres logiciels informatiques travaillant sur les donneacutees de lentreprise Il est important danalyser
ces systegravemes afin de mieux comprendre les meacutecanismes existants leurs forces et leurs lacunes et de preacuteparer
linteacutegration de la base avec ces autres systegravemes Une partie de ces systegravemes seront dailleurs souvent
eacutegalement des utilisateurs de la base de donneacutees tandis que la base de donneacutees sera elle mecircme utilisatrice
dautre systegravemes
Exemtple Exemtples dautres systegravemes coexistants agrave eacutetudier
Autres bases de donneacutees (les donneacutees sont elle disjointes ou partiellement communes avec celles de la
base agrave concevoir quelles sont les technologies logicielles sur lesquelles reposent ces BD etc)
Systegravemes de fichiers classiques (certains fichiers ont-ils vocations agrave ecirctre supplanteacutes par la base agrave ecirctre
geacuteneacutereacutes par la base agrave alimenter la base etc)
Applications (ces applications ont elles besoins de donneacutees de la base peuvent-elles lui en fournir
etc)
etc
Comtpleacutement Meacutethodes danalyse
Il existe des outils et meacutethodes danalyse en ingeacutenierie comme lanalyse fonctionnelle (AF) qui deacutepassent le
cadre de la conception des bases de donneacutees mais sont tout agrave fait compleacutementaires
Introduction geacuteneacuterale aux bases de donneacutees
15
e) Modeacutelisation conceptuelle de donneacutees Lobjection du modegravele conceptuel est de repreacutesenter le problegraveme agrave laide de repreacutesentations graphiques et
partiellement formelles
Les principales caracteacuteristiques du modegravele conceptuel sont
Une repreacutesentation graphique simple
Une puissance dexpression eacuteleveacutee pour un nombre de symboles raisonnables
Une lecture accessible agrave tous et donc un bon outil de dialogue entre les acteurs techniques et non
techniques
Une formalisation peu ambigueuml et donc un bon outil de speacutecification deacutetailleacutee
Remarque
Le modegravele nest pas encore formel donc certaines repreacutesentations peuvent ecirctre eacutequivoques mecircme si on a
leveacute de tregraves nombreuses ambiguiumlteacutes
E-A
La modeacutelisation conceptuelle en bases de donneacutees relationnelle eacutetait agrave lorigine faite avec le formalisme E-A
de la meacutethode MERISE
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 16
Modegravele E-A gestion de projets
UML
UML est un autre langage de modeacutelisation plus reacutecent que E-A et couvrant un spectre plus large que les
bases de donneacutees En tant que standard de lOMG et en tant que outil tregraves utiliseacute pour la programmation
orienteacutee objet il a supplanteacute la modeacutelisation E-A
Remarque
En BD on utilise uniquement le diagramme de classe dUML pour modeacuteliser conceptuellement les donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 17
Modegravele UML gestion de projets
f) Modeacutelisation logique de donneacutees
Deacutefinition Modegravele logique de donneacutees
Un modegravele logique de donneacutees est une description au moyen dun langage formel dun ensemble de donneacutees
Un scheacutema permet de deacutecrire la structure dune base de donneacutees en deacutecrivant lensemble des types de
donneacutees de la base Une instance de base de donneacutees est constitueacutee dun ensemble de donneacutees qui respectent
le scheacutema de la base
Synonyme scheacutema de donneacutees scheacutema
Exemtple Modegravele logique de donneacutees relationnel
Un modegravele logique de donneacutees relationnel permet de repreacutesenter une base de donneacutees relationnelles cest agrave
dire des tables des proprieacuteteacutes des domaines
Exemtple Scheacutema dune relation
Espece(nomchaicircne eucaryotebooleacuteen multicellulairebooleacuteen proprieacuteteacutechaicircne) 1
Exemtple Scheacutema dune base de donneacutees avec tplusieurs relations
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 18
Etudiant (numentier nomchaicircne villechaicircne) Module(numentier titrechaicircne) Inscription(numetuentier nummodentier anneacuteeentier(4))
1 2 3
Instance de base de donneacutees
Etudiant Module
172 Dupont Lille
173 Durand Paris
174 Martin Isabelle
1 SGBD
2 OS
Inscription 172 1 2016 172 2 2016 173 1 2015 174 2 2017
Comtpleacutement Exemtple de formalismes de modeacutelisation logique
Le modegravele CODASYL anteacuterieur au modegravele relationnel est un modegravele hieacuterarchique (Tardieu 1983
[Tardieu83])
Le modegravele relationnel (tabulaire) est le modegravele dominant agrave la base des SGBDR
Le modegravele relationnel-objet (adaptation des modegraveles relationnels et objets au cadre des SGBD) est
actuellement en croissance
Dautres modegraveles (document graphe ) se deacuteveloppent dans le cadre du mouvement NoSQL
Comtpleacutement Voir aussi
Bregraveve introduction aux bases de donneacutees NoSQL - p98
g) Synthegravese Les trois niveaux de conception Niveau Conceptuel
Modegravele conceptuel graphique -
Exemples E-A
UML
Niveau Logique
Scheacutema logique indeacutependant dun SGBD -
Exemples Relationnel
Objet
Relationnel-Objet
Graphe
Document
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 19
Niveau Informatique
Impleacutementation pour un SGBD particulier -
Exemples Oracle
MySQL
PostgreSQL
DB2
Access
SQLServer
MongoDB
Cassandra
Modeacutelisation Modeacutelisation Im pleacutem entation Clarification Conceptuelle
Logique
AF UML Relationnel SQL Conception en quatre eacutetapes exemple de
formalismes
B Exercices
1 Deacutecouverte dune base de donneacutees relationnelle
Cette seacuterie dexercices est destineacutee agrave faire expeacuterimenter un SGBDR afin de se familiariser avec les concepts
classiques des bases de donneacutees relationnelles
Pour la reacutealisation de cet exercice se connecter sur le site dbdiscocrztfr et conserver la fenecirctre du navigateur
ouverte
Db Discodbdiscocrztfr
Objectifs
Deacutecouvrir le modegravele relationnel Deacutecouvrir un SGBDR Deacutecouvrir le langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 20
a) Notion de table
Creacuteer sa premiegravere table Une base de donneacutees relationnelle est principalement constitueacutee de tables (ou laquo relations raquo dougrave le nom
de relationnel) Une table est basiquement un eacuteleacutement dorganisation de linformation constitueacute de colonnes
(ou attributs) et de lignes (ou enregistrements)
Nous allons dans un premier temps creacuteer le scheacutema dune table cest agrave dire deacutefinir ses colonnes Pour cela
nous utiliserons linstruction SQL LDD laquo CREATE raquo
Question 1
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
CREATE TABLE tEtu ( pk_numSecu CHAR(13) PRIMARY KEY k_numEtu
VARCHAR(20) UNIQUE NOT NULL nom
VARCHAR(50) prenom VARCHAR(50))
1 2 3 4 5
Introduction geacuteneacuterale aux bases de donneacutees
21
Alimenter la table Une fois les colonnes de la table deacutefinies nous pouvons en deacuteclarer les lignes Nous utilisons pour cela
linstruction SQL LMD laquo INSERT raquo
Question 2
Exeacutecuter les deux instructions suivantes et deacutecrire ce quelles font
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 AB3937098X Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2820475001124 XGB67668 Durand Anne)
1 2 3 4
Interroger la table Une fois une table creacuteeacutee il est possible agrave tout moment den inspecter le contenu Nous utilisons pour cela
linstruction SQL LMD laquo SELECT raquo
Question 3
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT pk_numSecu k_numEtu nom prenom FROM tEtu
1 2
Question 4
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT nom prenom FROM tEtu WHERE pk_numSecu=2820475001124
1 2 3
b) Notion de contraintes
Contrainte de domaine Lorsque lon deacutefinit une table on deacutefinit eacutegalement des contraintes sur cette table qui serviront agrave controcircler
son inteacutegriteacute par rapport agrave des regravegles que lon aura fixeacutees
Cest notamment le cas des contraintes de domaine qui permettent de veacuterifier quune colonne prend ses
valeurs parmi un ensemble deacutetermineacute (les chaicircnes de 10 caractegraveres au plus les entier de 1 agrave 1000 etc)
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi le systegraveme renvoie une erreur
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (XXXXXXXXXXXXXXX XXXXXX Dupont Pierre)
1 2
Question 2
Donner un exemple de contrainte qui nest pas formuleacutee dans la deacutefinition de la table tEtu et que lon aurait
pu souhaiter
Indice
Pour indiquer quun eacuteleacutement est obligatoire on ajoute la clause NOT NULL apregraves la deacutefinition de son domaine dans linstruction CREATE TABLE
Introduction geacuteneacuterale aux bases de donneacutees
22
Contraintes de cleacute Les contraintes de cleacute se composent de contraintes duniciteacute et de contraintes de non nulliteacute Elles
permettent dassurer que toutes les valeurs dune colonne seront diffeacuterentes pour chaque ligne
Question 3
Exeacutecuter les trois instructions suivantes (les unes apregraves les autres) et expliquer ce qui se passe
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 HGYT67655Y Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 XGB67668 Durand Anne) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 HGYT67655Y Duchemin Aline)
1 2 3 4 5 6
Question 4
Explorer le contenu de votre table en exeacutecutant linstruction suivante et veacuterifier vos explications preacuteceacutedentes
SELECT FROM tEtu
1 2
Question 5
Pourrait-on inseacuterer dans la table une seconde personne qui aurait le preacutenom Aline et le nom Duchemin
Pourquoi
c) Notion de reacutefeacuterences
Cleacute eacutetrangegravere Une base de donneacutees est en geacuteneacuteral constitueacutee de plusieurs tables Ces tables se reacutefeacuterencent entre elles en
utilisant une cleacute eacutetrangegravere cest agrave dire quune des colonnes de la table est utiliseacutee pour faire reacutefeacuterence agrave la
colonne dune autre table
On va agrave preacutesent creacuteer une seconde table qui permettra dassocier des Uniteacutes de Valeurs (UVs) aux eacutetudiants
puis inseacuterer des valeurs dans cette table
CREATE TABLE tUv ( pk_code
CHAR(4) NOT NULL fk_etu
CHAR(13) NOT NULL PRIMARY KEY (pk_code fk_etu) FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu))
1 2 3 4 5
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF26 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF29 1800675001066)
1 2 3 4 5 6
Question 1
Introduction geacuteneacuterale aux bases de donneacutees
23
Expliciter ce quexprime le contenu de la table tUv
Contraintes dinteacutegriteacute reacutefeacuterentielle Lorsque nous avons deacutefini la table tUv nous avons deacutefini une contrainte suppleacutementaire dite dinteacutegriteacute
reacutefeacuterentielle contrainte de type FOREIGN KEY
Question 2
En exeacutecutant les instructions suivantes expliquer quel est le rocircle dune contrainte dinteacutegriteacute reacutefeacuterentielle
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 2810592012232) INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1700792001278)
1 2 3 4
d) Projection restriction et jointure Linstruction SELECT du langage SQL LMD nous donne de larges possibiliteacutes pour interroger les tables dune
base de donneacutees Cette instruction se fonde notamment sur les opeacuterations matheacutematiques de lalgegravebre
relationnelle dont les principales sont la projection la restriction le produit et la jointure
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi cest une projection
SELECT nom prenom FROM tEtu
1 2
Question 2
Exeacutecuter linstruction suivante et expliquer pourquoi cest une restriction
SELECT FROM tEtu WHERE nom=Dupont
1 2 3
Question 3
Exeacutecuter linstruction suivante et expliquer pourquoi cest un produit (carteacutesien)
SELECT FROM tEtutUv
1 2
Question 4
Exeacutecuter linstruction suivante et expliquer pourquoi cest une jointure
SELECT FROM tEtu JOIN tUv ON pk_numSecu=fk_etu
1 2
Question 5
Exeacutecuter linstruction suivante et montrer quune jointure est la composition dun produit et dune restriction
SELECT FROM tEtutUv WHERE pk_numSecu=fk_etu
1 2 3
Introduction geacuteneacuterale aux bases de donneacutees
24
e) Fonctions et agreacutegats Linstruction SELECT permet eacutegalement deffectuer des calculs qui portent sur plusieurs lignes ce que lon
appelle des agreacutegats
Question 1
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT COUNT(pk_code) FROM tUv
1 2
WHERE fk_etu=1800675001066 3
Question 2
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT fk_etu COUNT(pk_code) FROM tUv GROUP BY fk_etu
1 2 3
Question 3
Compleacuteter la requecircte SQL suivante afin quelle renvoie pour chaque UV le nombre deacutetudiants inscrits
SELECT _______ COUNT(______) FROM tUv GROUP BY _______
1 2 3
Agrave lissue de cette seacuterie dexercices vous devez savoir deacutefinir les termes suivants
table ou relation
scheacutema relationnel
domaine
cleacute
cleacute eacutetrangegravere
opeacuterations de projection restriction jointure produit
Introduction geacuteneacuterale aux bases de donneacutees
25
2 Lab 0
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux meacutedicaments
avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi quune description
longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le nombre de pilules par boicircte
(qui est un nombre entier)
Ce problegraveme est un exemple tregraves simple que lon pourra modeacuteliser avec une base de donneacutees relationnelle agrave
une seule table
Vous pouvez tester vos instructions SQL ici Db Discodbdiscocrztfr
Question 1
Proposer une clarification du problegraveme (par exemple sous la forme dune liste des proprieacuteteacutes de la relation
viseacutee)
Question 2
Proposer un exemple de donneacutees
Question 3
Dessiner un modegravele conceptuel de donneacutees en UML Il ne contient quune seule classe
Indice Modeacutelisation conceptuelle de donneacutees
Question 4
Proposer un modegravele logique de donneacutees sous forme de scheacutema relationnel Il ne contient quune seule relation
Indice Modeacutelisation logique de donneacutees
Question 5
Proposer une impleacutementation en SQL standard de votre modegravele relationnel Il ne contient quune seule
instruction CREATE TABLE
Indice Langage de donneacutees lexemple du langage SQL
Question 6
Eacutecrivez les instructions SQL permettant dinseacuterer vos donneacutees de test dans votre base de donneacutees
Indice Langage de donneacutees lexemple du langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
26
27
II - Introduction agrave la
modeacutelisation
conceptuelle de donneacutees avec
UML
A Cours
La modeacutelisation conceptuelle est leacutetape fondatrice du processus de conception de BD Elle consiste agrave
abstraire le problegraveme reacuteel poseacute pour en faire une reformulation qui trouvera une solution dans le cadre
technologique dun
SGBD
Si le modegravele dominant en conception de bases de donneacutees a longtemps eacuteteacute le modegravele E-A le modegravele UML
se geacuteneacuteralise de plus en plus Nous proposons ici une introduction au diagramme de classes agrave travers la
repreacutesentation de classes et dassociations simples (il existe dautres diagrammes UML par exemple le
diagramme de cas et dautres primitives de repreacutesentation dans le diagramme de classe par exemple
lheacuteritage)
II
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
28
1 Notion de modegravele
a) Exercice Centre meacutedical [5 min]
Soit le modegravele conceptuel suivant repreacutesentant des visites dans un centre meacutedical Quelles sont les assertions vraies selon ce scheacutema
Image 1
Un patient peut effectuer plusieurs visites
Tous les patients ont effectueacute au moins une consultation
Un meacutedecin peut recevoir plusieurs patients pendant la mecircme consultation
Un meacutedecin peut prescrire plusieurs meacutedicaments lors dune mecircme consultation
Deux meacutedecins diffeacuterents peuvent prescrire le mecircme meacutedicament
b) Qest ce quun modegravele
Deacutefinition Modegravele
laquo Modeling in the broadest sense is the cost-effective use of something in place of something else for some
cognitive purpose It allows us to use something that is simpler safer or cheaper than reality instead of reality
for some purpose A model represents reality for the given purpose the model is an abstraction of reality in
the sense that it cannot represent all aspects of reality raquo (Rothenberg 1989 [Rothenberg et al 1989] citeacute
par Arribe 2014 [Arribe 2014])
laquo Systegraveme physique matheacutematique ou logique repreacutesentant les structures essentielles dune reacutealiteacute et capable
agrave son niveau den expliquer ou den reproduire dynamiquement le fonctionnement raquo (TLFi)
Fondamental Modegravele
Un modegravele est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser quelque chose
Objectifs
Savoir ce quest un modegravele
Savoir ce quest le langage UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
29
c) Qest ce quun modegravele en informatique
Deacutefinition Modegravele informatique
Un modegravele informatique est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser un traitement avec
un ordinateur
Comtpleacutement Numeacuterisation et abstraction Toute information numeacuterique a
eacuteteacute codeacutee selon un modegravele donneacute
laquo Tout numeacuterisation est une repreacutesentation de la reacutealiteacute sous la forme dune modeacutelisation numeacuterique Cette
modeacutelisation procegravede dune abstraction au sens ougrave cest une seacuteparation davec le reacuteel au sens ougrave cest une
construction destineacutee agrave la manipulation (algorithmique en loccurrence) et au sens ougrave cest une simplification
de la reacutealiteacute raquo
httpaswemayfrcotropism-preshtml1
d) Qest ce quun bon modegravele
Atention
Un modegravele est une abstraction une simplification de la reacutealiteacute ce nest pas la reacutealiteacute il nest
jamais complegravetement fidegravele par construction
Le seul modegravele complegravetement fidegravele agrave la reacutealiteacute est la reacutealiteacute elle-mecircme et ce nest donc pas un
modegravele
Exemtple La carte et le territoire
Une carte est un modegravele dun territoire Elle est une repreacutesentation simplifieacutee destineacute agrave un usage particulier
randonner agrave pied en veacutelo
se diriger en voiture sur des grands axes sur des axes secondaires
voler en avion de tourisme en avion de ligne
naviguer sur fleuve sur mer
eacutetudier les frontiegraveres dune reacutegion dun pays de la terre
eacutetudier la deacutemographie leacuteconomie
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
30
Fondamental
Agrave partir de cet exemple on notera que 1 Un modegravele est orienteacute par un usage
Chacune de ces cartes est tregraves diffeacuterente selon ce que lon veut faire 2 Un modegravele ne cherche pas agrave ecirctre proche de la reacutealiteacute
Chacune de ces cartes est tregraves diffeacuterente de la reacutealiteacute quelle repreacutesente 3 Un modegravele adresse un niveau dinformation qui existe mais qui nest pas accessible dans
la reacutealiteacute Chacune de ces cartes permet quelque chose que ne permet pas laccegraves direct agrave la reacutealiteacute
ndash wwwsambaconsultantscom
Meacutethode Le rasoir dOckham Entre deux modegraveles donneacutes le meilleur modegravele est-il
toujours le tplus fourni
La meacutethode de raisonnement connue sous le nom de rasoir dOckham (du nom du philosophe eacuteponyme)
consiste agrave preacutefeacuterer les solutions les plus simples aux plus complexes lorsquelles semblent permettre
eacutegalement de reacutesoudre un problegraveme donneacute entre deux theacuteories eacutequivalentes toujours preacutefeacuterer la plus simple
Ce principe sapplique tregraves bien agrave la modeacutelisation eacutetant donneacute un objectif et plusieurs modegraveles possibles il
ne faut pas choisir a priori celui qui repreacutesente le plus de choses mais preacutefeacuterer le plus simple degraves quil couvre
le besoin
Cest un principe deacuteconomie (il coucircte moins cher agrave produire) et defficaciteacute (car les eacuteleacutements inutiles du modegravele
plus fourni nuiront agrave lefficaciteacute de la tacircche)
Exemtple
Ainsi pour naviguer en voiture il est plus simple de ne pas avoir sur la carte les chemins de randonneacutees qui
ne sont pas praticables en voiture
2 Introduction au diagramme de classes UML classes et
associations
a) Lab I
Description du problegraveme [15 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
Objectifs
Savoir faire un modegravele conceptuel
Savoir interpreacuteter un modegravele conceptuel
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
31
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
b) Preacutesentation dUML UML est un langage de repreacutesentation destineacute en particulier agrave la modeacutelisation objet UML est devenu une
norme OMG en 1997
UML propose un formalisme qui impose de penser objet et permet de rester indeacutependant dun langage de
programmation donneacute Pour ce faire UML normalise les concepts de lobjet (eacutenumeacuteration et deacutefinition
exhaustive des concepts) ainsi que leur notation graphique Il peut donc ecirctre utiliseacute comme un moyen de
communication entre les eacutetapes de speacutecification conceptuelle et les eacutetapes de speacutecifications techniques
Fondamental Diagramme de classe
Le diagramme de classes est un sous ensemble dUML qui sattache agrave la description statique dun
modegravele de donneacutees repreacutesenteacutees par des classes dobjets
Remarque
Dans le domaine des bases de donneacutees UML peut ecirctre utiliseacute agrave la place du modegravele E-A pour modeacuteliser le
domaine De la mecircme faccedilon un scheacutema conceptuel UML peut alors ecirctre traduit en scheacutema logique (relationnel
ou relationnel-objet typiquement)
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
32
c) Classes
Deacutefinition Classe
Une classe est un type abstrait caracteacuteriseacute par des proprieacuteteacutes (attributs et meacutethodes) communes agrave un ensemble
dobjets et permettant de creacuteer des instances de ces objets ayant ces proprieacuteteacutes
Image 2 Repreacutesentation UML dune classe
Exemtple La classe Voiture
Lobjet V1 est une instance de la classe Voiture
V1 Voiture
Marque Citroeumln
Type ZX
Portes 5
Puissance 6
Kilomeacutetrage 300000
Comtpleacutement
La modeacutelisation sous forme de diagramme de classes est une modeacutelisation statique qui met en exergue la
structure dun modegravele mais ne rend pas compte de son eacutevolution temporelle UML propose dautres types de
diagrammes pour traiter notamment de ces aspects
d) Atributs
Deacutefinition Atribut
Un attribut est une information eacuteleacutementaire qui caracteacuterise une classe et dont la valeur deacutepend de lobjet
instancieacute
Syntaxe
Image 3 Exemple de classe repreacutesenteacutee en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
33
Un attribut est typeacute Le domaine des valeurs que peut prendre lattribut est fixeacute a priori
Un attribut peut ecirctre multivalueacute Il peut prendre plusieurs valeurs distinctes dans son domaine
Un attribut peut ecirctre deacuteriveacute Sa valeur alors est une fonction sur dautres attributs de la classe
Un attribut peut ecirctre composeacute (ou composite) Il joue alors le rocircle dun groupe dattributs (par
exemple une adresse peut ecirctre un attribut composeacute des attributs numeacutero type de voie nom de la
voie) Cette notion renvoie agrave la notion de variable de type Record dans les langages de programmation
classiques
Atention On utilise peu les atributs deacuteriveacutes et composeacutes en UML
En UML on preacutefegravere lusage de meacutethodes aux attributs deacuteriveacutes On utilisera toujours des
meacutethodes degraves que la valeur de lattribut deacuteriveacute deacutepend dautres attributs exteacuterieurs agrave sa
classe
En UML on preacutefegravere lusage de compositions aux attributs composeacutes On utilisera toujours
des compositions pour les attributs composeacutes et multivalueacutes
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
34
Syntaxe
attributtype attribut_multivalueacute[nbMinValeursnbMaxValeurs]type attribut_deacuteriveacutetype attribut_composeacute - sous-attribut1type - sous-attribut2type -
1 2 3 4 5 6 7
Image 4 Repreacutesentation dattributs en UML
Dans cet exemple les attributs Nom Preacutenom sont de type string lun de 20 caractegraveres et lautre de 10 tandis
que DateNaissance est de type date et Age de type integer Preacutenom est un attribut multivalueacute ici une personne
peut avoir de 1 agrave 3 preacutenoms Age est un attribut deacuteriveacute il est calculeacute par une fonction sur DateNaissance
Comtpleacutement Voir aussi
Meacutethodes
Composition - p99
e) Repeacuterage des cleacutes Un attribut ou un groupe dattributs peut ecirctre annoteacute comme eacutetant cleacute sil permet didentifier de faccedilon unique
un objet de la classe
On ajoute le symbole key agrave cocircteacute du ou des attributs concerneacutes
Cleacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
35
Cleacute composeacutee de deux attributs
Meacutethode
Le repeacuterage des cleacutes nest pas systeacutematique en UML (la deacutefinition des cleacutes se fera essentiellement au niveau
logique) On cherchera neacuteanmoins agrave repeacuterer les cleacutes rendues eacutevidentes par la phase de clarification
Atention
On najoutera jamais de cleacute artificielle au niveau du MCD Si aucune cleacute nest eacutevidente on laisse
la classe sans cleacute Atention Atribut souligneacute et
On trouvera dans ce cours des exemples dattributs souligneacutes ou preacuteceacutedeacutes de pour exprimer
luniciteacute Ce nest pas une pratique standard et la notation key devrait lui ecirctre substitueacutee
Un attribut souligneacute est normalement un attribut de classe ou static en UML Un
attribut preacuteceacutedeacute de est normalement un attribut proteacutegeacute en UML
Mais les concepts dattribut de classe et dattribut proteacutegeacute ne sont pas utiliseacutes dans le cadre des
bases de donneacutees
f) Meacutethodes
Deacutefinition Meacutethode
Une meacutethode (ou opeacuteration) est une fonction associeacutee agrave une classe dobjet qui permet dagir sur les objets de
la classe ou qui permet agrave ces objets de renvoyer des valeurs (calculeacutees en fonction de paramegravetres)
Syntaxe
methode(paramegravetres)type 1
Remarque Meacutethodes et modeacutelisation de BD
Pour la modeacutelisation des bases de donneacutees les meacutethodes sont surtout utiliseacutees pour repreacutesenter des donneacutees
calculeacutees (agrave linstar des attributs deacuteriveacutees) ou pour mettre en exergue des fonctions importantes du systegraveme
cible Seules les meacutethodes les plus importantes sont repreacutesenteacutees lapproche est moins systeacutematique quen
modeacutelisation objet par exemple
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
36
Remarque Meacutethodes relationnel relationnel-objet
Lors de la transformation du modegravele conceptuel UML en modegravele logique relationnel les meacutethodes ne seront
geacuteneacuteralement pas impleacutementeacutees Leur repeacuterage au niveau conceptuel sert donc surtout daide-meacutemoire
pour limpleacutementation au niveau applicatif
Au contraire un modegravele logique relationnel-objet permettra limpleacutementation de meacutethodes directement
associeacutees agrave des tables Leur repeacuterage au niveau conceptuel est donc encore plus important
Comtpleacutement Transformation des meacutethodes par des vues - p98
g) Associations
Deacutefinition Association
Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire)
qui deacutefinit un ensemble de liens entre les objets de ces classes
Une association est nommeacutee geacuteneacuteralement par un verbe Une association peut avoir des proprieacuteteacutes (agrave linstar
dune classe) Une association deacutefinit le nombre minimum et maximum dinstances autoriseacutee dans la relation
(on parle de cardinaliteacute)
Syntaxe
Image 5 Notation de lassociation en UML
Atention
Le nom de lassociation (verbe qui la deacutecrit) est obligatoire au mecircme titre que le nom dune
classe ou dun attribut
Remarque
Une association est geacuteneacuteralement bidirectionnelle (cest agrave dire quelle peut se lire dans les deux sens) Les
associations qui ne respectent pas cette proprieacuteteacute sont dites unidirectionnelles ou agrave navigation restreinte
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
37
Image 6 Repreacutesentation dassociation en UML
Lassociation Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des
voitures
Comtpleacutement Voir aussi
Cardinaliteacute
Explicitation des associations - p100
Associations ternaires - p101
Contraintes sur les associations - p101
h) Cardinaliteacute
Deacutefinition Cardinaliteacute dune association
La cardinaliteacute dune association permet de repreacutesenter le nombre minimum et maximum dinstances qui sont
autoriseacutees agrave participer agrave la relation La cardinaliteacute est deacutefinie pour les deux sens de la relation
Syntaxe
Si mina (resp maxa) est le nombre minimum (resp maximum) dinstances de la classe A autoriseacutees agrave participer
agrave lassociation on note sur la relation agrave cocircteacute de la classe A minamaxa
Si le nombre maximum est indeacutetermineacute on note n ou
Atention
La notation de la cardinaliteacute en UML est opposeacutee agrave celle adopteacutee en E-A En UML on note agrave gauche
(resp agrave droite) le nombre dinstances de la classe de gauche (resp de droite) autoriseacutees dans
lassociation En E-A on note agrave gauche (resp agrave droite) le nombre dinstances de la classe de
droite (resp de gauche) autoriseacutees dans lassociation
Remarque
Les cardinaliteacutes les plus courantes sont
01 (optionnel)
11 ou 1 (un)
Lassociation Conduit
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
38
0n ou 0 ou (plusieurs)
Ici un conducteur peut posseacuteder plusieurs voitures (y compris aucune) et une voiture nest posseacutedeacutee que par
un seul conducteur
i) Classe dassociation
Deacutefinition Classe dassociation
On utilise la notation des classes dassociation lorsque lon souhaite ajouter des proprieacuteteacutes agrave une association
Syntaxe Notation dune classe dassociation en UML
Image 8 Notation dune classe dassociation en UML
1 n ou 1 (obligatoire )
Image 7 Repreacutesentation de cardinaliteacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
39
Image 9 Emplois
B Exercices
1 Exercice Lire lUML [15 min]
Tennis Le scheacutema suivant repreacutesente les rencontres lors dun tournoi de tennis Quelles sont les assertions vraies selon ce scheacutema
Image 10
On peut jouer des matchs de double
Un joueur peut gagner un match sans y avoir participeacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
40
Il peut y avoir deux matchs sur le mecircme terrain agrave la mecircme heure
Connaissant un joueur on peut savoir sur quels terrains il a joueacute
Journal Voici le scheacutema conceptuel du systegraveme dinformation (tregraves simplifieacute) dun quotidien Quelles sont les assertions vraies selon ce scheacutema
Image 11
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
41
Un article peut ecirctre reacutedigeacute par plusieurs journalistes
Un article peut ecirctre publieacute plusieurs fois dans le mecircme journal
Un article peut ecirctre publieacute dans un journal par un journaliste qui ne travaille pas pour ce
journal
Il peut y avoir plusieurs articles sur le mecircme sujet
Un journaliste peut interviewer une personnaliteacute sans faire darticle agrave ce propos
Logistique Une socieacuteteacute de transport routier veut installer un systegraveme dinformation pour rendre plus efficace sa logistique Embaucheacute au service informatique de cette compagnie vous ecirctes donc chargeacute de reprendre le travail deacutejagrave effectueacute (cest agrave dire le scheacutema suivant)
Quelles sont les assertions vraies selon ce scheacutema
Image 12
Un conducteur peut conduire plusieurs camions
Un conducteur peut conduire un camion sans y ecirctre autoriseacute
Il peut y avoir plusieurs conducteurs pour le mecircme camion
Un conducteur peut livrer sa propre ville
2 Gestion dune coopeacuterative viticole
[20 minutes] Cet exercice a eacuteteacute inspireacute par Bases de donneacutees objet et relationnel [Gardarin99]
On considegravere une base Coopeacuterative qui possegravede les caracteacuteristiques suivantes
Un vin est caracteacuteriseacute par un numeacutero entier unique nv un cru une anneacutee de production et un degreacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
42
Un viticulteur est caracteacuteriseacute par un numeacutero entier unique nvt un nom et une ville Un viticulteur produit un ou plusieurs vins et reacuteciproquement un vin est produit par un ou plusieurs
producteurs (eacuteventuellement aucun)
Les buveurs sont caracteacuteriseacutes par un numeacutero de buveur nb un nom preacutenom et une adresse (limiteacutee agrave
la ville pour simplifier)
Un buveur consomme des vins et peut passer des commandes pour acheter des vins
Question 1
Lister tous les types dobjet agrave consideacuterer les attributs associeacutes et les domaines de valeurs de ces attributs
Repeacuterer les eacuteventuelles cleacutes
Question 2
Lister toutes les associations agrave consideacuterer et indiquer leurs cardinaliteacutes
Question 3
Donner le diagramme UML de cette situation
3 Cours et intervenants
[20 min] On souhaite reacutealiser une base de donneacutees pour geacuterer les cours dispenseacutes dans une eacutecole dingeacutenieur ainsi
que les personnes qui interviennent dans ces cours
Chaque cours est identifieacute par une anneacutee et un numeacutero Chaque cours a donc un numeacutero unique localement
agrave chaque anneacutee Un cours possegravede un titre et un type (C pour Cours TD ou TP) Un cours possegravede
eacutegalement une date de deacutebut et une date de fin qui est toujours de 5 jours apregraves la date de deacutebut
Chaque intervenant est identifieacute par son nom (deux intervenants ne peuvent pas avoir le mecircme nom) Il a un
preacutenom un bureau un ou plusieurs numeacuteros de teacuteleacutephones (jusquagrave trois numeacuteros) et des speacutecialiteacutes Un
bureau est deacutefini par un centre (R pour Royallieu BF pour Benjamin Franklin et PG pour Pierre Guillaumat)
un bacirctiment (une lettre de A agrave Z) et un numeacutero (infeacuterieur agrave 1000) Les speacutecialiteacutes sont des couples de chaicircnes
de caractegraveres deacutesignant un domaine (par exemple BD) et une speacutecialiteacute (par exemple SGBDRO)
Chaque cours est donneacute par un unique intervenant
Voici un exemple Le cours Machines universelles ndeg21 de lanneacutee 2014 est donneacute par Alan Turing entre le
05012014 et le 10012014 Cest un cours de type C Alan Turing a le bureau 666 au bacirctiment X de PG Il
a les numeacuteros de teacuteleacutephone 0666666666 et 0766666666 Il possegravede les speacutecialiteacutes suivantes
Domaine Matheacutematique Speacutecialiteacute Cryptographie
Domaine Informatique Speacutecialiteacute Algorithmie
Domaine Informatique Speacutecialiteacute Intelligence Artificielle
Question
Reacutealiser le modegravele UML de la base de donneacutees Preacuteciser les cleacutes et les types des attributs
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
43
4 Gestion du personnel
[30 minutes] Le service de gestion du personnel dune entreprise deacutesire seacutequiper dun outil lui permettant de geacuterer
informatiquement ses employeacutes leurs salaires et leurs congeacutes Les speacutecifications suivantes ont pu ecirctre mises
en exergue par une analyse des besoins reacutealiseacutee aupregraves des utilisateurs du service du personnel
Geacuteneacuteraliteacutes
tout employeacute est identifieacute par un nom un preacutenom et une date de naissance
tout employeacute remplit une fonction et appartient agrave un service
pour chaque employeacute on gegravere la date dembauche et la quotiteacute (cest agrave dire le pourcentage de temps
travailleacute par rapport au temps plein en cas de travail agrave temps partiel)
Gestion des salaires
pour chaque employeacute on gegravere lhistorique de ses salaires dans lentreprise chaque salaire eacutetant affecteacute
agrave une peacuteriode de temps
un salaire est composeacute dun salaire brut de charges patronales et de charges salariales
on cherchera agrave partir des ces donneacutees agrave obtenir eacutegalement le salaire chargeacute (brut + charges patronales)
et le salaire net (brut - charges salariales) et ce en particulier pour le salaire en cours (celui que
touche actuellement le salarieacute)
Gestion des congeacutes
pour chaque employeacute on meacutemorise chaque congeacute pris (posant quun congeacute concerne toujours une ou
plusieurs journeacutees entiegraveres)
chaque employeacute a le droit aux jours de congeacutes suivants
- 25 jours (pour une quotiteacute de 1) et 25 x quotiteacute sinon - chaque fonction ouvre les droits agrave un certain nombre de jours de RTT - chaque service ouvre les droits agrave un certain nombre de jours de RTT - chaque tranche de 5 ans passeacutes dans lentreprise donne droit agrave 1 jour suppleacutementaire - les employeacutes de plus de 40 ans ont un jour suppleacutementaire et ceux de plus de 50 ans deux
pour chaque employeacute on cherchera agrave connaicirctre le nombre total de jours de congeacutes autoriseacutes le nombre
de jours pris et le nombre de jours restants sur lanneacutee en cours
Question
Reacutealiser le diagramme de classes permettant de modeacuteliser ce problegraveme
44
III - La modeacutelisation logique
relationnelle
A Cours
Le modegravele relationnel est aux fondements des SGBDR Il a eacuteteacute et continue decirctre le modegravele theacuteorique
dominant pour la repreacutesentation logique des base de donneacutees mecircme si le mouvement NoSQL propose des
alternatives
Le modegravele relationnel permet de reformuler le modegravele conceptuel dans un formalisme - le tableau - beaucoup
plus proche de limpleacutementation informatique bien quencore indeacutependant dune solution technologique
particuliegravere
1 Introduction au modegravele relationnel
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
III
La modeacutelisation logique relationnelle
45
a) Niveau logique Le niveau logique est le lien entre le niveau conceptuel et limpleacutementation effective de lapplication Le modegravele
conceptuel eacutetant un modegravele formel le modegravele logique a pour vocation decirctre eacutegalement un modegravele formel
mais speacutecifiant non plus la reacutealiteacute existante ou rechercheacutee comme le modegravele conceptuel mais les donneacutees
telles quelles vont exister dans lapplication informatique
Pour assumer cette fonction le modegravele relationnel [Codd70] sest imposeacute en reacuteaction aux insuffisances des
modegraveles anteacuterieurs les modegraveles hieacuterarchique et reacuteseau et de part la puissance de ses fondements
matheacutematiques Encore aujourdhui dominant le modegravele relationnel est un fondement indispensable agrave la
conception de bases de donneacutees
Ratptpel
Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
b) Deacutefinition du modegravele relationnel
Introduction
Le modegravele relationnel a eacuteteacute introduit par Codd [Codd70] en 1970 au laboratoire de recherche dIBM de San
Joseacute Il sagit dun modegravele simple et puissant agrave la base de la majoriteacute des bases de donneacutees encore aujourdhui
Les objectifs du modegravele relationnel formuleacutes par Codd sont les suivants
Assurer lindeacutependance des applications et de la repreacutesentation interne des donneacutees
Geacuterer les problegravemes de coheacuterence et de redondance des donneacutees
Utiliser des langages de donneacutees baseacutes sur des theacuteories solides
Deacutefinition Modegravele relationnel
On appelle modegravele relationnel un ensemble de concepts permettant de formaliser logiquement la description
darticles de fichiers plats indeacutependamment de la faccedilon dont ils sont physiquement stockeacutes dans une meacutemoire
numeacuterique
Le modegravele relationnel inclut des concepts pour la description de donneacutees ainsi que des concepts pour la
manipulation de donneacutees
Fondamental Repreacutesenter le monde en tables
Le modegravele relationnel permet de repreacutesenter les donneacutees que lon va geacuterer agrave laide dun tregraves petit
nombre de concepts tregraves simples
Les relations ou tables des lignes et des colonnes
Les domaines de valeurs chaque case dune table prend une unique valeur dans un
domaine preacute-deacutefini
Les cleacutes il existe des cases dont les valeurs doivent ecirctre uniques et non nulles
Les cleacutes eacutetrangegraveres il existe des cases qui doivent prendre une valeur existante dans les
cases dune autre table
La modeacutelisation logique relationnelle
46
Comtpleacutement Extension du modegravele relationnel
Le modegravele relationnel est un standard normaliseacute par lISO agrave travers son langage le SQL Il se veut neacuteanmoins
degraves lorigine extensible pour permettre de geacuterer des donneacutees plus complexes que les donneacutees tabulaires Le
modegravele relationnel-objet est neacute de cette extension
2 Les concepts fondamentaux du modegravele relationnel
atributs enregistrement domaine
a) Domaine
Deacutefinition Domaine
Ensemble caracteacuteriseacute par un nom dans lequel des donneacutees peuvent prendre leurs valeurs
Remarque Un domaine peut-ecirctre deacutefini en intension (cest agrave dire en deacutefinissant les proprieacuteteacutes caracteacuteristiques des
valeurs du domaine on parle aussi de compreacutehension) ou en extension (cest agrave dire en eacutenumeacuterant toutes
les valeurs du domaine)
Exemtple Domaines deacutefinis en intension
Tous les entiers
Les reacuteels infeacuterieur agrave 5
Les booleacuteen (vrai ou faux)
Toutes les chaicircnes de 1 agrave 255 caractegraveres
Les valeurs moneacutetaires deacutefinie comme des deacutecimaux avec deux chiffres apregraves la virgule
Les dates deacutefinies comme des chaicircnes de 10 caractegraveres comprenant des chiffres et des tirets selon le
patron 00-00-0000
Les salaires deacutefinis comme des valeurs moneacutetaires compris entre 15000 et 100000
Exemtple Domaines deacutefinis en extension
Couleur Bleu Vert Rouge Jaune Blanc Noir
SGBD Hieacuterarchique Reacuteseau Relationnel Objet Relationnel-Objet
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
La modeacutelisation logique relationnelle
47
b) Exercice Indiquez quelle deacutefinition et quel exemple correspondent respectivement aux mots intension et extension
1 - Le domaine des couleurs
2 - Eacutenonciation exhaustive de lensemble des objets du domaine
3 - bleu rouge vert
4 - Explicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa compreacutehension
abstraite geacuteneacuterale)
Intension Extension
c) Atribut et enregistrement
Deacutefinition Atribut
On appelle attribut dune relation une colonne de cette relation Un attribut est caracteacuteriseacute par un nom et un
domaine dans lequel il prend ses valeurs
Synonymes Champs Proprieacuteteacute Colonne
Deacutefinition Enregistrement
On appelle enregistrement dune relation une ligne de cette relation Un enregistrement prend une valeur
pour chaque attribut de la relation
Synonymes Tuple N-uplet Vecteur Ligne
La modeacutelisation logique relationnelle
48
Exemtple
A B
1 1
1 2
2 2
Tableau 5 Relation R
La relation R comporte les deux attributs A et B et les trois enregistrements lt11gt lt12gt et lt22gt
Remarque Atribut domaine ordre
Un attribut se distingue dun domaine car il peut ne comporter que certaines valeurs de ce domaine
Les colonnes de la relation ne sont pas ordonneacutees et elles ne sont donc repeacutereacutees que par le nom de lattribut
Remarque Valeur nulle
Un enregistrement peut ne pas avoir de valeur pour certains attributs de la relation parce que cette valeur
est inconnue ou inapplicable sa valeur est alors null
d) Exemple La relation Vol
Exemtple
Numero Compagnie Avion Deacutepart Arriveacutee Date
AF3245 Air France 747 Paris Oulan Bator 01shy08shy2002
AF6767 Air France A320 Paris Toulouse 30shy07shy2002
KLM234 KML 727 Paris Amsterdam 31shy07shy2002
Tableau 6 Relation Vol
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel
Objectifs
Connaicirctre les notions de cleacutes candidates naturelles artificielles primaire eacutetrangegravere
Aborder le principe deacuteclatement des relations et de nonredondance
La modeacutelisation logique relationnelle
49
a) Cleacute
Deacutefinition Cleacute
Une cleacute est un groupe dattributs minimum qui permet didentifier de faccedilon univoque un tuple dans une
relation
Fondamental
Toute relation doit comporter au moins une cleacute ce qui implique quune relation ne peut pas
contenir deux tuples identiques
Atention Atributs de cleacutes unique et non null Afin decirctre deacuteterminants pour lidentification dun enregistrement tous les attributs dune cleacute
doivent ecirctre valueacutes cest-agrave-dire quaucun ne peut avoir de valeur null Dire quun groupe
dattribut est une cleacute eacutequivaut agrave dire quil est unique et non null
Exemtple Numeacutero deacutetudiant
Le numeacutero deacutetudiant dune relation Etudiant est une bonne cleacute car il y aura systeacutematiquement une
valeur non nulle
Le groupe dattributs (nom preacutenom) dune relation Etudiant est en geacuteneacuteral une mauvaise cleacute car les
homonymes existent
b) Deacuteterminer les cleacutes
Deacutetermination dune cleacute
Deacutefinir un groupe dattributs comme eacutetant une cleacute neacutecessite une reacuteflexion seacutemantique sur les donneacutees
composant ces attributs afin de sassurer de leur uniciteacute
Fondamental
La deacutefinition des cleacutes est un acte de modeacutelisation elle ne renvoie pas donc pas agrave une veacuteriteacute
intangible mais agrave la reacutealiteacute telle quelle est repreacutesenteacutee dans le modegravele que lon eacutelabore
Exemtple
Lattribut numeacutero de seacutecuriteacute sociale dune relation personne peut paraicirctre une bonne cleacute a priori car son
uniciteacute est assureacutee Mais tout le monde nen dispose pas forceacutement (les enfants des eacutetrangers) donc ce nest
une cleacute que si lon considegravere des personnes affilieacutees agrave la seacutecuriteacute sociale
c) Cleacute primaire et cleacutes candidates
Deacutefinition Cleacute tprimaire
Si plusieurs cleacutes existent dans une relation on en choisit une parmi celles-ci Cette cleacute est appeleacutee cleacute
primaire
La modeacutelisation logique relationnelle
50
La cleacute primaire est geacuteneacuteralement choisie de faccedilon agrave ce quelle soit la plus simple cest agrave dire portant sur le
moins dattributs et sur les attributs de domaine les plus basiques (entiers ou chaicircnes courtes typiquement)
Deacutefinition Cleacutes candidates
On appelle cleacutes candidates lensemble des cleacutes dune relation qui nont pas eacuteteacute choisies comme cleacute primaire
(elles eacutetaient candidates agrave cette fonction)
d) Cleacute artificielle
Deacutefinition Cleacute artificielle
Sil est impossible de trouver une cleacute primaire ou que les cleacutes candidates sont trop complexes il est possible
de faire appel agrave une cleacute artificielle Une cleacute artificielle est un attribut suppleacutementaire ajouteacute au scheacutema de
la relation qui nest lieacute agrave aucune signification et qui sert uniquement agrave identifier de faccedilon unique les
enregistrements etou agrave simplifier les reacutefeacuterences de cleacutes eacutetrangegraveres
Deacutefinition Cleacute signifiante
Une cleacute est signifiante si elle nest pas artificielle
Synonyme Cleacute naturelle
Atention Cleacute artificielle et niveau logique
Au niveau du modegravele logique il faut eacuteviter la simpliciteacute consistant agrave identifier toutes les relations
avec des cleacutes artificielles et ne reacuteserver cet usage quaux cas particuliers
Conseil
1 Si au moins une cleacute naturelle composeacutee dun seul attribut existe en choisir une parmi celles-ci comme
cleacute primaire 2 Sinon choisir une cleacute naturelle composeacutee de plusieurs attributs si elle ne pose pas de problegraveme identifieacute 3 Toujours justifier lemploi dune cleacute artificielle (au niveau logique uniquement pour des raisons de
complexiteacute du modegravele les questions de performance sont eacutetudieacutees au niveau physique)
RemarqueCleacute artificielle et niveau tphysique eacutevolutiviteacute maintenance et tperformance
Au niveau de limpleacutementation physique par contre il est courant que des cleacutes artificielles soient utiliseacutees de
faccedilon systeacutematique
Du point de vue de leacutevolutiviteacute de la BD il existe toujours un risque quune cleacute nonartificielle perde
sa proprieacuteteacute duniciteacute ou de non-nulliteacute
Du point de vue de la maintenance de la BD il existe toujours un risque quune cleacute non-artificielle
voit sa valeur modifieacutee et dans ce cas la reacutepercution de ce changement pour mettre agrave jour toutes les
reacutefeacuterences peut poser problegraveme
Du point de vue de la performance de la BD les cleacutes non-artificielles ne sont pas en geacuteneacuteral optimiseacutees
en terme de type et de taille et donc peuvent limiter les performances dans le cadre des jointures
Preacutecisons neacuteanmoins quinversement les cleacutes artificielles ont pour conseacutequence de systeacutematiser des
jointures qui auraient pu ecirctre eacuteviteacutees avec des cleacutes primaires signifiantes
La modeacutelisation logique relationnelle
51
Exemtple Problegraveme deacutevolutiviteacute tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD franccedilaise elle ne permettra pas dentrer
un individu non-franccedilais issu dun pays ne disposant pas dun tel numeacutero
Exemtple Problegraveme de maintenance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD centrale dont les donneacutees sont exploiteacutees
par dautres tables dautres BD qui viennent piocher dans cette BD pour leurs propres usages sans que la
BD centrale ne connaisse ses clients Soit une erreur dans la saisie dun numeacutero de seacutecuriteacute sociale dans la
BD centrale si ce numeacutero est corrigeacute il faudrait (ce qui nest pas possible dans notre cas) impeacuterativement en
avertir toutes les bases utilisatrices pour quelles mettent agrave jour leurs reacutefeacuterences
Exemtple Problegraveme de tperformance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table comptant un million denregistrements ce numeacutero
est geacuteneacuteralement un nombre agrave 13 chiffres ou une chaicircne agrave 13 caractegraveres ce qui dans les deux cas est supeacuterieur
au nombre agrave 7 chiffres suffisant pour identifier tous les individus de la BD Les performances seront donc
toujours moins bonnes lors des jointures si une cleacute prend deux fois plus de place en meacutemoire que son
optimum Mais ajoutons que cette perte de performance na pas toujours de conseacutequence sur la reacutealiteacute
perceptible par les utilisateurs de la BD
Inversement soit une cleacute artificielle la cleacute primaire dune table T1 par ailleurs reacutefeacuterenceacutee par une autre table
T2 Soit le numeacutero de seacutecuriteacute sociale un attribut cleacute de T1 Si lon veut par requecircte disposer des informations
de T2 ainsi que du numeacutero de seacutecuriteacute sociale de T1 alors il faudra faire une jointure tandis que si ce numeacutero
signifiant avait eacuteteacute choisi comme cleacute primaire cela naurait pas eacuteteacute neacutecessaire
La modeacutelisation logique relationnelle
52
e) Cleacute eacutetrangegravere
Deacutefinition Cleacute eacutetrangegravere
Une cleacute eacutetrangegravere est un attribut ou un groupe dattributs dune relation R1 devant apparaicirctre comme cleacute
primaire dans une relation R2 afin de mateacuterialiser une reacutefeacuterence entre les tuples de R1 et les tuples de R2
Une cleacute eacutetrangegravere dun tuple reacutefeacuterence une cleacute primaire dun autre tuple
Atention
Seule une cleacute primaire peut ecirctre reacutefeacuterenceacutee par une cleacute eacutetrangegravere cest mecircme le seule fonction
de la cleacute primaire ecirctre la cleacute qui peut ecirctre reacutefeacuterenceacutee par les cleacutes eacutetrangegraveres
Deacutefinition Contrainte dinteacutegriteacute reacutefeacuterentielle
Une cleacute eacutetrangegravere respecte la contrainte dinteacutegriteacute reacutefeacuterentielle si sa valeur est effectivement existante dans
la cleacute primaire dun tuple de la relation reacutefeacuterenceacutee ou si sa valeur est null
Une cleacute eacutetrangegravere qui ne respecte pas la contrainte dinteacutegriteacute reacutefeacuterentielle exprime un lien vers un tuple qui
nexiste pas et donc nest pas coheacuterente
f) Reacutefeacuterence entre relations Le modegravele relationnel a pour objectif la structuration de donneacutees selon des relations Lenjeu est de parvenir
agrave traduire un modegravele conceptuel en modegravele logique relationnel Or il ny a pas de notion dassociation en
relationnel donc il faudra pouvoir traduire les associations avec les concepts dont on dispose relation cleacute
cleacute eacutetrangegravere
Afin de repreacutesenter des reacutefeacuterences entre relations dans un modegravele relationnel la seule solution est de stocker
linformation dans une relation et donc que certains attributs dune relation servent agrave pointer sur dautres
relations
Atention
Il ny a pas vraiment de reacutefeacuterence ou de lien en relationnel puisque nous ne disposons que de
tables de cleacutes de cleacutes eacutetrangegravere et de valeurs
On va donc devoir se servir de ces outils pour mateacuterialiser une notion de reacutefeacuterence
Meacutethode Reacutefeacuterence
La reacutefeacuterence entre deux tuples T1 et T2 de deux relations diffeacuterentes est exprimable par une valeur identique
entre une cleacute eacutetrangegravere du tuple T1 et la cleacute primaire de lautre tuple T2 Synonyme Lien Exemtple
R1 R2 a1 a2=gtR2 b1 b2
La modeacutelisation logique relationnelle
53
F
Image 13
Lattribut a2 de la relation R1 reacutefeacuterence lattribut b1 de la relation R2 car a2 est une cleacute eacutetrangegravere de R1 vers
R2 (b1 est la cleacute primaire de R2)
Ici on a donc par exemple les tuples identifieacutes par B et C de R1 qui reacutefeacuterencent le tuple identifieacute par 1 dans
R2
g) Scheacutema relationnel
Deacutefinition Scheacutema dune relation
Le scheacutema dune relation deacutefinit cette relation en intension Il est composeacute
du nom de la relation
de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs
de la cleacute primaire
des cleacutes eacutetrangegraveres
des cleacutes candidates
Deacutefinition Scheacutema relationnel dune base de donneacutee
Le scheacutema relationnel dune BD est la deacutefinition en intension de cette BD (par opposition agrave linstance de la
BD qui est une extension de la BD) Il est composeacute de lensemble des scheacutemas de chaque relation de la BD
Syntaxe Relation
Relation (Attribut1Domaine1 Attribut2Domaine2 AttributNDomaineN) 1
La relation Relation contient N attributs chacun deacutefini sur son domaine
Syntaxe Cleacute tprimaire
Relation (Attribut1Domaine1 AttributMDomaineM AttributNDomaineN)
1
La cleacute de la relation Relation est composeacutee des attributs Attribut1 agrave AttributM (attribut preacuteceacutedeacutes de ou
bien souligneacutes)
En geacuteneacuteral on note la cleacute primaire en premier dans la relation
Syntaxe Cleacute eacutetrangegravere
Relation1 ( AttributM=gtRelation2 AttributN=gtRelation2) 1
La relation Relation1 comporte une cleacute eacutetrangegravere (composeacutee des attributs AttributM agrave AttributN)
reacutefeacuterenccedilant la cleacute primaire de Relation2 Bien sucircr il peut exister plusieurs cleacutes eacutetrangegraveres vers plusieurs
La modeacutelisation logique relationnelle
54
relations distinctes Une cleacute eacutetrangegravere et sa cleacute primaire reacutefeacuterenceacutee sont toujours composeacutees du mecircme nombre
dattributs Il nest pas neacutecessaire de preacuteciser les domaines des attributs appartenant agrave la cleacute eacutetrangegravere car ce
sont forceacutement les mecircmes que ceux de la cleacute primaire reacutefeacuterenceacutee Il nest pas non plus en geacuteneacuteral neacutecessaire
de preacuteciser dans le scheacutema relationnel quels attributs de la cleacute eacutetrangegravere reacutefeacuterencent quels attributs de la cleacute
primaire (cela est geacuteneacuteralement eacutevident) mais il est possible de la faire on notant Attribut=gtRelationAttribut
En geacuteneacuteral on note les cleacutes eacutetrangegraveres en dernier dans la relation sauf pour les cleacutes eacutetrangegraveres qui font partie
de la cleacute primaire (cleacutes identifiantes)
Syntaxe Cleacute candidates
Relation1 (AttributMDomaineM ) avec AttributM cleacute 1
Les cleacutes candidates doivent ecirctre noteacutees sur le scheacutema relationnel
Sil ny a quune ou deux cleacutes candidates les noter directement apregraves la deacutefinition de la relation
Sil y a beaucoup de cleacutes pour ne pas trop alourdir la notation renvoyer agrave un tableau agrave part
Atention Cleacutes candidates et cleacute primaire
La notation R(ab) signifie toujours que R a comme cleacute primaire (ab) et non que R aurait
deux cleacutes a et b (dont on ne saurait pas laquelle est primaire)
La notation R(ab) avec b cleacute signifie bien que a et b sont deux cleacutes de R et que a est primaire
Il ne faut pas confondre une cleacute composeacutee de deux attributs avec deux cleacutes
h) Exemple de scheacutema relationnel pour la geacuteographie
Exemtple
Personne (NumeroEntier NomChaicircne PreacutenomChaicircne LieuNaissance=gtVille) Pays (NomChaicircne PopulationEntier SuperficieReacuteel Dirigeant=gtPersonne) Reacutegion (Pays=gtPays NomChaicircne Superficie Dirigeant=gtPersonne) Ville (CodePostalCP NomChaicircne Pays=gtReacutegionPays Reacutegion=gtReacutegionNom Dirigeant=gtPersonne)
1 2 3 4
Exemtple Exemtple dinstance de la base de donneacutees
Personne Num ero Nom Prenom LieuNaissance
1 Durand Pierre 60200 2 Dupont Marie 60200
Pays
Nom Population Superficie Dirig eant
France 60 50000101 2 Allemagne 80 60000023564 2 Espagne 40 3500001 1
La modeacutelisation logique relationnelle
55
Reacutegion Pays Nom Superficie Dirig eant France Picardie 50 1 Espagne Picardie 40 1 France Normandie 30 2
Ville CodePostal Nom Pays Reacuteg ion Dirig eant F60200 Compiegravegne France Picardie 1
F60300 Senlis France Picardie 2 F60301 Senlis France Picardie 2 E8000 Senlis Espagne Picardie 2
Le scheacutema relationnel preacuteceacutedent deacutecrit
Des personnes
Elles sont identifieacutees par un numeacutero qui est en fait une cleacute artificielle En effet mecircme une cleacute composeacutee
de tous les attributs (Nom Preacutenom LieuNaissance) laisse une possibiliteacute de doublons (homonymes
neacutes dans la mecircme ville)
La cleacute eacutetrangegravere LieuNaissance fait reacutefeacuterence agrave la relation Ville et plus preacuteciseacutement agrave sa cleacute primaire
CodePostal ce qui est est laisseacute implicite car eacutevident
Des pays
Ils sont identifieacutes par leur nom puisque deux pays ne peuvent avoir le mecircme nom Les pays sont
dirigeacutes par des personnes et ce lien est mateacuterialiseacute par la cleacute eacutetrangegravere Dirigeant
Des reacutegions
Elles font partie dun pays et ont un nom Deux reacutegions de pays diffeacuterents pouvant avoir le mecircme
nom il faut utiliser une cleacute primaire composeacutee agrave la fois du nom de la reacutegion et du nom du pays qui
est une cleacute eacutetrangegravere (le nom est appeleacute cleacute locale car il nest pas suffisant pour identifier un tuple de
la relation Reacutegion et la cleacute eacutetrangegravere vers la relation Pays est appeleacutee cleacute identifiante)
Des villes
Elles sont identifieacute par un code postal qui est unique dans le monde (en utilisant le preacutefixe de pays de
type F-60200) Ce code postal a pour domaine CP qui est une chaicircne composeacutee dune ou deux
lettres dun tiret puis dune seacuterie de chiffres
Le lien dappartenance entre une ville et une reacutegion est mateacuterialiseacute par la cleacute eacutetrangegravere composeacutee des
deux attributs Pays et Reacutegion Cette cleacute reacutefeacuterence la cleacute primaire de la relation Reacutegion eacutegalement composeacutee
de deux attributs Pour clairement expliciter les reacutefeacuterences (bien que seacutemantiquement la deacutenomination des
attributs ne laisse pas de place au doute) on utilise la syntaxe ReacutegionPays et ReacutegionNom
4 Synthegravese
a) Synthegravese Scheacutema relationnel
Scheacutema relationnel
Un scheacutema relationnel permet une formalisation dun modegravele logique
Relation ou table
La modeacutelisation logique relationnelle
56
Sous-ensemble dun produit carteacutesien -
Attribut ou colonne Prend ses valeurs dans un domaine
- Enregistrement ou ligne Pose une valeur (y compris la valeur null) pour chaque attribut
Cleacute
Groupe dattributs ayant un rocircle didentification au sein dun enregistrement - Cleacute candidate
Identifie de faccedilon unique un enregistrement - Cleacute primaire
Cleacute candidate choisie pour repreacutesenter un enregistrement pour sa faciliteacute dusage - Cleacute eacutetrangegravere
Reacutefeacuterence la cleacute primaire dun tuple dune autre relation pour exprimer un lien
b) Bibliographie commenteacutee sur le modegravele relationnel
Comtpleacutement Synthegraveses
SQL2 SQL3 applications agrave Oracle [Delmal01]
Une deacutefinition syntheacutetique et efficace du domaine relationnel relation domaine attribut cleacute inteacutegriteacute
opeacuterateurs (Premier chapitre)
5 Deacutefinition formelle dune relation
a) Produit carteacutesien
Deacutefinition Produit carteacutesien
Le produit carteacutesien noteacute X des domaines D1 D2 Dn noteacute D1 X D2 X X Dn est lensemble des
tuples (ou n-uplets ou vecteurs) ltV1V2Vngt tel que Vi est une valeur de Di et tel que toutes les
combinaisons de valeurs possibles sont exprimeacutees
Exemtple
D1 = A B C D2 = 1 2 3 D1 X D2 = ltA1gt ltA2gt ltA3gt ltB1gt ltB2gt ltB3gt ltC1gt ltC2gt ltC3gt
1 2 3
b) Relation
Deacutefinition Relation
Une relation sur les domaines D1 D2 Dn est un sous-ensemble du produit carteacutesien D1 X D2 X X Dn
Une relation est caracteacuteriseacutee par un nom Synonymes Table tableau
Syntaxe
La modeacutelisation logique relationnelle
57
On peut repreacutesenter la relation R sur les domaine D1 Dn par une table comportant une colonne pour
chaque domaine et une ligne pour chaque tuple de la relation
D1 Dn
V1 Vn
V1 Vn
Tableau 7 Relation R
Remarque
Une relation est deacutefinie en extension par leacutenumeacuteration des tuples la composant
B Exercices
1 Lab I-
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Dessiner des relations instancieacutees (en extension donc) remplies avec les donneacutees fournies en exemple
La modeacutelisation logique relationnelle
58
Question 2
Eacutecrivez le scheacutema relationnel (deacutefinition en intension donc) permettant de repreacutesenter une base de donneacutees
relationnelle pour le laboratoire
59
IV - Introduction au
passage
UMLRelationnel classes et
associations
A Cours
Afin de pouvoir impleacutementer une base de donneacutees il faut pouvoir traduire le modegravele conceptuel en modegravele
logique Cela signifie quil faut pouvoir convertir un modegravele UML en modegravele relationnel Les modegraveles
conceptuels sont suffisamment formels pour que ce passage soit systeacutematiseacute dans la plupart des cas
1 Transformation des classes et atributs
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
IV
Introduction au passage UML-Relationnel classes et associations
60
a) Transformation des classes
Meacutethode Classe
Pour chaque classe non abstraite
on creacutee une relation dont le scheacutema est celui de la classe
la cleacute primaire de cette relation est une des cleacutes de la classe
Classe1
Graphique 2 Classe
Classe1()
Remarque
Les classes abstraites sont ignoreacutees agrave ce stade et neacutetant pas instanciables ne donnent geacuteneacuteralement pas
lieu agrave la creacuteation de relation
b) Transformation des atributs
Meacutethode Atributs simtples
Pour chaque attribut eacuteleacutementaire et monovalueacute dune
classe on creacutee un attribut correspondant
Classe1
a key
b
Graphique 3 Attribut
Classe1(ab)
Meacutethode Atributs comtposites
Pour chaque attribut composite comprenant N sous-attributs dune classe
on creacutee N attributs correspondants
dont les noms sont la concateacutenation du nom de lattribut composite avec celui du sous attribut
Classe1
a key b -b1 -b2
Introduction au passage UML-Relationnel classes et associations
61
Graphique 4 Attribut composeacute
Classe1(ab_b1b_b2)
Meacutethode Atributs multivalueacutes
Pour chaque attribut multivalueacute b dune classe C
on creacutee une nouvelle relation RB
qui comprend un attribut monovalueacute correspondant agrave b
plus la cleacute de la relation repreacutesentant C
la cleacute de RB est la concateacutenation des deux attributs
Classe1
a key
b[110]
Graphique 5 Attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Meacutethode Atributs multivalueacutes (meacutethode alternative)
Dans le cas ougrave le nombre maximum de b est fini et petit on peut eacutegalement adopter la transformation
suivante
Classe1(ab1b2b3b4b5b6b7b8b9b10)
Si le nombre dattributs est infini (b[1]) cest impossible sil est trop grand ce nest pas souhaitable
Meacutethode Atributs comtposeacutes multivalueacutes
On combine les regravegles eacutenonceacutees pour les attributs composeacutes et pour les attributs multivalueacutes
Classe1
a key b [0N] -b1 -b2
Graphique 6 Attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
Ratptpel Voir aussi
Transformation des compositions - p102
Introduction au passage UML-Relationnel classes et associations
62
c) Transformation des atributs deacuteriveacutes et meacutethodes
Meacutethode Atributs deacuteriveacutes et meacutethodes
On ne repreacutesente pas en geacuteneacuteral les attributs deacuteriveacutes ni les meacutethodes dans le modegravele relationnel ils seront
calculeacutes dynamiquement soit par des proceacutedures internes agrave la BD (proceacutedures stockeacutees) soit par des
proceacutedures au niveau applicatif
Classe1
a key
b
m()
Graphique 7 Attribut deacuteriveacute et meacutethodes
Classe1(a)
Comtpleacutement Atribut deacuteriveacute stockeacutes
On peut deacutecider (pour des raisons de performance essentiellement) de repreacutesenter lattribut deacuteriveacute ou la
meacutethode comme sil sagissait dun attribut simple mais il sera neacutecessaire dans ce cas dajouter des
meacutecanismes de validation de contraintes dynamiques (avec des triggers par exemple) pour assurer que la
valeur stockeacutee eacutevolue en mecircme temps que les attributs sur lesquels le calcul deacuteriveacute porte
Notons quintroduire un attribut deacuteriveacute ou un reacutesultat de meacutethode dans le modegravele relationnel eacutequivaut agrave
introduire de la redondance ce qui est en geacuteneacuteral deacuteconseilleacute et ce qui doit ecirctre dans tous les cas controcircleacute
2 Transformation des associations
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
a) Transformation des associations 1N
Meacutethode
Pour chaque association binaire de type 1N
on ajoute agrave la relation cocircteacute N une cleacute eacutetrangegravere vers la relation cocircteacute 1
Classe1
01 association 0N
Classe2
a key
b c key
d
Graphique 8 Association 1N
Classe1(ab)
Introduction au passage UML-Relationnel classes et associations
63
Classe2(cda=gtClasse1)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations 1N - p103
b) Transformation des associations NM
Meacutethode
Pour chaque association binaire de type MN
on creacutee une nouvelle relation
composeacutee de cleacutes eacutetrangegraveres vers chaque relation associeacutee
et dont la cleacute primaire est la concateacutenation de ces cleacutes eacutetrangegraveres
Graphique 9 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations NM - p104
c) Transformation des associations 11 (approche simplifieacutee)
Meacutethode
La solution la plus simple et la plus geacuteneacuterale pour transformer une association 11 consiste agrave traiter cette
association 11 comme une association 1N puis agrave ajouter une contrainte UNIQUE sur la cleacute eacutetrangegravere pour
limiter la cardinaliteacute maximale agrave 1
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 10 Association 11
Classe1(abc=gtClasse2) avec c UNIQUE
Classe2(cd) ou
Introduction au passage UML-Relationnel classes et associations
64
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE
Remarque
Il existe toujours deux solutions selon que lon choisit une ou lautre relation pour accueillir la cleacute eacutetrangegravere
Selon la cardinaliteacute minimale un des deux choix peut ecirctre plus pertinent
Comtpleacutement
Il est parfois possible de choisir de fusionner les deux classes au sein dune seule relation plutocirct que dopter
pour une cleacute eacutetrangegravere
Comtpleacutement
Transformation des associations 11 (approche geacuteneacuterale) - p105
d) Transformation des classes dassociation
Meacutethode Classe dassociation NM
Graphique 11 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2ef)
Comtpleacutement Classe dassociation 1N
Les attributs de la classe dassociation sont ajouteacutes agrave la relation issue de la classe cocircteacute N
Comtpleacutement Classe dassociation 11
Les attributs de la classe dassociation sont ajouteacutes agrave la relation qui a eacuteteacute choisie pour recevoir la cleacute eacutetrangegravere
Si les deux classes ont eacuteteacute fusionneacutees en une seule relation les attributs sont ajouteacutes agrave celle-ci
a key b
Classe1
c key d
Classe2
0 N 0 N
e f
Cl-A ssoc
Introduction au passage UML-Relationnel classes et associations
65
B Exercices
1 Lab I+
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
Question 3
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 4
Dessiner des tableaux remplis avec les donneacutees fournies en exemple afin de montrer que le modegravele fonctionne
selon le besoin exprimeacute initialement On pourra mettre le premier mot seulement des descriptions pour gagner
du temps
Introduction au passage UML-Relationnel classes et associations
66
2 Usine de production
[30 minutes] Une usine cherche agrave modeacuteliser sa production de veacutehicules et de moteurs
Les veacutehicules sont identifieacutes par un numeacutero dimmatriculation alphanumeacuterique et caracteacuteriseacutes par une
couleur dont la deacutenomination est une chaicircne de caractegraveres Chaque veacutehicule peut comporter un
unique moteur etou un nombre quelconque de pneus
Chaque moteur est monteacute sur un et un seul veacutehicule et est identifieacute par un numeacutero de seacuterie Un moteur
est caracteacuteriseacute par une puissance en chevaux
Tout pneu est monteacute sur un unique veacutehicule et est identifieacute par un numeacutero de seacuterie Sa position est
deacutefinie localement sur ce veacutehicule et par rapport agrave lessieu Dn pour les pneus situeacute sur la droite de
lessieu et Gn pour les pneus situeacutes agrave gauche n repreacutesentant le numeacutero de lessieu (1 pour celui situeacute
devant 2 pour la deuxiegraveme rangeacutee etc) Un pneu est caracteacuteriseacute par un diamegravetre et une largeur en
pouces
Les moteurs les pneus et les veacutehicules sont fabriqueacutes sous une marque Les mecircmes marques peuvent
fabriquer indiffeacuteremment des moteurs des pneus etou des veacutehicules et un veacutehicule dune certaine
marque peut comporter un moteur etou des pneus de marque diffeacuterente
Question 1
Reacutealiser le modegravele UML de ce problegraveme en faisant apparaicirctre les domaines et les cleacutes
Question 2
Reacutealiser le passage au modegravele relationnel en faisant apparaicirctre les cleacutes primaires candidates et eacutetrangegraveres
Question 3
Dessiner les tableaux correspondant aux relations du modegravele Instancier au minimum deux veacutehicules et quatre
marques
Question 4
Donner quatre exemples denregistrements qui seront refuseacutes - eacutetant donneacutees les donneacutees deacutejagrave inseacutereacutees -
pour quatre raisons diffeacuterentes
contrainte de cleacute sur une cleacute primaire
contrainte de cleacute sur une cleacute candidate
contrainte dinteacutegriteacute reacutefeacuterentielle
contrainte de non nulliteacute
67
V - Creacuteation et
alimentation de bases
de donneacutees SQL
A Cours
1 Le langage SQL
Deacutefinition SQL
SQL (pour langage de requecirctes structureacute) est un langage deacuteclaratif destineacute agrave la manipulation de bases de
donneacutees au sein des SGBD et plus particuliegraverement des SGBDR
SQL LDD LCD LMD LCT
SQL est un langage deacuteclaratif il nest donc pas a proprement parleacute un langage de programmation mais plutocirct
une interface standard pour acceacuteder aux bases de donneacutees
Il est composeacute de quatre sous ensembles
Le Langage de Deacutefinition de Donneacutees (LDD ou en anglais DDL Data Definition
Language) pour creacuteer et supprimer des objets dans la base de donneacutees (tables contraintes dinteacutegriteacute
vues etc)
Exemple de commandes CREATE DROP ALTER
Le Langage de Controcircle de Donneacutees (LCD ou en anglais DCL Data Control Language) pour geacuterer les
droits sur les objets de la base (creacuteation des utilisateurs et affectation de leurs droits)
Exemple de commandes GRANT REVOKE
V
Creacuteation et alimentation de bases de donneacutees SQL
68
Le Langage de Manipulation de Donneacutees (LMD ou en anglais DML Data Manipulation
Language) pour la recherche linsertion la mise agrave jour et la suppression de donneacutees Le LMD est baseacute
sur les opeacuterateurs relationnels auxquels sont ajouteacutes des fonctions de calcul dagreacutegats et des
instructions pour reacutealiser les opeacuterations dinsertion mise agrave jour et suppression
Exemple de commandes INSERT UPDATE DELETE SELECT
Le Langage de Controcircle de Transaction (LCT ou en anglais TCL Transaction Control Language) pour
la gestion des transactions (validation ou annulation de modifications de donneacutees dans la BD)
Exemple de commandes COMMIT ROLLBACK
Fondamental Reacutefeacuterence SQL SQL-99 complete really
Gulutzan and Pelzer 1999 [Gulutzan and Pelzer 1999] httpsmariadbcomkbensql-99)2
Comtpleacutement Origine du SQL
Le modegravele relationnel a eacuteteacute inventeacute par EF Codd (Directeur de recherche du centre IBM de San Joseacute) en
1970 suite agrave quoi de nombreux langages ont fait leur apparition
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel2
IBM SystemR
IBM DB2
Ce sont ces langages qui ont donneacute naissance au standard SQL normaliseacute en 1986 au Eacutetats-Unis par lANSI
pour donner SQL86 (puis au niveau international par lISO en 1987)
Comtpleacutement Versions de SQL
SQL-86 (ou SQL-87) Version dorigine
SQL-89 (ou SQL-1) Ameacuteliorations mineures
SQL-92 (ou SQL-2) Extensions fonctionnelles majeures (types de donneacutees opeacuterations relationnelles
instruction LDD transactions etc
SQL-99 (ou SQL-3) Introduction du PSM (couche proceacutedurale sous forme de proceacutedure stockeacutees)
et du RO
SQL-2003 Extensions XML
SQL-2006 Ameacuteliorations mineures (pour XML notamment)
SQL-2008 Ameacuteliorations mineures (pour le RO notamment)
Remarque Version SQL et imtpleacutementations SGBD
Selon leur niveau dimpleacutementation de SQL les SGBD acceptent ou non certaines fonctions
Certains SGBD ayant entameacute certaines impleacutementations avant leur standardisation deacutefinitive ces
impleacutementations peuvent diffeacuterer de la norme
Creacuteation et alimentation de bases de donneacutees SQL
69
2 Creacuteer des tables en SQL (Langage de Deacutefinition de
Donneacutees)
Le LDD est la partie du langage SQL qui permet de creacuteer de faccedilon deacuteclarative les objets composant une
BD Il permet notamment la deacutefinition des scheacutemas des relations des contraintes dinteacutegriteacute des vues
Rappel Le code SQL peut ecirctre testeacute avec Db Discodbdiscocrztfr
2 - httpsmariadbcomkbensql-99
a) Lab I++
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
70
Question 2
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 3
Creacuteer une base de donneacutees en SQL correspondant au modegravele relationnel
Question 4
Inseacuterer les donneacutees fournies en exemple dans la base de donneacutees
b) Creacuteation de tables
Ratptpel
Quest ce que le SQL
Introduction
La creacuteation de table est le fondement de la creacuteation dune base de donneacutees en SQL
Deacutefinition Creacuteation de table
La creacuteation de table est la deacutefinition dun scheacutema de relation en intension par la speacutecification de tous les
attributs le composant avec leurs domaines respectifs
Syntaxe
CREATE TABLE nom_table ( nom_colonne1 domaine1 nom_colonne2 domaine2 nom_colonneN domaineN )
1 2 3 4 5 6
Exemtple
CREATE TABLE Personne ( Nom VARCHAR(25) Prenom VARCHAR(25) Age NUMERIC(3) )
1 2 3 4 5
Atention Contrainte dinteacutegriteacute
La deacutefinition des types nest pas suffisante pour deacutefinir un scheacutema relationnel il faut lui adjoindre
la deacutefinition de contraintes dinteacutegriteacute qui permette de poser les notions de cleacute dinteacutegriteacute
reacutefeacuterentielle de restriction de domaines etc
Creacuteation et alimentation de bases de donneacutees SQL
71
c) Domaines de donneacutees
Introduction
Un attribut dune relation est deacutefini pour un certain domaine ou type Les types de donneacutees disponibles en
SQL varient dun SGBD agrave lautre on peut neacuteanmoins citer un certain nombre de types standards que lon
retrouve dans tous les SGBD
Fondamental Les types standard
INTEGER ou INT SMALLINT
NUMERIC(X)
DECIMAL(XY) ou NUMERIC(XY)
FLOAT(X) REAL
CHAR(X)
VARCHAR(X)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HHMMSS)
Les tytpes numeacuteriques standard
Les nombres entiers
INTEGER (ou INT) et SMALLINT permettent de coder des entiers sur 4 octets (2147483648 agrave
2147483647) ou 2 octets (-32768 agrave 32767)
Les nombres entiers
NUMERIC(X) deacutesigne un entier de X chiffres au maximum
Les nombres deacutecimaux
DECIMAL(XY) ougrave X et Y sont optionnels et deacutesignent respectivement le nombre de chiffres maximum
pouvant composer le nombre et le nombre de chiffres apregraves la virgule
NUMERIC(XY) est un synonyme standard
Les nombres agrave virgule flottante
FLOAT(X) avec X deacutefinissant la preacutecision (nombre de bits de codage de la mantisse)
REAL est un synonyme standard de FLOAT(24)
Conseil FLOAT versus DECIMAL
Il est conseilleacute dutiliser DECIMAL qui est un nombre exact plutocirct que FLOAT qui est un nombre approximatif
si la preacutecision requise est suffisante FLOAT sera reacuteserveacute typiquement agrave des calculs scientifiques neacutecessitant
un degreacute de preacutecision supeacuterieur
Les tytpes chaicircne de caractegraveres standard
On distingue principalement les types CHAR(X) et VARCHAR(X) ougrave X est obligatoire et deacutesigne la longueur de
la chaicircne
CHAR deacutefinit des chaicircnes de longueur fixe (compleacuteteacutee agrave droites par des espaces si la longueur est
infeacuterieure agrave X)
et VARCHAR des chaicircnes de longueurs variables
Creacuteation et alimentation de bases de donneacutees SQL
72
CHAR et VARCHAR sont geacuteneacuteralement limiteacutes agrave 255 caractegraveres La plupart des SGBD proposent des types tels
que TEXT ou CLOB (Character Long Object) pour repreacutesenter des chaicircnes de caractegraveres longues jusquagrave
65000 caractegraveres par exemple
Les tytpes date standard
Les types date dont introduits avec la norme SQL2 On distingue
DATE qui repreacutesente une date selon un format de type AAAA-MM-JJ
et DATETIME qui repreacutesente une date plus une heure dans un format tel que AAAAMM-JJ HHMMSS
Comtpleacutement Les autres tytpes
En fonction du SGBD il peut exister de nombreux autres types On peut citer par exemple
MONEY pour repreacutesenter des deacutecimaux associeacutes agrave une monnaie
BOOLEAN pour repreacutesenter des booleacuteens
BLOB (pour Binary Long Oject) pour repreacutesenter des donneacutees binaires tels que des documents
multimeacutedia (images bitmap videacuteo etc)
d) La valeur NULL Labsence de valeur repreacutesenteacutee par la valeur NULL est une information fondamentale en SQL quil ne faut
pas confondre avec la chaicircne espace de caractegravere ougrave bien la valeur 0 Il ne sagit pas dun type agrave proprement
parler mais dune valeur possible dans tous les types
Fondamental
Par deacutefaut en SQL NULL fait partie du domaine il faut lexclure explicitement par la clause NOT
NULL apregraves la deacutefinition de type si on ne le souhaite pas Syntaxe
CREATE TABLE nom de table ( 1
CREATE TABLE nom_table ( nom_colonne1 domaine1 NOT NULL
nom_colonne2 domaine2
nom_colonneN domaineN NOT NULL )
2 3 4 5 6 7
e) Contraintes dinteacutegriteacute
Fondamental
PRIMARY KEY (ltliste dattibutsgt)
UNIQUE (ltliste dattibutsgt)
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt)
CHECK (ltconditiongt)
Une contrainte dinteacutegriteacute est une regravegle qui deacutefinit la coheacuterence dune donneacutee ou dun ensemble de donneacutees
de la
Creacuteation et alimentation de bases de donneacutees SQL
73
BD
Il existe deux types de contraintes
sur une colonne unique
ou sur une table lorsque la contrainte porte sur une ou plusieurs colonnes
Les contraintes sont deacutefinies au moment de la creacuteation des tables
Deacutefinition Contraintes dinteacutegriteacute sur une colonne
Les contraintes dinteacutegriteacute sur une colonne sont
PRIMARY KEY deacutefinit lattribut comme la cleacute primaire
UNIQUE interdit que deux tuples de la relation aient la mecircme valeur pour lattribut
REFERENCES ltnom tablegt (ltnom colonnesgt) controcircle linteacutegriteacute reacutefeacuterentielle entre lattribut et la
table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur de lattribut speacutecifieacute dans la condition dans le
cadre dune restriction de domaine
Deacutefinition Contraintes dinteacutegriteacute sur une table
Les contraintes dinteacutegriteacute sur une table sont
PRIMARY KEY (ltliste dattibutsgt) deacutefinit les attributs de la liste comme la cleacute primaire
UNIQUE (ltliste dattibutsgt) interdit que deux tuples de la relation aient les mecircmes valeurs pour
lensemble des attributs de la liste
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt) controcircle linteacutegriteacute
reacutefeacuterentielle entre les attributs de la liste et la table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur des attributs speacutecifieacutes dans la condition dans le
cadre dune restriction de domaine Syntaxe
CREATE TABLE nom de table ( CREATE TABLE nom_table ( nom_colonne1 domaine1 ltcontraintes colonne1gt nom_colonne2 domaine2 ltcontraintes colonne2gt nom_colonneN domaineN ltcontraintes colonneNgt
1 2 3 4 5 6
ltcontraintes de tablegt )
7 8
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) UNIQUE
(Nom Prenom) )
1 2 3 4 5 6 7 8
Remarque Cleacute candidate
La clause UNIQUE NOT NULL sur un attribut ou un groupe dattributs deacutefinit une cleacute candidate non primaire
Creacuteation et alimentation de bases de donneacutees SQL
74
Remarque
Les contraintes sur une colonne et sur une table peuvent ecirctre combineacutees dans la deacutefinition dun mecircme scheacutema
de relation
Remarque
Une contrainte sur une colonne peut toujours ecirctre remplaceacutee par une contrainte sur une table
f) Exemple de contraintes dinteacutegriteacute
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) Codepostal INTEGER(5) Pays VARCHAR(50) UNIQUE (Nom Prenom) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) CHECK (Initiale = LEFT(Pays 1)) PRIMARY KEY (CP Pays) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
Dans la deacutefinition de scheacutema preacuteceacutedente on a poseacute les contraintes suivantes
La cleacute primaire de Personne est NdegSS et la cleacute primaire de Adresse est (CP Pays)
Nom Preacutenom ne peuvent pas ecirctre null et (Nom Preacutenom) est une cleacute
Age doit ecirctre compris entre 18 et 65 et Initiale doit ecirctre la premiegravere lettre de Pays (avec la fonction
LEFT qui renvoie la sous chaicircne agrave gauche de la chaicircne passeacutee en premier argument sur le nombre de
caractegraveres passeacutes en second argument)
Mariage est cleacute eacutetrangegravere vers Personne et (Codepostal Pays) est une cleacute eacutetrangegravere vers Adresse
Exemtple Reacuteeacutecriture avec uniquement des contraintes de table
Creacuteation et alimentation de bases de donneacutees SQL
75
CREATE TABLE Personne ( NdegSS CHAR(13) Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) Mariage CHAR(13) Codepostal INTEGER(5) Pays VARCHAR(50) PRIMARY KEY (NdegSS) UNIQUE (Nom Prenom) CHECK (Age BETWEEN 18 AND 65) FOREIGN KEY (Mariage) REFERENCES Personne(NdegSS) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) PRIMARY KEY (CP Pays) CHECK
(Initiale = LEFT(Pays 1)) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22
Ce scheacutema est strictement le mecircme que le preacuteceacutedent simplement les contraintes ont toutes eacuteteacute reacuteeacutecrites
comme des contraintes de table
g) Exercice Les instructions SQL ci-apregraves ont-elles pu permettre de creacuteer le scheacutema des trois relations instancieacutees ci-dessous
CREATE TABLE A ( A1 CHAR(255) A2 CHAR(255) A3 CHAR(255) A4 CHAR(255) ) CREATE TABLE B ( B1 CHAR(255) B2 CHAR(255) B3 CHAR(255) B4 CHAR(255) B5 CHAR(255) B6 CHAR(255) B7 CHAR(255) ) CREATE TABLE C ( C1 CHAR(255) C2 CHAR(255) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Oui
Non
Creacuteation et alimentation de bases de donneacutees SQL
76
3 Inseacuterer modifier et supprimer des donneacutees en SQL
(Langage de Manipulation de Donneacutees)
Objectifs
Maicirctriser les bases du SQL pour entrer modifier et effacer des donneacutees dans les
tables
a) Exercice Quelle valeur renvoie la derniegravere instruction SQL de la liste ci-dessous
CREATE TABLE t ( a integer b integer c integer)
INSERT INTO t VALUES (0 0 0)
INSERT INTO t VALUES (1 0 0)
INSERT INTO t SELECT FROM t
SELECT sum(a) + count(b) FROM t
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
b) Insertion de donneacutees Le langage SQL fournit des instructions pour ajouter des nouveaux tuples agrave une relation Il offre ainsi une
interface standard pour ajouter des information dans une base de donneacutees
Il existe deux moyens dajouter des donneacutees soit par fourniture directe des valeurs des proprieacuteteacutes du tuple agrave
ajouter soit par seacutelection des tuples agrave ajouter dans une autre relation
Syntaxe Insertion directe de valeurs
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) VALUES (ltListe ordonneacutee
des valeurs agrave affecter aux proprieacuteteacutes speacutecifieacutees cidessusgt) 1 2
Exemtple Insertion directe de valeurs
INSERT INTO Virement (Date Montant Objet) VALUES (14-07-1975 1000 Prime de naissance)
1 2
Syntaxe Insertion de valeurs tpar lintermeacutediaire dune seacutelection
Creacuteation et alimentation de bases de donneacutees SQL
77
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) SELECT 1 2
Linstruction SELECT projetant un nombre de proprieacuteteacutes identiques aux proprieacuteteacutes agrave valoriser
Exemtple Insertion de valeurs tpar lintermeacutediaire dune seacutelection
INSERT INTO Credit (Date Montant Objet) SELECT Date Montant Annulation de deacutebit FROM Debit WHERE DebitDate = 25-12-2001
1 2 3 4
Dans cet exemple tous les deacutebits effectueacutes le 25 deacutecembre 2001 sont re-creacutediteacutes pour le mecircme montant (et
agrave la mecircme date) avec la mention annulation dans lobjet du creacutedit Ceci pourrait typiquement reacutealiseacute en cas
de deacutebits erroneacutes ce jour lagrave
Remarque
Les proprieacuteteacutes non valoriseacutees sont affecteacutees agrave la valeur NULL
Il est possible de ne pas speacutecifier les proprieacuteteacutes agrave valoriser dans ce cas toutes les proprieacuteteacutes de la
relation seront consideacutereacutees dans leur ordre de deacutefinition dans la relation (agrave nutiliser que dans les cas
les plus simples)
c) Mise agrave jour de donneacutees Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation
Syntaxe Mise agrave jour directe de valeurs
1 UPDATE ltNom de la relationgt
2 SET ltListe daffectations Proprieacuteteacute=Valeur Proprieacuteteacute=Valeurgt 3 WHERE ltCondition pour filtrer les tuples agrave mettre agrave jourgt
1 UPDATE r
2 SET a=1 b=x 3 WHERE c=0
Exemtple Mise agrave jour directe de valeurs
UPDATE Compte SET Monnaie=Euro WHERE Monnaie=Franc
1 2 3
Exemtple Mise agrave jour tpar calcul sur lancienne valeur
UPDATE Compte SET Total=Total 655957 WHERE Monnaie=Euro
1 2 3
Creacuteation et alimentation de bases de donneacutees SQL
78
d) Suppression de donneacutees Le langage SQL fournit une instruction pour supprimer des tuples existants dans une relation
Syntaxe
DELETE FROM ltNom de la relationgt WHERE ltCondition pour filtrer les tuples agrave supprimergt
1 2
Exemtple Sutptpression de tous les tutples dune relation
DELETE FROM FaussesFactures 1
Exemtple Sutptpression seacutelective
DELETE FROM FaussesFactures WHERE Auteur=Moi
1 2
4 Supprimer et modifier des tables en SQL (Langage de
Deacutefinition de Donneacutees)
Le LDD permet de creacuteer les objets composant une BD de faccedilon deacuteclarative Il permet notamment la
deacutefinition des scheacutemas des relations la deacutefinition des contraintes dinteacutegriteacute la deacutefinition de vues
relationnelles
a) Suppression dobjets Il est possible de supprimer des objets de la BD tels que les tables ou les vues
Syntaxe
DROP lttype objetgt ltnom objetgt 1
Exemtple
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
79
DROP TABLE Personne DROP VIEW Employe
1 2
b) Modification de tables
Introduction
Linstruction ALTER TABLE permet de modifier la deacutefinition dune table (colonnes ou contraintes) preacutealablement
creacuteeacutee
Cette commande absente de SQL-89 est normaliseacutee dans SQL-92
Syntaxe Ajout de colonne
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de colonnegt
1 2
Syntaxe Sutptpression de colonne
ALTER TABLE ltnom de tablegt DROP ltnom de colonnegt
1 2
Syntaxe Ajout de contrainte
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de contrainte de tablegt
1 2
RemarqueModification de table sans donneacutee sans la commande ALTER
Pour modifier une table ne contenant pas encore de donneacutee la commande ALTER nest pas indispensable
lon peut supprimer la table agrave modifier (DROP) et la recreacuteer telle quon la souhaite Notons neacuteanmoins que si
la table est reacutefeacuterenceacutee par des clauses FOREIGN KEY cette suppression sera plus compliqueacutee car il faudra
eacutegalement supprimer et recreacuteer les tables reacutefeacuterenccedilantes (ce qui ce complique encore si ces derniegraveres
contiennent des donneacutees)
RemarqueModification de table avec donneacutees sans la commande ALTER
Pour modifier une table contenant des donneacutees la commande ALTER nest pas indispensable On peut en effet
1 Copier les donneacutees dans une table temporaire de mecircme scheacutema que la table agrave modifier
2 Supprimer et recreacuteer la table agrave modifier avec le nouveau scheacutema 3 Copier les donneacutees depuis la table temporaire vers la table modifieacutee
c) Exemple de modifications de tables
Table initiale
Soit une table initiale telle que deacutefinie ci-apregraves
Creacuteation et alimentation de bases de donneacutees SQL
80
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) prenom
VARCHAR(50) PRIMARY KEY
(pk_n) )
1 2 3 4 5 6
Modifications
On deacutecide dapporter les ameacutenagements suivants agrave la table on deacutefinit nom comme UNIQUE et on supprime
le champ prenom
ALTER TABLE Personne ADD UNIQUE (nom)
ALTER TABLE Personne DROP prenom
1 2 3 4 5
Table finale
La table obtenue apregraves modification est identique agrave la table qui aurait eacuteteacute deacutefinie directement telle que ci-
apregraves
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) PRIMARY KEY (pk_n) UNIQUE
(nom) )
1 2 3 4 5 6
B Exercices
1 The show
[30 minutes] Soit le scheacutema relationnel suivant deacutecrivant un systegraveme de reacuteservations de places de spectacles
SPECTACLE (nospectacleint nomstr dureacuteeint typetheacuteacirctre|danse|concert) SALLE (nosalleint nbplacesint) REPRESENTATION (datedate nospectacle=gtSPECTACLE nosalle=gtSALLE prixdecimal)
1 2 3
En faisant les suppositions suivantes
On gegravere un espace de spectacles ayant un ensemble de salles (deacutecrit par la relation SALLE)
On suppose que pour un jour donneacute et une salle donneacutee il ny a quun seul spectacle repreacutesenteacute
Question 1
Retro-concevoir le MCD en UML
Question 2
Proposer des contraintes dinteacutegriteacute reacutealistes pour ce scheacutema (en franccedilais)
Question 3
Creacuteation et alimentation de bases de donneacutees SQL
81
Proposer une deacutefinition du scheacutema en SQL qui prenne en compte certaines de ces contraintes
Question 4
Inseacuterer des donneacutees reacutealistes dans votre scheacutema afin de veacuterifier son bon fonctionnement
2 Du producteur au consommateur
[30 min] Soit le modegravele relationnel suivant
Producteur(raison_socialechaicircne(25) villechaicircne(255)) Consommateur(loginchaicircne(10)
emailchaicircne(50) nomchaicircne(50)prenomchaicircne(50) villechaicircne(255)) Produit(identier descriptionchaicircne(100) produit-par=gtProducteur consommepar-
login=gtConsommateur consomme-par-email=gtConsommateur)
1 2
3
On ajoute que
(nomprenomville) est une cleacute candidate de Consommateur
Tous les produits sont produits
Tous les produits ne sont pas consommeacutes
Question 1
Reacutetro-concevez le modegravele conceptuel sous-jacent agrave ce modegravele relationnel
Question 2
Eacutetablissez le code LDD standard permettant dimpleacutementer ce modegravele en SQL
Question 3
Inseacuterez les donneacutees dans votre base de donneacutees correspondant aux assertions suivantes
Lentreprise de Compiegravegne Pommes Picardes SARL a produit 4 lots de pommes et 2 lots de cidre
Il existe trois utilisateurs consommateurs dans la base donc les adresses mails sont
AlUncompiegnefr - BobDeuxcompiegnefr - CharlieTroiscompiegnefr
Ce sont des employeacutes de la ville de Compiegravegne qui habitent cette ville Leur mail est construit sur le
modegravele PrenomNomcompiegnefr Leur login est leur preacutenom
Question 4
Modifiez les donneacutees de votre base de donneacutees pour inteacutegrer les assertions suivantes
1 lots de pommes a eacuteteacute consommeacutes par Al Un
2 lots de pomme ont eacuteteacute consommeacute par Bob Deux
Tous les lots de cidre ont eacuteteacute consommeacutes par Al Un
Question 5
Charlie Trois nayant rien consommeacute modifiez votre base de donneacutees afin de le supprimer de la base
82
VI - Algegravebre relationnelle
A Cours
1 Opeacuterateurs fondamentaux projection restriction et
jointure
Objectifs
Connaicirctre et savoir utiliser les opeacuterateurs relationnels de projection restriction
produit et jointure
a) Introduction La repreacutesentation dinformation sous forme relationnelle est inteacuteressante car les fondements matheacutematiques
du relationnel outre quils permettent une modeacutelisation logique simple et puissante fournissent eacutegalement
un ensemble de concepts pour manipuler formellement linformation ainsi modeacuteliseacutee
Ainsi une algegravebre relationnelle sous forme dun ensemble dopeacuterations formelles permet dexprimer des
questions ou requecirctes poseacutees agrave une repreacutesentation relationnelle sous forme dexpressions algeacutebriques
Lalgegravebre relationnelle est composeacutee par les cinq opeacuterateurs de base et les trois opeacuterateurs additionnels
suivants
Opeacuterateurs de base
- Union - Diffeacuterence - Projection - Restriction
VI
Algegravebre relationnelle
83
- Produit carteacutesien
Opeacuterateurs additionels
- Intersection - Jointure - Division
Fondamental Algegravebre relationnelle et SQL
Les questions formuleacutees en algegravebre relationnelle sont la base des questions formuleacutees en SQL
pour interroger une base de donneacutees relationnelle
b) Employeacutes et deacutepartements
[30 minutes] Soit les deux relations EMP et DEPT ci-apregraves
EMP (ENO ENOM PROF SAL COMM DNO=gtDEPT(DNO)) DEPT (DNO DNOM DIR=gtEMP(ENO) VILLE)
1 2
ENO numeacutero demployeacute cleacute
ENOM nom de lemployeacute
PROF profession (directeur nest pas une profession)
SAL salaire
COMM commission (un employeacute peut ne pas avoir de commission)
DNO numeacutero de deacutepartement auquel appartient lemployeacute
DNO numeacutero de deacutepartement cleacute
DNOM nom du deacutepartement
DIR numeacutero demployeacute du directeur du deacutepartement
VILLE lieu du deacutepartement (ville)
Eacutecrire en algegravebre relationnelle les requecirctes permettant dobtenir les informations suivantes
Question 1
Lister les employeacutes ayant des revenus supeacuterieurs agrave 10000 euros
Question 2
Trouver le nom et la profession de lemployeacute numeacutero 10
Question 3
Lister les noms des employeacutes qui travaillent agrave Paris
Question 4
Trouver le nom du directeur du deacutepartement Commercial
Question 5
Trouver les professions des directeurs des deacutepartements
Question 6
Algegravebre relationnelle
84
Trouver le nom des directeurs de deacutepartement ayant comme profession Ingeacutenieur
c) Projection
Deacutefinition Projection
La projection est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La projection de R1 sur
une partie de ses attributs A1 A2 produit une relation R2 dont le scheacutema est restreint aux attributs
mentionneacutes en opeacuterande comportant les mecircmes tuples que R1 et dont les doublons sont eacutelimineacutes
Remarque Eacutelimination des doublons
Apregraves suppression dune partie des attributs du scheacutema la relation peut comporter des doublons Eacutetant donneacute
que lon ne pourrait plus identifier ces doublons les uns par rapport aux autres la seule solution senseacutee est
donc de consideacuterer que deux doublons sont eacutequivalents et donc de nen garder quun seul dans la relation
reacutesultante
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Dupont Pierre 20
Durand Jean 30
Tableau 8 Personne
Soit lopeacuteration suivante
R = Projection (Personne Nom Age) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont 20
Durand 30
Tableau 9 R
d) Restriction
Deacutefinition Restriction
La restriction est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La restriction de R1 eacutetant
donneacutee une condition C produit une relation R2 de mecircme scheacutema que R1 et dont les tuples sont les tuples
de R1 veacuterifiant la condition C
Algegravebre relationnelle
85
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Soit les tuples suivants
Dupont Pierre 20
Durand Jean 30
Tableau 10 Personne
Soit lopeacuteration suivante
R = Restriction (Personne Agegt25) 1
On obtient alors la relation R composeacutee de lunique tuple restant suivant
Durand Jean 30
Tableau 11 R
e) Produit
Deacutefinition Produit carteacutesien
Le produit carteacutesien est une opeacuteration binaire (cest agrave dire portant sur deux relations) Le produit de R1 par
R2 (eacutequivalent au produit de R2 par R1) produit une relation R3 ayant pour scheacutema la juxtaposition de ceux
des relations R1 et R2 et pour tuples lensemble des combinaisons possibles entre les tuples de R1 et ceux de
R2 Synonymes Produit
Remarque
Le nombre de tuples reacutesultant du produit de R1 par R2 est eacutegal au nombre de tuples de R1 fois le nombre de
tuples de R2
Remarque
Le nombre de colonne du produit de R1 par R2 est eacutegal au nombre de colonne de R1 plus le nombre de
colonnes de R2
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Algegravebre relationnelle
86
Durand Jean 30
Tableau 12 Homme
Tesla Model X
Citroeumln 2 CV
Tableau 13 Voiture
Soit lopeacuteration suivante
R = Produit (Homme Voiture) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X
Dupont Pierre 20 Citroeumln 2 CV
Durand Jean 30 Tesla Model X
Durand Jean 30 Citroeumln 2 CV
Tableau 14 R
Remarque
Le produit carteacutesien est rarement utiliseacute seul mais il est agrave la base de la jointure
f) Jointure
Deacutefinition Jointure
La jointure est une opeacuteration binaire (cest agrave dire portant sur deux relations) La jointure de R1 et R2 eacutetant
donneacute une condition C portant sur des attributs de R1 et de R2 de mecircme domaine produit une relation R3
ayant pour scheacutema la juxtaposition de ceux des relations R1 et R2 et pour tuples lensemble de ceux obtenus
par concateacutenation des tuples de R1 et de R2 et qui veacuterifient la condition C
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 15 Homme
Algegravebre relationnelle
87
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV Dupont
Tableau 16 Voiture
Soit lopeacuteration suivante
R = Jointure (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Dupont Pierre 20 Citroeumln 3 CV Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Tableau 17 R
(Dupont Pierre 20 Dupont Georges 1) (Dupont Pierre 20 Dupont Jacques 3)
1 2
Fondamental
La jointure est lopeacuteration qui permet de rassembler les informations seacutepareacutees entre plusieurs
tables et reacutefeacuterenceacutees par des cleacutes eacutetrangegraveres
Remarque Otpeacuteration additionnelle
La jointure nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit et la restriction
g) Exercice Quelles sont les expressions relationnelles eacutequivalentes agrave
Projection ( Jointure (R1 R2 R1A1=R2A1) R1A1 R2A2) 1
Jointure ( Projection(R1 A1) Projection(R2 A2) R1A1=R2A1)
Projection ( Jointure (R2 R1 R2A1=R1A1) R1A1 R2A2)
Projection ( Restriction ( Produit(R1 R2) R1A1=R2A1) R1A1 R2A2)
Produit (R1 R2 R1A1=R2A1 R1A1 R2A2)
Algegravebre relationnelle
88
2 Opeacuterateurs compleacutementaires
a) Jointure naturelle
Deacutefinition Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition est leacutegaliteacute entre les attributs
de mecircme nom de R1 et de R2 Il est donc inutile de speacutecifier la condition dans une jointure naturelle elle
reste toujours implicite
Exemtple
Soit deux relations R1 (A B C) et R2 (A D) lopeacuteration Jointure(R1R2R1A=R2A) est eacutequivalente agrave
lopeacuteration JointureNaturelle(R1R2)
Remarque
Pour appliquer une jointure naturelle il faut que les deux relations opeacuterandes aient au moins un attribut ayant
le mecircme nom en commun
b) Jointure externe
Introduction
La jointure est une opeacuteration qui entraicircne la perte de certains tuples ceux qui appartiennent agrave une des deux
relations opeacuterandes et qui nont pas de correspondance dans lautre relation Il est neacutecessaire dans certains
cas de palier cette lacune et lon introduit pour cela la notion de jointure externe
Deacutefinition Jointure externe
La jointure externe entre R1 et R2 est une jointure qui produit une relation R3 agrave laquelle on ajoute les tuples
de R1 et de R2 exclus par la jointure en compleacutetant avec des valeurs nulles pour les attributs de lautre
relation
Deacutefinition Jointure externe gauche
La jointure externe gauche entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les
tuples de R1 (cest agrave dire la relation de gauche) ayant eacuteteacute exclus
Synonymes Jointure gauche
Deacutefinition Jointure externe droite
Objectifs
Maicirctriser lalgegravebre relationnelle
Algegravebre relationnelle
89
La jointure externe droite entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les tuples
de R2 (cest agrave dire la relation de droite) ayant eacuteteacute exclus
Bien entendu une jointure externe droite peut ecirctre reacuteeacutecrite par une jointure externe gauche (et
reacuteciproquement) en substituant les relations opeacuterandes R1 et R2
Synonymes Jointure droite
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Martin Georges 40
Tableau 18 Homme
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV NULL
Tableau 19 Voiture
Soit lopeacuteration suivante
R = JointureExterne (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Martin Georges 40 NULL NULL NULL
NULL NULL NULL Citroeumln 3 CV NULL
Tableau 20 R
Une jointure externe gauche naurait renvoyeacute que les trois premiers tuples et une jointure externe droite
naurait renvoyeacutee que les deux premiers et le dernier tuple
Algegravebre relationnelle
90
c) Opeacuterateurs ensemblistes
Atention Les opeacuterateurs ensemblistes sont des relations binaires (cest agrave dire entre deux relations) portant
sur des relations de mecircme scheacutema
Deacutefinition Union
Lunion de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee de
lensemble des tuples appartenant agrave R1 etou agrave R2
Deacutefinition Difeacuterence
La diffeacuterence entre deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema
constitueacutee de lensemble des tuples de R1 nappartenant pas agrave R2 Notons que la diffeacuterence entre R1 et R2
nest pas eacutegale agrave la diffeacuterence entre R2 et R1
Deacutefinition Intersection
Lintersection de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee
de lensemble des tuples appartenant agrave la fois agrave R1 et agrave R2 Notons que lintersection nest pas une opeacuteration
de base car elle est eacutequivalent agrave deux opeacuterations de diffeacuterence successives
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Femme (Nom Preacutenom Age)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 21 Homme
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 22 Femme
Soit lopeacuteration suivante
R = Union (Homme Femme) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20
Durand Jean 30
Algegravebre relationnelle
91
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 23 R
La diffeacuterence entre Homme et Femme (respectivement entre Femme et Homme) renvoie la relation Homme
(respectivement Femme) car aucun tuple nest commun aux deux relations Lintersection entre Homme est
Femme est vide pour la mecircme raison
Remarque Union externe
Il est possible de deacutefinir une opeacuteration dunion externe qui permet de reacutealiser lunion de deux relations de
scheacutema diffeacuterent en ramenant les relations aux mecircmes scheacutemas et en les compleacutetant avec des valeurs nulles
d) Division
Deacutefinition Division
La division est une opeacuteration binaire (cest agrave dire portant sur deux relations) La division de R1 par R2 sachant
que R1 et R2 ont au moins un attribut commun (cest agrave dire de mecircme nom et de mecircme domaine) produit
une relation R3 qui comporte les attributs appartenant agrave R1 mais nappartenant pas agrave R2 et lensemble des
tuples qui concateacuteneacutes agrave ceux de R2 donnent toujours un tuple de R1
Exemtple
Soit les deux relations suivantes
Pratique (Homme Meacutetier Salaire) Meacutetier (Metier)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Ingeacutenieur 35
Durand Professeur 40
Dupont Ingeacutenieur 45
Martin Ingeacutenieur 50
Tableau 24 Pratique
Ingeacutenieur
Professeur
Tableau 25 Meacutetier
Soit lopeacuteration suivante
R = Division (Homme Meacutetier) 1
Algegravebre relationnelle
92
On obtient alors la relation R composeacutee des tuples suivants
Dupont 35
Tableau 26 R
Meacutethode Reacutetponse aux questions Pour tous les
La division permet de reacutepondre aux questions du type Donnez toutes les personnes qui pratiquent tous les
meacutetiers de la relation meacutetier
Remarque Otpeacuteration additionnelle
La division nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit la restriction et la
diffeacuterence
e) Proposition de notations Introduction Il existe plusieurs syntaxes pour eacutecrire des opeacuterations dalgegravebre relationnelle certaines inspireacutees de lalgegravebre
classiques dautres reposant sur des notations graphiques Nous proposons une notation fonctionnelle qui a
le meacuterite decirctre facile agrave eacutecrire et decirctre lisible Si cette notation peut parfois perdre en simpliciteacute lorsquelle
concerne un nombre eacuteleveacute dopeacuterateurs il est possible de deacutecomposer une opeacuteration compliqueacutee afin de
lalleacuteger
Syntaxe
R = Union (R1 R2) R = Diffeacuterence (R1 R2) R = Intersection (R1 R2) R = Projection (R1 A1 A2 ) R = Restriction (R1 condition) R = Produit (R1 R2) R = Jointure (R1 R2 condition) R = JointureNaturelle (R1 R2) R = JointureExterne (R1 R2 condition) R = JointureGauche (R1 R2 condition) R = JointureDroite (R1 R2 condition) R = Division (R1 R2)
1 2 3 4 5 6 7 8 9
10 11 12
Exemtple Notation syntheacutetique
R = Projection(Restriction(R1 A1=1 AND A2=2) A3) 1
Exemtple Notation deacutecomtposeacutee
R = Restriction(R1 A1=1 AND A2=2) R = Projection (R A3)
1 2
Algegravebre relationnelle
93
f) Exercice Soit les deux relations R1 et R2 suivantes deacutefinies en extension
A B
1 A
2 B
3 C
Tableau 27 R1
A
1
2
Tableau 28 R2
Combien de tuples renvoie lopeacuteration relationnelle suivante
R3 = JointureNaturelle (Intersection (Projection(R1A) R2) R2) 1
g) Opeacuterateurs de base et additionnels Reacuteeacutecrivez les opeacuterateurs additionnels suivants agrave partir dopeacuterateurs de base
Question 1
Reacuteeacutecrivez Intersection agrave partir de Diffeacuterence
Question 2
Reacuteeacutecrivez Jointure agrave partir de Produit et Restriction
Algegravebre relationnelle
94
B Exercices
1 Faire du Cineacutema
[30 minutes] On considegravere les deux relations suivantes
FILMS (titre pays anneacutee reacutealisateur dureacutee) ACTEURS (titre acteur)
1 2
ougrave les attributs ont les significations et les types suivants
titre titre dun film (chaicircne 50 caractegraveres)
pays pays dougrave un film est originaire (chaicircne 10 caractegraveres)
annee anneacutee de sortie du film (entier 4 chiffres)
realisateur nom du reacutealisateur du film (chaicircne 20 caractegraveres)
duree dureacutee du film en minutes (entier 3 chiffres)
acteur nom dacteur (chaicircne 20 caractegraveres)
La relation FILMS donne pour chaque film identifieacute par son titre le pays lanneacutee de sortie reacutealisateur et la
dureacutee
La relation ACTEURS donne pour chaque film lensemble des principaux acteurs
Agrave laide de lalgegravebre relationnelle exprimer les requecirctes suivantes
Question 1
Lister les films franccedilais (titre anneacutee reacutealisateur)
Question 2
Donnez les anneacutees de sortie des films dans lesquels lacteur Jean GABIN a joueacute
Question 3
Trouver les acteurs qui ont tourneacute avec Franccedilois Truffaut comme reacutealisateur
Question 4
Trouver tous les acteurs qui ont eacuteteacute partenaires de lactrice Catherine Deneuve
Question 5
Lister les films dans lesquels le reacutealisateur est aussi acteur
Question 6
Lister les reacutealisateurs nayant joueacute comme acteurs que dans des films quils ne reacutealisaient pas eux-mecircmes
Question 7
Lister les reacutealisateurs ayant joueacute comme acteurs dans des films quils ne reacutealisaient pas eux-mecircmes
Question 8
Donnez les acteurs qui jouent dans tous les films de Franccedilois TRUFFAUT
Algegravebre relationnelle
95
2 Qiz Algegravebre relationnelle
Exercice 1 Quelles sont les opeacuterations relationnelles qui appliqueacutees sur les relations instancieacutees cidessous renvoient un ensemble non nul de tuples
Num Nom Famille
1 Ours Mammifegravere
2 Truite Poisson
3 Homme Mammifegravere
4 Martinshypecirccheur Oiseau
Tableau 29 Animal
Num Nom
1 Forecirct
2 Montagne
3 Ciel
4 Riviegravere
5 Mer
Tableau 30 Environnement
Animal Environnement
1 1
1 2
1 4
2 4
4 3
Tableau 31 Habiter
Mangeur Mangeacute Freacutequence
1 2 Souvent
1 3 Rarement
1 4 Rarement
4 2 Souvent
3 1 Rarement
Algegravebre relationnelle
96
3 2 Souvent
Tableau 32 Manger
Restriction( Projection (Animal Nom Famille) Famille=Mammifegravere)
Restriction( Jointure( Jointure (Animal Habiter AnimalNum=HabiterAnimal) Environnement
EnvironnementNum=HabiterEnvironnement) AnimalNum=3)
Restriction( JointureExterneGauche( Animal Habiter
AnimalNum=HabiterAnimal) AnimalNom=Homme)
Jointure( Animal Manger AnimalNum=MangerMangeur AND AnimalNum=MangerMangeacute)
Exercice 2 Soit le scheacutema relationnel
R1(X Y) R2(X Y)
1 2
Quelles sont les opeacuterations relationnelles eacutequivalentes agrave lopeacuteration
Projection( JointureNaturelle(R1R2) R1X) 1
JointureNaturelle(Projection(R1 X) Projection(R2 X))
Projection( Selection (Produit(R1 R2) R1X=R2X AND R1Y=R2Y) R1X)
Projection( Union( R1 R2) R1X)
Projection( JointureExterne ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Projection( Jointure ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Algegravebre relationnelle
97
Exercice 3 Soit la relation instancieacutee suivante
A B C
1 1 0
1 0 1
0 1 1
Tableau 33 Relation R1
Quelles relations sont retourneacutees par lopeacuteration relationnelle suivante
R2 = JointureNaturelle(R1 R1) 1
1 1 0
1 0 1
0 1 1
Tableau 34 R2a
1 1 0
1 0 1
0 1 1
1 1 0
1 0 1
0 1 1
Tableau 35 R2b
1 1 1
0 0 0
Tableau 36 R2c
1 1 0 1 1 0
1 0 1 1 0 1
0 1 1 0 1 1
Algegravebre relationnelle
98
Tableau 37 R2d
R2a
R2b
R2c
R2d
Une relation vide (aucun tuple)
3 Le retour des eacutecoliers
[45 minutes] Soit le scheacutema relationnel suivant
IMMEUBLE (ADI NBETAGES DATEC PROP) APPIM (ADI NAPR OCCUP TYPE SUPER ETAGE) PERSONNE (NOM AGE PROF ADR NAPR) EacuteCOLE (NOMEC ADEC DIR) CLASSE (NOMEC NCL MAITRE) ENFANT (NOMP PRENOM AN NOMEC NCL)
1 2 3 4 5 6
Avec la signification suivante
Relation IMMEUBLE
ADI adresse dimmeuble cleacute on fait lhypothegravese pour simplifier que ladresse identifie de maniegravere
unique un immeuble NBETAGES nombre deacutetages dun immeuble
DATEC date de construction (anneacutee)
PROP nom du proprieacutetaire de limmeuble qui est une personne
Relation APPIM (Appartement) ADI
adresse dimmeuble
NAPR numeacutero dappartement
OCCUP occupant de lappartement (nom de la personne ayant signeacute le contrat de location
eacuteventuellement aucun)
TYPE type de lappartement (Studio F2 )
SUPER superficie de lappartement
ETAGE eacutetage ougrave se situe lappartement
Relation PERSONNE
NOM nom de personne cleacute on fait lhypothegravese pour simplifier que ce nom est unique sur lensemble
des personnes que lon considegravere dans la base
AGE acircge de la personne
PROF profession de la personne
ADR adresse de la reacutesidence dune personne il sagit dun immeuble NAPR numeacutero
dappartement
Relation EacuteCOLE
NOMEC nom dune eacutecole cleacute
ADEC adresse dune eacutecole
DIR nom du directeur
Algegravebre relationnelle
99
Relation CLASSE
NOMEC nom dune eacutecole
NCL nom de la classe eg CP1 CE2 CE3 etc MAITRE nom
de linstituteur
Relation ENFANT
NOMP nom de la personne responsable de lenfant cleacute eg pegravere megravere etc
PRENOM preacutenom de lenfant
AN anneacutee de naissance
NOMEC nom dune eacutecole
NCL nom de la classe
La relation IMMEUBLE deacutecrit un ensemble dimmeubles Chaque immeuble a un proprieacutetaire La relation APPIM
deacutecrit pour chaque immeuble lensemble des appartements qui le compose (il y a au mimimum un appartement
par immeuble) Chaque appartement peut heacuteberger plusieurs personnes mais il y en a une qui est responsable
(par exemple la personne qui a signeacute le contrat de location) et qui est deacutesigneacutee par lattribut OCCUP Si
lappartement est inoccupeacute il prend la valeur NULL La relation PERSONNE deacutecrit un ensemble de personnes
ADR et NAPR repreacutesentent ladresse ougrave reacuteside une personne Une personne peut avoir plusieurs enfants deacutecrits
par la relation ENFANT Pour simplifier on ne considegravere que les enfants allant agrave leacutecole primaire Les eacutecoles et
les classes sont deacutecrites dans les relations EacuteCOLE et CLASSE chaque eacutecole est composeacutee au minimum dune
classe et chaque classe est au moins freacutequenteacutee par un enfant
Question 1
Donner ladresse des immeubles ayant plus de 10 eacutetages et construits avant 1970
Question 2
Donner les noms des personnes qui habitent dans un immeuble dont ils sont proprieacutetaires
Question 3
Donner les noms des personnes qui ne sont pas proprieacutetaires
Question 4
Donner les adresses des immeubles posseacutedeacutes par des informaticiens dont lacircge est infeacuterieur agrave 40 ans
Question 5
Donner la liste des occupants (nom acircge profession) des immeubles posseacutedeacutes par DUPONT
Question 6
Donner le nom et la profession des proprieacutetaires dimmeubles dans lesquels il y a des appartements vides
Question 7
Donner les noms des maicirctres qui habitent dans le mecircme immeuble (agrave la mecircme adresse) quau moins un de
leurs eacutelegraveves (on suppose que les enfants vivent sous le mecircme toit que leur parents)
Question 8
Donner ladresse de limmeuble la date de construction le type dappartement et leacutetage ougrave habitent chacun
des maicirctres des enfants de DUPONT
Algegravebre relationnelle
100
101
Qestions de synthegravese
Pourquoi est-il fondamental mais difficile de parvenir agrave un MCD correct
Eacutenoncer quelques actions agrave mener pour reacutealiser une speacutecification geacuteneacuterale de lexistant et des besoins
Quest ce qui diffeacuterencie fondamentalement un MCD dun MLD
Questions de synthegravese
102
Quels sont les principaux eacuteleacutements du diagramme de classes UML
Quelles sont les diffeacuterences et points communs entre la diagramme de classe UML et le modegravele E-A
eacutetendu
Questions de synthegravese
103
Quest ce quun domaine
Comment identifie-t-on un attribut dune relation
Comment identifie-t-on un enregistrement dune relation
Questions de synthegravese
104
Quand doit-on ajouter des cleacutes artificielles
Quelle problegraveme pose la redondance et comment le reacutesoudre
A quoi sert le LDD
Questions de synthegravese
105
Quel rapport y-a-t il entre le LDD et le concept de relation
Pourquoi la jointure est-elle un opeacuterateur essentiel
Questions de synthegravese
106
Quels sont les opeacuterateurs algeacutebriques de base Quels sont les autres opeacuterateurs Quest ce qui les diffeacuterencie
Quels sont les opeacuterateurs ensemblistes Quest ce qui les caracteacuterise
Pourquoi la jointure est-elle un opeacuterateur essentiel
Quest ce qui diffeacuterencie une jointure externe dune jointure classique
107
Glossaire
Cleacute artificielle
Une cleacute artificielle est un attribut ajouteacute agrave une relation afin didentifier ses enregistrements On fait appel agrave
une cleacute artificielle lorsque la relation ne comporte aucune cleacute naturelle ou que ses cleacutes naturelles sont jugeacutees
inadapteacutees agrave lidentification au sein de la base de donneacutees
Extension
Lextension est lexplicitation dun domaine par leacutenonciation exhaustive de lensemble des objets du domaine
Elle soppose agrave linstension qui est une description abstraite des caracteacuteristiques du domaine
Exemple bleu rouge vert
Contre-exemple Le domaine des couleurs
Intension
Lintension est lexplicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa
compreacutehension abstraite geacuteneacuterale)
Elle soppose agrave lextension qui est leacutenonciation exhaustive de lensemble des objets du domaine
Exemple Le domaine des couleurs
Contre-exemple bleu rouge vert
108
Signification des abreacuteviations
- ANSI American National Standards Institute
- BD Base de Donneacutees
- E-A Entiteacute-Association
- ISO International Standardization Organization
- LCD Langage de Controcircle de Donneacutees
- LDD Langage de Deacutefinition de Donneacutees
- LMD Langage de Manipulation de Donneacutees
- OMG Object Management Group
- PSM Persistent Stored Modules
- RO Relationnel-Objet
- SGBD Systegraveme de Gestion de Bases de Donneacutees
- SGBDR Systegraveme de Gestion de Bases de Donneacutees Relationnelles
- SQL Structured Query Language
- UML Unified Modeling Language
- XML eXtensible Markup Language
Reacutefeacuterences
[dbdiscocrztfr] httpdbdiscocrztfr3
109
3 - httpdbdiscocrztfr
Bibliographie
[Arribe 2014] ARRIBE THIBAUT 2014 Conception des chaicircnes eacuteditoriales documentariser lactiviteacute et structurer le graphe documentaire pour ameacuteliorer la maicirctrise de la reacuteeacuteditorialisation Universiteacute de Technologie de
Compiegravegne Meacutemoire de Doctorat httpicsutcfr~tha
[Codd70] CODD EF A relational model for large shared data banks Communications de lACM juin 1970
[Delmal01] DELMAL PIERRE SQL2 SQL3 applications agrave Oracle De Boeck Universiteacute 2001
[Gardarin99] GARDARIN GEORGES Bases de donneacutees objet et relationnel Eyrolles 1999
[Gulutzan and Pelzer 1999] GULUTZAN PETER PELZER TRUDY 1999 SQL-99 complete really CMP books
[Muller98] MULLER PA Modeacutelisation objet avec UML Eyrolles 1998
[Roques04] ROQUES PASCAL VALLEacuteE FRANCK UML 2 en action De lanalyse des besoins agrave la conception J2EE
ISBN 2212-11462-1 (3egraveme eacutedition) Paris Eyrolles 2004 385 p architecte logiciel
[Rothenberg et al 1989] ROTHENBERG JEFF WIDMAN LAWRENCE E LOPARO KENNETH A NIELSEN NORMAN R 1989 The nature of modeling Rand vol3027
[Soutou02] SOUTOU CHRISTIAN De UML agrave SQL Conception de bases de donneacutees Eyrolles 2002
[Tardieu83] TARDIEU H ROCHFELD A COLLETI R Meacutethode MERISE Tome 1 Principes et outils Les Editions dOrganisation 1983
Webographie
[w_journaldunetcom(1)] MORLON JEacuteROcircME UML en 5 eacutetapes httpdeveloppeurjournaldunetcomdossiersalg_umlshtml 2004
[w_journaldunetcom(2)] BORDERIE XAVIER Cinq petits conseils pour un scheacutema UML efficace
httpdeveloppeurjournaldunetcomtutorielcpt031013cpt_uml5conseilsshtml 2004
[w_objecteering] Objecteering software httpwwwobjecteeringcom [2002-septembre]
[w_umlfreefr] UML en Franccedilais httpumlfreefr consulteacute en 2002
Questions de synthegravese
110
Index
11 p54 Error Reference source
not found 1N p53 Error Reference source
not found Algegravebre p48 71 71 72 73 74 75
76 76 76 78 79 80 ALTER TABLE p67 68 Analyse p9 11 12 13 Application p6 Association pError Reference
source not found 31 Error
Reference source not found 32 44
Error Reference source not found
53 Error Reference source not
found 53 Error Reference source
not found 54 Error Reference
source not found 54 Attribut p28 32 40 41 41 42 44
51 52 54 Base de donneacutees p17 BD p4
Cardinaliteacute p32 Error
Reference source not found Error
Reference source not found Carteacutesien p74 CHECK p62 63 Classe p27 50 54 Cleacute p41 42 42 44 Cleacute artificielle p42 Cleacute candidate p42 Cleacute primaire p42 42 Cleacute signifiante p42 Codd p39 Composition pError Reference
source not found Error Reference
source not found Conception p9 11
Conceptuel p9 11 13 15 26 27
50 53
CREATE TABLE p59
Creacuteation p58 Deacuteclaratif p58 DELETE p65 66 Diagramme p26 Diffeacuterence p78 Division p79 Domaine p39 48 48 60 61 DROP p67 E-A p32 Enregistrement p40 41 Externe p15 76 FOREIGN KEY p62 63 INSERT p65 65 Instance p15 Interne p15 Intersection p78 Jointure p75 76 76 Langage p8 65 LDD p8 58 67 Lien p44 LMD p8 65 Logique p38 38 39 39 41 50
53 Manipulation p71 Meacutethode p30 Modegravele p13 23 38 39 39 41 45
46 Modeacutelisation p42 Modification p67 NM p53 N M pError Reference source not
found Naturelle p76 NOT NULL p62 63 Null p61 OMG p27 Opeacuteration p30 48 Passage p50 53 PostgreSQL p17
PRIMARY KEY p62 63 Produit p48 48 74
Projection p72 Proprieacuteteacute p28 32 Reacutefeacuterence p44 REFERENCES p62 63 Relation p40 41 41 42 44 44 45
48 Relationnel p5 Error
Reference source not found 38 38
39 39 41 45 46 48 48 50 50
51 Error Reference source not
found 52 53 53 Error Reference
source not found 53 Error Reference source not found 54
Error Reference source not found 54 71
71 76 80 Relationnel-objet p38 39 Requecircte p65 Restriction p73 Scheacutema p15 45 46 SGBD p5 Speacutecifications p12 SQL p8 58 65 67 Suppression p67 Table p58 67 Tuple p40 Type p60 61 UML p13 26 27 27 28
Error Reference source not found
30 31 Error Reference source not found 32 50
50 51 Error Reference source not
found 52 53 53 Error Reference source not
found 53 Error Reference source not
found 54 Error Reference source not found
54 Union p78 UNIQUE p62 63 UPDATE p65 66
wwwsambaconsultantscom 111
Contenus annexes
- Deacutefinition du mouvement NoSQL
Deacutefinition
Le NoSQL regroupe de nombreuses bases de donneacutees reacutecentes pour la plupart qui se caracteacuterisent par une logique de repreacutesentation de donneacutees non relationnelle et qui noffrent donc pas une interface de requecirctes en SQL
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-dedonnees-nosql4
NoSQL signifie Not Only SQL et non pas No SQL il sagit de compleacutements aux SGBDR pour des
besoins speacutecifiques et non de solutions de remplacement Exemtple
BD orienteacutee cleacute-valeur
BD orienteacutee graphe
BD orienteacutee colonne
BD orienteacutee document
Comtpleacutement
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql5
- Transformation des meacutethodes par des vues
Meacutethode
Lorsquune meacutethode est speacutecifieacutee sur un diagramme UML pour une classe C si cette meacutethode est une fonction
relationnelle (elle renvoie une unique valeur et elle peut ecirctre reacutesolue par une requecircte SQL) alors on creacutee une
vue qui reprend les attributs de la classe C et ajoute des colonnes calculeacutees pour les meacutethodes
Remarque Atributs deacuteriveacutes
Les attributs deacuteriveacutes eacutetant apparenteacutes agrave des meacutethodes ils peuvent eacutegalement ecirctre geacutereacutes par des vues
Contenus annexes
112
- Composition
Deacutefinition Association de comtposition
On appelle composition une association particuliegravere qui possegravede les proprieacuteteacutes suivantes
La composition associe une classe composite et des classes parties tel que tout objet partie appartient
agrave un et un seul objet composite Cest donc une association 1N (voire 11)
La composition nest pas partageable donc un objet partie ne peut appartenir quagrave un seul objet
composite agrave la fois
Le cycle de vie des objets parties est lieacute agrave celui de lobjet composite donc un objet partie disparaicirct
quand lobjet composite auquel il est associeacute disparaicirct
Remarque
La composition est une association particuliegravere (binaire de cardinaliteacute contrainte)
La composition nest pas symeacutetrique une classe joue le rocircle de conteneur pour les classes lieacutees elle
prend donc un rocircle particulier a priori
La composition est une agreacutegation avec des contraintes suppleacutementaires (non partageabiliteacute et cycle
de vie lieacute)
Image 14 Notation de la composition en UML
Atention Composition et cardinaliteacute
La cardinaliteacute cocircteacute composite est toujours de exactement 1
Cocircteacute partie la cardinaliteacute est libre elle peut ecirctre 01 1 ou bien 1
Image 15 Un livre
On voit bien ici quun chapitre na de sens que faisant partie dun livre quil ne peut exister dans deux livres
diffeacuterents et que si le livre nexiste plus les chapitres le composant non plus
Remarque Comtposition et entiteacutes faibles
Syntaxe
Contenus annexes
113
wwwsambaconsultantscom
La composition permet dexprimer une association analogue agrave celle qui relie une entiteacute faible agrave une entiteacute
identifiante en modeacutelisation E-A Lentiteacute de type faible correspond agrave un objet partie et lentiteacute identifiante
agrave un objet composite
Conseil Comtposition et atribut multivalueacute
Une composition avec une classe partie doteacutee dun seul attribut peut seacutecrire avec un attribut multivalueacute
Un attribut composeacute et multivalueacute peut seacutecrire avec une composition
Ratptpel Voir aussi
Attributs
Agreacutegation - p100
- Agreacutegation
Deacutefinition Association dagreacutegation
Lagreacutegation est une association particuliegravere utiliseacutee pour preacuteciser une relation toutpartie (ou
ensembleeacuteleacutement) on parle dassociation meacutereacuteologique
Elle possegravede la proprieacuteteacute suivante Lagreacutegation associe une classe agreacutegat et des classes parties tel que tout
objet partie appartient agrave au moins un objet agreacutegat
Remarque
Lagreacutegation est une association particuliegravere (binaire de cardinaliteacute libre)
Lagreacutegation nest pas symeacutetrique Syntaxe
Image 16 Notation de lagreacutegation en UML
La cardinaliteacute peut ecirctre exprimeacutee librement en particulier les instances de la classe Eacuteleacutement peuvent ecirctre
associeacutees agrave plusieurs instances de la classe Ensemble et mecircme de plusieurs classes
Atention
Lagreacutegation garde toutes les proprieacuteteacutes dune association classique (cardinaliteacute cycle de vie
etc) elle ajoute simplement une terminologie un plus preacutecise via la notion de toutpartie
- Explicitation des associations
Syntaxe Sens de lecture
Il est possible dajouter le sens de lecture du verbe caracteacuterisant lassociation sur un diagramme de classe
UML afin den faciliter la lecture On ajoute pour cela un signe lt ou gt (ou un triangle noir) agrave cocircteacute du nom
de lassociation
Contenus annexes
114
Syntaxe Rocircle
Il est possible de preacuteciser le rocircle joueacute par une ou plusieurs des classes composant une association afin den
faciliter la compreacutehension On ajoute pour cela ce rocircle agrave cocircteacute de la classe concerneacutee (parfois dans un petit
encadreacute colleacute au trait de lassociation
Exemtple
Image 17 Rocircle et sens de lecture sur une association
Deacutefinition Association reacuteflexive
Une association reacuteflexive est une association qui associe une classe avec elle-mecircme
Lexplicitation des associations est particuliegraverement utile dans le cas des associations reacuteflexives
- Associations ternaires
Image 18 Notation dune association ternaire
Conseil Ne tpas abuser des associations ternaires
Il est toujours possible de reacuteeacutecrire une association ternaire avec trois associations binaires en transformant
lassociation en classe
Conseil Pas de degreacute sutpeacuterieur agrave 3
En pratique on nutilise jamais en UML dassociation de degreacute supeacuterieur agrave 3
- Transformation des agreacutegations
Ratptpel Agreacutegation
Les associations de type agreacutegation se traitent de la mecircme faccedilon que les associations classiques
Syntaxe
Contenus annexes
115
wwwsambaconsultantscom
Graphique 12 Agreacutegation 1N
Classe1(ab)
Classe2(cda=gtClasse1)
Graphique 13 Agreacutegation NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
- Transformation des compositions
Meacutethode
Une composition
est transformeacutee comme une association 1N
puis on ajoute agrave la cleacute de la classe partie (dite cleacute locale) la cleacute eacutetrangegravere vers la classe composite pour
construire une cleacute primaire composeacutee
Graphique 14 Composition
Classe1(ab)
Classe2(ca=gtClasse1d)
Remarque Cleacute locale
Pour identifier une classe partie dans une composition on utilise une cleacute locale concateacuteneacutee agrave la cleacute eacutetrangegravere
vers la classe composite afin dexprimer la deacutependance entre les deux classes
Si une cleacute naturelle globale permet didentifier de faccedilon unique une partie indeacutependamment du tout on
preacutefeacuterera la conserver comme cleacute candidate plutocirct que de la prendre pour cleacute primaire
Contenus annexes
116
Si on la choisit comme cleacute primaire cela revient agrave avoir transformeacute la composition en agreacutegation en redonnant
une vie propre aux objets composants
Comtpleacutement Comtposition et entiteacutes faibles en E-A
Une composition est transformeacutee selon les mecircmes principes quune entiteacute faible en E-A
Comtpleacutement Atributs multivalueacutes et comtposeacutes
La transformation dun attribut composeacute multivalueacute donne un reacutesultat eacutequivalent agrave la transformation dune
composition
Classe1
a key b [0N] -b1 -b2
Graphique 15 Composition et attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
La transformation dune composition avec un seul attribut pour la classe composante donne un reacutesultat
eacutequivalent agrave la transformation dun attribut multivalueacute
Graphique 16 Composition et attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Ratptpel Voir aussi
Transformation des attributs
- Contrainte de cardinaliteacute minimale 1 dans les associations 1N
Ratptpel
Transformation des associations 1N
Meacutethode
a key
Classe1
0 N
( b1b2) local key
Contenus annexes
117
wwwsambaconsultantscom
Classe1
1 association 1N
Classe2
a key
b c key
d
Graphique 17 Association 1N
Si la cardinaliteacute est exactement 1 (11) cocircteacute 1 alors on ajoutera une contrainte de non nulliteacute sur la
cleacute eacutetrangegravere
si la cardinaliteacute est au moins 1 (1N) cocircteacute N on ajoutera une contrainte dexistence de tuples
reacutefeacuterenccedilant pour chaque tuple de la relation reacutefeacuterenceacutee
Classe1(ab)
Classe2(cda=gtClasse1)
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Graphique 18 Classe dassociation (1N)
Classe1(ab)
Classe2(cda=gtClasse1 e f) avec e KEY
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Comtpleacutement
Projection
- Contrainte de cardinaliteacute minimale 1 dans les associations NM
Ratptpel
Transformation des associations NM
Meacutethode
Si la cardinaliteacute est exactement au moins 1 (1N) dun cocircteacute etou de lautre alors des contraintes
dexistence simultaneacutee de tuple devront ecirctre ajouteacutee
Ce nest pas neacutecessaire si la cardinaliteacute est 0N
a key b
Classe1
c key d
Classe2
1 N 1
e loc al key f
Cl-A ssoc
Contenus annexes
118
Graphique 19 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Graphique 20 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Cl-Assoc(a=gtClasse1c=gtClasse2ef)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Comtpleacutement
Projection
- Transformation des associations 11 (approche geacuteneacuterale) Il existe deux solutions pour transformer une association 11
Avec deux relations on traite lassociation 11 comme une association 1N puis lon ajoute une
contrainte UNIQUE sur la cleacute eacutetrangegravere pour limiter la cardinaliteacute maximale agrave 1
Avec une seule relation on fusionne les deux classes en une seule relation
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 21 Association 11
Meacutethode Avec deux relations (cleacute eacutetrangegravere)
Une des deux relations est choisie pour porter la cleacute eacutetrangegravere
on ajoute les contraintes UNIQUE ou KEY (cleacute candidate) sur la cleacute eacutetrangegravere et si neacutecessaire une
contrainte imposant linstanciation simultaneacutee des deux relations
Classe1(abc=gtClasse2) avec c UNIQUE ou KEY
Classe2(cd)
a key b
Classe1
c key d
Classe2
1 N 1 N
e key f
ssoc Cl-A
Contenus annexes
119
wwwsambaconsultantscom
Contrainte (eacuteventuellement) PROJ(Classe1c)=PROJ(Classe2c) ou
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE ou KEY
Contrainte (eacuteventuellement) PROJ(Classe1a)=PROJ(Classe2a)
Meacutethode Avec une relation (fusion)
On creacuteeacute une seule relation contenant lensemble des attributs des deux classes on
choisit une cleacute parmi les cleacutes candidates
Classe12(abcd) avec c UNIQUE ou KEY ou
Classe21(cdab) avec a UNIQUE ou KEY
RemarqueFusion des relations dans le cas de la traduction de lassociation 11
Ce choix entre les deux meacutethodes sera conduit par une appreacuteciation du rapport entre
La complexiteacute introduite par le fait davoir deux relations lagrave ou une suffit
La pertinence de la seacuteparation des deux relations dun point de vue seacutemantique
Les pertes de performance dues agrave leacuteclatement des relations
Les pertes de performance dues au fait davoir une grande relation
Les questions de seacutecuriteacute et de sucircreteacute factoriseacutees ou non au niveau des deux relations
wwwsambaconsultantscom 6
Une base de donneacutees est structureacutee afin de pouvoir mieux reacutepondre agrave des fonctions
fondamentales en informatique telles que
Stocker linformation de faccedilon fiable (cest agrave dire ecirctre capable de restituer linformation
entreacutee dans le systegraveme)
Traiter de grands volumes de donneacutees (massification)
Traiter rapidement les donneacutees (optimisation)
Seacutecuriser les accegraves aux donneacutees (geacuterer les autorisations selon les utilisateurs)
Controcircler la qualiteacute des donneacutees (par exemple la coheacuterence par rapport agrave un modegravele preacute-
eacutetabli)
Partager les donneacutees (entre plusieurs applications deacutedieacutees agrave plusieurs meacutetiers)
Rendre accessible les donneacutees en reacuteseau (geacuterer la concurrence des accegraves parallegraveles)
b) Systegraveme de gestion de bases de donneacutees (SGBD)
Deacutefinition Systegraveme de Gestion de Bases de Donneacutees
Un SGBD est un logiciel qui prend en charge la structuration le stockage la mise agrave jour et la maintenance
dune base de donneacutees Il est lunique interface entre les informaticiens et les donneacutees (deacutefinition des scheacutemas
programmation des applications) ainsi quentre les utilisateurs et les donneacutees (consultation et mise agrave jour)
Introduction geacuteneacuterale aux bases de donneacutees
7
Exemtple Exemtples de SGBD
Oracle est un SGBD relationnel et relationnel-objet tregraves utiliseacute pour les applications professionnelles
PostgreSQL est un SGBD relationnel puissant qui offre une alternative libre (licence BSD) aux solutions
commerciales comme Oracle ou IBM
Access est un SGBD relationnel Microsoft qui offre une interface graphique permettant de concevoir
rapidement des applications de petite envergure ou de reacutealiser des prototypes
MongoDb est un SGBD non-relationnel libre (licence Apache) orienteacute document Il permet de geacuterer
facilement de tregraves grandes quantiteacutes de donneacutees - dans un format arborescent JSON - reacuteparties sur
de nombreux ordinateurs
Comtpleacutement SGBD relationnel et non-relationnel
Les SGBR relationnels (SGBDR) sont les plus courants des SGBD jusquau deacutebut des anneacutees 2000 la plupart
des bases de donneacutees eacutetaient relationnelles
Mais avec larriveacutee des geacuteants du web ces entreprises qui gegraverent des quantiteacutes eacutenormes de donneacutees comme
Google Amazon ou Facebook sest deacuteveloppeacute un mouvement important de deacuteveloppement de bases de
donneacutees nonrelationnelles eacutegalement appeleacutees NoSQL
c) Application de base de donneacutees Une base de donneacutees seule nest pas directement utilisable par un utilisateur humain elle nest utilisable que
par les informaticiens qui connaissent son langage de programmation et par les applications qui ont eacuteteacute
programmeacutees pour sen servir
Deacutefinition
On appelle application de base de donneacutees un logiciel informatique permettant agrave un utilisateur final de
manipuler (lire ou eacutecrire) les donneacutees dune base de donneacutees
Exemtple Atptplication web
Une application web est composeacutee dinterfaces en HTML qui permettent deacutecrire et de lire des donneacutees dans
une base de donneacutees via un langage applicatif comme par exemple PHP
Exemtple Twiter
Lapplication Twitter est composeacutee dinterfaces web
permettant dentrer des donneacutees (saisir son profil twitter
retwitter ) et de sortir des donneacutees (consulter un fil
twitter faire une recherche sur un hashtag) dune base
de donneacutees (Twitter utilise une base de donneacutees NoSQL
Apache Cassandra)
Cette base de donneacutees est stockeacutee sur les serveurs de
Twitter et elle contient tous les profils de tous les
utilisateurs tous les tweets tous les hashtags
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 8
Exemtple Comtpagnie aeacuterienne Une base de donneacutees de gestion de lactiviteacute dune compagnie aeacuterienne concerne les voyageurs les vols les
avions le personnel les reacuteservations
Une application agrave partir dune telle base de donneacutees pourra permettre la gestion des reacuteservations des
disponibiliteacutes des avions en fonction des vols agrave effectuer des affectations des personnels volants
Exemtple Atptplication de bureau Access
Avec un logiciel comme Access on peut reacutealiser agrave la fois une base de donneacutees et une application permettant
de manipuler cette base de donneacutees pour des besoins bureautiques simples
d) Donneacutee (en relationnel) table objet proprieacuteteacute domaine
atomiciteacute
Ratptpel Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tables (appeleacutes relations)
Chaque case de la table contient une information atomique
Deacutefinition Objet (ligne)
Chaque ligne de la table correspond agrave un objet que lon veut geacuterer dans la base de donneacutees une voiture une
personne une espegravece
Fondamental
Toutes les lignes dune mecircme table correspondent agrave des objets du mecircme type donc dans une
table on met soit des voitures soit des personnes mais on ne meacutelange pas les deux
Deacutefinition Protprieacuteteacute et domaine (colonne)
Chaque colonne de la table correspond agrave une proprieacuteteacute des objets qui se trouvent dans la table tous les
objets de la table partagent donc les mecircmes proprieacuteteacutes
Fondamental Domaine
Chaque colonne de la table est associeacutee agrave un domaine de valeur fixeacute a priori par exemple entier
texte booleacuteen
Deacutefinition Donneacutee en relationnel (cellule)
Une donneacutee en relationnel cest une cellule dune table qui correspond agrave la proprieacuteteacute dun objet
proprieacuteteacute 1 domaine
d1 proprieacuteteacute 2 domaine
d2
objet1 donneacutee 1 objet1 donneacutee 2
Introduction geacuteneacuterale aux bases de donneacutees
9
objet2 donneacutee 1 objet2 donneacutee 2
Tableau 2 Une table ou relation ( en relationnel)
Exemtple
espegravece domaine
texte eucaryote domaine
booleacuteen
bacteacuteries false
archeacutees false
Tableau 3 Exemple de relation instancieacutee
Atention Atomiciteacute
Pour que la base de donneacutees fonctionne correctement on veille agrave ne mettre quune seule donneacutee
par case cest le principe datomiciteacute en relationnel
espegravece domaine texte
bacteacuteries procaryotes unicellulaires
archeacutees procaryotes unicellulaires
protistes eucaryotes unicellulaires
champignons eucaryotes multicellulaires qui deacutecomposent
veacutegeacutetaux eucaryotes multicellulaires qui photosyntheacutetisent
animaux eucaryotes multicellulaires qui ingegraverent
Tableau 4 Un mauvais exemple de relation les donneacutees ne sont pas atomiques (il y a
plusieurs donneacutees par case de la table)
e) Langage de donneacutees lexemple du langage SQL
Deacutefinition Langage de donneacutees
Un langage de donneacutees est un langage informatique permettant de deacutecrire et de manipuler les scheacutemas et les
donneacutees dune BD
Synonymes Langage orienteacute donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 10
Fondamental SQL
SQL est le langage consacreacute aux SGBD relationnels et relationnels-objet
Il permet de
creacuteer des tables en deacutefinissant le domaine de chaque colonne
inseacuterer des lignes dans les tables
lire les donneacutees entreacutees dans la base de donneacutees
Exemtple Creacuteation de table en SQL (deacutefinition du scheacutema de donneacutees)
CREATE TABLE Etudiant ( NumEtu
integer PRIMARY KEY Nom varchar Ville varchar)
1 2 3 4
Cette instruction permet de creacuteer une relation Etudiant comportant les proprieacuteteacutes NumEtu Nom et Ville
de domaines respectivement entier texte et texte
Exemtple Insertion de ligne en SQL (creacuteation de donneacutees)
INSERT INTO Etudiant (NumEtu Nom Ville) VALUES (1 Holmes Londres) 1
Cette instruction permet de creacuteer leacutetudiant numeacutero 1 de nom Holmes qui habite la ville de Londres
Exemtple Manitpulation de donneacutees en SQL (extploitation des donneacutees)
SELECT Nom FROM Etudiant WHERE Ville = Compiegravegne
1 2 3
Cette instruction permet de rechercher les noms de tous les eacutetudiants habitant la ville de Compiegravegne
Comtpleacutement Autres langages de donneacutees
XQuery est un langage de donneacutees mobiliseacute dans les bases de donneacutees arborescentes XML
Les bases NoSQL proposent des langages de donneacutees speacutecifiques souvent inspireacutes du
SQL Par exemple le langage de MongoDB permet de manipuler une base de contenus JSON
2 Approche geacuteneacuterale pour la conception des bases de
donneacutees
a) Exercice Eacutetapes de la conception dune base de donneacutees
relationnelle Mettre dans lordre les eacutetapes de conception suivantes
1 Creacuteation du code SQL pour un SGBDR
2 Modeacutelisation conceptuelle en UML ou E-A
Introduction geacuteneacuterale aux bases de donneacutees
11
3 Eacutelaboration du modegravele logique en relationnel
4 Analyse de la situation existante et des besoins
Reacuteponse ___ ___ ___ ___
b) Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
Meacutethode Eacutetatpes de la concetption dune base de donneacutees
1 Analyse de la situation existante et des besoins (clarification) 2 Creacuteation dun modegravele conceptuel qui permet de repreacutesenter tous les aspects importants du problegraveme 3 Traduction du modegravele conceptuel en modegravele logique (et normalisation de ce modegravele logique) 4 Impleacutementation dune base de donneacutees dans un SGBD agrave partir du modegravele logique (et optimisation)
Graphique 1 Processus de conception dune base de donneacutees
On distingue quatre eacutetapes dans la conception dune base de donneacutees
Lanalyse
Elle consiste agrave eacutetudier le problegraveme et agrave consigner dans un document la note de clarification les
besoins les choix les contraintes
La modeacutelisation conceptuelle
Elle permet de deacutecrire le problegraveme poseacute de faccedilon non-formelle (en geacuteneacuterale graphique) en prenant
des hypothegraveses de simplification Ce nest pas une description du reacuteel mais une repreacutesentation
simplifieacutee dune reacutealiteacute
La modeacutelisation logique
Ele permet de deacutecrire une solution en prenant une orientation informatique geacuteneacuterale (type de SGBD
typiquement) formelle mais indeacutependamment de choix dimpleacutementation speacutecifiques
Limpleacutementation
Elle correspond aux choix techniques en terme de SGBD choisi et agrave leur mise en œuvre
(programmation optimisation)
Fondamental
Bien analyser le problegraveme poseacute en amont
BD solution proposeacutee
Domaine problegraveme poseacute
Modegravele Conceptuel
Modegravele Logique
Repreacutesenter
Impleacutementer
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 12
Bien modeacuteliser le problegraveme au niveau conceptuel avant de passer au niveau logique et agrave
limpleacutementation
Conseil Limtportance de leacutetatpe danalyse
La premiegravere eacutetape de la conception repose sur lanalyse de lexistant et des besoins De la qualiteacute de la
reacutealisation de cette premiegravere eacutetape deacutependra ensuite la pertinence de la base de donneacutees par rapports aux
usages Cette premiegravere eacutetape est donc essentielle et doit ecirctre meneacutee avec soins
Si la premiegravere eacutetape est fondamentale dans le processus de conception elle est aussi la plus deacutelicate En effet
tandis que des formalismes puissants existent pour la modeacutelisation conceptuelle puis pour la modeacutelisation
logique la perception de lexistant et des besoins reste une eacutetape qui repose essentiellement sur lexpertise
danalyse de lingeacutenieur
Conseil Limtportance de leacutetatpe de modeacutelisation concetptuelle
Eacutetant donneacutee une analyse des besoins correctement reacutealiseacutee la seconde eacutetape consiste agrave la traduire selon un
modegravele conceptuel Le modegravele conceptuel eacutetant formel il va permettre de passer dune speacutecification en
langage naturel et donc soumise agrave interpreacutetation agrave une speacutecification non ambiguumle Le recours aux
formalismes de modeacutelisation tels que E-A ou UML est donc une aide fondamentale pour parvenir agrave une
repreacutesentation qui ne sera plus lieacutee agrave linterpreacutetation du lecteur
La traduction dun cahier des charges speacutecifiant lexistant et les besoins en modegravele conceptuel reste neacuteanmoins
une eacutetape deacutelicate qui va conditionner ensuite lensemble de limpleacutementation informatique En effet les eacutetape
suivantes sont plus meacutecaniques dans la mesure ougrave un modegravele logique est deacuteduit de faccedilon systeacutematique du
modegravele conceptuel et que limpleacutementation logicielle est eacutegalement reacutealiseacutee par traduction directe du modegravele
logique
RemarqueLes eacutetatpes de traduction logique et dimtpleacutementation
Des logiciels speacutecialiseacutes (par exemple Objecteering [w_objecteering]) sont capables agrave partir dun modegravele
conceptuel dappliquer des algorithmes de traduction qui permettent dobtenir directement le modegravele logique
puis les instructions pour la creacuteation de la base de donneacutees dans un langage orienteacute donneacutees tel que SQL
Lexistence de tels algorithmes de traduction montre que les eacutetapes de traduction logique et dimpleacutementation
sont moins complexes que les preacuteceacutedentes car plus systeacutematiques
Neacuteanmoins ces eacutetapes exigent tout de mecircme des compeacutetences techniques pour optimiser les modegraveles logiques
(normalisation) puis les impleacutementations en fonction dun contexte de mise en œuvre mateacuteriel logiciel et
humain
c) Qatre eacutetapes pour reacuteduire la complexiteacute La reacutealisation dune base de donneacutees est une tacircche complexe le deacutecoupage en quatre eacutetapes permet de geacuterer
cette complexiteacute
Clarification ModeacutelisationConceptuelle ModeacutelisationLogique Im pleacutem entation
Conception en quatre eacutetapes
Introduction geacuteneacuterale aux bases de donneacutees
13
Lideacutee geacuteneacuterale est de ne pas meacutelanger la nature des tacircches typiquement on ne veut pas en mecircme temps
se poser des questions geacuteneacuterales relatives aux besoins (ce que je veux faire) et des questions techniques tregraves
speacutecifiques (comment repreacutesenter telle information)
Meacutethode
Lapproche est donc
de regarder agrave gauche on regarde le monde quand on clarifie on regarde la note de clarification
quand on fait le MCD on regarde le MCD quand on fait le MLD on regarde le MLD quand on
impleacutemente
et de ne pas regarder trop loin on anticipe deacutejagrave le MCD pendant la clarification mais on ne se
preacuteoccupe pas de questions dimpleacutementation quand on fait le MLD on ne se pose plus de question
sur le monde la clarification et le MCD ont ducirc deacutejagrave reacutepondre quand on impleacutemente on ne se pose
plus de question de modeacutelisation on soccupe des programmes de la machine
Fondamental
On peut toujours revenir sur une eacutetape la conception est iteacuterative mais on ne doit pas tout le
temps se poser tous les problegravemes en mecircme temps
d) Eacuteleacutements pour lanalyse de lexistant et des besoins La phase danalyse de lexistant et des besoins est une phase essentielle et complexe Elle doit aboutir agrave des
speacutecifications geacuteneacuterales qui deacutecrivent en langage naturel les donneacutees manipuleacutees et les traitements agrave
effectuer sur ces donneacutees
On se propose de donner une liste non exhaustive dactions agrave mener pour reacutediger de telles speacutecifications
Meacutethode Lanalyse de documents existants
La conception dune base de donneacutees sinscrit geacuteneacuteralement au sein dusages existants Ces usages sont
geacuteneacuteralement au moins en partie instrumenteacutes agrave travers des documents eacutelectroniques ou non (papier
typiquement) Il est fondamental danalyser ces documents et de recenser les donneacutees quils manipulent
Exemtple Exemtples de document existants agrave analyser
Fichiers papiers de stockage des donneacutees (personnel produits etc)
Formulaires papiers denregistrement des donneacutees (fiche didentification dun salarieacute fiche de
description dun produit bon de commande etc)
Documents eacutelectroniques de type traitement de texte (lettres mailing proceacutedures etc)
Documents eacutelectroniques de type tableurs (bilans statistiques calculs etc)
Bases de donneacutees existantes agrave remplacer ou avec lesquelles saccorder (gestion des salaires de la
production etc)
Intranet dentreprise (information teacuteleacutechargement de documents etc)
etc
Meacutethode Le recueil dextpertise meacutetier
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 14
Les donneacutees que la base va devoir manipuler sont toujours relatives aux meacutetiers de lentreprise et il existe
des experts qui pratiquent ces meacutetiers Le dialogue avec ces experts est une source importante dinformations
Il permet eacutegalement de fixer la terminologie du domaine
Exemtple Exemtples dextperts agrave consulter
Praticiens (secreacutetaires ouvrier controcircleurs etc)
Cadres (responsables de service contre-maicirctres etc)
Experts externes (clients fournisseurs etc)
etc
Meacutethode Le dialogue avec les usagers
La base de donneacutees concerne des utilisateurs cibles cest agrave dire ceux qui produiront et consommeront
effectivement les donneacutees de la base Il est neacutecessaire de dialoguer avec ces utilisateurs qui sont les
deacutetenteurs des connaissances relatives aux besoins reacuteels lieacutes agrave leur reacutealiteacute actuelle (aspects de lorganisation
fonctionnant correctement ou deacutefaillants) et agrave la reacutealiteacute souhaiteacutee (eacutevolutions lacunes etc)
Exemtple Exemtples dutilisateurs avec qui dialoguer
Personnes qui vont effectuer les saisies dinformation (agrave partir de quelles sources Quelle est leur
responsabiliteacute etc)
Personnes qui vont consulter les informations saisies (pour quel usage pour quel destinataire etc)
Personnes qui vont mettre agrave jour les informations (pour quelles raisons comment le processus est
enclencheacute etc)
etc
Meacutethode Leacutetude des autres systegravemes informatiques existants
la base de donneacutees va geacuteneacuteralement (et en fait quasi systeacutematiquement aujourdhui) sinseacuterer parmi un
ensemble dautres logiciels informatiques travaillant sur les donneacutees de lentreprise Il est important danalyser
ces systegravemes afin de mieux comprendre les meacutecanismes existants leurs forces et leurs lacunes et de preacuteparer
linteacutegration de la base avec ces autres systegravemes Une partie de ces systegravemes seront dailleurs souvent
eacutegalement des utilisateurs de la base de donneacutees tandis que la base de donneacutees sera elle mecircme utilisatrice
dautre systegravemes
Exemtple Exemtples dautres systegravemes coexistants agrave eacutetudier
Autres bases de donneacutees (les donneacutees sont elle disjointes ou partiellement communes avec celles de la
base agrave concevoir quelles sont les technologies logicielles sur lesquelles reposent ces BD etc)
Systegravemes de fichiers classiques (certains fichiers ont-ils vocations agrave ecirctre supplanteacutes par la base agrave ecirctre
geacuteneacutereacutes par la base agrave alimenter la base etc)
Applications (ces applications ont elles besoins de donneacutees de la base peuvent-elles lui en fournir
etc)
etc
Comtpleacutement Meacutethodes danalyse
Il existe des outils et meacutethodes danalyse en ingeacutenierie comme lanalyse fonctionnelle (AF) qui deacutepassent le
cadre de la conception des bases de donneacutees mais sont tout agrave fait compleacutementaires
Introduction geacuteneacuterale aux bases de donneacutees
15
e) Modeacutelisation conceptuelle de donneacutees Lobjection du modegravele conceptuel est de repreacutesenter le problegraveme agrave laide de repreacutesentations graphiques et
partiellement formelles
Les principales caracteacuteristiques du modegravele conceptuel sont
Une repreacutesentation graphique simple
Une puissance dexpression eacuteleveacutee pour un nombre de symboles raisonnables
Une lecture accessible agrave tous et donc un bon outil de dialogue entre les acteurs techniques et non
techniques
Une formalisation peu ambigueuml et donc un bon outil de speacutecification deacutetailleacutee
Remarque
Le modegravele nest pas encore formel donc certaines repreacutesentations peuvent ecirctre eacutequivoques mecircme si on a
leveacute de tregraves nombreuses ambiguiumlteacutes
E-A
La modeacutelisation conceptuelle en bases de donneacutees relationnelle eacutetait agrave lorigine faite avec le formalisme E-A
de la meacutethode MERISE
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 16
Modegravele E-A gestion de projets
UML
UML est un autre langage de modeacutelisation plus reacutecent que E-A et couvrant un spectre plus large que les
bases de donneacutees En tant que standard de lOMG et en tant que outil tregraves utiliseacute pour la programmation
orienteacutee objet il a supplanteacute la modeacutelisation E-A
Remarque
En BD on utilise uniquement le diagramme de classe dUML pour modeacuteliser conceptuellement les donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 17
Modegravele UML gestion de projets
f) Modeacutelisation logique de donneacutees
Deacutefinition Modegravele logique de donneacutees
Un modegravele logique de donneacutees est une description au moyen dun langage formel dun ensemble de donneacutees
Un scheacutema permet de deacutecrire la structure dune base de donneacutees en deacutecrivant lensemble des types de
donneacutees de la base Une instance de base de donneacutees est constitueacutee dun ensemble de donneacutees qui respectent
le scheacutema de la base
Synonyme scheacutema de donneacutees scheacutema
Exemtple Modegravele logique de donneacutees relationnel
Un modegravele logique de donneacutees relationnel permet de repreacutesenter une base de donneacutees relationnelles cest agrave
dire des tables des proprieacuteteacutes des domaines
Exemtple Scheacutema dune relation
Espece(nomchaicircne eucaryotebooleacuteen multicellulairebooleacuteen proprieacuteteacutechaicircne) 1
Exemtple Scheacutema dune base de donneacutees avec tplusieurs relations
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 18
Etudiant (numentier nomchaicircne villechaicircne) Module(numentier titrechaicircne) Inscription(numetuentier nummodentier anneacuteeentier(4))
1 2 3
Instance de base de donneacutees
Etudiant Module
172 Dupont Lille
173 Durand Paris
174 Martin Isabelle
1 SGBD
2 OS
Inscription 172 1 2016 172 2 2016 173 1 2015 174 2 2017
Comtpleacutement Exemtple de formalismes de modeacutelisation logique
Le modegravele CODASYL anteacuterieur au modegravele relationnel est un modegravele hieacuterarchique (Tardieu 1983
[Tardieu83])
Le modegravele relationnel (tabulaire) est le modegravele dominant agrave la base des SGBDR
Le modegravele relationnel-objet (adaptation des modegraveles relationnels et objets au cadre des SGBD) est
actuellement en croissance
Dautres modegraveles (document graphe ) se deacuteveloppent dans le cadre du mouvement NoSQL
Comtpleacutement Voir aussi
Bregraveve introduction aux bases de donneacutees NoSQL - p98
g) Synthegravese Les trois niveaux de conception Niveau Conceptuel
Modegravele conceptuel graphique -
Exemples E-A
UML
Niveau Logique
Scheacutema logique indeacutependant dun SGBD -
Exemples Relationnel
Objet
Relationnel-Objet
Graphe
Document
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 19
Niveau Informatique
Impleacutementation pour un SGBD particulier -
Exemples Oracle
MySQL
PostgreSQL
DB2
Access
SQLServer
MongoDB
Cassandra
Modeacutelisation Modeacutelisation Im pleacutem entation Clarification Conceptuelle
Logique
AF UML Relationnel SQL Conception en quatre eacutetapes exemple de
formalismes
B Exercices
1 Deacutecouverte dune base de donneacutees relationnelle
Cette seacuterie dexercices est destineacutee agrave faire expeacuterimenter un SGBDR afin de se familiariser avec les concepts
classiques des bases de donneacutees relationnelles
Pour la reacutealisation de cet exercice se connecter sur le site dbdiscocrztfr et conserver la fenecirctre du navigateur
ouverte
Db Discodbdiscocrztfr
Objectifs
Deacutecouvrir le modegravele relationnel Deacutecouvrir un SGBDR Deacutecouvrir le langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 20
a) Notion de table
Creacuteer sa premiegravere table Une base de donneacutees relationnelle est principalement constitueacutee de tables (ou laquo relations raquo dougrave le nom
de relationnel) Une table est basiquement un eacuteleacutement dorganisation de linformation constitueacute de colonnes
(ou attributs) et de lignes (ou enregistrements)
Nous allons dans un premier temps creacuteer le scheacutema dune table cest agrave dire deacutefinir ses colonnes Pour cela
nous utiliserons linstruction SQL LDD laquo CREATE raquo
Question 1
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
CREATE TABLE tEtu ( pk_numSecu CHAR(13) PRIMARY KEY k_numEtu
VARCHAR(20) UNIQUE NOT NULL nom
VARCHAR(50) prenom VARCHAR(50))
1 2 3 4 5
Introduction geacuteneacuterale aux bases de donneacutees
21
Alimenter la table Une fois les colonnes de la table deacutefinies nous pouvons en deacuteclarer les lignes Nous utilisons pour cela
linstruction SQL LMD laquo INSERT raquo
Question 2
Exeacutecuter les deux instructions suivantes et deacutecrire ce quelles font
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 AB3937098X Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2820475001124 XGB67668 Durand Anne)
1 2 3 4
Interroger la table Une fois une table creacuteeacutee il est possible agrave tout moment den inspecter le contenu Nous utilisons pour cela
linstruction SQL LMD laquo SELECT raquo
Question 3
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT pk_numSecu k_numEtu nom prenom FROM tEtu
1 2
Question 4
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT nom prenom FROM tEtu WHERE pk_numSecu=2820475001124
1 2 3
b) Notion de contraintes
Contrainte de domaine Lorsque lon deacutefinit une table on deacutefinit eacutegalement des contraintes sur cette table qui serviront agrave controcircler
son inteacutegriteacute par rapport agrave des regravegles que lon aura fixeacutees
Cest notamment le cas des contraintes de domaine qui permettent de veacuterifier quune colonne prend ses
valeurs parmi un ensemble deacutetermineacute (les chaicircnes de 10 caractegraveres au plus les entier de 1 agrave 1000 etc)
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi le systegraveme renvoie une erreur
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (XXXXXXXXXXXXXXX XXXXXX Dupont Pierre)
1 2
Question 2
Donner un exemple de contrainte qui nest pas formuleacutee dans la deacutefinition de la table tEtu et que lon aurait
pu souhaiter
Indice
Pour indiquer quun eacuteleacutement est obligatoire on ajoute la clause NOT NULL apregraves la deacutefinition de son domaine dans linstruction CREATE TABLE
Introduction geacuteneacuterale aux bases de donneacutees
22
Contraintes de cleacute Les contraintes de cleacute se composent de contraintes duniciteacute et de contraintes de non nulliteacute Elles
permettent dassurer que toutes les valeurs dune colonne seront diffeacuterentes pour chaque ligne
Question 3
Exeacutecuter les trois instructions suivantes (les unes apregraves les autres) et expliquer ce qui se passe
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 HGYT67655Y Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 XGB67668 Durand Anne) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 HGYT67655Y Duchemin Aline)
1 2 3 4 5 6
Question 4
Explorer le contenu de votre table en exeacutecutant linstruction suivante et veacuterifier vos explications preacuteceacutedentes
SELECT FROM tEtu
1 2
Question 5
Pourrait-on inseacuterer dans la table une seconde personne qui aurait le preacutenom Aline et le nom Duchemin
Pourquoi
c) Notion de reacutefeacuterences
Cleacute eacutetrangegravere Une base de donneacutees est en geacuteneacuteral constitueacutee de plusieurs tables Ces tables se reacutefeacuterencent entre elles en
utilisant une cleacute eacutetrangegravere cest agrave dire quune des colonnes de la table est utiliseacutee pour faire reacutefeacuterence agrave la
colonne dune autre table
On va agrave preacutesent creacuteer une seconde table qui permettra dassocier des Uniteacutes de Valeurs (UVs) aux eacutetudiants
puis inseacuterer des valeurs dans cette table
CREATE TABLE tUv ( pk_code
CHAR(4) NOT NULL fk_etu
CHAR(13) NOT NULL PRIMARY KEY (pk_code fk_etu) FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu))
1 2 3 4 5
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF26 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF29 1800675001066)
1 2 3 4 5 6
Question 1
Introduction geacuteneacuterale aux bases de donneacutees
23
Expliciter ce quexprime le contenu de la table tUv
Contraintes dinteacutegriteacute reacutefeacuterentielle Lorsque nous avons deacutefini la table tUv nous avons deacutefini une contrainte suppleacutementaire dite dinteacutegriteacute
reacutefeacuterentielle contrainte de type FOREIGN KEY
Question 2
En exeacutecutant les instructions suivantes expliquer quel est le rocircle dune contrainte dinteacutegriteacute reacutefeacuterentielle
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 2810592012232) INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1700792001278)
1 2 3 4
d) Projection restriction et jointure Linstruction SELECT du langage SQL LMD nous donne de larges possibiliteacutes pour interroger les tables dune
base de donneacutees Cette instruction se fonde notamment sur les opeacuterations matheacutematiques de lalgegravebre
relationnelle dont les principales sont la projection la restriction le produit et la jointure
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi cest une projection
SELECT nom prenom FROM tEtu
1 2
Question 2
Exeacutecuter linstruction suivante et expliquer pourquoi cest une restriction
SELECT FROM tEtu WHERE nom=Dupont
1 2 3
Question 3
Exeacutecuter linstruction suivante et expliquer pourquoi cest un produit (carteacutesien)
SELECT FROM tEtutUv
1 2
Question 4
Exeacutecuter linstruction suivante et expliquer pourquoi cest une jointure
SELECT FROM tEtu JOIN tUv ON pk_numSecu=fk_etu
1 2
Question 5
Exeacutecuter linstruction suivante et montrer quune jointure est la composition dun produit et dune restriction
SELECT FROM tEtutUv WHERE pk_numSecu=fk_etu
1 2 3
Introduction geacuteneacuterale aux bases de donneacutees
24
e) Fonctions et agreacutegats Linstruction SELECT permet eacutegalement deffectuer des calculs qui portent sur plusieurs lignes ce que lon
appelle des agreacutegats
Question 1
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT COUNT(pk_code) FROM tUv
1 2
WHERE fk_etu=1800675001066 3
Question 2
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT fk_etu COUNT(pk_code) FROM tUv GROUP BY fk_etu
1 2 3
Question 3
Compleacuteter la requecircte SQL suivante afin quelle renvoie pour chaque UV le nombre deacutetudiants inscrits
SELECT _______ COUNT(______) FROM tUv GROUP BY _______
1 2 3
Agrave lissue de cette seacuterie dexercices vous devez savoir deacutefinir les termes suivants
table ou relation
scheacutema relationnel
domaine
cleacute
cleacute eacutetrangegravere
opeacuterations de projection restriction jointure produit
Introduction geacuteneacuterale aux bases de donneacutees
25
2 Lab 0
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux meacutedicaments
avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi quune description
longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le nombre de pilules par boicircte
(qui est un nombre entier)
Ce problegraveme est un exemple tregraves simple que lon pourra modeacuteliser avec une base de donneacutees relationnelle agrave
une seule table
Vous pouvez tester vos instructions SQL ici Db Discodbdiscocrztfr
Question 1
Proposer une clarification du problegraveme (par exemple sous la forme dune liste des proprieacuteteacutes de la relation
viseacutee)
Question 2
Proposer un exemple de donneacutees
Question 3
Dessiner un modegravele conceptuel de donneacutees en UML Il ne contient quune seule classe
Indice Modeacutelisation conceptuelle de donneacutees
Question 4
Proposer un modegravele logique de donneacutees sous forme de scheacutema relationnel Il ne contient quune seule relation
Indice Modeacutelisation logique de donneacutees
Question 5
Proposer une impleacutementation en SQL standard de votre modegravele relationnel Il ne contient quune seule
instruction CREATE TABLE
Indice Langage de donneacutees lexemple du langage SQL
Question 6
Eacutecrivez les instructions SQL permettant dinseacuterer vos donneacutees de test dans votre base de donneacutees
Indice Langage de donneacutees lexemple du langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
26
27
II - Introduction agrave la
modeacutelisation
conceptuelle de donneacutees avec
UML
A Cours
La modeacutelisation conceptuelle est leacutetape fondatrice du processus de conception de BD Elle consiste agrave
abstraire le problegraveme reacuteel poseacute pour en faire une reformulation qui trouvera une solution dans le cadre
technologique dun
SGBD
Si le modegravele dominant en conception de bases de donneacutees a longtemps eacuteteacute le modegravele E-A le modegravele UML
se geacuteneacuteralise de plus en plus Nous proposons ici une introduction au diagramme de classes agrave travers la
repreacutesentation de classes et dassociations simples (il existe dautres diagrammes UML par exemple le
diagramme de cas et dautres primitives de repreacutesentation dans le diagramme de classe par exemple
lheacuteritage)
II
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
28
1 Notion de modegravele
a) Exercice Centre meacutedical [5 min]
Soit le modegravele conceptuel suivant repreacutesentant des visites dans un centre meacutedical Quelles sont les assertions vraies selon ce scheacutema
Image 1
Un patient peut effectuer plusieurs visites
Tous les patients ont effectueacute au moins une consultation
Un meacutedecin peut recevoir plusieurs patients pendant la mecircme consultation
Un meacutedecin peut prescrire plusieurs meacutedicaments lors dune mecircme consultation
Deux meacutedecins diffeacuterents peuvent prescrire le mecircme meacutedicament
b) Qest ce quun modegravele
Deacutefinition Modegravele
laquo Modeling in the broadest sense is the cost-effective use of something in place of something else for some
cognitive purpose It allows us to use something that is simpler safer or cheaper than reality instead of reality
for some purpose A model represents reality for the given purpose the model is an abstraction of reality in
the sense that it cannot represent all aspects of reality raquo (Rothenberg 1989 [Rothenberg et al 1989] citeacute
par Arribe 2014 [Arribe 2014])
laquo Systegraveme physique matheacutematique ou logique repreacutesentant les structures essentielles dune reacutealiteacute et capable
agrave son niveau den expliquer ou den reproduire dynamiquement le fonctionnement raquo (TLFi)
Fondamental Modegravele
Un modegravele est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser quelque chose
Objectifs
Savoir ce quest un modegravele
Savoir ce quest le langage UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
29
c) Qest ce quun modegravele en informatique
Deacutefinition Modegravele informatique
Un modegravele informatique est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser un traitement avec
un ordinateur
Comtpleacutement Numeacuterisation et abstraction Toute information numeacuterique a
eacuteteacute codeacutee selon un modegravele donneacute
laquo Tout numeacuterisation est une repreacutesentation de la reacutealiteacute sous la forme dune modeacutelisation numeacuterique Cette
modeacutelisation procegravede dune abstraction au sens ougrave cest une seacuteparation davec le reacuteel au sens ougrave cest une
construction destineacutee agrave la manipulation (algorithmique en loccurrence) et au sens ougrave cest une simplification
de la reacutealiteacute raquo
httpaswemayfrcotropism-preshtml1
d) Qest ce quun bon modegravele
Atention
Un modegravele est une abstraction une simplification de la reacutealiteacute ce nest pas la reacutealiteacute il nest
jamais complegravetement fidegravele par construction
Le seul modegravele complegravetement fidegravele agrave la reacutealiteacute est la reacutealiteacute elle-mecircme et ce nest donc pas un
modegravele
Exemtple La carte et le territoire
Une carte est un modegravele dun territoire Elle est une repreacutesentation simplifieacutee destineacute agrave un usage particulier
randonner agrave pied en veacutelo
se diriger en voiture sur des grands axes sur des axes secondaires
voler en avion de tourisme en avion de ligne
naviguer sur fleuve sur mer
eacutetudier les frontiegraveres dune reacutegion dun pays de la terre
eacutetudier la deacutemographie leacuteconomie
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
30
Fondamental
Agrave partir de cet exemple on notera que 1 Un modegravele est orienteacute par un usage
Chacune de ces cartes est tregraves diffeacuterente selon ce que lon veut faire 2 Un modegravele ne cherche pas agrave ecirctre proche de la reacutealiteacute
Chacune de ces cartes est tregraves diffeacuterente de la reacutealiteacute quelle repreacutesente 3 Un modegravele adresse un niveau dinformation qui existe mais qui nest pas accessible dans
la reacutealiteacute Chacune de ces cartes permet quelque chose que ne permet pas laccegraves direct agrave la reacutealiteacute
ndash wwwsambaconsultantscom
Meacutethode Le rasoir dOckham Entre deux modegraveles donneacutes le meilleur modegravele est-il
toujours le tplus fourni
La meacutethode de raisonnement connue sous le nom de rasoir dOckham (du nom du philosophe eacuteponyme)
consiste agrave preacutefeacuterer les solutions les plus simples aux plus complexes lorsquelles semblent permettre
eacutegalement de reacutesoudre un problegraveme donneacute entre deux theacuteories eacutequivalentes toujours preacutefeacuterer la plus simple
Ce principe sapplique tregraves bien agrave la modeacutelisation eacutetant donneacute un objectif et plusieurs modegraveles possibles il
ne faut pas choisir a priori celui qui repreacutesente le plus de choses mais preacutefeacuterer le plus simple degraves quil couvre
le besoin
Cest un principe deacuteconomie (il coucircte moins cher agrave produire) et defficaciteacute (car les eacuteleacutements inutiles du modegravele
plus fourni nuiront agrave lefficaciteacute de la tacircche)
Exemtple
Ainsi pour naviguer en voiture il est plus simple de ne pas avoir sur la carte les chemins de randonneacutees qui
ne sont pas praticables en voiture
2 Introduction au diagramme de classes UML classes et
associations
a) Lab I
Description du problegraveme [15 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
Objectifs
Savoir faire un modegravele conceptuel
Savoir interpreacuteter un modegravele conceptuel
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
31
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
b) Preacutesentation dUML UML est un langage de repreacutesentation destineacute en particulier agrave la modeacutelisation objet UML est devenu une
norme OMG en 1997
UML propose un formalisme qui impose de penser objet et permet de rester indeacutependant dun langage de
programmation donneacute Pour ce faire UML normalise les concepts de lobjet (eacutenumeacuteration et deacutefinition
exhaustive des concepts) ainsi que leur notation graphique Il peut donc ecirctre utiliseacute comme un moyen de
communication entre les eacutetapes de speacutecification conceptuelle et les eacutetapes de speacutecifications techniques
Fondamental Diagramme de classe
Le diagramme de classes est un sous ensemble dUML qui sattache agrave la description statique dun
modegravele de donneacutees repreacutesenteacutees par des classes dobjets
Remarque
Dans le domaine des bases de donneacutees UML peut ecirctre utiliseacute agrave la place du modegravele E-A pour modeacuteliser le
domaine De la mecircme faccedilon un scheacutema conceptuel UML peut alors ecirctre traduit en scheacutema logique (relationnel
ou relationnel-objet typiquement)
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
32
c) Classes
Deacutefinition Classe
Une classe est un type abstrait caracteacuteriseacute par des proprieacuteteacutes (attributs et meacutethodes) communes agrave un ensemble
dobjets et permettant de creacuteer des instances de ces objets ayant ces proprieacuteteacutes
Image 2 Repreacutesentation UML dune classe
Exemtple La classe Voiture
Lobjet V1 est une instance de la classe Voiture
V1 Voiture
Marque Citroeumln
Type ZX
Portes 5
Puissance 6
Kilomeacutetrage 300000
Comtpleacutement
La modeacutelisation sous forme de diagramme de classes est une modeacutelisation statique qui met en exergue la
structure dun modegravele mais ne rend pas compte de son eacutevolution temporelle UML propose dautres types de
diagrammes pour traiter notamment de ces aspects
d) Atributs
Deacutefinition Atribut
Un attribut est une information eacuteleacutementaire qui caracteacuterise une classe et dont la valeur deacutepend de lobjet
instancieacute
Syntaxe
Image 3 Exemple de classe repreacutesenteacutee en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
33
Un attribut est typeacute Le domaine des valeurs que peut prendre lattribut est fixeacute a priori
Un attribut peut ecirctre multivalueacute Il peut prendre plusieurs valeurs distinctes dans son domaine
Un attribut peut ecirctre deacuteriveacute Sa valeur alors est une fonction sur dautres attributs de la classe
Un attribut peut ecirctre composeacute (ou composite) Il joue alors le rocircle dun groupe dattributs (par
exemple une adresse peut ecirctre un attribut composeacute des attributs numeacutero type de voie nom de la
voie) Cette notion renvoie agrave la notion de variable de type Record dans les langages de programmation
classiques
Atention On utilise peu les atributs deacuteriveacutes et composeacutes en UML
En UML on preacutefegravere lusage de meacutethodes aux attributs deacuteriveacutes On utilisera toujours des
meacutethodes degraves que la valeur de lattribut deacuteriveacute deacutepend dautres attributs exteacuterieurs agrave sa
classe
En UML on preacutefegravere lusage de compositions aux attributs composeacutes On utilisera toujours
des compositions pour les attributs composeacutes et multivalueacutes
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
34
Syntaxe
attributtype attribut_multivalueacute[nbMinValeursnbMaxValeurs]type attribut_deacuteriveacutetype attribut_composeacute - sous-attribut1type - sous-attribut2type -
1 2 3 4 5 6 7
Image 4 Repreacutesentation dattributs en UML
Dans cet exemple les attributs Nom Preacutenom sont de type string lun de 20 caractegraveres et lautre de 10 tandis
que DateNaissance est de type date et Age de type integer Preacutenom est un attribut multivalueacute ici une personne
peut avoir de 1 agrave 3 preacutenoms Age est un attribut deacuteriveacute il est calculeacute par une fonction sur DateNaissance
Comtpleacutement Voir aussi
Meacutethodes
Composition - p99
e) Repeacuterage des cleacutes Un attribut ou un groupe dattributs peut ecirctre annoteacute comme eacutetant cleacute sil permet didentifier de faccedilon unique
un objet de la classe
On ajoute le symbole key agrave cocircteacute du ou des attributs concerneacutes
Cleacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
35
Cleacute composeacutee de deux attributs
Meacutethode
Le repeacuterage des cleacutes nest pas systeacutematique en UML (la deacutefinition des cleacutes se fera essentiellement au niveau
logique) On cherchera neacuteanmoins agrave repeacuterer les cleacutes rendues eacutevidentes par la phase de clarification
Atention
On najoutera jamais de cleacute artificielle au niveau du MCD Si aucune cleacute nest eacutevidente on laisse
la classe sans cleacute Atention Atribut souligneacute et
On trouvera dans ce cours des exemples dattributs souligneacutes ou preacuteceacutedeacutes de pour exprimer
luniciteacute Ce nest pas une pratique standard et la notation key devrait lui ecirctre substitueacutee
Un attribut souligneacute est normalement un attribut de classe ou static en UML Un
attribut preacuteceacutedeacute de est normalement un attribut proteacutegeacute en UML
Mais les concepts dattribut de classe et dattribut proteacutegeacute ne sont pas utiliseacutes dans le cadre des
bases de donneacutees
f) Meacutethodes
Deacutefinition Meacutethode
Une meacutethode (ou opeacuteration) est une fonction associeacutee agrave une classe dobjet qui permet dagir sur les objets de
la classe ou qui permet agrave ces objets de renvoyer des valeurs (calculeacutees en fonction de paramegravetres)
Syntaxe
methode(paramegravetres)type 1
Remarque Meacutethodes et modeacutelisation de BD
Pour la modeacutelisation des bases de donneacutees les meacutethodes sont surtout utiliseacutees pour repreacutesenter des donneacutees
calculeacutees (agrave linstar des attributs deacuteriveacutees) ou pour mettre en exergue des fonctions importantes du systegraveme
cible Seules les meacutethodes les plus importantes sont repreacutesenteacutees lapproche est moins systeacutematique quen
modeacutelisation objet par exemple
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
36
Remarque Meacutethodes relationnel relationnel-objet
Lors de la transformation du modegravele conceptuel UML en modegravele logique relationnel les meacutethodes ne seront
geacuteneacuteralement pas impleacutementeacutees Leur repeacuterage au niveau conceptuel sert donc surtout daide-meacutemoire
pour limpleacutementation au niveau applicatif
Au contraire un modegravele logique relationnel-objet permettra limpleacutementation de meacutethodes directement
associeacutees agrave des tables Leur repeacuterage au niveau conceptuel est donc encore plus important
Comtpleacutement Transformation des meacutethodes par des vues - p98
g) Associations
Deacutefinition Association
Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire)
qui deacutefinit un ensemble de liens entre les objets de ces classes
Une association est nommeacutee geacuteneacuteralement par un verbe Une association peut avoir des proprieacuteteacutes (agrave linstar
dune classe) Une association deacutefinit le nombre minimum et maximum dinstances autoriseacutee dans la relation
(on parle de cardinaliteacute)
Syntaxe
Image 5 Notation de lassociation en UML
Atention
Le nom de lassociation (verbe qui la deacutecrit) est obligatoire au mecircme titre que le nom dune
classe ou dun attribut
Remarque
Une association est geacuteneacuteralement bidirectionnelle (cest agrave dire quelle peut se lire dans les deux sens) Les
associations qui ne respectent pas cette proprieacuteteacute sont dites unidirectionnelles ou agrave navigation restreinte
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
37
Image 6 Repreacutesentation dassociation en UML
Lassociation Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des
voitures
Comtpleacutement Voir aussi
Cardinaliteacute
Explicitation des associations - p100
Associations ternaires - p101
Contraintes sur les associations - p101
h) Cardinaliteacute
Deacutefinition Cardinaliteacute dune association
La cardinaliteacute dune association permet de repreacutesenter le nombre minimum et maximum dinstances qui sont
autoriseacutees agrave participer agrave la relation La cardinaliteacute est deacutefinie pour les deux sens de la relation
Syntaxe
Si mina (resp maxa) est le nombre minimum (resp maximum) dinstances de la classe A autoriseacutees agrave participer
agrave lassociation on note sur la relation agrave cocircteacute de la classe A minamaxa
Si le nombre maximum est indeacutetermineacute on note n ou
Atention
La notation de la cardinaliteacute en UML est opposeacutee agrave celle adopteacutee en E-A En UML on note agrave gauche
(resp agrave droite) le nombre dinstances de la classe de gauche (resp de droite) autoriseacutees dans
lassociation En E-A on note agrave gauche (resp agrave droite) le nombre dinstances de la classe de
droite (resp de gauche) autoriseacutees dans lassociation
Remarque
Les cardinaliteacutes les plus courantes sont
01 (optionnel)
11 ou 1 (un)
Lassociation Conduit
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
38
0n ou 0 ou (plusieurs)
Ici un conducteur peut posseacuteder plusieurs voitures (y compris aucune) et une voiture nest posseacutedeacutee que par
un seul conducteur
i) Classe dassociation
Deacutefinition Classe dassociation
On utilise la notation des classes dassociation lorsque lon souhaite ajouter des proprieacuteteacutes agrave une association
Syntaxe Notation dune classe dassociation en UML
Image 8 Notation dune classe dassociation en UML
1 n ou 1 (obligatoire )
Image 7 Repreacutesentation de cardinaliteacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
39
Image 9 Emplois
B Exercices
1 Exercice Lire lUML [15 min]
Tennis Le scheacutema suivant repreacutesente les rencontres lors dun tournoi de tennis Quelles sont les assertions vraies selon ce scheacutema
Image 10
On peut jouer des matchs de double
Un joueur peut gagner un match sans y avoir participeacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
40
Il peut y avoir deux matchs sur le mecircme terrain agrave la mecircme heure
Connaissant un joueur on peut savoir sur quels terrains il a joueacute
Journal Voici le scheacutema conceptuel du systegraveme dinformation (tregraves simplifieacute) dun quotidien Quelles sont les assertions vraies selon ce scheacutema
Image 11
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
41
Un article peut ecirctre reacutedigeacute par plusieurs journalistes
Un article peut ecirctre publieacute plusieurs fois dans le mecircme journal
Un article peut ecirctre publieacute dans un journal par un journaliste qui ne travaille pas pour ce
journal
Il peut y avoir plusieurs articles sur le mecircme sujet
Un journaliste peut interviewer une personnaliteacute sans faire darticle agrave ce propos
Logistique Une socieacuteteacute de transport routier veut installer un systegraveme dinformation pour rendre plus efficace sa logistique Embaucheacute au service informatique de cette compagnie vous ecirctes donc chargeacute de reprendre le travail deacutejagrave effectueacute (cest agrave dire le scheacutema suivant)
Quelles sont les assertions vraies selon ce scheacutema
Image 12
Un conducteur peut conduire plusieurs camions
Un conducteur peut conduire un camion sans y ecirctre autoriseacute
Il peut y avoir plusieurs conducteurs pour le mecircme camion
Un conducteur peut livrer sa propre ville
2 Gestion dune coopeacuterative viticole
[20 minutes] Cet exercice a eacuteteacute inspireacute par Bases de donneacutees objet et relationnel [Gardarin99]
On considegravere une base Coopeacuterative qui possegravede les caracteacuteristiques suivantes
Un vin est caracteacuteriseacute par un numeacutero entier unique nv un cru une anneacutee de production et un degreacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
42
Un viticulteur est caracteacuteriseacute par un numeacutero entier unique nvt un nom et une ville Un viticulteur produit un ou plusieurs vins et reacuteciproquement un vin est produit par un ou plusieurs
producteurs (eacuteventuellement aucun)
Les buveurs sont caracteacuteriseacutes par un numeacutero de buveur nb un nom preacutenom et une adresse (limiteacutee agrave
la ville pour simplifier)
Un buveur consomme des vins et peut passer des commandes pour acheter des vins
Question 1
Lister tous les types dobjet agrave consideacuterer les attributs associeacutes et les domaines de valeurs de ces attributs
Repeacuterer les eacuteventuelles cleacutes
Question 2
Lister toutes les associations agrave consideacuterer et indiquer leurs cardinaliteacutes
Question 3
Donner le diagramme UML de cette situation
3 Cours et intervenants
[20 min] On souhaite reacutealiser une base de donneacutees pour geacuterer les cours dispenseacutes dans une eacutecole dingeacutenieur ainsi
que les personnes qui interviennent dans ces cours
Chaque cours est identifieacute par une anneacutee et un numeacutero Chaque cours a donc un numeacutero unique localement
agrave chaque anneacutee Un cours possegravede un titre et un type (C pour Cours TD ou TP) Un cours possegravede
eacutegalement une date de deacutebut et une date de fin qui est toujours de 5 jours apregraves la date de deacutebut
Chaque intervenant est identifieacute par son nom (deux intervenants ne peuvent pas avoir le mecircme nom) Il a un
preacutenom un bureau un ou plusieurs numeacuteros de teacuteleacutephones (jusquagrave trois numeacuteros) et des speacutecialiteacutes Un
bureau est deacutefini par un centre (R pour Royallieu BF pour Benjamin Franklin et PG pour Pierre Guillaumat)
un bacirctiment (une lettre de A agrave Z) et un numeacutero (infeacuterieur agrave 1000) Les speacutecialiteacutes sont des couples de chaicircnes
de caractegraveres deacutesignant un domaine (par exemple BD) et une speacutecialiteacute (par exemple SGBDRO)
Chaque cours est donneacute par un unique intervenant
Voici un exemple Le cours Machines universelles ndeg21 de lanneacutee 2014 est donneacute par Alan Turing entre le
05012014 et le 10012014 Cest un cours de type C Alan Turing a le bureau 666 au bacirctiment X de PG Il
a les numeacuteros de teacuteleacutephone 0666666666 et 0766666666 Il possegravede les speacutecialiteacutes suivantes
Domaine Matheacutematique Speacutecialiteacute Cryptographie
Domaine Informatique Speacutecialiteacute Algorithmie
Domaine Informatique Speacutecialiteacute Intelligence Artificielle
Question
Reacutealiser le modegravele UML de la base de donneacutees Preacuteciser les cleacutes et les types des attributs
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
43
4 Gestion du personnel
[30 minutes] Le service de gestion du personnel dune entreprise deacutesire seacutequiper dun outil lui permettant de geacuterer
informatiquement ses employeacutes leurs salaires et leurs congeacutes Les speacutecifications suivantes ont pu ecirctre mises
en exergue par une analyse des besoins reacutealiseacutee aupregraves des utilisateurs du service du personnel
Geacuteneacuteraliteacutes
tout employeacute est identifieacute par un nom un preacutenom et une date de naissance
tout employeacute remplit une fonction et appartient agrave un service
pour chaque employeacute on gegravere la date dembauche et la quotiteacute (cest agrave dire le pourcentage de temps
travailleacute par rapport au temps plein en cas de travail agrave temps partiel)
Gestion des salaires
pour chaque employeacute on gegravere lhistorique de ses salaires dans lentreprise chaque salaire eacutetant affecteacute
agrave une peacuteriode de temps
un salaire est composeacute dun salaire brut de charges patronales et de charges salariales
on cherchera agrave partir des ces donneacutees agrave obtenir eacutegalement le salaire chargeacute (brut + charges patronales)
et le salaire net (brut - charges salariales) et ce en particulier pour le salaire en cours (celui que
touche actuellement le salarieacute)
Gestion des congeacutes
pour chaque employeacute on meacutemorise chaque congeacute pris (posant quun congeacute concerne toujours une ou
plusieurs journeacutees entiegraveres)
chaque employeacute a le droit aux jours de congeacutes suivants
- 25 jours (pour une quotiteacute de 1) et 25 x quotiteacute sinon - chaque fonction ouvre les droits agrave un certain nombre de jours de RTT - chaque service ouvre les droits agrave un certain nombre de jours de RTT - chaque tranche de 5 ans passeacutes dans lentreprise donne droit agrave 1 jour suppleacutementaire - les employeacutes de plus de 40 ans ont un jour suppleacutementaire et ceux de plus de 50 ans deux
pour chaque employeacute on cherchera agrave connaicirctre le nombre total de jours de congeacutes autoriseacutes le nombre
de jours pris et le nombre de jours restants sur lanneacutee en cours
Question
Reacutealiser le diagramme de classes permettant de modeacuteliser ce problegraveme
44
III - La modeacutelisation logique
relationnelle
A Cours
Le modegravele relationnel est aux fondements des SGBDR Il a eacuteteacute et continue decirctre le modegravele theacuteorique
dominant pour la repreacutesentation logique des base de donneacutees mecircme si le mouvement NoSQL propose des
alternatives
Le modegravele relationnel permet de reformuler le modegravele conceptuel dans un formalisme - le tableau - beaucoup
plus proche de limpleacutementation informatique bien quencore indeacutependant dune solution technologique
particuliegravere
1 Introduction au modegravele relationnel
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
III
La modeacutelisation logique relationnelle
45
a) Niveau logique Le niveau logique est le lien entre le niveau conceptuel et limpleacutementation effective de lapplication Le modegravele
conceptuel eacutetant un modegravele formel le modegravele logique a pour vocation decirctre eacutegalement un modegravele formel
mais speacutecifiant non plus la reacutealiteacute existante ou rechercheacutee comme le modegravele conceptuel mais les donneacutees
telles quelles vont exister dans lapplication informatique
Pour assumer cette fonction le modegravele relationnel [Codd70] sest imposeacute en reacuteaction aux insuffisances des
modegraveles anteacuterieurs les modegraveles hieacuterarchique et reacuteseau et de part la puissance de ses fondements
matheacutematiques Encore aujourdhui dominant le modegravele relationnel est un fondement indispensable agrave la
conception de bases de donneacutees
Ratptpel
Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
b) Deacutefinition du modegravele relationnel
Introduction
Le modegravele relationnel a eacuteteacute introduit par Codd [Codd70] en 1970 au laboratoire de recherche dIBM de San
Joseacute Il sagit dun modegravele simple et puissant agrave la base de la majoriteacute des bases de donneacutees encore aujourdhui
Les objectifs du modegravele relationnel formuleacutes par Codd sont les suivants
Assurer lindeacutependance des applications et de la repreacutesentation interne des donneacutees
Geacuterer les problegravemes de coheacuterence et de redondance des donneacutees
Utiliser des langages de donneacutees baseacutes sur des theacuteories solides
Deacutefinition Modegravele relationnel
On appelle modegravele relationnel un ensemble de concepts permettant de formaliser logiquement la description
darticles de fichiers plats indeacutependamment de la faccedilon dont ils sont physiquement stockeacutes dans une meacutemoire
numeacuterique
Le modegravele relationnel inclut des concepts pour la description de donneacutees ainsi que des concepts pour la
manipulation de donneacutees
Fondamental Repreacutesenter le monde en tables
Le modegravele relationnel permet de repreacutesenter les donneacutees que lon va geacuterer agrave laide dun tregraves petit
nombre de concepts tregraves simples
Les relations ou tables des lignes et des colonnes
Les domaines de valeurs chaque case dune table prend une unique valeur dans un
domaine preacute-deacutefini
Les cleacutes il existe des cases dont les valeurs doivent ecirctre uniques et non nulles
Les cleacutes eacutetrangegraveres il existe des cases qui doivent prendre une valeur existante dans les
cases dune autre table
La modeacutelisation logique relationnelle
46
Comtpleacutement Extension du modegravele relationnel
Le modegravele relationnel est un standard normaliseacute par lISO agrave travers son langage le SQL Il se veut neacuteanmoins
degraves lorigine extensible pour permettre de geacuterer des donneacutees plus complexes que les donneacutees tabulaires Le
modegravele relationnel-objet est neacute de cette extension
2 Les concepts fondamentaux du modegravele relationnel
atributs enregistrement domaine
a) Domaine
Deacutefinition Domaine
Ensemble caracteacuteriseacute par un nom dans lequel des donneacutees peuvent prendre leurs valeurs
Remarque Un domaine peut-ecirctre deacutefini en intension (cest agrave dire en deacutefinissant les proprieacuteteacutes caracteacuteristiques des
valeurs du domaine on parle aussi de compreacutehension) ou en extension (cest agrave dire en eacutenumeacuterant toutes
les valeurs du domaine)
Exemtple Domaines deacutefinis en intension
Tous les entiers
Les reacuteels infeacuterieur agrave 5
Les booleacuteen (vrai ou faux)
Toutes les chaicircnes de 1 agrave 255 caractegraveres
Les valeurs moneacutetaires deacutefinie comme des deacutecimaux avec deux chiffres apregraves la virgule
Les dates deacutefinies comme des chaicircnes de 10 caractegraveres comprenant des chiffres et des tirets selon le
patron 00-00-0000
Les salaires deacutefinis comme des valeurs moneacutetaires compris entre 15000 et 100000
Exemtple Domaines deacutefinis en extension
Couleur Bleu Vert Rouge Jaune Blanc Noir
SGBD Hieacuterarchique Reacuteseau Relationnel Objet Relationnel-Objet
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
La modeacutelisation logique relationnelle
47
b) Exercice Indiquez quelle deacutefinition et quel exemple correspondent respectivement aux mots intension et extension
1 - Le domaine des couleurs
2 - Eacutenonciation exhaustive de lensemble des objets du domaine
3 - bleu rouge vert
4 - Explicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa compreacutehension
abstraite geacuteneacuterale)
Intension Extension
c) Atribut et enregistrement
Deacutefinition Atribut
On appelle attribut dune relation une colonne de cette relation Un attribut est caracteacuteriseacute par un nom et un
domaine dans lequel il prend ses valeurs
Synonymes Champs Proprieacuteteacute Colonne
Deacutefinition Enregistrement
On appelle enregistrement dune relation une ligne de cette relation Un enregistrement prend une valeur
pour chaque attribut de la relation
Synonymes Tuple N-uplet Vecteur Ligne
La modeacutelisation logique relationnelle
48
Exemtple
A B
1 1
1 2
2 2
Tableau 5 Relation R
La relation R comporte les deux attributs A et B et les trois enregistrements lt11gt lt12gt et lt22gt
Remarque Atribut domaine ordre
Un attribut se distingue dun domaine car il peut ne comporter que certaines valeurs de ce domaine
Les colonnes de la relation ne sont pas ordonneacutees et elles ne sont donc repeacutereacutees que par le nom de lattribut
Remarque Valeur nulle
Un enregistrement peut ne pas avoir de valeur pour certains attributs de la relation parce que cette valeur
est inconnue ou inapplicable sa valeur est alors null
d) Exemple La relation Vol
Exemtple
Numero Compagnie Avion Deacutepart Arriveacutee Date
AF3245 Air France 747 Paris Oulan Bator 01shy08shy2002
AF6767 Air France A320 Paris Toulouse 30shy07shy2002
KLM234 KML 727 Paris Amsterdam 31shy07shy2002
Tableau 6 Relation Vol
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel
Objectifs
Connaicirctre les notions de cleacutes candidates naturelles artificielles primaire eacutetrangegravere
Aborder le principe deacuteclatement des relations et de nonredondance
La modeacutelisation logique relationnelle
49
a) Cleacute
Deacutefinition Cleacute
Une cleacute est un groupe dattributs minimum qui permet didentifier de faccedilon univoque un tuple dans une
relation
Fondamental
Toute relation doit comporter au moins une cleacute ce qui implique quune relation ne peut pas
contenir deux tuples identiques
Atention Atributs de cleacutes unique et non null Afin decirctre deacuteterminants pour lidentification dun enregistrement tous les attributs dune cleacute
doivent ecirctre valueacutes cest-agrave-dire quaucun ne peut avoir de valeur null Dire quun groupe
dattribut est une cleacute eacutequivaut agrave dire quil est unique et non null
Exemtple Numeacutero deacutetudiant
Le numeacutero deacutetudiant dune relation Etudiant est une bonne cleacute car il y aura systeacutematiquement une
valeur non nulle
Le groupe dattributs (nom preacutenom) dune relation Etudiant est en geacuteneacuteral une mauvaise cleacute car les
homonymes existent
b) Deacuteterminer les cleacutes
Deacutetermination dune cleacute
Deacutefinir un groupe dattributs comme eacutetant une cleacute neacutecessite une reacuteflexion seacutemantique sur les donneacutees
composant ces attributs afin de sassurer de leur uniciteacute
Fondamental
La deacutefinition des cleacutes est un acte de modeacutelisation elle ne renvoie pas donc pas agrave une veacuteriteacute
intangible mais agrave la reacutealiteacute telle quelle est repreacutesenteacutee dans le modegravele que lon eacutelabore
Exemtple
Lattribut numeacutero de seacutecuriteacute sociale dune relation personne peut paraicirctre une bonne cleacute a priori car son
uniciteacute est assureacutee Mais tout le monde nen dispose pas forceacutement (les enfants des eacutetrangers) donc ce nest
une cleacute que si lon considegravere des personnes affilieacutees agrave la seacutecuriteacute sociale
c) Cleacute primaire et cleacutes candidates
Deacutefinition Cleacute tprimaire
Si plusieurs cleacutes existent dans une relation on en choisit une parmi celles-ci Cette cleacute est appeleacutee cleacute
primaire
La modeacutelisation logique relationnelle
50
La cleacute primaire est geacuteneacuteralement choisie de faccedilon agrave ce quelle soit la plus simple cest agrave dire portant sur le
moins dattributs et sur les attributs de domaine les plus basiques (entiers ou chaicircnes courtes typiquement)
Deacutefinition Cleacutes candidates
On appelle cleacutes candidates lensemble des cleacutes dune relation qui nont pas eacuteteacute choisies comme cleacute primaire
(elles eacutetaient candidates agrave cette fonction)
d) Cleacute artificielle
Deacutefinition Cleacute artificielle
Sil est impossible de trouver une cleacute primaire ou que les cleacutes candidates sont trop complexes il est possible
de faire appel agrave une cleacute artificielle Une cleacute artificielle est un attribut suppleacutementaire ajouteacute au scheacutema de
la relation qui nest lieacute agrave aucune signification et qui sert uniquement agrave identifier de faccedilon unique les
enregistrements etou agrave simplifier les reacutefeacuterences de cleacutes eacutetrangegraveres
Deacutefinition Cleacute signifiante
Une cleacute est signifiante si elle nest pas artificielle
Synonyme Cleacute naturelle
Atention Cleacute artificielle et niveau logique
Au niveau du modegravele logique il faut eacuteviter la simpliciteacute consistant agrave identifier toutes les relations
avec des cleacutes artificielles et ne reacuteserver cet usage quaux cas particuliers
Conseil
1 Si au moins une cleacute naturelle composeacutee dun seul attribut existe en choisir une parmi celles-ci comme
cleacute primaire 2 Sinon choisir une cleacute naturelle composeacutee de plusieurs attributs si elle ne pose pas de problegraveme identifieacute 3 Toujours justifier lemploi dune cleacute artificielle (au niveau logique uniquement pour des raisons de
complexiteacute du modegravele les questions de performance sont eacutetudieacutees au niveau physique)
RemarqueCleacute artificielle et niveau tphysique eacutevolutiviteacute maintenance et tperformance
Au niveau de limpleacutementation physique par contre il est courant que des cleacutes artificielles soient utiliseacutees de
faccedilon systeacutematique
Du point de vue de leacutevolutiviteacute de la BD il existe toujours un risque quune cleacute nonartificielle perde
sa proprieacuteteacute duniciteacute ou de non-nulliteacute
Du point de vue de la maintenance de la BD il existe toujours un risque quune cleacute non-artificielle
voit sa valeur modifieacutee et dans ce cas la reacutepercution de ce changement pour mettre agrave jour toutes les
reacutefeacuterences peut poser problegraveme
Du point de vue de la performance de la BD les cleacutes non-artificielles ne sont pas en geacuteneacuteral optimiseacutees
en terme de type et de taille et donc peuvent limiter les performances dans le cadre des jointures
Preacutecisons neacuteanmoins quinversement les cleacutes artificielles ont pour conseacutequence de systeacutematiser des
jointures qui auraient pu ecirctre eacuteviteacutees avec des cleacutes primaires signifiantes
La modeacutelisation logique relationnelle
51
Exemtple Problegraveme deacutevolutiviteacute tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD franccedilaise elle ne permettra pas dentrer
un individu non-franccedilais issu dun pays ne disposant pas dun tel numeacutero
Exemtple Problegraveme de maintenance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD centrale dont les donneacutees sont exploiteacutees
par dautres tables dautres BD qui viennent piocher dans cette BD pour leurs propres usages sans que la
BD centrale ne connaisse ses clients Soit une erreur dans la saisie dun numeacutero de seacutecuriteacute sociale dans la
BD centrale si ce numeacutero est corrigeacute il faudrait (ce qui nest pas possible dans notre cas) impeacuterativement en
avertir toutes les bases utilisatrices pour quelles mettent agrave jour leurs reacutefeacuterences
Exemtple Problegraveme de tperformance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table comptant un million denregistrements ce numeacutero
est geacuteneacuteralement un nombre agrave 13 chiffres ou une chaicircne agrave 13 caractegraveres ce qui dans les deux cas est supeacuterieur
au nombre agrave 7 chiffres suffisant pour identifier tous les individus de la BD Les performances seront donc
toujours moins bonnes lors des jointures si une cleacute prend deux fois plus de place en meacutemoire que son
optimum Mais ajoutons que cette perte de performance na pas toujours de conseacutequence sur la reacutealiteacute
perceptible par les utilisateurs de la BD
Inversement soit une cleacute artificielle la cleacute primaire dune table T1 par ailleurs reacutefeacuterenceacutee par une autre table
T2 Soit le numeacutero de seacutecuriteacute sociale un attribut cleacute de T1 Si lon veut par requecircte disposer des informations
de T2 ainsi que du numeacutero de seacutecuriteacute sociale de T1 alors il faudra faire une jointure tandis que si ce numeacutero
signifiant avait eacuteteacute choisi comme cleacute primaire cela naurait pas eacuteteacute neacutecessaire
La modeacutelisation logique relationnelle
52
e) Cleacute eacutetrangegravere
Deacutefinition Cleacute eacutetrangegravere
Une cleacute eacutetrangegravere est un attribut ou un groupe dattributs dune relation R1 devant apparaicirctre comme cleacute
primaire dans une relation R2 afin de mateacuterialiser une reacutefeacuterence entre les tuples de R1 et les tuples de R2
Une cleacute eacutetrangegravere dun tuple reacutefeacuterence une cleacute primaire dun autre tuple
Atention
Seule une cleacute primaire peut ecirctre reacutefeacuterenceacutee par une cleacute eacutetrangegravere cest mecircme le seule fonction
de la cleacute primaire ecirctre la cleacute qui peut ecirctre reacutefeacuterenceacutee par les cleacutes eacutetrangegraveres
Deacutefinition Contrainte dinteacutegriteacute reacutefeacuterentielle
Une cleacute eacutetrangegravere respecte la contrainte dinteacutegriteacute reacutefeacuterentielle si sa valeur est effectivement existante dans
la cleacute primaire dun tuple de la relation reacutefeacuterenceacutee ou si sa valeur est null
Une cleacute eacutetrangegravere qui ne respecte pas la contrainte dinteacutegriteacute reacutefeacuterentielle exprime un lien vers un tuple qui
nexiste pas et donc nest pas coheacuterente
f) Reacutefeacuterence entre relations Le modegravele relationnel a pour objectif la structuration de donneacutees selon des relations Lenjeu est de parvenir
agrave traduire un modegravele conceptuel en modegravele logique relationnel Or il ny a pas de notion dassociation en
relationnel donc il faudra pouvoir traduire les associations avec les concepts dont on dispose relation cleacute
cleacute eacutetrangegravere
Afin de repreacutesenter des reacutefeacuterences entre relations dans un modegravele relationnel la seule solution est de stocker
linformation dans une relation et donc que certains attributs dune relation servent agrave pointer sur dautres
relations
Atention
Il ny a pas vraiment de reacutefeacuterence ou de lien en relationnel puisque nous ne disposons que de
tables de cleacutes de cleacutes eacutetrangegravere et de valeurs
On va donc devoir se servir de ces outils pour mateacuterialiser une notion de reacutefeacuterence
Meacutethode Reacutefeacuterence
La reacutefeacuterence entre deux tuples T1 et T2 de deux relations diffeacuterentes est exprimable par une valeur identique
entre une cleacute eacutetrangegravere du tuple T1 et la cleacute primaire de lautre tuple T2 Synonyme Lien Exemtple
R1 R2 a1 a2=gtR2 b1 b2
La modeacutelisation logique relationnelle
53
F
Image 13
Lattribut a2 de la relation R1 reacutefeacuterence lattribut b1 de la relation R2 car a2 est une cleacute eacutetrangegravere de R1 vers
R2 (b1 est la cleacute primaire de R2)
Ici on a donc par exemple les tuples identifieacutes par B et C de R1 qui reacutefeacuterencent le tuple identifieacute par 1 dans
R2
g) Scheacutema relationnel
Deacutefinition Scheacutema dune relation
Le scheacutema dune relation deacutefinit cette relation en intension Il est composeacute
du nom de la relation
de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs
de la cleacute primaire
des cleacutes eacutetrangegraveres
des cleacutes candidates
Deacutefinition Scheacutema relationnel dune base de donneacutee
Le scheacutema relationnel dune BD est la deacutefinition en intension de cette BD (par opposition agrave linstance de la
BD qui est une extension de la BD) Il est composeacute de lensemble des scheacutemas de chaque relation de la BD
Syntaxe Relation
Relation (Attribut1Domaine1 Attribut2Domaine2 AttributNDomaineN) 1
La relation Relation contient N attributs chacun deacutefini sur son domaine
Syntaxe Cleacute tprimaire
Relation (Attribut1Domaine1 AttributMDomaineM AttributNDomaineN)
1
La cleacute de la relation Relation est composeacutee des attributs Attribut1 agrave AttributM (attribut preacuteceacutedeacutes de ou
bien souligneacutes)
En geacuteneacuteral on note la cleacute primaire en premier dans la relation
Syntaxe Cleacute eacutetrangegravere
Relation1 ( AttributM=gtRelation2 AttributN=gtRelation2) 1
La relation Relation1 comporte une cleacute eacutetrangegravere (composeacutee des attributs AttributM agrave AttributN)
reacutefeacuterenccedilant la cleacute primaire de Relation2 Bien sucircr il peut exister plusieurs cleacutes eacutetrangegraveres vers plusieurs
La modeacutelisation logique relationnelle
54
relations distinctes Une cleacute eacutetrangegravere et sa cleacute primaire reacutefeacuterenceacutee sont toujours composeacutees du mecircme nombre
dattributs Il nest pas neacutecessaire de preacuteciser les domaines des attributs appartenant agrave la cleacute eacutetrangegravere car ce
sont forceacutement les mecircmes que ceux de la cleacute primaire reacutefeacuterenceacutee Il nest pas non plus en geacuteneacuteral neacutecessaire
de preacuteciser dans le scheacutema relationnel quels attributs de la cleacute eacutetrangegravere reacutefeacuterencent quels attributs de la cleacute
primaire (cela est geacuteneacuteralement eacutevident) mais il est possible de la faire on notant Attribut=gtRelationAttribut
En geacuteneacuteral on note les cleacutes eacutetrangegraveres en dernier dans la relation sauf pour les cleacutes eacutetrangegraveres qui font partie
de la cleacute primaire (cleacutes identifiantes)
Syntaxe Cleacute candidates
Relation1 (AttributMDomaineM ) avec AttributM cleacute 1
Les cleacutes candidates doivent ecirctre noteacutees sur le scheacutema relationnel
Sil ny a quune ou deux cleacutes candidates les noter directement apregraves la deacutefinition de la relation
Sil y a beaucoup de cleacutes pour ne pas trop alourdir la notation renvoyer agrave un tableau agrave part
Atention Cleacutes candidates et cleacute primaire
La notation R(ab) signifie toujours que R a comme cleacute primaire (ab) et non que R aurait
deux cleacutes a et b (dont on ne saurait pas laquelle est primaire)
La notation R(ab) avec b cleacute signifie bien que a et b sont deux cleacutes de R et que a est primaire
Il ne faut pas confondre une cleacute composeacutee de deux attributs avec deux cleacutes
h) Exemple de scheacutema relationnel pour la geacuteographie
Exemtple
Personne (NumeroEntier NomChaicircne PreacutenomChaicircne LieuNaissance=gtVille) Pays (NomChaicircne PopulationEntier SuperficieReacuteel Dirigeant=gtPersonne) Reacutegion (Pays=gtPays NomChaicircne Superficie Dirigeant=gtPersonne) Ville (CodePostalCP NomChaicircne Pays=gtReacutegionPays Reacutegion=gtReacutegionNom Dirigeant=gtPersonne)
1 2 3 4
Exemtple Exemtple dinstance de la base de donneacutees
Personne Num ero Nom Prenom LieuNaissance
1 Durand Pierre 60200 2 Dupont Marie 60200
Pays
Nom Population Superficie Dirig eant
France 60 50000101 2 Allemagne 80 60000023564 2 Espagne 40 3500001 1
La modeacutelisation logique relationnelle
55
Reacutegion Pays Nom Superficie Dirig eant France Picardie 50 1 Espagne Picardie 40 1 France Normandie 30 2
Ville CodePostal Nom Pays Reacuteg ion Dirig eant F60200 Compiegravegne France Picardie 1
F60300 Senlis France Picardie 2 F60301 Senlis France Picardie 2 E8000 Senlis Espagne Picardie 2
Le scheacutema relationnel preacuteceacutedent deacutecrit
Des personnes
Elles sont identifieacutees par un numeacutero qui est en fait une cleacute artificielle En effet mecircme une cleacute composeacutee
de tous les attributs (Nom Preacutenom LieuNaissance) laisse une possibiliteacute de doublons (homonymes
neacutes dans la mecircme ville)
La cleacute eacutetrangegravere LieuNaissance fait reacutefeacuterence agrave la relation Ville et plus preacuteciseacutement agrave sa cleacute primaire
CodePostal ce qui est est laisseacute implicite car eacutevident
Des pays
Ils sont identifieacutes par leur nom puisque deux pays ne peuvent avoir le mecircme nom Les pays sont
dirigeacutes par des personnes et ce lien est mateacuterialiseacute par la cleacute eacutetrangegravere Dirigeant
Des reacutegions
Elles font partie dun pays et ont un nom Deux reacutegions de pays diffeacuterents pouvant avoir le mecircme
nom il faut utiliser une cleacute primaire composeacutee agrave la fois du nom de la reacutegion et du nom du pays qui
est une cleacute eacutetrangegravere (le nom est appeleacute cleacute locale car il nest pas suffisant pour identifier un tuple de
la relation Reacutegion et la cleacute eacutetrangegravere vers la relation Pays est appeleacutee cleacute identifiante)
Des villes
Elles sont identifieacute par un code postal qui est unique dans le monde (en utilisant le preacutefixe de pays de
type F-60200) Ce code postal a pour domaine CP qui est une chaicircne composeacutee dune ou deux
lettres dun tiret puis dune seacuterie de chiffres
Le lien dappartenance entre une ville et une reacutegion est mateacuterialiseacute par la cleacute eacutetrangegravere composeacutee des
deux attributs Pays et Reacutegion Cette cleacute reacutefeacuterence la cleacute primaire de la relation Reacutegion eacutegalement composeacutee
de deux attributs Pour clairement expliciter les reacutefeacuterences (bien que seacutemantiquement la deacutenomination des
attributs ne laisse pas de place au doute) on utilise la syntaxe ReacutegionPays et ReacutegionNom
4 Synthegravese
a) Synthegravese Scheacutema relationnel
Scheacutema relationnel
Un scheacutema relationnel permet une formalisation dun modegravele logique
Relation ou table
La modeacutelisation logique relationnelle
56
Sous-ensemble dun produit carteacutesien -
Attribut ou colonne Prend ses valeurs dans un domaine
- Enregistrement ou ligne Pose une valeur (y compris la valeur null) pour chaque attribut
Cleacute
Groupe dattributs ayant un rocircle didentification au sein dun enregistrement - Cleacute candidate
Identifie de faccedilon unique un enregistrement - Cleacute primaire
Cleacute candidate choisie pour repreacutesenter un enregistrement pour sa faciliteacute dusage - Cleacute eacutetrangegravere
Reacutefeacuterence la cleacute primaire dun tuple dune autre relation pour exprimer un lien
b) Bibliographie commenteacutee sur le modegravele relationnel
Comtpleacutement Synthegraveses
SQL2 SQL3 applications agrave Oracle [Delmal01]
Une deacutefinition syntheacutetique et efficace du domaine relationnel relation domaine attribut cleacute inteacutegriteacute
opeacuterateurs (Premier chapitre)
5 Deacutefinition formelle dune relation
a) Produit carteacutesien
Deacutefinition Produit carteacutesien
Le produit carteacutesien noteacute X des domaines D1 D2 Dn noteacute D1 X D2 X X Dn est lensemble des
tuples (ou n-uplets ou vecteurs) ltV1V2Vngt tel que Vi est une valeur de Di et tel que toutes les
combinaisons de valeurs possibles sont exprimeacutees
Exemtple
D1 = A B C D2 = 1 2 3 D1 X D2 = ltA1gt ltA2gt ltA3gt ltB1gt ltB2gt ltB3gt ltC1gt ltC2gt ltC3gt
1 2 3
b) Relation
Deacutefinition Relation
Une relation sur les domaines D1 D2 Dn est un sous-ensemble du produit carteacutesien D1 X D2 X X Dn
Une relation est caracteacuteriseacutee par un nom Synonymes Table tableau
Syntaxe
La modeacutelisation logique relationnelle
57
On peut repreacutesenter la relation R sur les domaine D1 Dn par une table comportant une colonne pour
chaque domaine et une ligne pour chaque tuple de la relation
D1 Dn
V1 Vn
V1 Vn
Tableau 7 Relation R
Remarque
Une relation est deacutefinie en extension par leacutenumeacuteration des tuples la composant
B Exercices
1 Lab I-
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Dessiner des relations instancieacutees (en extension donc) remplies avec les donneacutees fournies en exemple
La modeacutelisation logique relationnelle
58
Question 2
Eacutecrivez le scheacutema relationnel (deacutefinition en intension donc) permettant de repreacutesenter une base de donneacutees
relationnelle pour le laboratoire
59
IV - Introduction au
passage
UMLRelationnel classes et
associations
A Cours
Afin de pouvoir impleacutementer une base de donneacutees il faut pouvoir traduire le modegravele conceptuel en modegravele
logique Cela signifie quil faut pouvoir convertir un modegravele UML en modegravele relationnel Les modegraveles
conceptuels sont suffisamment formels pour que ce passage soit systeacutematiseacute dans la plupart des cas
1 Transformation des classes et atributs
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
IV
Introduction au passage UML-Relationnel classes et associations
60
a) Transformation des classes
Meacutethode Classe
Pour chaque classe non abstraite
on creacutee une relation dont le scheacutema est celui de la classe
la cleacute primaire de cette relation est une des cleacutes de la classe
Classe1
Graphique 2 Classe
Classe1()
Remarque
Les classes abstraites sont ignoreacutees agrave ce stade et neacutetant pas instanciables ne donnent geacuteneacuteralement pas
lieu agrave la creacuteation de relation
b) Transformation des atributs
Meacutethode Atributs simtples
Pour chaque attribut eacuteleacutementaire et monovalueacute dune
classe on creacutee un attribut correspondant
Classe1
a key
b
Graphique 3 Attribut
Classe1(ab)
Meacutethode Atributs comtposites
Pour chaque attribut composite comprenant N sous-attributs dune classe
on creacutee N attributs correspondants
dont les noms sont la concateacutenation du nom de lattribut composite avec celui du sous attribut
Classe1
a key b -b1 -b2
Introduction au passage UML-Relationnel classes et associations
61
Graphique 4 Attribut composeacute
Classe1(ab_b1b_b2)
Meacutethode Atributs multivalueacutes
Pour chaque attribut multivalueacute b dune classe C
on creacutee une nouvelle relation RB
qui comprend un attribut monovalueacute correspondant agrave b
plus la cleacute de la relation repreacutesentant C
la cleacute de RB est la concateacutenation des deux attributs
Classe1
a key
b[110]
Graphique 5 Attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Meacutethode Atributs multivalueacutes (meacutethode alternative)
Dans le cas ougrave le nombre maximum de b est fini et petit on peut eacutegalement adopter la transformation
suivante
Classe1(ab1b2b3b4b5b6b7b8b9b10)
Si le nombre dattributs est infini (b[1]) cest impossible sil est trop grand ce nest pas souhaitable
Meacutethode Atributs comtposeacutes multivalueacutes
On combine les regravegles eacutenonceacutees pour les attributs composeacutes et pour les attributs multivalueacutes
Classe1
a key b [0N] -b1 -b2
Graphique 6 Attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
Ratptpel Voir aussi
Transformation des compositions - p102
Introduction au passage UML-Relationnel classes et associations
62
c) Transformation des atributs deacuteriveacutes et meacutethodes
Meacutethode Atributs deacuteriveacutes et meacutethodes
On ne repreacutesente pas en geacuteneacuteral les attributs deacuteriveacutes ni les meacutethodes dans le modegravele relationnel ils seront
calculeacutes dynamiquement soit par des proceacutedures internes agrave la BD (proceacutedures stockeacutees) soit par des
proceacutedures au niveau applicatif
Classe1
a key
b
m()
Graphique 7 Attribut deacuteriveacute et meacutethodes
Classe1(a)
Comtpleacutement Atribut deacuteriveacute stockeacutes
On peut deacutecider (pour des raisons de performance essentiellement) de repreacutesenter lattribut deacuteriveacute ou la
meacutethode comme sil sagissait dun attribut simple mais il sera neacutecessaire dans ce cas dajouter des
meacutecanismes de validation de contraintes dynamiques (avec des triggers par exemple) pour assurer que la
valeur stockeacutee eacutevolue en mecircme temps que les attributs sur lesquels le calcul deacuteriveacute porte
Notons quintroduire un attribut deacuteriveacute ou un reacutesultat de meacutethode dans le modegravele relationnel eacutequivaut agrave
introduire de la redondance ce qui est en geacuteneacuteral deacuteconseilleacute et ce qui doit ecirctre dans tous les cas controcircleacute
2 Transformation des associations
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
a) Transformation des associations 1N
Meacutethode
Pour chaque association binaire de type 1N
on ajoute agrave la relation cocircteacute N une cleacute eacutetrangegravere vers la relation cocircteacute 1
Classe1
01 association 0N
Classe2
a key
b c key
d
Graphique 8 Association 1N
Classe1(ab)
Introduction au passage UML-Relationnel classes et associations
63
Classe2(cda=gtClasse1)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations 1N - p103
b) Transformation des associations NM
Meacutethode
Pour chaque association binaire de type MN
on creacutee une nouvelle relation
composeacutee de cleacutes eacutetrangegraveres vers chaque relation associeacutee
et dont la cleacute primaire est la concateacutenation de ces cleacutes eacutetrangegraveres
Graphique 9 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations NM - p104
c) Transformation des associations 11 (approche simplifieacutee)
Meacutethode
La solution la plus simple et la plus geacuteneacuterale pour transformer une association 11 consiste agrave traiter cette
association 11 comme une association 1N puis agrave ajouter une contrainte UNIQUE sur la cleacute eacutetrangegravere pour
limiter la cardinaliteacute maximale agrave 1
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 10 Association 11
Classe1(abc=gtClasse2) avec c UNIQUE
Classe2(cd) ou
Introduction au passage UML-Relationnel classes et associations
64
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE
Remarque
Il existe toujours deux solutions selon que lon choisit une ou lautre relation pour accueillir la cleacute eacutetrangegravere
Selon la cardinaliteacute minimale un des deux choix peut ecirctre plus pertinent
Comtpleacutement
Il est parfois possible de choisir de fusionner les deux classes au sein dune seule relation plutocirct que dopter
pour une cleacute eacutetrangegravere
Comtpleacutement
Transformation des associations 11 (approche geacuteneacuterale) - p105
d) Transformation des classes dassociation
Meacutethode Classe dassociation NM
Graphique 11 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2ef)
Comtpleacutement Classe dassociation 1N
Les attributs de la classe dassociation sont ajouteacutes agrave la relation issue de la classe cocircteacute N
Comtpleacutement Classe dassociation 11
Les attributs de la classe dassociation sont ajouteacutes agrave la relation qui a eacuteteacute choisie pour recevoir la cleacute eacutetrangegravere
Si les deux classes ont eacuteteacute fusionneacutees en une seule relation les attributs sont ajouteacutes agrave celle-ci
a key b
Classe1
c key d
Classe2
0 N 0 N
e f
Cl-A ssoc
Introduction au passage UML-Relationnel classes et associations
65
B Exercices
1 Lab I+
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
Question 3
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 4
Dessiner des tableaux remplis avec les donneacutees fournies en exemple afin de montrer que le modegravele fonctionne
selon le besoin exprimeacute initialement On pourra mettre le premier mot seulement des descriptions pour gagner
du temps
Introduction au passage UML-Relationnel classes et associations
66
2 Usine de production
[30 minutes] Une usine cherche agrave modeacuteliser sa production de veacutehicules et de moteurs
Les veacutehicules sont identifieacutes par un numeacutero dimmatriculation alphanumeacuterique et caracteacuteriseacutes par une
couleur dont la deacutenomination est une chaicircne de caractegraveres Chaque veacutehicule peut comporter un
unique moteur etou un nombre quelconque de pneus
Chaque moteur est monteacute sur un et un seul veacutehicule et est identifieacute par un numeacutero de seacuterie Un moteur
est caracteacuteriseacute par une puissance en chevaux
Tout pneu est monteacute sur un unique veacutehicule et est identifieacute par un numeacutero de seacuterie Sa position est
deacutefinie localement sur ce veacutehicule et par rapport agrave lessieu Dn pour les pneus situeacute sur la droite de
lessieu et Gn pour les pneus situeacutes agrave gauche n repreacutesentant le numeacutero de lessieu (1 pour celui situeacute
devant 2 pour la deuxiegraveme rangeacutee etc) Un pneu est caracteacuteriseacute par un diamegravetre et une largeur en
pouces
Les moteurs les pneus et les veacutehicules sont fabriqueacutes sous une marque Les mecircmes marques peuvent
fabriquer indiffeacuteremment des moteurs des pneus etou des veacutehicules et un veacutehicule dune certaine
marque peut comporter un moteur etou des pneus de marque diffeacuterente
Question 1
Reacutealiser le modegravele UML de ce problegraveme en faisant apparaicirctre les domaines et les cleacutes
Question 2
Reacutealiser le passage au modegravele relationnel en faisant apparaicirctre les cleacutes primaires candidates et eacutetrangegraveres
Question 3
Dessiner les tableaux correspondant aux relations du modegravele Instancier au minimum deux veacutehicules et quatre
marques
Question 4
Donner quatre exemples denregistrements qui seront refuseacutes - eacutetant donneacutees les donneacutees deacutejagrave inseacutereacutees -
pour quatre raisons diffeacuterentes
contrainte de cleacute sur une cleacute primaire
contrainte de cleacute sur une cleacute candidate
contrainte dinteacutegriteacute reacutefeacuterentielle
contrainte de non nulliteacute
67
V - Creacuteation et
alimentation de bases
de donneacutees SQL
A Cours
1 Le langage SQL
Deacutefinition SQL
SQL (pour langage de requecirctes structureacute) est un langage deacuteclaratif destineacute agrave la manipulation de bases de
donneacutees au sein des SGBD et plus particuliegraverement des SGBDR
SQL LDD LCD LMD LCT
SQL est un langage deacuteclaratif il nest donc pas a proprement parleacute un langage de programmation mais plutocirct
une interface standard pour acceacuteder aux bases de donneacutees
Il est composeacute de quatre sous ensembles
Le Langage de Deacutefinition de Donneacutees (LDD ou en anglais DDL Data Definition
Language) pour creacuteer et supprimer des objets dans la base de donneacutees (tables contraintes dinteacutegriteacute
vues etc)
Exemple de commandes CREATE DROP ALTER
Le Langage de Controcircle de Donneacutees (LCD ou en anglais DCL Data Control Language) pour geacuterer les
droits sur les objets de la base (creacuteation des utilisateurs et affectation de leurs droits)
Exemple de commandes GRANT REVOKE
V
Creacuteation et alimentation de bases de donneacutees SQL
68
Le Langage de Manipulation de Donneacutees (LMD ou en anglais DML Data Manipulation
Language) pour la recherche linsertion la mise agrave jour et la suppression de donneacutees Le LMD est baseacute
sur les opeacuterateurs relationnels auxquels sont ajouteacutes des fonctions de calcul dagreacutegats et des
instructions pour reacutealiser les opeacuterations dinsertion mise agrave jour et suppression
Exemple de commandes INSERT UPDATE DELETE SELECT
Le Langage de Controcircle de Transaction (LCT ou en anglais TCL Transaction Control Language) pour
la gestion des transactions (validation ou annulation de modifications de donneacutees dans la BD)
Exemple de commandes COMMIT ROLLBACK
Fondamental Reacutefeacuterence SQL SQL-99 complete really
Gulutzan and Pelzer 1999 [Gulutzan and Pelzer 1999] httpsmariadbcomkbensql-99)2
Comtpleacutement Origine du SQL
Le modegravele relationnel a eacuteteacute inventeacute par EF Codd (Directeur de recherche du centre IBM de San Joseacute) en
1970 suite agrave quoi de nombreux langages ont fait leur apparition
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel2
IBM SystemR
IBM DB2
Ce sont ces langages qui ont donneacute naissance au standard SQL normaliseacute en 1986 au Eacutetats-Unis par lANSI
pour donner SQL86 (puis au niveau international par lISO en 1987)
Comtpleacutement Versions de SQL
SQL-86 (ou SQL-87) Version dorigine
SQL-89 (ou SQL-1) Ameacuteliorations mineures
SQL-92 (ou SQL-2) Extensions fonctionnelles majeures (types de donneacutees opeacuterations relationnelles
instruction LDD transactions etc
SQL-99 (ou SQL-3) Introduction du PSM (couche proceacutedurale sous forme de proceacutedure stockeacutees)
et du RO
SQL-2003 Extensions XML
SQL-2006 Ameacuteliorations mineures (pour XML notamment)
SQL-2008 Ameacuteliorations mineures (pour le RO notamment)
Remarque Version SQL et imtpleacutementations SGBD
Selon leur niveau dimpleacutementation de SQL les SGBD acceptent ou non certaines fonctions
Certains SGBD ayant entameacute certaines impleacutementations avant leur standardisation deacutefinitive ces
impleacutementations peuvent diffeacuterer de la norme
Creacuteation et alimentation de bases de donneacutees SQL
69
2 Creacuteer des tables en SQL (Langage de Deacutefinition de
Donneacutees)
Le LDD est la partie du langage SQL qui permet de creacuteer de faccedilon deacuteclarative les objets composant une
BD Il permet notamment la deacutefinition des scheacutemas des relations des contraintes dinteacutegriteacute des vues
Rappel Le code SQL peut ecirctre testeacute avec Db Discodbdiscocrztfr
2 - httpsmariadbcomkbensql-99
a) Lab I++
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
70
Question 2
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 3
Creacuteer une base de donneacutees en SQL correspondant au modegravele relationnel
Question 4
Inseacuterer les donneacutees fournies en exemple dans la base de donneacutees
b) Creacuteation de tables
Ratptpel
Quest ce que le SQL
Introduction
La creacuteation de table est le fondement de la creacuteation dune base de donneacutees en SQL
Deacutefinition Creacuteation de table
La creacuteation de table est la deacutefinition dun scheacutema de relation en intension par la speacutecification de tous les
attributs le composant avec leurs domaines respectifs
Syntaxe
CREATE TABLE nom_table ( nom_colonne1 domaine1 nom_colonne2 domaine2 nom_colonneN domaineN )
1 2 3 4 5 6
Exemtple
CREATE TABLE Personne ( Nom VARCHAR(25) Prenom VARCHAR(25) Age NUMERIC(3) )
1 2 3 4 5
Atention Contrainte dinteacutegriteacute
La deacutefinition des types nest pas suffisante pour deacutefinir un scheacutema relationnel il faut lui adjoindre
la deacutefinition de contraintes dinteacutegriteacute qui permette de poser les notions de cleacute dinteacutegriteacute
reacutefeacuterentielle de restriction de domaines etc
Creacuteation et alimentation de bases de donneacutees SQL
71
c) Domaines de donneacutees
Introduction
Un attribut dune relation est deacutefini pour un certain domaine ou type Les types de donneacutees disponibles en
SQL varient dun SGBD agrave lautre on peut neacuteanmoins citer un certain nombre de types standards que lon
retrouve dans tous les SGBD
Fondamental Les types standard
INTEGER ou INT SMALLINT
NUMERIC(X)
DECIMAL(XY) ou NUMERIC(XY)
FLOAT(X) REAL
CHAR(X)
VARCHAR(X)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HHMMSS)
Les tytpes numeacuteriques standard
Les nombres entiers
INTEGER (ou INT) et SMALLINT permettent de coder des entiers sur 4 octets (2147483648 agrave
2147483647) ou 2 octets (-32768 agrave 32767)
Les nombres entiers
NUMERIC(X) deacutesigne un entier de X chiffres au maximum
Les nombres deacutecimaux
DECIMAL(XY) ougrave X et Y sont optionnels et deacutesignent respectivement le nombre de chiffres maximum
pouvant composer le nombre et le nombre de chiffres apregraves la virgule
NUMERIC(XY) est un synonyme standard
Les nombres agrave virgule flottante
FLOAT(X) avec X deacutefinissant la preacutecision (nombre de bits de codage de la mantisse)
REAL est un synonyme standard de FLOAT(24)
Conseil FLOAT versus DECIMAL
Il est conseilleacute dutiliser DECIMAL qui est un nombre exact plutocirct que FLOAT qui est un nombre approximatif
si la preacutecision requise est suffisante FLOAT sera reacuteserveacute typiquement agrave des calculs scientifiques neacutecessitant
un degreacute de preacutecision supeacuterieur
Les tytpes chaicircne de caractegraveres standard
On distingue principalement les types CHAR(X) et VARCHAR(X) ougrave X est obligatoire et deacutesigne la longueur de
la chaicircne
CHAR deacutefinit des chaicircnes de longueur fixe (compleacuteteacutee agrave droites par des espaces si la longueur est
infeacuterieure agrave X)
et VARCHAR des chaicircnes de longueurs variables
Creacuteation et alimentation de bases de donneacutees SQL
72
CHAR et VARCHAR sont geacuteneacuteralement limiteacutes agrave 255 caractegraveres La plupart des SGBD proposent des types tels
que TEXT ou CLOB (Character Long Object) pour repreacutesenter des chaicircnes de caractegraveres longues jusquagrave
65000 caractegraveres par exemple
Les tytpes date standard
Les types date dont introduits avec la norme SQL2 On distingue
DATE qui repreacutesente une date selon un format de type AAAA-MM-JJ
et DATETIME qui repreacutesente une date plus une heure dans un format tel que AAAAMM-JJ HHMMSS
Comtpleacutement Les autres tytpes
En fonction du SGBD il peut exister de nombreux autres types On peut citer par exemple
MONEY pour repreacutesenter des deacutecimaux associeacutes agrave une monnaie
BOOLEAN pour repreacutesenter des booleacuteens
BLOB (pour Binary Long Oject) pour repreacutesenter des donneacutees binaires tels que des documents
multimeacutedia (images bitmap videacuteo etc)
d) La valeur NULL Labsence de valeur repreacutesenteacutee par la valeur NULL est une information fondamentale en SQL quil ne faut
pas confondre avec la chaicircne espace de caractegravere ougrave bien la valeur 0 Il ne sagit pas dun type agrave proprement
parler mais dune valeur possible dans tous les types
Fondamental
Par deacutefaut en SQL NULL fait partie du domaine il faut lexclure explicitement par la clause NOT
NULL apregraves la deacutefinition de type si on ne le souhaite pas Syntaxe
CREATE TABLE nom de table ( 1
CREATE TABLE nom_table ( nom_colonne1 domaine1 NOT NULL
nom_colonne2 domaine2
nom_colonneN domaineN NOT NULL )
2 3 4 5 6 7
e) Contraintes dinteacutegriteacute
Fondamental
PRIMARY KEY (ltliste dattibutsgt)
UNIQUE (ltliste dattibutsgt)
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt)
CHECK (ltconditiongt)
Une contrainte dinteacutegriteacute est une regravegle qui deacutefinit la coheacuterence dune donneacutee ou dun ensemble de donneacutees
de la
Creacuteation et alimentation de bases de donneacutees SQL
73
BD
Il existe deux types de contraintes
sur une colonne unique
ou sur une table lorsque la contrainte porte sur une ou plusieurs colonnes
Les contraintes sont deacutefinies au moment de la creacuteation des tables
Deacutefinition Contraintes dinteacutegriteacute sur une colonne
Les contraintes dinteacutegriteacute sur une colonne sont
PRIMARY KEY deacutefinit lattribut comme la cleacute primaire
UNIQUE interdit que deux tuples de la relation aient la mecircme valeur pour lattribut
REFERENCES ltnom tablegt (ltnom colonnesgt) controcircle linteacutegriteacute reacutefeacuterentielle entre lattribut et la
table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur de lattribut speacutecifieacute dans la condition dans le
cadre dune restriction de domaine
Deacutefinition Contraintes dinteacutegriteacute sur une table
Les contraintes dinteacutegriteacute sur une table sont
PRIMARY KEY (ltliste dattibutsgt) deacutefinit les attributs de la liste comme la cleacute primaire
UNIQUE (ltliste dattibutsgt) interdit que deux tuples de la relation aient les mecircmes valeurs pour
lensemble des attributs de la liste
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt) controcircle linteacutegriteacute
reacutefeacuterentielle entre les attributs de la liste et la table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur des attributs speacutecifieacutes dans la condition dans le
cadre dune restriction de domaine Syntaxe
CREATE TABLE nom de table ( CREATE TABLE nom_table ( nom_colonne1 domaine1 ltcontraintes colonne1gt nom_colonne2 domaine2 ltcontraintes colonne2gt nom_colonneN domaineN ltcontraintes colonneNgt
1 2 3 4 5 6
ltcontraintes de tablegt )
7 8
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) UNIQUE
(Nom Prenom) )
1 2 3 4 5 6 7 8
Remarque Cleacute candidate
La clause UNIQUE NOT NULL sur un attribut ou un groupe dattributs deacutefinit une cleacute candidate non primaire
Creacuteation et alimentation de bases de donneacutees SQL
74
Remarque
Les contraintes sur une colonne et sur une table peuvent ecirctre combineacutees dans la deacutefinition dun mecircme scheacutema
de relation
Remarque
Une contrainte sur une colonne peut toujours ecirctre remplaceacutee par une contrainte sur une table
f) Exemple de contraintes dinteacutegriteacute
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) Codepostal INTEGER(5) Pays VARCHAR(50) UNIQUE (Nom Prenom) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) CHECK (Initiale = LEFT(Pays 1)) PRIMARY KEY (CP Pays) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
Dans la deacutefinition de scheacutema preacuteceacutedente on a poseacute les contraintes suivantes
La cleacute primaire de Personne est NdegSS et la cleacute primaire de Adresse est (CP Pays)
Nom Preacutenom ne peuvent pas ecirctre null et (Nom Preacutenom) est une cleacute
Age doit ecirctre compris entre 18 et 65 et Initiale doit ecirctre la premiegravere lettre de Pays (avec la fonction
LEFT qui renvoie la sous chaicircne agrave gauche de la chaicircne passeacutee en premier argument sur le nombre de
caractegraveres passeacutes en second argument)
Mariage est cleacute eacutetrangegravere vers Personne et (Codepostal Pays) est une cleacute eacutetrangegravere vers Adresse
Exemtple Reacuteeacutecriture avec uniquement des contraintes de table
Creacuteation et alimentation de bases de donneacutees SQL
75
CREATE TABLE Personne ( NdegSS CHAR(13) Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) Mariage CHAR(13) Codepostal INTEGER(5) Pays VARCHAR(50) PRIMARY KEY (NdegSS) UNIQUE (Nom Prenom) CHECK (Age BETWEEN 18 AND 65) FOREIGN KEY (Mariage) REFERENCES Personne(NdegSS) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) PRIMARY KEY (CP Pays) CHECK
(Initiale = LEFT(Pays 1)) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22
Ce scheacutema est strictement le mecircme que le preacuteceacutedent simplement les contraintes ont toutes eacuteteacute reacuteeacutecrites
comme des contraintes de table
g) Exercice Les instructions SQL ci-apregraves ont-elles pu permettre de creacuteer le scheacutema des trois relations instancieacutees ci-dessous
CREATE TABLE A ( A1 CHAR(255) A2 CHAR(255) A3 CHAR(255) A4 CHAR(255) ) CREATE TABLE B ( B1 CHAR(255) B2 CHAR(255) B3 CHAR(255) B4 CHAR(255) B5 CHAR(255) B6 CHAR(255) B7 CHAR(255) ) CREATE TABLE C ( C1 CHAR(255) C2 CHAR(255) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Oui
Non
Creacuteation et alimentation de bases de donneacutees SQL
76
3 Inseacuterer modifier et supprimer des donneacutees en SQL
(Langage de Manipulation de Donneacutees)
Objectifs
Maicirctriser les bases du SQL pour entrer modifier et effacer des donneacutees dans les
tables
a) Exercice Quelle valeur renvoie la derniegravere instruction SQL de la liste ci-dessous
CREATE TABLE t ( a integer b integer c integer)
INSERT INTO t VALUES (0 0 0)
INSERT INTO t VALUES (1 0 0)
INSERT INTO t SELECT FROM t
SELECT sum(a) + count(b) FROM t
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
b) Insertion de donneacutees Le langage SQL fournit des instructions pour ajouter des nouveaux tuples agrave une relation Il offre ainsi une
interface standard pour ajouter des information dans une base de donneacutees
Il existe deux moyens dajouter des donneacutees soit par fourniture directe des valeurs des proprieacuteteacutes du tuple agrave
ajouter soit par seacutelection des tuples agrave ajouter dans une autre relation
Syntaxe Insertion directe de valeurs
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) VALUES (ltListe ordonneacutee
des valeurs agrave affecter aux proprieacuteteacutes speacutecifieacutees cidessusgt) 1 2
Exemtple Insertion directe de valeurs
INSERT INTO Virement (Date Montant Objet) VALUES (14-07-1975 1000 Prime de naissance)
1 2
Syntaxe Insertion de valeurs tpar lintermeacutediaire dune seacutelection
Creacuteation et alimentation de bases de donneacutees SQL
77
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) SELECT 1 2
Linstruction SELECT projetant un nombre de proprieacuteteacutes identiques aux proprieacuteteacutes agrave valoriser
Exemtple Insertion de valeurs tpar lintermeacutediaire dune seacutelection
INSERT INTO Credit (Date Montant Objet) SELECT Date Montant Annulation de deacutebit FROM Debit WHERE DebitDate = 25-12-2001
1 2 3 4
Dans cet exemple tous les deacutebits effectueacutes le 25 deacutecembre 2001 sont re-creacutediteacutes pour le mecircme montant (et
agrave la mecircme date) avec la mention annulation dans lobjet du creacutedit Ceci pourrait typiquement reacutealiseacute en cas
de deacutebits erroneacutes ce jour lagrave
Remarque
Les proprieacuteteacutes non valoriseacutees sont affecteacutees agrave la valeur NULL
Il est possible de ne pas speacutecifier les proprieacuteteacutes agrave valoriser dans ce cas toutes les proprieacuteteacutes de la
relation seront consideacutereacutees dans leur ordre de deacutefinition dans la relation (agrave nutiliser que dans les cas
les plus simples)
c) Mise agrave jour de donneacutees Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation
Syntaxe Mise agrave jour directe de valeurs
1 UPDATE ltNom de la relationgt
2 SET ltListe daffectations Proprieacuteteacute=Valeur Proprieacuteteacute=Valeurgt 3 WHERE ltCondition pour filtrer les tuples agrave mettre agrave jourgt
1 UPDATE r
2 SET a=1 b=x 3 WHERE c=0
Exemtple Mise agrave jour directe de valeurs
UPDATE Compte SET Monnaie=Euro WHERE Monnaie=Franc
1 2 3
Exemtple Mise agrave jour tpar calcul sur lancienne valeur
UPDATE Compte SET Total=Total 655957 WHERE Monnaie=Euro
1 2 3
Creacuteation et alimentation de bases de donneacutees SQL
78
d) Suppression de donneacutees Le langage SQL fournit une instruction pour supprimer des tuples existants dans une relation
Syntaxe
DELETE FROM ltNom de la relationgt WHERE ltCondition pour filtrer les tuples agrave supprimergt
1 2
Exemtple Sutptpression de tous les tutples dune relation
DELETE FROM FaussesFactures 1
Exemtple Sutptpression seacutelective
DELETE FROM FaussesFactures WHERE Auteur=Moi
1 2
4 Supprimer et modifier des tables en SQL (Langage de
Deacutefinition de Donneacutees)
Le LDD permet de creacuteer les objets composant une BD de faccedilon deacuteclarative Il permet notamment la
deacutefinition des scheacutemas des relations la deacutefinition des contraintes dinteacutegriteacute la deacutefinition de vues
relationnelles
a) Suppression dobjets Il est possible de supprimer des objets de la BD tels que les tables ou les vues
Syntaxe
DROP lttype objetgt ltnom objetgt 1
Exemtple
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
79
DROP TABLE Personne DROP VIEW Employe
1 2
b) Modification de tables
Introduction
Linstruction ALTER TABLE permet de modifier la deacutefinition dune table (colonnes ou contraintes) preacutealablement
creacuteeacutee
Cette commande absente de SQL-89 est normaliseacutee dans SQL-92
Syntaxe Ajout de colonne
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de colonnegt
1 2
Syntaxe Sutptpression de colonne
ALTER TABLE ltnom de tablegt DROP ltnom de colonnegt
1 2
Syntaxe Ajout de contrainte
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de contrainte de tablegt
1 2
RemarqueModification de table sans donneacutee sans la commande ALTER
Pour modifier une table ne contenant pas encore de donneacutee la commande ALTER nest pas indispensable
lon peut supprimer la table agrave modifier (DROP) et la recreacuteer telle quon la souhaite Notons neacuteanmoins que si
la table est reacutefeacuterenceacutee par des clauses FOREIGN KEY cette suppression sera plus compliqueacutee car il faudra
eacutegalement supprimer et recreacuteer les tables reacutefeacuterenccedilantes (ce qui ce complique encore si ces derniegraveres
contiennent des donneacutees)
RemarqueModification de table avec donneacutees sans la commande ALTER
Pour modifier une table contenant des donneacutees la commande ALTER nest pas indispensable On peut en effet
1 Copier les donneacutees dans une table temporaire de mecircme scheacutema que la table agrave modifier
2 Supprimer et recreacuteer la table agrave modifier avec le nouveau scheacutema 3 Copier les donneacutees depuis la table temporaire vers la table modifieacutee
c) Exemple de modifications de tables
Table initiale
Soit une table initiale telle que deacutefinie ci-apregraves
Creacuteation et alimentation de bases de donneacutees SQL
80
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) prenom
VARCHAR(50) PRIMARY KEY
(pk_n) )
1 2 3 4 5 6
Modifications
On deacutecide dapporter les ameacutenagements suivants agrave la table on deacutefinit nom comme UNIQUE et on supprime
le champ prenom
ALTER TABLE Personne ADD UNIQUE (nom)
ALTER TABLE Personne DROP prenom
1 2 3 4 5
Table finale
La table obtenue apregraves modification est identique agrave la table qui aurait eacuteteacute deacutefinie directement telle que ci-
apregraves
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) PRIMARY KEY (pk_n) UNIQUE
(nom) )
1 2 3 4 5 6
B Exercices
1 The show
[30 minutes] Soit le scheacutema relationnel suivant deacutecrivant un systegraveme de reacuteservations de places de spectacles
SPECTACLE (nospectacleint nomstr dureacuteeint typetheacuteacirctre|danse|concert) SALLE (nosalleint nbplacesint) REPRESENTATION (datedate nospectacle=gtSPECTACLE nosalle=gtSALLE prixdecimal)
1 2 3
En faisant les suppositions suivantes
On gegravere un espace de spectacles ayant un ensemble de salles (deacutecrit par la relation SALLE)
On suppose que pour un jour donneacute et une salle donneacutee il ny a quun seul spectacle repreacutesenteacute
Question 1
Retro-concevoir le MCD en UML
Question 2
Proposer des contraintes dinteacutegriteacute reacutealistes pour ce scheacutema (en franccedilais)
Question 3
Creacuteation et alimentation de bases de donneacutees SQL
81
Proposer une deacutefinition du scheacutema en SQL qui prenne en compte certaines de ces contraintes
Question 4
Inseacuterer des donneacutees reacutealistes dans votre scheacutema afin de veacuterifier son bon fonctionnement
2 Du producteur au consommateur
[30 min] Soit le modegravele relationnel suivant
Producteur(raison_socialechaicircne(25) villechaicircne(255)) Consommateur(loginchaicircne(10)
emailchaicircne(50) nomchaicircne(50)prenomchaicircne(50) villechaicircne(255)) Produit(identier descriptionchaicircne(100) produit-par=gtProducteur consommepar-
login=gtConsommateur consomme-par-email=gtConsommateur)
1 2
3
On ajoute que
(nomprenomville) est une cleacute candidate de Consommateur
Tous les produits sont produits
Tous les produits ne sont pas consommeacutes
Question 1
Reacutetro-concevez le modegravele conceptuel sous-jacent agrave ce modegravele relationnel
Question 2
Eacutetablissez le code LDD standard permettant dimpleacutementer ce modegravele en SQL
Question 3
Inseacuterez les donneacutees dans votre base de donneacutees correspondant aux assertions suivantes
Lentreprise de Compiegravegne Pommes Picardes SARL a produit 4 lots de pommes et 2 lots de cidre
Il existe trois utilisateurs consommateurs dans la base donc les adresses mails sont
AlUncompiegnefr - BobDeuxcompiegnefr - CharlieTroiscompiegnefr
Ce sont des employeacutes de la ville de Compiegravegne qui habitent cette ville Leur mail est construit sur le
modegravele PrenomNomcompiegnefr Leur login est leur preacutenom
Question 4
Modifiez les donneacutees de votre base de donneacutees pour inteacutegrer les assertions suivantes
1 lots de pommes a eacuteteacute consommeacutes par Al Un
2 lots de pomme ont eacuteteacute consommeacute par Bob Deux
Tous les lots de cidre ont eacuteteacute consommeacutes par Al Un
Question 5
Charlie Trois nayant rien consommeacute modifiez votre base de donneacutees afin de le supprimer de la base
82
VI - Algegravebre relationnelle
A Cours
1 Opeacuterateurs fondamentaux projection restriction et
jointure
Objectifs
Connaicirctre et savoir utiliser les opeacuterateurs relationnels de projection restriction
produit et jointure
a) Introduction La repreacutesentation dinformation sous forme relationnelle est inteacuteressante car les fondements matheacutematiques
du relationnel outre quils permettent une modeacutelisation logique simple et puissante fournissent eacutegalement
un ensemble de concepts pour manipuler formellement linformation ainsi modeacuteliseacutee
Ainsi une algegravebre relationnelle sous forme dun ensemble dopeacuterations formelles permet dexprimer des
questions ou requecirctes poseacutees agrave une repreacutesentation relationnelle sous forme dexpressions algeacutebriques
Lalgegravebre relationnelle est composeacutee par les cinq opeacuterateurs de base et les trois opeacuterateurs additionnels
suivants
Opeacuterateurs de base
- Union - Diffeacuterence - Projection - Restriction
VI
Algegravebre relationnelle
83
- Produit carteacutesien
Opeacuterateurs additionels
- Intersection - Jointure - Division
Fondamental Algegravebre relationnelle et SQL
Les questions formuleacutees en algegravebre relationnelle sont la base des questions formuleacutees en SQL
pour interroger une base de donneacutees relationnelle
b) Employeacutes et deacutepartements
[30 minutes] Soit les deux relations EMP et DEPT ci-apregraves
EMP (ENO ENOM PROF SAL COMM DNO=gtDEPT(DNO)) DEPT (DNO DNOM DIR=gtEMP(ENO) VILLE)
1 2
ENO numeacutero demployeacute cleacute
ENOM nom de lemployeacute
PROF profession (directeur nest pas une profession)
SAL salaire
COMM commission (un employeacute peut ne pas avoir de commission)
DNO numeacutero de deacutepartement auquel appartient lemployeacute
DNO numeacutero de deacutepartement cleacute
DNOM nom du deacutepartement
DIR numeacutero demployeacute du directeur du deacutepartement
VILLE lieu du deacutepartement (ville)
Eacutecrire en algegravebre relationnelle les requecirctes permettant dobtenir les informations suivantes
Question 1
Lister les employeacutes ayant des revenus supeacuterieurs agrave 10000 euros
Question 2
Trouver le nom et la profession de lemployeacute numeacutero 10
Question 3
Lister les noms des employeacutes qui travaillent agrave Paris
Question 4
Trouver le nom du directeur du deacutepartement Commercial
Question 5
Trouver les professions des directeurs des deacutepartements
Question 6
Algegravebre relationnelle
84
Trouver le nom des directeurs de deacutepartement ayant comme profession Ingeacutenieur
c) Projection
Deacutefinition Projection
La projection est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La projection de R1 sur
une partie de ses attributs A1 A2 produit une relation R2 dont le scheacutema est restreint aux attributs
mentionneacutes en opeacuterande comportant les mecircmes tuples que R1 et dont les doublons sont eacutelimineacutes
Remarque Eacutelimination des doublons
Apregraves suppression dune partie des attributs du scheacutema la relation peut comporter des doublons Eacutetant donneacute
que lon ne pourrait plus identifier ces doublons les uns par rapport aux autres la seule solution senseacutee est
donc de consideacuterer que deux doublons sont eacutequivalents et donc de nen garder quun seul dans la relation
reacutesultante
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Dupont Pierre 20
Durand Jean 30
Tableau 8 Personne
Soit lopeacuteration suivante
R = Projection (Personne Nom Age) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont 20
Durand 30
Tableau 9 R
d) Restriction
Deacutefinition Restriction
La restriction est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La restriction de R1 eacutetant
donneacutee une condition C produit une relation R2 de mecircme scheacutema que R1 et dont les tuples sont les tuples
de R1 veacuterifiant la condition C
Algegravebre relationnelle
85
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Soit les tuples suivants
Dupont Pierre 20
Durand Jean 30
Tableau 10 Personne
Soit lopeacuteration suivante
R = Restriction (Personne Agegt25) 1
On obtient alors la relation R composeacutee de lunique tuple restant suivant
Durand Jean 30
Tableau 11 R
e) Produit
Deacutefinition Produit carteacutesien
Le produit carteacutesien est une opeacuteration binaire (cest agrave dire portant sur deux relations) Le produit de R1 par
R2 (eacutequivalent au produit de R2 par R1) produit une relation R3 ayant pour scheacutema la juxtaposition de ceux
des relations R1 et R2 et pour tuples lensemble des combinaisons possibles entre les tuples de R1 et ceux de
R2 Synonymes Produit
Remarque
Le nombre de tuples reacutesultant du produit de R1 par R2 est eacutegal au nombre de tuples de R1 fois le nombre de
tuples de R2
Remarque
Le nombre de colonne du produit de R1 par R2 est eacutegal au nombre de colonne de R1 plus le nombre de
colonnes de R2
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Algegravebre relationnelle
86
Durand Jean 30
Tableau 12 Homme
Tesla Model X
Citroeumln 2 CV
Tableau 13 Voiture
Soit lopeacuteration suivante
R = Produit (Homme Voiture) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X
Dupont Pierre 20 Citroeumln 2 CV
Durand Jean 30 Tesla Model X
Durand Jean 30 Citroeumln 2 CV
Tableau 14 R
Remarque
Le produit carteacutesien est rarement utiliseacute seul mais il est agrave la base de la jointure
f) Jointure
Deacutefinition Jointure
La jointure est une opeacuteration binaire (cest agrave dire portant sur deux relations) La jointure de R1 et R2 eacutetant
donneacute une condition C portant sur des attributs de R1 et de R2 de mecircme domaine produit une relation R3
ayant pour scheacutema la juxtaposition de ceux des relations R1 et R2 et pour tuples lensemble de ceux obtenus
par concateacutenation des tuples de R1 et de R2 et qui veacuterifient la condition C
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 15 Homme
Algegravebre relationnelle
87
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV Dupont
Tableau 16 Voiture
Soit lopeacuteration suivante
R = Jointure (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Dupont Pierre 20 Citroeumln 3 CV Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Tableau 17 R
(Dupont Pierre 20 Dupont Georges 1) (Dupont Pierre 20 Dupont Jacques 3)
1 2
Fondamental
La jointure est lopeacuteration qui permet de rassembler les informations seacutepareacutees entre plusieurs
tables et reacutefeacuterenceacutees par des cleacutes eacutetrangegraveres
Remarque Otpeacuteration additionnelle
La jointure nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit et la restriction
g) Exercice Quelles sont les expressions relationnelles eacutequivalentes agrave
Projection ( Jointure (R1 R2 R1A1=R2A1) R1A1 R2A2) 1
Jointure ( Projection(R1 A1) Projection(R2 A2) R1A1=R2A1)
Projection ( Jointure (R2 R1 R2A1=R1A1) R1A1 R2A2)
Projection ( Restriction ( Produit(R1 R2) R1A1=R2A1) R1A1 R2A2)
Produit (R1 R2 R1A1=R2A1 R1A1 R2A2)
Algegravebre relationnelle
88
2 Opeacuterateurs compleacutementaires
a) Jointure naturelle
Deacutefinition Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition est leacutegaliteacute entre les attributs
de mecircme nom de R1 et de R2 Il est donc inutile de speacutecifier la condition dans une jointure naturelle elle
reste toujours implicite
Exemtple
Soit deux relations R1 (A B C) et R2 (A D) lopeacuteration Jointure(R1R2R1A=R2A) est eacutequivalente agrave
lopeacuteration JointureNaturelle(R1R2)
Remarque
Pour appliquer une jointure naturelle il faut que les deux relations opeacuterandes aient au moins un attribut ayant
le mecircme nom en commun
b) Jointure externe
Introduction
La jointure est une opeacuteration qui entraicircne la perte de certains tuples ceux qui appartiennent agrave une des deux
relations opeacuterandes et qui nont pas de correspondance dans lautre relation Il est neacutecessaire dans certains
cas de palier cette lacune et lon introduit pour cela la notion de jointure externe
Deacutefinition Jointure externe
La jointure externe entre R1 et R2 est une jointure qui produit une relation R3 agrave laquelle on ajoute les tuples
de R1 et de R2 exclus par la jointure en compleacutetant avec des valeurs nulles pour les attributs de lautre
relation
Deacutefinition Jointure externe gauche
La jointure externe gauche entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les
tuples de R1 (cest agrave dire la relation de gauche) ayant eacuteteacute exclus
Synonymes Jointure gauche
Deacutefinition Jointure externe droite
Objectifs
Maicirctriser lalgegravebre relationnelle
Algegravebre relationnelle
89
La jointure externe droite entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les tuples
de R2 (cest agrave dire la relation de droite) ayant eacuteteacute exclus
Bien entendu une jointure externe droite peut ecirctre reacuteeacutecrite par une jointure externe gauche (et
reacuteciproquement) en substituant les relations opeacuterandes R1 et R2
Synonymes Jointure droite
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Martin Georges 40
Tableau 18 Homme
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV NULL
Tableau 19 Voiture
Soit lopeacuteration suivante
R = JointureExterne (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Martin Georges 40 NULL NULL NULL
NULL NULL NULL Citroeumln 3 CV NULL
Tableau 20 R
Une jointure externe gauche naurait renvoyeacute que les trois premiers tuples et une jointure externe droite
naurait renvoyeacutee que les deux premiers et le dernier tuple
Algegravebre relationnelle
90
c) Opeacuterateurs ensemblistes
Atention Les opeacuterateurs ensemblistes sont des relations binaires (cest agrave dire entre deux relations) portant
sur des relations de mecircme scheacutema
Deacutefinition Union
Lunion de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee de
lensemble des tuples appartenant agrave R1 etou agrave R2
Deacutefinition Difeacuterence
La diffeacuterence entre deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema
constitueacutee de lensemble des tuples de R1 nappartenant pas agrave R2 Notons que la diffeacuterence entre R1 et R2
nest pas eacutegale agrave la diffeacuterence entre R2 et R1
Deacutefinition Intersection
Lintersection de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee
de lensemble des tuples appartenant agrave la fois agrave R1 et agrave R2 Notons que lintersection nest pas une opeacuteration
de base car elle est eacutequivalent agrave deux opeacuterations de diffeacuterence successives
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Femme (Nom Preacutenom Age)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 21 Homme
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 22 Femme
Soit lopeacuteration suivante
R = Union (Homme Femme) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20
Durand Jean 30
Algegravebre relationnelle
91
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 23 R
La diffeacuterence entre Homme et Femme (respectivement entre Femme et Homme) renvoie la relation Homme
(respectivement Femme) car aucun tuple nest commun aux deux relations Lintersection entre Homme est
Femme est vide pour la mecircme raison
Remarque Union externe
Il est possible de deacutefinir une opeacuteration dunion externe qui permet de reacutealiser lunion de deux relations de
scheacutema diffeacuterent en ramenant les relations aux mecircmes scheacutemas et en les compleacutetant avec des valeurs nulles
d) Division
Deacutefinition Division
La division est une opeacuteration binaire (cest agrave dire portant sur deux relations) La division de R1 par R2 sachant
que R1 et R2 ont au moins un attribut commun (cest agrave dire de mecircme nom et de mecircme domaine) produit
une relation R3 qui comporte les attributs appartenant agrave R1 mais nappartenant pas agrave R2 et lensemble des
tuples qui concateacuteneacutes agrave ceux de R2 donnent toujours un tuple de R1
Exemtple
Soit les deux relations suivantes
Pratique (Homme Meacutetier Salaire) Meacutetier (Metier)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Ingeacutenieur 35
Durand Professeur 40
Dupont Ingeacutenieur 45
Martin Ingeacutenieur 50
Tableau 24 Pratique
Ingeacutenieur
Professeur
Tableau 25 Meacutetier
Soit lopeacuteration suivante
R = Division (Homme Meacutetier) 1
Algegravebre relationnelle
92
On obtient alors la relation R composeacutee des tuples suivants
Dupont 35
Tableau 26 R
Meacutethode Reacutetponse aux questions Pour tous les
La division permet de reacutepondre aux questions du type Donnez toutes les personnes qui pratiquent tous les
meacutetiers de la relation meacutetier
Remarque Otpeacuteration additionnelle
La division nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit la restriction et la
diffeacuterence
e) Proposition de notations Introduction Il existe plusieurs syntaxes pour eacutecrire des opeacuterations dalgegravebre relationnelle certaines inspireacutees de lalgegravebre
classiques dautres reposant sur des notations graphiques Nous proposons une notation fonctionnelle qui a
le meacuterite decirctre facile agrave eacutecrire et decirctre lisible Si cette notation peut parfois perdre en simpliciteacute lorsquelle
concerne un nombre eacuteleveacute dopeacuterateurs il est possible de deacutecomposer une opeacuteration compliqueacutee afin de
lalleacuteger
Syntaxe
R = Union (R1 R2) R = Diffeacuterence (R1 R2) R = Intersection (R1 R2) R = Projection (R1 A1 A2 ) R = Restriction (R1 condition) R = Produit (R1 R2) R = Jointure (R1 R2 condition) R = JointureNaturelle (R1 R2) R = JointureExterne (R1 R2 condition) R = JointureGauche (R1 R2 condition) R = JointureDroite (R1 R2 condition) R = Division (R1 R2)
1 2 3 4 5 6 7 8 9
10 11 12
Exemtple Notation syntheacutetique
R = Projection(Restriction(R1 A1=1 AND A2=2) A3) 1
Exemtple Notation deacutecomtposeacutee
R = Restriction(R1 A1=1 AND A2=2) R = Projection (R A3)
1 2
Algegravebre relationnelle
93
f) Exercice Soit les deux relations R1 et R2 suivantes deacutefinies en extension
A B
1 A
2 B
3 C
Tableau 27 R1
A
1
2
Tableau 28 R2
Combien de tuples renvoie lopeacuteration relationnelle suivante
R3 = JointureNaturelle (Intersection (Projection(R1A) R2) R2) 1
g) Opeacuterateurs de base et additionnels Reacuteeacutecrivez les opeacuterateurs additionnels suivants agrave partir dopeacuterateurs de base
Question 1
Reacuteeacutecrivez Intersection agrave partir de Diffeacuterence
Question 2
Reacuteeacutecrivez Jointure agrave partir de Produit et Restriction
Algegravebre relationnelle
94
B Exercices
1 Faire du Cineacutema
[30 minutes] On considegravere les deux relations suivantes
FILMS (titre pays anneacutee reacutealisateur dureacutee) ACTEURS (titre acteur)
1 2
ougrave les attributs ont les significations et les types suivants
titre titre dun film (chaicircne 50 caractegraveres)
pays pays dougrave un film est originaire (chaicircne 10 caractegraveres)
annee anneacutee de sortie du film (entier 4 chiffres)
realisateur nom du reacutealisateur du film (chaicircne 20 caractegraveres)
duree dureacutee du film en minutes (entier 3 chiffres)
acteur nom dacteur (chaicircne 20 caractegraveres)
La relation FILMS donne pour chaque film identifieacute par son titre le pays lanneacutee de sortie reacutealisateur et la
dureacutee
La relation ACTEURS donne pour chaque film lensemble des principaux acteurs
Agrave laide de lalgegravebre relationnelle exprimer les requecirctes suivantes
Question 1
Lister les films franccedilais (titre anneacutee reacutealisateur)
Question 2
Donnez les anneacutees de sortie des films dans lesquels lacteur Jean GABIN a joueacute
Question 3
Trouver les acteurs qui ont tourneacute avec Franccedilois Truffaut comme reacutealisateur
Question 4
Trouver tous les acteurs qui ont eacuteteacute partenaires de lactrice Catherine Deneuve
Question 5
Lister les films dans lesquels le reacutealisateur est aussi acteur
Question 6
Lister les reacutealisateurs nayant joueacute comme acteurs que dans des films quils ne reacutealisaient pas eux-mecircmes
Question 7
Lister les reacutealisateurs ayant joueacute comme acteurs dans des films quils ne reacutealisaient pas eux-mecircmes
Question 8
Donnez les acteurs qui jouent dans tous les films de Franccedilois TRUFFAUT
Algegravebre relationnelle
95
2 Qiz Algegravebre relationnelle
Exercice 1 Quelles sont les opeacuterations relationnelles qui appliqueacutees sur les relations instancieacutees cidessous renvoient un ensemble non nul de tuples
Num Nom Famille
1 Ours Mammifegravere
2 Truite Poisson
3 Homme Mammifegravere
4 Martinshypecirccheur Oiseau
Tableau 29 Animal
Num Nom
1 Forecirct
2 Montagne
3 Ciel
4 Riviegravere
5 Mer
Tableau 30 Environnement
Animal Environnement
1 1
1 2
1 4
2 4
4 3
Tableau 31 Habiter
Mangeur Mangeacute Freacutequence
1 2 Souvent
1 3 Rarement
1 4 Rarement
4 2 Souvent
3 1 Rarement
Algegravebre relationnelle
96
3 2 Souvent
Tableau 32 Manger
Restriction( Projection (Animal Nom Famille) Famille=Mammifegravere)
Restriction( Jointure( Jointure (Animal Habiter AnimalNum=HabiterAnimal) Environnement
EnvironnementNum=HabiterEnvironnement) AnimalNum=3)
Restriction( JointureExterneGauche( Animal Habiter
AnimalNum=HabiterAnimal) AnimalNom=Homme)
Jointure( Animal Manger AnimalNum=MangerMangeur AND AnimalNum=MangerMangeacute)
Exercice 2 Soit le scheacutema relationnel
R1(X Y) R2(X Y)
1 2
Quelles sont les opeacuterations relationnelles eacutequivalentes agrave lopeacuteration
Projection( JointureNaturelle(R1R2) R1X) 1
JointureNaturelle(Projection(R1 X) Projection(R2 X))
Projection( Selection (Produit(R1 R2) R1X=R2X AND R1Y=R2Y) R1X)
Projection( Union( R1 R2) R1X)
Projection( JointureExterne ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Projection( Jointure ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Algegravebre relationnelle
97
Exercice 3 Soit la relation instancieacutee suivante
A B C
1 1 0
1 0 1
0 1 1
Tableau 33 Relation R1
Quelles relations sont retourneacutees par lopeacuteration relationnelle suivante
R2 = JointureNaturelle(R1 R1) 1
1 1 0
1 0 1
0 1 1
Tableau 34 R2a
1 1 0
1 0 1
0 1 1
1 1 0
1 0 1
0 1 1
Tableau 35 R2b
1 1 1
0 0 0
Tableau 36 R2c
1 1 0 1 1 0
1 0 1 1 0 1
0 1 1 0 1 1
Algegravebre relationnelle
98
Tableau 37 R2d
R2a
R2b
R2c
R2d
Une relation vide (aucun tuple)
3 Le retour des eacutecoliers
[45 minutes] Soit le scheacutema relationnel suivant
IMMEUBLE (ADI NBETAGES DATEC PROP) APPIM (ADI NAPR OCCUP TYPE SUPER ETAGE) PERSONNE (NOM AGE PROF ADR NAPR) EacuteCOLE (NOMEC ADEC DIR) CLASSE (NOMEC NCL MAITRE) ENFANT (NOMP PRENOM AN NOMEC NCL)
1 2 3 4 5 6
Avec la signification suivante
Relation IMMEUBLE
ADI adresse dimmeuble cleacute on fait lhypothegravese pour simplifier que ladresse identifie de maniegravere
unique un immeuble NBETAGES nombre deacutetages dun immeuble
DATEC date de construction (anneacutee)
PROP nom du proprieacutetaire de limmeuble qui est une personne
Relation APPIM (Appartement) ADI
adresse dimmeuble
NAPR numeacutero dappartement
OCCUP occupant de lappartement (nom de la personne ayant signeacute le contrat de location
eacuteventuellement aucun)
TYPE type de lappartement (Studio F2 )
SUPER superficie de lappartement
ETAGE eacutetage ougrave se situe lappartement
Relation PERSONNE
NOM nom de personne cleacute on fait lhypothegravese pour simplifier que ce nom est unique sur lensemble
des personnes que lon considegravere dans la base
AGE acircge de la personne
PROF profession de la personne
ADR adresse de la reacutesidence dune personne il sagit dun immeuble NAPR numeacutero
dappartement
Relation EacuteCOLE
NOMEC nom dune eacutecole cleacute
ADEC adresse dune eacutecole
DIR nom du directeur
Algegravebre relationnelle
99
Relation CLASSE
NOMEC nom dune eacutecole
NCL nom de la classe eg CP1 CE2 CE3 etc MAITRE nom
de linstituteur
Relation ENFANT
NOMP nom de la personne responsable de lenfant cleacute eg pegravere megravere etc
PRENOM preacutenom de lenfant
AN anneacutee de naissance
NOMEC nom dune eacutecole
NCL nom de la classe
La relation IMMEUBLE deacutecrit un ensemble dimmeubles Chaque immeuble a un proprieacutetaire La relation APPIM
deacutecrit pour chaque immeuble lensemble des appartements qui le compose (il y a au mimimum un appartement
par immeuble) Chaque appartement peut heacuteberger plusieurs personnes mais il y en a une qui est responsable
(par exemple la personne qui a signeacute le contrat de location) et qui est deacutesigneacutee par lattribut OCCUP Si
lappartement est inoccupeacute il prend la valeur NULL La relation PERSONNE deacutecrit un ensemble de personnes
ADR et NAPR repreacutesentent ladresse ougrave reacuteside une personne Une personne peut avoir plusieurs enfants deacutecrits
par la relation ENFANT Pour simplifier on ne considegravere que les enfants allant agrave leacutecole primaire Les eacutecoles et
les classes sont deacutecrites dans les relations EacuteCOLE et CLASSE chaque eacutecole est composeacutee au minimum dune
classe et chaque classe est au moins freacutequenteacutee par un enfant
Question 1
Donner ladresse des immeubles ayant plus de 10 eacutetages et construits avant 1970
Question 2
Donner les noms des personnes qui habitent dans un immeuble dont ils sont proprieacutetaires
Question 3
Donner les noms des personnes qui ne sont pas proprieacutetaires
Question 4
Donner les adresses des immeubles posseacutedeacutes par des informaticiens dont lacircge est infeacuterieur agrave 40 ans
Question 5
Donner la liste des occupants (nom acircge profession) des immeubles posseacutedeacutes par DUPONT
Question 6
Donner le nom et la profession des proprieacutetaires dimmeubles dans lesquels il y a des appartements vides
Question 7
Donner les noms des maicirctres qui habitent dans le mecircme immeuble (agrave la mecircme adresse) quau moins un de
leurs eacutelegraveves (on suppose que les enfants vivent sous le mecircme toit que leur parents)
Question 8
Donner ladresse de limmeuble la date de construction le type dappartement et leacutetage ougrave habitent chacun
des maicirctres des enfants de DUPONT
Algegravebre relationnelle
100
101
Qestions de synthegravese
Pourquoi est-il fondamental mais difficile de parvenir agrave un MCD correct
Eacutenoncer quelques actions agrave mener pour reacutealiser une speacutecification geacuteneacuterale de lexistant et des besoins
Quest ce qui diffeacuterencie fondamentalement un MCD dun MLD
Questions de synthegravese
102
Quels sont les principaux eacuteleacutements du diagramme de classes UML
Quelles sont les diffeacuterences et points communs entre la diagramme de classe UML et le modegravele E-A
eacutetendu
Questions de synthegravese
103
Quest ce quun domaine
Comment identifie-t-on un attribut dune relation
Comment identifie-t-on un enregistrement dune relation
Questions de synthegravese
104
Quand doit-on ajouter des cleacutes artificielles
Quelle problegraveme pose la redondance et comment le reacutesoudre
A quoi sert le LDD
Questions de synthegravese
105
Quel rapport y-a-t il entre le LDD et le concept de relation
Pourquoi la jointure est-elle un opeacuterateur essentiel
Questions de synthegravese
106
Quels sont les opeacuterateurs algeacutebriques de base Quels sont les autres opeacuterateurs Quest ce qui les diffeacuterencie
Quels sont les opeacuterateurs ensemblistes Quest ce qui les caracteacuterise
Pourquoi la jointure est-elle un opeacuterateur essentiel
Quest ce qui diffeacuterencie une jointure externe dune jointure classique
107
Glossaire
Cleacute artificielle
Une cleacute artificielle est un attribut ajouteacute agrave une relation afin didentifier ses enregistrements On fait appel agrave
une cleacute artificielle lorsque la relation ne comporte aucune cleacute naturelle ou que ses cleacutes naturelles sont jugeacutees
inadapteacutees agrave lidentification au sein de la base de donneacutees
Extension
Lextension est lexplicitation dun domaine par leacutenonciation exhaustive de lensemble des objets du domaine
Elle soppose agrave linstension qui est une description abstraite des caracteacuteristiques du domaine
Exemple bleu rouge vert
Contre-exemple Le domaine des couleurs
Intension
Lintension est lexplicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa
compreacutehension abstraite geacuteneacuterale)
Elle soppose agrave lextension qui est leacutenonciation exhaustive de lensemble des objets du domaine
Exemple Le domaine des couleurs
Contre-exemple bleu rouge vert
108
Signification des abreacuteviations
- ANSI American National Standards Institute
- BD Base de Donneacutees
- E-A Entiteacute-Association
- ISO International Standardization Organization
- LCD Langage de Controcircle de Donneacutees
- LDD Langage de Deacutefinition de Donneacutees
- LMD Langage de Manipulation de Donneacutees
- OMG Object Management Group
- PSM Persistent Stored Modules
- RO Relationnel-Objet
- SGBD Systegraveme de Gestion de Bases de Donneacutees
- SGBDR Systegraveme de Gestion de Bases de Donneacutees Relationnelles
- SQL Structured Query Language
- UML Unified Modeling Language
- XML eXtensible Markup Language
Reacutefeacuterences
[dbdiscocrztfr] httpdbdiscocrztfr3
109
3 - httpdbdiscocrztfr
Bibliographie
[Arribe 2014] ARRIBE THIBAUT 2014 Conception des chaicircnes eacuteditoriales documentariser lactiviteacute et structurer le graphe documentaire pour ameacuteliorer la maicirctrise de la reacuteeacuteditorialisation Universiteacute de Technologie de
Compiegravegne Meacutemoire de Doctorat httpicsutcfr~tha
[Codd70] CODD EF A relational model for large shared data banks Communications de lACM juin 1970
[Delmal01] DELMAL PIERRE SQL2 SQL3 applications agrave Oracle De Boeck Universiteacute 2001
[Gardarin99] GARDARIN GEORGES Bases de donneacutees objet et relationnel Eyrolles 1999
[Gulutzan and Pelzer 1999] GULUTZAN PETER PELZER TRUDY 1999 SQL-99 complete really CMP books
[Muller98] MULLER PA Modeacutelisation objet avec UML Eyrolles 1998
[Roques04] ROQUES PASCAL VALLEacuteE FRANCK UML 2 en action De lanalyse des besoins agrave la conception J2EE
ISBN 2212-11462-1 (3egraveme eacutedition) Paris Eyrolles 2004 385 p architecte logiciel
[Rothenberg et al 1989] ROTHENBERG JEFF WIDMAN LAWRENCE E LOPARO KENNETH A NIELSEN NORMAN R 1989 The nature of modeling Rand vol3027
[Soutou02] SOUTOU CHRISTIAN De UML agrave SQL Conception de bases de donneacutees Eyrolles 2002
[Tardieu83] TARDIEU H ROCHFELD A COLLETI R Meacutethode MERISE Tome 1 Principes et outils Les Editions dOrganisation 1983
Webographie
[w_journaldunetcom(1)] MORLON JEacuteROcircME UML en 5 eacutetapes httpdeveloppeurjournaldunetcomdossiersalg_umlshtml 2004
[w_journaldunetcom(2)] BORDERIE XAVIER Cinq petits conseils pour un scheacutema UML efficace
httpdeveloppeurjournaldunetcomtutorielcpt031013cpt_uml5conseilsshtml 2004
[w_objecteering] Objecteering software httpwwwobjecteeringcom [2002-septembre]
[w_umlfreefr] UML en Franccedilais httpumlfreefr consulteacute en 2002
Questions de synthegravese
110
Index
11 p54 Error Reference source
not found 1N p53 Error Reference source
not found Algegravebre p48 71 71 72 73 74 75
76 76 76 78 79 80 ALTER TABLE p67 68 Analyse p9 11 12 13 Application p6 Association pError Reference
source not found 31 Error
Reference source not found 32 44
Error Reference source not found
53 Error Reference source not
found 53 Error Reference source
not found 54 Error Reference
source not found 54 Attribut p28 32 40 41 41 42 44
51 52 54 Base de donneacutees p17 BD p4
Cardinaliteacute p32 Error
Reference source not found Error
Reference source not found Carteacutesien p74 CHECK p62 63 Classe p27 50 54 Cleacute p41 42 42 44 Cleacute artificielle p42 Cleacute candidate p42 Cleacute primaire p42 42 Cleacute signifiante p42 Codd p39 Composition pError Reference
source not found Error Reference
source not found Conception p9 11
Conceptuel p9 11 13 15 26 27
50 53
CREATE TABLE p59
Creacuteation p58 Deacuteclaratif p58 DELETE p65 66 Diagramme p26 Diffeacuterence p78 Division p79 Domaine p39 48 48 60 61 DROP p67 E-A p32 Enregistrement p40 41 Externe p15 76 FOREIGN KEY p62 63 INSERT p65 65 Instance p15 Interne p15 Intersection p78 Jointure p75 76 76 Langage p8 65 LDD p8 58 67 Lien p44 LMD p8 65 Logique p38 38 39 39 41 50
53 Manipulation p71 Meacutethode p30 Modegravele p13 23 38 39 39 41 45
46 Modeacutelisation p42 Modification p67 NM p53 N M pError Reference source not
found Naturelle p76 NOT NULL p62 63 Null p61 OMG p27 Opeacuteration p30 48 Passage p50 53 PostgreSQL p17
PRIMARY KEY p62 63 Produit p48 48 74
Projection p72 Proprieacuteteacute p28 32 Reacutefeacuterence p44 REFERENCES p62 63 Relation p40 41 41 42 44 44 45
48 Relationnel p5 Error
Reference source not found 38 38
39 39 41 45 46 48 48 50 50
51 Error Reference source not
found 52 53 53 Error Reference
source not found 53 Error Reference source not found 54
Error Reference source not found 54 71
71 76 80 Relationnel-objet p38 39 Requecircte p65 Restriction p73 Scheacutema p15 45 46 SGBD p5 Speacutecifications p12 SQL p8 58 65 67 Suppression p67 Table p58 67 Tuple p40 Type p60 61 UML p13 26 27 27 28
Error Reference source not found
30 31 Error Reference source not found 32 50
50 51 Error Reference source not
found 52 53 53 Error Reference source not
found 53 Error Reference source not
found 54 Error Reference source not found
54 Union p78 UNIQUE p62 63 UPDATE p65 66
wwwsambaconsultantscom 111
Contenus annexes
- Deacutefinition du mouvement NoSQL
Deacutefinition
Le NoSQL regroupe de nombreuses bases de donneacutees reacutecentes pour la plupart qui se caracteacuterisent par une logique de repreacutesentation de donneacutees non relationnelle et qui noffrent donc pas une interface de requecirctes en SQL
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-dedonnees-nosql4
NoSQL signifie Not Only SQL et non pas No SQL il sagit de compleacutements aux SGBDR pour des
besoins speacutecifiques et non de solutions de remplacement Exemtple
BD orienteacutee cleacute-valeur
BD orienteacutee graphe
BD orienteacutee colonne
BD orienteacutee document
Comtpleacutement
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql5
- Transformation des meacutethodes par des vues
Meacutethode
Lorsquune meacutethode est speacutecifieacutee sur un diagramme UML pour une classe C si cette meacutethode est une fonction
relationnelle (elle renvoie une unique valeur et elle peut ecirctre reacutesolue par une requecircte SQL) alors on creacutee une
vue qui reprend les attributs de la classe C et ajoute des colonnes calculeacutees pour les meacutethodes
Remarque Atributs deacuteriveacutes
Les attributs deacuteriveacutes eacutetant apparenteacutes agrave des meacutethodes ils peuvent eacutegalement ecirctre geacutereacutes par des vues
Contenus annexes
112
- Composition
Deacutefinition Association de comtposition
On appelle composition une association particuliegravere qui possegravede les proprieacuteteacutes suivantes
La composition associe une classe composite et des classes parties tel que tout objet partie appartient
agrave un et un seul objet composite Cest donc une association 1N (voire 11)
La composition nest pas partageable donc un objet partie ne peut appartenir quagrave un seul objet
composite agrave la fois
Le cycle de vie des objets parties est lieacute agrave celui de lobjet composite donc un objet partie disparaicirct
quand lobjet composite auquel il est associeacute disparaicirct
Remarque
La composition est une association particuliegravere (binaire de cardinaliteacute contrainte)
La composition nest pas symeacutetrique une classe joue le rocircle de conteneur pour les classes lieacutees elle
prend donc un rocircle particulier a priori
La composition est une agreacutegation avec des contraintes suppleacutementaires (non partageabiliteacute et cycle
de vie lieacute)
Image 14 Notation de la composition en UML
Atention Composition et cardinaliteacute
La cardinaliteacute cocircteacute composite est toujours de exactement 1
Cocircteacute partie la cardinaliteacute est libre elle peut ecirctre 01 1 ou bien 1
Image 15 Un livre
On voit bien ici quun chapitre na de sens que faisant partie dun livre quil ne peut exister dans deux livres
diffeacuterents et que si le livre nexiste plus les chapitres le composant non plus
Remarque Comtposition et entiteacutes faibles
Syntaxe
Contenus annexes
113
wwwsambaconsultantscom
La composition permet dexprimer une association analogue agrave celle qui relie une entiteacute faible agrave une entiteacute
identifiante en modeacutelisation E-A Lentiteacute de type faible correspond agrave un objet partie et lentiteacute identifiante
agrave un objet composite
Conseil Comtposition et atribut multivalueacute
Une composition avec une classe partie doteacutee dun seul attribut peut seacutecrire avec un attribut multivalueacute
Un attribut composeacute et multivalueacute peut seacutecrire avec une composition
Ratptpel Voir aussi
Attributs
Agreacutegation - p100
- Agreacutegation
Deacutefinition Association dagreacutegation
Lagreacutegation est une association particuliegravere utiliseacutee pour preacuteciser une relation toutpartie (ou
ensembleeacuteleacutement) on parle dassociation meacutereacuteologique
Elle possegravede la proprieacuteteacute suivante Lagreacutegation associe une classe agreacutegat et des classes parties tel que tout
objet partie appartient agrave au moins un objet agreacutegat
Remarque
Lagreacutegation est une association particuliegravere (binaire de cardinaliteacute libre)
Lagreacutegation nest pas symeacutetrique Syntaxe
Image 16 Notation de lagreacutegation en UML
La cardinaliteacute peut ecirctre exprimeacutee librement en particulier les instances de la classe Eacuteleacutement peuvent ecirctre
associeacutees agrave plusieurs instances de la classe Ensemble et mecircme de plusieurs classes
Atention
Lagreacutegation garde toutes les proprieacuteteacutes dune association classique (cardinaliteacute cycle de vie
etc) elle ajoute simplement une terminologie un plus preacutecise via la notion de toutpartie
- Explicitation des associations
Syntaxe Sens de lecture
Il est possible dajouter le sens de lecture du verbe caracteacuterisant lassociation sur un diagramme de classe
UML afin den faciliter la lecture On ajoute pour cela un signe lt ou gt (ou un triangle noir) agrave cocircteacute du nom
de lassociation
Contenus annexes
114
Syntaxe Rocircle
Il est possible de preacuteciser le rocircle joueacute par une ou plusieurs des classes composant une association afin den
faciliter la compreacutehension On ajoute pour cela ce rocircle agrave cocircteacute de la classe concerneacutee (parfois dans un petit
encadreacute colleacute au trait de lassociation
Exemtple
Image 17 Rocircle et sens de lecture sur une association
Deacutefinition Association reacuteflexive
Une association reacuteflexive est une association qui associe une classe avec elle-mecircme
Lexplicitation des associations est particuliegraverement utile dans le cas des associations reacuteflexives
- Associations ternaires
Image 18 Notation dune association ternaire
Conseil Ne tpas abuser des associations ternaires
Il est toujours possible de reacuteeacutecrire une association ternaire avec trois associations binaires en transformant
lassociation en classe
Conseil Pas de degreacute sutpeacuterieur agrave 3
En pratique on nutilise jamais en UML dassociation de degreacute supeacuterieur agrave 3
- Transformation des agreacutegations
Ratptpel Agreacutegation
Les associations de type agreacutegation se traitent de la mecircme faccedilon que les associations classiques
Syntaxe
Contenus annexes
115
wwwsambaconsultantscom
Graphique 12 Agreacutegation 1N
Classe1(ab)
Classe2(cda=gtClasse1)
Graphique 13 Agreacutegation NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
- Transformation des compositions
Meacutethode
Une composition
est transformeacutee comme une association 1N
puis on ajoute agrave la cleacute de la classe partie (dite cleacute locale) la cleacute eacutetrangegravere vers la classe composite pour
construire une cleacute primaire composeacutee
Graphique 14 Composition
Classe1(ab)
Classe2(ca=gtClasse1d)
Remarque Cleacute locale
Pour identifier une classe partie dans une composition on utilise une cleacute locale concateacuteneacutee agrave la cleacute eacutetrangegravere
vers la classe composite afin dexprimer la deacutependance entre les deux classes
Si une cleacute naturelle globale permet didentifier de faccedilon unique une partie indeacutependamment du tout on
preacutefeacuterera la conserver comme cleacute candidate plutocirct que de la prendre pour cleacute primaire
Contenus annexes
116
Si on la choisit comme cleacute primaire cela revient agrave avoir transformeacute la composition en agreacutegation en redonnant
une vie propre aux objets composants
Comtpleacutement Comtposition et entiteacutes faibles en E-A
Une composition est transformeacutee selon les mecircmes principes quune entiteacute faible en E-A
Comtpleacutement Atributs multivalueacutes et comtposeacutes
La transformation dun attribut composeacute multivalueacute donne un reacutesultat eacutequivalent agrave la transformation dune
composition
Classe1
a key b [0N] -b1 -b2
Graphique 15 Composition et attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
La transformation dune composition avec un seul attribut pour la classe composante donne un reacutesultat
eacutequivalent agrave la transformation dun attribut multivalueacute
Graphique 16 Composition et attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Ratptpel Voir aussi
Transformation des attributs
- Contrainte de cardinaliteacute minimale 1 dans les associations 1N
Ratptpel
Transformation des associations 1N
Meacutethode
a key
Classe1
0 N
( b1b2) local key
Contenus annexes
117
wwwsambaconsultantscom
Classe1
1 association 1N
Classe2
a key
b c key
d
Graphique 17 Association 1N
Si la cardinaliteacute est exactement 1 (11) cocircteacute 1 alors on ajoutera une contrainte de non nulliteacute sur la
cleacute eacutetrangegravere
si la cardinaliteacute est au moins 1 (1N) cocircteacute N on ajoutera une contrainte dexistence de tuples
reacutefeacuterenccedilant pour chaque tuple de la relation reacutefeacuterenceacutee
Classe1(ab)
Classe2(cda=gtClasse1)
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Graphique 18 Classe dassociation (1N)
Classe1(ab)
Classe2(cda=gtClasse1 e f) avec e KEY
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Comtpleacutement
Projection
- Contrainte de cardinaliteacute minimale 1 dans les associations NM
Ratptpel
Transformation des associations NM
Meacutethode
Si la cardinaliteacute est exactement au moins 1 (1N) dun cocircteacute etou de lautre alors des contraintes
dexistence simultaneacutee de tuple devront ecirctre ajouteacutee
Ce nest pas neacutecessaire si la cardinaliteacute est 0N
a key b
Classe1
c key d
Classe2
1 N 1
e loc al key f
Cl-A ssoc
Contenus annexes
118
Graphique 19 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Graphique 20 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Cl-Assoc(a=gtClasse1c=gtClasse2ef)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Comtpleacutement
Projection
- Transformation des associations 11 (approche geacuteneacuterale) Il existe deux solutions pour transformer une association 11
Avec deux relations on traite lassociation 11 comme une association 1N puis lon ajoute une
contrainte UNIQUE sur la cleacute eacutetrangegravere pour limiter la cardinaliteacute maximale agrave 1
Avec une seule relation on fusionne les deux classes en une seule relation
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 21 Association 11
Meacutethode Avec deux relations (cleacute eacutetrangegravere)
Une des deux relations est choisie pour porter la cleacute eacutetrangegravere
on ajoute les contraintes UNIQUE ou KEY (cleacute candidate) sur la cleacute eacutetrangegravere et si neacutecessaire une
contrainte imposant linstanciation simultaneacutee des deux relations
Classe1(abc=gtClasse2) avec c UNIQUE ou KEY
Classe2(cd)
a key b
Classe1
c key d
Classe2
1 N 1 N
e key f
ssoc Cl-A
Contenus annexes
119
wwwsambaconsultantscom
Contrainte (eacuteventuellement) PROJ(Classe1c)=PROJ(Classe2c) ou
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE ou KEY
Contrainte (eacuteventuellement) PROJ(Classe1a)=PROJ(Classe2a)
Meacutethode Avec une relation (fusion)
On creacuteeacute une seule relation contenant lensemble des attributs des deux classes on
choisit une cleacute parmi les cleacutes candidates
Classe12(abcd) avec c UNIQUE ou KEY ou
Classe21(cdab) avec a UNIQUE ou KEY
RemarqueFusion des relations dans le cas de la traduction de lassociation 11
Ce choix entre les deux meacutethodes sera conduit par une appreacuteciation du rapport entre
La complexiteacute introduite par le fait davoir deux relations lagrave ou une suffit
La pertinence de la seacuteparation des deux relations dun point de vue seacutemantique
Les pertes de performance dues agrave leacuteclatement des relations
Les pertes de performance dues au fait davoir une grande relation
Les questions de seacutecuriteacute et de sucircreteacute factoriseacutees ou non au niveau des deux relations
Introduction geacuteneacuterale aux bases de donneacutees
7
Exemtple Exemtples de SGBD
Oracle est un SGBD relationnel et relationnel-objet tregraves utiliseacute pour les applications professionnelles
PostgreSQL est un SGBD relationnel puissant qui offre une alternative libre (licence BSD) aux solutions
commerciales comme Oracle ou IBM
Access est un SGBD relationnel Microsoft qui offre une interface graphique permettant de concevoir
rapidement des applications de petite envergure ou de reacutealiser des prototypes
MongoDb est un SGBD non-relationnel libre (licence Apache) orienteacute document Il permet de geacuterer
facilement de tregraves grandes quantiteacutes de donneacutees - dans un format arborescent JSON - reacuteparties sur
de nombreux ordinateurs
Comtpleacutement SGBD relationnel et non-relationnel
Les SGBR relationnels (SGBDR) sont les plus courants des SGBD jusquau deacutebut des anneacutees 2000 la plupart
des bases de donneacutees eacutetaient relationnelles
Mais avec larriveacutee des geacuteants du web ces entreprises qui gegraverent des quantiteacutes eacutenormes de donneacutees comme
Google Amazon ou Facebook sest deacuteveloppeacute un mouvement important de deacuteveloppement de bases de
donneacutees nonrelationnelles eacutegalement appeleacutees NoSQL
c) Application de base de donneacutees Une base de donneacutees seule nest pas directement utilisable par un utilisateur humain elle nest utilisable que
par les informaticiens qui connaissent son langage de programmation et par les applications qui ont eacuteteacute
programmeacutees pour sen servir
Deacutefinition
On appelle application de base de donneacutees un logiciel informatique permettant agrave un utilisateur final de
manipuler (lire ou eacutecrire) les donneacutees dune base de donneacutees
Exemtple Atptplication web
Une application web est composeacutee dinterfaces en HTML qui permettent deacutecrire et de lire des donneacutees dans
une base de donneacutees via un langage applicatif comme par exemple PHP
Exemtple Twiter
Lapplication Twitter est composeacutee dinterfaces web
permettant dentrer des donneacutees (saisir son profil twitter
retwitter ) et de sortir des donneacutees (consulter un fil
twitter faire une recherche sur un hashtag) dune base
de donneacutees (Twitter utilise une base de donneacutees NoSQL
Apache Cassandra)
Cette base de donneacutees est stockeacutee sur les serveurs de
Twitter et elle contient tous les profils de tous les
utilisateurs tous les tweets tous les hashtags
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 8
Exemtple Comtpagnie aeacuterienne Une base de donneacutees de gestion de lactiviteacute dune compagnie aeacuterienne concerne les voyageurs les vols les
avions le personnel les reacuteservations
Une application agrave partir dune telle base de donneacutees pourra permettre la gestion des reacuteservations des
disponibiliteacutes des avions en fonction des vols agrave effectuer des affectations des personnels volants
Exemtple Atptplication de bureau Access
Avec un logiciel comme Access on peut reacutealiser agrave la fois une base de donneacutees et une application permettant
de manipuler cette base de donneacutees pour des besoins bureautiques simples
d) Donneacutee (en relationnel) table objet proprieacuteteacute domaine
atomiciteacute
Ratptpel Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tables (appeleacutes relations)
Chaque case de la table contient une information atomique
Deacutefinition Objet (ligne)
Chaque ligne de la table correspond agrave un objet que lon veut geacuterer dans la base de donneacutees une voiture une
personne une espegravece
Fondamental
Toutes les lignes dune mecircme table correspondent agrave des objets du mecircme type donc dans une
table on met soit des voitures soit des personnes mais on ne meacutelange pas les deux
Deacutefinition Protprieacuteteacute et domaine (colonne)
Chaque colonne de la table correspond agrave une proprieacuteteacute des objets qui se trouvent dans la table tous les
objets de la table partagent donc les mecircmes proprieacuteteacutes
Fondamental Domaine
Chaque colonne de la table est associeacutee agrave un domaine de valeur fixeacute a priori par exemple entier
texte booleacuteen
Deacutefinition Donneacutee en relationnel (cellule)
Une donneacutee en relationnel cest une cellule dune table qui correspond agrave la proprieacuteteacute dun objet
proprieacuteteacute 1 domaine
d1 proprieacuteteacute 2 domaine
d2
objet1 donneacutee 1 objet1 donneacutee 2
Introduction geacuteneacuterale aux bases de donneacutees
9
objet2 donneacutee 1 objet2 donneacutee 2
Tableau 2 Une table ou relation ( en relationnel)
Exemtple
espegravece domaine
texte eucaryote domaine
booleacuteen
bacteacuteries false
archeacutees false
Tableau 3 Exemple de relation instancieacutee
Atention Atomiciteacute
Pour que la base de donneacutees fonctionne correctement on veille agrave ne mettre quune seule donneacutee
par case cest le principe datomiciteacute en relationnel
espegravece domaine texte
bacteacuteries procaryotes unicellulaires
archeacutees procaryotes unicellulaires
protistes eucaryotes unicellulaires
champignons eucaryotes multicellulaires qui deacutecomposent
veacutegeacutetaux eucaryotes multicellulaires qui photosyntheacutetisent
animaux eucaryotes multicellulaires qui ingegraverent
Tableau 4 Un mauvais exemple de relation les donneacutees ne sont pas atomiques (il y a
plusieurs donneacutees par case de la table)
e) Langage de donneacutees lexemple du langage SQL
Deacutefinition Langage de donneacutees
Un langage de donneacutees est un langage informatique permettant de deacutecrire et de manipuler les scheacutemas et les
donneacutees dune BD
Synonymes Langage orienteacute donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 10
Fondamental SQL
SQL est le langage consacreacute aux SGBD relationnels et relationnels-objet
Il permet de
creacuteer des tables en deacutefinissant le domaine de chaque colonne
inseacuterer des lignes dans les tables
lire les donneacutees entreacutees dans la base de donneacutees
Exemtple Creacuteation de table en SQL (deacutefinition du scheacutema de donneacutees)
CREATE TABLE Etudiant ( NumEtu
integer PRIMARY KEY Nom varchar Ville varchar)
1 2 3 4
Cette instruction permet de creacuteer une relation Etudiant comportant les proprieacuteteacutes NumEtu Nom et Ville
de domaines respectivement entier texte et texte
Exemtple Insertion de ligne en SQL (creacuteation de donneacutees)
INSERT INTO Etudiant (NumEtu Nom Ville) VALUES (1 Holmes Londres) 1
Cette instruction permet de creacuteer leacutetudiant numeacutero 1 de nom Holmes qui habite la ville de Londres
Exemtple Manitpulation de donneacutees en SQL (extploitation des donneacutees)
SELECT Nom FROM Etudiant WHERE Ville = Compiegravegne
1 2 3
Cette instruction permet de rechercher les noms de tous les eacutetudiants habitant la ville de Compiegravegne
Comtpleacutement Autres langages de donneacutees
XQuery est un langage de donneacutees mobiliseacute dans les bases de donneacutees arborescentes XML
Les bases NoSQL proposent des langages de donneacutees speacutecifiques souvent inspireacutes du
SQL Par exemple le langage de MongoDB permet de manipuler une base de contenus JSON
2 Approche geacuteneacuterale pour la conception des bases de
donneacutees
a) Exercice Eacutetapes de la conception dune base de donneacutees
relationnelle Mettre dans lordre les eacutetapes de conception suivantes
1 Creacuteation du code SQL pour un SGBDR
2 Modeacutelisation conceptuelle en UML ou E-A
Introduction geacuteneacuterale aux bases de donneacutees
11
3 Eacutelaboration du modegravele logique en relationnel
4 Analyse de la situation existante et des besoins
Reacuteponse ___ ___ ___ ___
b) Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
Meacutethode Eacutetatpes de la concetption dune base de donneacutees
1 Analyse de la situation existante et des besoins (clarification) 2 Creacuteation dun modegravele conceptuel qui permet de repreacutesenter tous les aspects importants du problegraveme 3 Traduction du modegravele conceptuel en modegravele logique (et normalisation de ce modegravele logique) 4 Impleacutementation dune base de donneacutees dans un SGBD agrave partir du modegravele logique (et optimisation)
Graphique 1 Processus de conception dune base de donneacutees
On distingue quatre eacutetapes dans la conception dune base de donneacutees
Lanalyse
Elle consiste agrave eacutetudier le problegraveme et agrave consigner dans un document la note de clarification les
besoins les choix les contraintes
La modeacutelisation conceptuelle
Elle permet de deacutecrire le problegraveme poseacute de faccedilon non-formelle (en geacuteneacuterale graphique) en prenant
des hypothegraveses de simplification Ce nest pas une description du reacuteel mais une repreacutesentation
simplifieacutee dune reacutealiteacute
La modeacutelisation logique
Ele permet de deacutecrire une solution en prenant une orientation informatique geacuteneacuterale (type de SGBD
typiquement) formelle mais indeacutependamment de choix dimpleacutementation speacutecifiques
Limpleacutementation
Elle correspond aux choix techniques en terme de SGBD choisi et agrave leur mise en œuvre
(programmation optimisation)
Fondamental
Bien analyser le problegraveme poseacute en amont
BD solution proposeacutee
Domaine problegraveme poseacute
Modegravele Conceptuel
Modegravele Logique
Repreacutesenter
Impleacutementer
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 12
Bien modeacuteliser le problegraveme au niveau conceptuel avant de passer au niveau logique et agrave
limpleacutementation
Conseil Limtportance de leacutetatpe danalyse
La premiegravere eacutetape de la conception repose sur lanalyse de lexistant et des besoins De la qualiteacute de la
reacutealisation de cette premiegravere eacutetape deacutependra ensuite la pertinence de la base de donneacutees par rapports aux
usages Cette premiegravere eacutetape est donc essentielle et doit ecirctre meneacutee avec soins
Si la premiegravere eacutetape est fondamentale dans le processus de conception elle est aussi la plus deacutelicate En effet
tandis que des formalismes puissants existent pour la modeacutelisation conceptuelle puis pour la modeacutelisation
logique la perception de lexistant et des besoins reste une eacutetape qui repose essentiellement sur lexpertise
danalyse de lingeacutenieur
Conseil Limtportance de leacutetatpe de modeacutelisation concetptuelle
Eacutetant donneacutee une analyse des besoins correctement reacutealiseacutee la seconde eacutetape consiste agrave la traduire selon un
modegravele conceptuel Le modegravele conceptuel eacutetant formel il va permettre de passer dune speacutecification en
langage naturel et donc soumise agrave interpreacutetation agrave une speacutecification non ambiguumle Le recours aux
formalismes de modeacutelisation tels que E-A ou UML est donc une aide fondamentale pour parvenir agrave une
repreacutesentation qui ne sera plus lieacutee agrave linterpreacutetation du lecteur
La traduction dun cahier des charges speacutecifiant lexistant et les besoins en modegravele conceptuel reste neacuteanmoins
une eacutetape deacutelicate qui va conditionner ensuite lensemble de limpleacutementation informatique En effet les eacutetape
suivantes sont plus meacutecaniques dans la mesure ougrave un modegravele logique est deacuteduit de faccedilon systeacutematique du
modegravele conceptuel et que limpleacutementation logicielle est eacutegalement reacutealiseacutee par traduction directe du modegravele
logique
RemarqueLes eacutetatpes de traduction logique et dimtpleacutementation
Des logiciels speacutecialiseacutes (par exemple Objecteering [w_objecteering]) sont capables agrave partir dun modegravele
conceptuel dappliquer des algorithmes de traduction qui permettent dobtenir directement le modegravele logique
puis les instructions pour la creacuteation de la base de donneacutees dans un langage orienteacute donneacutees tel que SQL
Lexistence de tels algorithmes de traduction montre que les eacutetapes de traduction logique et dimpleacutementation
sont moins complexes que les preacuteceacutedentes car plus systeacutematiques
Neacuteanmoins ces eacutetapes exigent tout de mecircme des compeacutetences techniques pour optimiser les modegraveles logiques
(normalisation) puis les impleacutementations en fonction dun contexte de mise en œuvre mateacuteriel logiciel et
humain
c) Qatre eacutetapes pour reacuteduire la complexiteacute La reacutealisation dune base de donneacutees est une tacircche complexe le deacutecoupage en quatre eacutetapes permet de geacuterer
cette complexiteacute
Clarification ModeacutelisationConceptuelle ModeacutelisationLogique Im pleacutem entation
Conception en quatre eacutetapes
Introduction geacuteneacuterale aux bases de donneacutees
13
Lideacutee geacuteneacuterale est de ne pas meacutelanger la nature des tacircches typiquement on ne veut pas en mecircme temps
se poser des questions geacuteneacuterales relatives aux besoins (ce que je veux faire) et des questions techniques tregraves
speacutecifiques (comment repreacutesenter telle information)
Meacutethode
Lapproche est donc
de regarder agrave gauche on regarde le monde quand on clarifie on regarde la note de clarification
quand on fait le MCD on regarde le MCD quand on fait le MLD on regarde le MLD quand on
impleacutemente
et de ne pas regarder trop loin on anticipe deacutejagrave le MCD pendant la clarification mais on ne se
preacuteoccupe pas de questions dimpleacutementation quand on fait le MLD on ne se pose plus de question
sur le monde la clarification et le MCD ont ducirc deacutejagrave reacutepondre quand on impleacutemente on ne se pose
plus de question de modeacutelisation on soccupe des programmes de la machine
Fondamental
On peut toujours revenir sur une eacutetape la conception est iteacuterative mais on ne doit pas tout le
temps se poser tous les problegravemes en mecircme temps
d) Eacuteleacutements pour lanalyse de lexistant et des besoins La phase danalyse de lexistant et des besoins est une phase essentielle et complexe Elle doit aboutir agrave des
speacutecifications geacuteneacuterales qui deacutecrivent en langage naturel les donneacutees manipuleacutees et les traitements agrave
effectuer sur ces donneacutees
On se propose de donner une liste non exhaustive dactions agrave mener pour reacutediger de telles speacutecifications
Meacutethode Lanalyse de documents existants
La conception dune base de donneacutees sinscrit geacuteneacuteralement au sein dusages existants Ces usages sont
geacuteneacuteralement au moins en partie instrumenteacutes agrave travers des documents eacutelectroniques ou non (papier
typiquement) Il est fondamental danalyser ces documents et de recenser les donneacutees quils manipulent
Exemtple Exemtples de document existants agrave analyser
Fichiers papiers de stockage des donneacutees (personnel produits etc)
Formulaires papiers denregistrement des donneacutees (fiche didentification dun salarieacute fiche de
description dun produit bon de commande etc)
Documents eacutelectroniques de type traitement de texte (lettres mailing proceacutedures etc)
Documents eacutelectroniques de type tableurs (bilans statistiques calculs etc)
Bases de donneacutees existantes agrave remplacer ou avec lesquelles saccorder (gestion des salaires de la
production etc)
Intranet dentreprise (information teacuteleacutechargement de documents etc)
etc
Meacutethode Le recueil dextpertise meacutetier
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 14
Les donneacutees que la base va devoir manipuler sont toujours relatives aux meacutetiers de lentreprise et il existe
des experts qui pratiquent ces meacutetiers Le dialogue avec ces experts est une source importante dinformations
Il permet eacutegalement de fixer la terminologie du domaine
Exemtple Exemtples dextperts agrave consulter
Praticiens (secreacutetaires ouvrier controcircleurs etc)
Cadres (responsables de service contre-maicirctres etc)
Experts externes (clients fournisseurs etc)
etc
Meacutethode Le dialogue avec les usagers
La base de donneacutees concerne des utilisateurs cibles cest agrave dire ceux qui produiront et consommeront
effectivement les donneacutees de la base Il est neacutecessaire de dialoguer avec ces utilisateurs qui sont les
deacutetenteurs des connaissances relatives aux besoins reacuteels lieacutes agrave leur reacutealiteacute actuelle (aspects de lorganisation
fonctionnant correctement ou deacutefaillants) et agrave la reacutealiteacute souhaiteacutee (eacutevolutions lacunes etc)
Exemtple Exemtples dutilisateurs avec qui dialoguer
Personnes qui vont effectuer les saisies dinformation (agrave partir de quelles sources Quelle est leur
responsabiliteacute etc)
Personnes qui vont consulter les informations saisies (pour quel usage pour quel destinataire etc)
Personnes qui vont mettre agrave jour les informations (pour quelles raisons comment le processus est
enclencheacute etc)
etc
Meacutethode Leacutetude des autres systegravemes informatiques existants
la base de donneacutees va geacuteneacuteralement (et en fait quasi systeacutematiquement aujourdhui) sinseacuterer parmi un
ensemble dautres logiciels informatiques travaillant sur les donneacutees de lentreprise Il est important danalyser
ces systegravemes afin de mieux comprendre les meacutecanismes existants leurs forces et leurs lacunes et de preacuteparer
linteacutegration de la base avec ces autres systegravemes Une partie de ces systegravemes seront dailleurs souvent
eacutegalement des utilisateurs de la base de donneacutees tandis que la base de donneacutees sera elle mecircme utilisatrice
dautre systegravemes
Exemtple Exemtples dautres systegravemes coexistants agrave eacutetudier
Autres bases de donneacutees (les donneacutees sont elle disjointes ou partiellement communes avec celles de la
base agrave concevoir quelles sont les technologies logicielles sur lesquelles reposent ces BD etc)
Systegravemes de fichiers classiques (certains fichiers ont-ils vocations agrave ecirctre supplanteacutes par la base agrave ecirctre
geacuteneacutereacutes par la base agrave alimenter la base etc)
Applications (ces applications ont elles besoins de donneacutees de la base peuvent-elles lui en fournir
etc)
etc
Comtpleacutement Meacutethodes danalyse
Il existe des outils et meacutethodes danalyse en ingeacutenierie comme lanalyse fonctionnelle (AF) qui deacutepassent le
cadre de la conception des bases de donneacutees mais sont tout agrave fait compleacutementaires
Introduction geacuteneacuterale aux bases de donneacutees
15
e) Modeacutelisation conceptuelle de donneacutees Lobjection du modegravele conceptuel est de repreacutesenter le problegraveme agrave laide de repreacutesentations graphiques et
partiellement formelles
Les principales caracteacuteristiques du modegravele conceptuel sont
Une repreacutesentation graphique simple
Une puissance dexpression eacuteleveacutee pour un nombre de symboles raisonnables
Une lecture accessible agrave tous et donc un bon outil de dialogue entre les acteurs techniques et non
techniques
Une formalisation peu ambigueuml et donc un bon outil de speacutecification deacutetailleacutee
Remarque
Le modegravele nest pas encore formel donc certaines repreacutesentations peuvent ecirctre eacutequivoques mecircme si on a
leveacute de tregraves nombreuses ambiguiumlteacutes
E-A
La modeacutelisation conceptuelle en bases de donneacutees relationnelle eacutetait agrave lorigine faite avec le formalisme E-A
de la meacutethode MERISE
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 16
Modegravele E-A gestion de projets
UML
UML est un autre langage de modeacutelisation plus reacutecent que E-A et couvrant un spectre plus large que les
bases de donneacutees En tant que standard de lOMG et en tant que outil tregraves utiliseacute pour la programmation
orienteacutee objet il a supplanteacute la modeacutelisation E-A
Remarque
En BD on utilise uniquement le diagramme de classe dUML pour modeacuteliser conceptuellement les donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 17
Modegravele UML gestion de projets
f) Modeacutelisation logique de donneacutees
Deacutefinition Modegravele logique de donneacutees
Un modegravele logique de donneacutees est une description au moyen dun langage formel dun ensemble de donneacutees
Un scheacutema permet de deacutecrire la structure dune base de donneacutees en deacutecrivant lensemble des types de
donneacutees de la base Une instance de base de donneacutees est constitueacutee dun ensemble de donneacutees qui respectent
le scheacutema de la base
Synonyme scheacutema de donneacutees scheacutema
Exemtple Modegravele logique de donneacutees relationnel
Un modegravele logique de donneacutees relationnel permet de repreacutesenter une base de donneacutees relationnelles cest agrave
dire des tables des proprieacuteteacutes des domaines
Exemtple Scheacutema dune relation
Espece(nomchaicircne eucaryotebooleacuteen multicellulairebooleacuteen proprieacuteteacutechaicircne) 1
Exemtple Scheacutema dune base de donneacutees avec tplusieurs relations
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 18
Etudiant (numentier nomchaicircne villechaicircne) Module(numentier titrechaicircne) Inscription(numetuentier nummodentier anneacuteeentier(4))
1 2 3
Instance de base de donneacutees
Etudiant Module
172 Dupont Lille
173 Durand Paris
174 Martin Isabelle
1 SGBD
2 OS
Inscription 172 1 2016 172 2 2016 173 1 2015 174 2 2017
Comtpleacutement Exemtple de formalismes de modeacutelisation logique
Le modegravele CODASYL anteacuterieur au modegravele relationnel est un modegravele hieacuterarchique (Tardieu 1983
[Tardieu83])
Le modegravele relationnel (tabulaire) est le modegravele dominant agrave la base des SGBDR
Le modegravele relationnel-objet (adaptation des modegraveles relationnels et objets au cadre des SGBD) est
actuellement en croissance
Dautres modegraveles (document graphe ) se deacuteveloppent dans le cadre du mouvement NoSQL
Comtpleacutement Voir aussi
Bregraveve introduction aux bases de donneacutees NoSQL - p98
g) Synthegravese Les trois niveaux de conception Niveau Conceptuel
Modegravele conceptuel graphique -
Exemples E-A
UML
Niveau Logique
Scheacutema logique indeacutependant dun SGBD -
Exemples Relationnel
Objet
Relationnel-Objet
Graphe
Document
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 19
Niveau Informatique
Impleacutementation pour un SGBD particulier -
Exemples Oracle
MySQL
PostgreSQL
DB2
Access
SQLServer
MongoDB
Cassandra
Modeacutelisation Modeacutelisation Im pleacutem entation Clarification Conceptuelle
Logique
AF UML Relationnel SQL Conception en quatre eacutetapes exemple de
formalismes
B Exercices
1 Deacutecouverte dune base de donneacutees relationnelle
Cette seacuterie dexercices est destineacutee agrave faire expeacuterimenter un SGBDR afin de se familiariser avec les concepts
classiques des bases de donneacutees relationnelles
Pour la reacutealisation de cet exercice se connecter sur le site dbdiscocrztfr et conserver la fenecirctre du navigateur
ouverte
Db Discodbdiscocrztfr
Objectifs
Deacutecouvrir le modegravele relationnel Deacutecouvrir un SGBDR Deacutecouvrir le langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 20
a) Notion de table
Creacuteer sa premiegravere table Une base de donneacutees relationnelle est principalement constitueacutee de tables (ou laquo relations raquo dougrave le nom
de relationnel) Une table est basiquement un eacuteleacutement dorganisation de linformation constitueacute de colonnes
(ou attributs) et de lignes (ou enregistrements)
Nous allons dans un premier temps creacuteer le scheacutema dune table cest agrave dire deacutefinir ses colonnes Pour cela
nous utiliserons linstruction SQL LDD laquo CREATE raquo
Question 1
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
CREATE TABLE tEtu ( pk_numSecu CHAR(13) PRIMARY KEY k_numEtu
VARCHAR(20) UNIQUE NOT NULL nom
VARCHAR(50) prenom VARCHAR(50))
1 2 3 4 5
Introduction geacuteneacuterale aux bases de donneacutees
21
Alimenter la table Une fois les colonnes de la table deacutefinies nous pouvons en deacuteclarer les lignes Nous utilisons pour cela
linstruction SQL LMD laquo INSERT raquo
Question 2
Exeacutecuter les deux instructions suivantes et deacutecrire ce quelles font
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 AB3937098X Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2820475001124 XGB67668 Durand Anne)
1 2 3 4
Interroger la table Une fois une table creacuteeacutee il est possible agrave tout moment den inspecter le contenu Nous utilisons pour cela
linstruction SQL LMD laquo SELECT raquo
Question 3
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT pk_numSecu k_numEtu nom prenom FROM tEtu
1 2
Question 4
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT nom prenom FROM tEtu WHERE pk_numSecu=2820475001124
1 2 3
b) Notion de contraintes
Contrainte de domaine Lorsque lon deacutefinit une table on deacutefinit eacutegalement des contraintes sur cette table qui serviront agrave controcircler
son inteacutegriteacute par rapport agrave des regravegles que lon aura fixeacutees
Cest notamment le cas des contraintes de domaine qui permettent de veacuterifier quune colonne prend ses
valeurs parmi un ensemble deacutetermineacute (les chaicircnes de 10 caractegraveres au plus les entier de 1 agrave 1000 etc)
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi le systegraveme renvoie une erreur
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (XXXXXXXXXXXXXXX XXXXXX Dupont Pierre)
1 2
Question 2
Donner un exemple de contrainte qui nest pas formuleacutee dans la deacutefinition de la table tEtu et que lon aurait
pu souhaiter
Indice
Pour indiquer quun eacuteleacutement est obligatoire on ajoute la clause NOT NULL apregraves la deacutefinition de son domaine dans linstruction CREATE TABLE
Introduction geacuteneacuterale aux bases de donneacutees
22
Contraintes de cleacute Les contraintes de cleacute se composent de contraintes duniciteacute et de contraintes de non nulliteacute Elles
permettent dassurer que toutes les valeurs dune colonne seront diffeacuterentes pour chaque ligne
Question 3
Exeacutecuter les trois instructions suivantes (les unes apregraves les autres) et expliquer ce qui se passe
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 HGYT67655Y Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 XGB67668 Durand Anne) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 HGYT67655Y Duchemin Aline)
1 2 3 4 5 6
Question 4
Explorer le contenu de votre table en exeacutecutant linstruction suivante et veacuterifier vos explications preacuteceacutedentes
SELECT FROM tEtu
1 2
Question 5
Pourrait-on inseacuterer dans la table une seconde personne qui aurait le preacutenom Aline et le nom Duchemin
Pourquoi
c) Notion de reacutefeacuterences
Cleacute eacutetrangegravere Une base de donneacutees est en geacuteneacuteral constitueacutee de plusieurs tables Ces tables se reacutefeacuterencent entre elles en
utilisant une cleacute eacutetrangegravere cest agrave dire quune des colonnes de la table est utiliseacutee pour faire reacutefeacuterence agrave la
colonne dune autre table
On va agrave preacutesent creacuteer une seconde table qui permettra dassocier des Uniteacutes de Valeurs (UVs) aux eacutetudiants
puis inseacuterer des valeurs dans cette table
CREATE TABLE tUv ( pk_code
CHAR(4) NOT NULL fk_etu
CHAR(13) NOT NULL PRIMARY KEY (pk_code fk_etu) FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu))
1 2 3 4 5
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF26 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF29 1800675001066)
1 2 3 4 5 6
Question 1
Introduction geacuteneacuterale aux bases de donneacutees
23
Expliciter ce quexprime le contenu de la table tUv
Contraintes dinteacutegriteacute reacutefeacuterentielle Lorsque nous avons deacutefini la table tUv nous avons deacutefini une contrainte suppleacutementaire dite dinteacutegriteacute
reacutefeacuterentielle contrainte de type FOREIGN KEY
Question 2
En exeacutecutant les instructions suivantes expliquer quel est le rocircle dune contrainte dinteacutegriteacute reacutefeacuterentielle
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 2810592012232) INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1700792001278)
1 2 3 4
d) Projection restriction et jointure Linstruction SELECT du langage SQL LMD nous donne de larges possibiliteacutes pour interroger les tables dune
base de donneacutees Cette instruction se fonde notamment sur les opeacuterations matheacutematiques de lalgegravebre
relationnelle dont les principales sont la projection la restriction le produit et la jointure
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi cest une projection
SELECT nom prenom FROM tEtu
1 2
Question 2
Exeacutecuter linstruction suivante et expliquer pourquoi cest une restriction
SELECT FROM tEtu WHERE nom=Dupont
1 2 3
Question 3
Exeacutecuter linstruction suivante et expliquer pourquoi cest un produit (carteacutesien)
SELECT FROM tEtutUv
1 2
Question 4
Exeacutecuter linstruction suivante et expliquer pourquoi cest une jointure
SELECT FROM tEtu JOIN tUv ON pk_numSecu=fk_etu
1 2
Question 5
Exeacutecuter linstruction suivante et montrer quune jointure est la composition dun produit et dune restriction
SELECT FROM tEtutUv WHERE pk_numSecu=fk_etu
1 2 3
Introduction geacuteneacuterale aux bases de donneacutees
24
e) Fonctions et agreacutegats Linstruction SELECT permet eacutegalement deffectuer des calculs qui portent sur plusieurs lignes ce que lon
appelle des agreacutegats
Question 1
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT COUNT(pk_code) FROM tUv
1 2
WHERE fk_etu=1800675001066 3
Question 2
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT fk_etu COUNT(pk_code) FROM tUv GROUP BY fk_etu
1 2 3
Question 3
Compleacuteter la requecircte SQL suivante afin quelle renvoie pour chaque UV le nombre deacutetudiants inscrits
SELECT _______ COUNT(______) FROM tUv GROUP BY _______
1 2 3
Agrave lissue de cette seacuterie dexercices vous devez savoir deacutefinir les termes suivants
table ou relation
scheacutema relationnel
domaine
cleacute
cleacute eacutetrangegravere
opeacuterations de projection restriction jointure produit
Introduction geacuteneacuterale aux bases de donneacutees
25
2 Lab 0
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux meacutedicaments
avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi quune description
longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le nombre de pilules par boicircte
(qui est un nombre entier)
Ce problegraveme est un exemple tregraves simple que lon pourra modeacuteliser avec une base de donneacutees relationnelle agrave
une seule table
Vous pouvez tester vos instructions SQL ici Db Discodbdiscocrztfr
Question 1
Proposer une clarification du problegraveme (par exemple sous la forme dune liste des proprieacuteteacutes de la relation
viseacutee)
Question 2
Proposer un exemple de donneacutees
Question 3
Dessiner un modegravele conceptuel de donneacutees en UML Il ne contient quune seule classe
Indice Modeacutelisation conceptuelle de donneacutees
Question 4
Proposer un modegravele logique de donneacutees sous forme de scheacutema relationnel Il ne contient quune seule relation
Indice Modeacutelisation logique de donneacutees
Question 5
Proposer une impleacutementation en SQL standard de votre modegravele relationnel Il ne contient quune seule
instruction CREATE TABLE
Indice Langage de donneacutees lexemple du langage SQL
Question 6
Eacutecrivez les instructions SQL permettant dinseacuterer vos donneacutees de test dans votre base de donneacutees
Indice Langage de donneacutees lexemple du langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
26
27
II - Introduction agrave la
modeacutelisation
conceptuelle de donneacutees avec
UML
A Cours
La modeacutelisation conceptuelle est leacutetape fondatrice du processus de conception de BD Elle consiste agrave
abstraire le problegraveme reacuteel poseacute pour en faire une reformulation qui trouvera une solution dans le cadre
technologique dun
SGBD
Si le modegravele dominant en conception de bases de donneacutees a longtemps eacuteteacute le modegravele E-A le modegravele UML
se geacuteneacuteralise de plus en plus Nous proposons ici une introduction au diagramme de classes agrave travers la
repreacutesentation de classes et dassociations simples (il existe dautres diagrammes UML par exemple le
diagramme de cas et dautres primitives de repreacutesentation dans le diagramme de classe par exemple
lheacuteritage)
II
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
28
1 Notion de modegravele
a) Exercice Centre meacutedical [5 min]
Soit le modegravele conceptuel suivant repreacutesentant des visites dans un centre meacutedical Quelles sont les assertions vraies selon ce scheacutema
Image 1
Un patient peut effectuer plusieurs visites
Tous les patients ont effectueacute au moins une consultation
Un meacutedecin peut recevoir plusieurs patients pendant la mecircme consultation
Un meacutedecin peut prescrire plusieurs meacutedicaments lors dune mecircme consultation
Deux meacutedecins diffeacuterents peuvent prescrire le mecircme meacutedicament
b) Qest ce quun modegravele
Deacutefinition Modegravele
laquo Modeling in the broadest sense is the cost-effective use of something in place of something else for some
cognitive purpose It allows us to use something that is simpler safer or cheaper than reality instead of reality
for some purpose A model represents reality for the given purpose the model is an abstraction of reality in
the sense that it cannot represent all aspects of reality raquo (Rothenberg 1989 [Rothenberg et al 1989] citeacute
par Arribe 2014 [Arribe 2014])
laquo Systegraveme physique matheacutematique ou logique repreacutesentant les structures essentielles dune reacutealiteacute et capable
agrave son niveau den expliquer ou den reproduire dynamiquement le fonctionnement raquo (TLFi)
Fondamental Modegravele
Un modegravele est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser quelque chose
Objectifs
Savoir ce quest un modegravele
Savoir ce quest le langage UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
29
c) Qest ce quun modegravele en informatique
Deacutefinition Modegravele informatique
Un modegravele informatique est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser un traitement avec
un ordinateur
Comtpleacutement Numeacuterisation et abstraction Toute information numeacuterique a
eacuteteacute codeacutee selon un modegravele donneacute
laquo Tout numeacuterisation est une repreacutesentation de la reacutealiteacute sous la forme dune modeacutelisation numeacuterique Cette
modeacutelisation procegravede dune abstraction au sens ougrave cest une seacuteparation davec le reacuteel au sens ougrave cest une
construction destineacutee agrave la manipulation (algorithmique en loccurrence) et au sens ougrave cest une simplification
de la reacutealiteacute raquo
httpaswemayfrcotropism-preshtml1
d) Qest ce quun bon modegravele
Atention
Un modegravele est une abstraction une simplification de la reacutealiteacute ce nest pas la reacutealiteacute il nest
jamais complegravetement fidegravele par construction
Le seul modegravele complegravetement fidegravele agrave la reacutealiteacute est la reacutealiteacute elle-mecircme et ce nest donc pas un
modegravele
Exemtple La carte et le territoire
Une carte est un modegravele dun territoire Elle est une repreacutesentation simplifieacutee destineacute agrave un usage particulier
randonner agrave pied en veacutelo
se diriger en voiture sur des grands axes sur des axes secondaires
voler en avion de tourisme en avion de ligne
naviguer sur fleuve sur mer
eacutetudier les frontiegraveres dune reacutegion dun pays de la terre
eacutetudier la deacutemographie leacuteconomie
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
30
Fondamental
Agrave partir de cet exemple on notera que 1 Un modegravele est orienteacute par un usage
Chacune de ces cartes est tregraves diffeacuterente selon ce que lon veut faire 2 Un modegravele ne cherche pas agrave ecirctre proche de la reacutealiteacute
Chacune de ces cartes est tregraves diffeacuterente de la reacutealiteacute quelle repreacutesente 3 Un modegravele adresse un niveau dinformation qui existe mais qui nest pas accessible dans
la reacutealiteacute Chacune de ces cartes permet quelque chose que ne permet pas laccegraves direct agrave la reacutealiteacute
ndash wwwsambaconsultantscom
Meacutethode Le rasoir dOckham Entre deux modegraveles donneacutes le meilleur modegravele est-il
toujours le tplus fourni
La meacutethode de raisonnement connue sous le nom de rasoir dOckham (du nom du philosophe eacuteponyme)
consiste agrave preacutefeacuterer les solutions les plus simples aux plus complexes lorsquelles semblent permettre
eacutegalement de reacutesoudre un problegraveme donneacute entre deux theacuteories eacutequivalentes toujours preacutefeacuterer la plus simple
Ce principe sapplique tregraves bien agrave la modeacutelisation eacutetant donneacute un objectif et plusieurs modegraveles possibles il
ne faut pas choisir a priori celui qui repreacutesente le plus de choses mais preacutefeacuterer le plus simple degraves quil couvre
le besoin
Cest un principe deacuteconomie (il coucircte moins cher agrave produire) et defficaciteacute (car les eacuteleacutements inutiles du modegravele
plus fourni nuiront agrave lefficaciteacute de la tacircche)
Exemtple
Ainsi pour naviguer en voiture il est plus simple de ne pas avoir sur la carte les chemins de randonneacutees qui
ne sont pas praticables en voiture
2 Introduction au diagramme de classes UML classes et
associations
a) Lab I
Description du problegraveme [15 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
Objectifs
Savoir faire un modegravele conceptuel
Savoir interpreacuteter un modegravele conceptuel
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
31
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
b) Preacutesentation dUML UML est un langage de repreacutesentation destineacute en particulier agrave la modeacutelisation objet UML est devenu une
norme OMG en 1997
UML propose un formalisme qui impose de penser objet et permet de rester indeacutependant dun langage de
programmation donneacute Pour ce faire UML normalise les concepts de lobjet (eacutenumeacuteration et deacutefinition
exhaustive des concepts) ainsi que leur notation graphique Il peut donc ecirctre utiliseacute comme un moyen de
communication entre les eacutetapes de speacutecification conceptuelle et les eacutetapes de speacutecifications techniques
Fondamental Diagramme de classe
Le diagramme de classes est un sous ensemble dUML qui sattache agrave la description statique dun
modegravele de donneacutees repreacutesenteacutees par des classes dobjets
Remarque
Dans le domaine des bases de donneacutees UML peut ecirctre utiliseacute agrave la place du modegravele E-A pour modeacuteliser le
domaine De la mecircme faccedilon un scheacutema conceptuel UML peut alors ecirctre traduit en scheacutema logique (relationnel
ou relationnel-objet typiquement)
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
32
c) Classes
Deacutefinition Classe
Une classe est un type abstrait caracteacuteriseacute par des proprieacuteteacutes (attributs et meacutethodes) communes agrave un ensemble
dobjets et permettant de creacuteer des instances de ces objets ayant ces proprieacuteteacutes
Image 2 Repreacutesentation UML dune classe
Exemtple La classe Voiture
Lobjet V1 est une instance de la classe Voiture
V1 Voiture
Marque Citroeumln
Type ZX
Portes 5
Puissance 6
Kilomeacutetrage 300000
Comtpleacutement
La modeacutelisation sous forme de diagramme de classes est une modeacutelisation statique qui met en exergue la
structure dun modegravele mais ne rend pas compte de son eacutevolution temporelle UML propose dautres types de
diagrammes pour traiter notamment de ces aspects
d) Atributs
Deacutefinition Atribut
Un attribut est une information eacuteleacutementaire qui caracteacuterise une classe et dont la valeur deacutepend de lobjet
instancieacute
Syntaxe
Image 3 Exemple de classe repreacutesenteacutee en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
33
Un attribut est typeacute Le domaine des valeurs que peut prendre lattribut est fixeacute a priori
Un attribut peut ecirctre multivalueacute Il peut prendre plusieurs valeurs distinctes dans son domaine
Un attribut peut ecirctre deacuteriveacute Sa valeur alors est une fonction sur dautres attributs de la classe
Un attribut peut ecirctre composeacute (ou composite) Il joue alors le rocircle dun groupe dattributs (par
exemple une adresse peut ecirctre un attribut composeacute des attributs numeacutero type de voie nom de la
voie) Cette notion renvoie agrave la notion de variable de type Record dans les langages de programmation
classiques
Atention On utilise peu les atributs deacuteriveacutes et composeacutes en UML
En UML on preacutefegravere lusage de meacutethodes aux attributs deacuteriveacutes On utilisera toujours des
meacutethodes degraves que la valeur de lattribut deacuteriveacute deacutepend dautres attributs exteacuterieurs agrave sa
classe
En UML on preacutefegravere lusage de compositions aux attributs composeacutes On utilisera toujours
des compositions pour les attributs composeacutes et multivalueacutes
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
34
Syntaxe
attributtype attribut_multivalueacute[nbMinValeursnbMaxValeurs]type attribut_deacuteriveacutetype attribut_composeacute - sous-attribut1type - sous-attribut2type -
1 2 3 4 5 6 7
Image 4 Repreacutesentation dattributs en UML
Dans cet exemple les attributs Nom Preacutenom sont de type string lun de 20 caractegraveres et lautre de 10 tandis
que DateNaissance est de type date et Age de type integer Preacutenom est un attribut multivalueacute ici une personne
peut avoir de 1 agrave 3 preacutenoms Age est un attribut deacuteriveacute il est calculeacute par une fonction sur DateNaissance
Comtpleacutement Voir aussi
Meacutethodes
Composition - p99
e) Repeacuterage des cleacutes Un attribut ou un groupe dattributs peut ecirctre annoteacute comme eacutetant cleacute sil permet didentifier de faccedilon unique
un objet de la classe
On ajoute le symbole key agrave cocircteacute du ou des attributs concerneacutes
Cleacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
35
Cleacute composeacutee de deux attributs
Meacutethode
Le repeacuterage des cleacutes nest pas systeacutematique en UML (la deacutefinition des cleacutes se fera essentiellement au niveau
logique) On cherchera neacuteanmoins agrave repeacuterer les cleacutes rendues eacutevidentes par la phase de clarification
Atention
On najoutera jamais de cleacute artificielle au niveau du MCD Si aucune cleacute nest eacutevidente on laisse
la classe sans cleacute Atention Atribut souligneacute et
On trouvera dans ce cours des exemples dattributs souligneacutes ou preacuteceacutedeacutes de pour exprimer
luniciteacute Ce nest pas une pratique standard et la notation key devrait lui ecirctre substitueacutee
Un attribut souligneacute est normalement un attribut de classe ou static en UML Un
attribut preacuteceacutedeacute de est normalement un attribut proteacutegeacute en UML
Mais les concepts dattribut de classe et dattribut proteacutegeacute ne sont pas utiliseacutes dans le cadre des
bases de donneacutees
f) Meacutethodes
Deacutefinition Meacutethode
Une meacutethode (ou opeacuteration) est une fonction associeacutee agrave une classe dobjet qui permet dagir sur les objets de
la classe ou qui permet agrave ces objets de renvoyer des valeurs (calculeacutees en fonction de paramegravetres)
Syntaxe
methode(paramegravetres)type 1
Remarque Meacutethodes et modeacutelisation de BD
Pour la modeacutelisation des bases de donneacutees les meacutethodes sont surtout utiliseacutees pour repreacutesenter des donneacutees
calculeacutees (agrave linstar des attributs deacuteriveacutees) ou pour mettre en exergue des fonctions importantes du systegraveme
cible Seules les meacutethodes les plus importantes sont repreacutesenteacutees lapproche est moins systeacutematique quen
modeacutelisation objet par exemple
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
36
Remarque Meacutethodes relationnel relationnel-objet
Lors de la transformation du modegravele conceptuel UML en modegravele logique relationnel les meacutethodes ne seront
geacuteneacuteralement pas impleacutementeacutees Leur repeacuterage au niveau conceptuel sert donc surtout daide-meacutemoire
pour limpleacutementation au niveau applicatif
Au contraire un modegravele logique relationnel-objet permettra limpleacutementation de meacutethodes directement
associeacutees agrave des tables Leur repeacuterage au niveau conceptuel est donc encore plus important
Comtpleacutement Transformation des meacutethodes par des vues - p98
g) Associations
Deacutefinition Association
Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire)
qui deacutefinit un ensemble de liens entre les objets de ces classes
Une association est nommeacutee geacuteneacuteralement par un verbe Une association peut avoir des proprieacuteteacutes (agrave linstar
dune classe) Une association deacutefinit le nombre minimum et maximum dinstances autoriseacutee dans la relation
(on parle de cardinaliteacute)
Syntaxe
Image 5 Notation de lassociation en UML
Atention
Le nom de lassociation (verbe qui la deacutecrit) est obligatoire au mecircme titre que le nom dune
classe ou dun attribut
Remarque
Une association est geacuteneacuteralement bidirectionnelle (cest agrave dire quelle peut se lire dans les deux sens) Les
associations qui ne respectent pas cette proprieacuteteacute sont dites unidirectionnelles ou agrave navigation restreinte
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
37
Image 6 Repreacutesentation dassociation en UML
Lassociation Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des
voitures
Comtpleacutement Voir aussi
Cardinaliteacute
Explicitation des associations - p100
Associations ternaires - p101
Contraintes sur les associations - p101
h) Cardinaliteacute
Deacutefinition Cardinaliteacute dune association
La cardinaliteacute dune association permet de repreacutesenter le nombre minimum et maximum dinstances qui sont
autoriseacutees agrave participer agrave la relation La cardinaliteacute est deacutefinie pour les deux sens de la relation
Syntaxe
Si mina (resp maxa) est le nombre minimum (resp maximum) dinstances de la classe A autoriseacutees agrave participer
agrave lassociation on note sur la relation agrave cocircteacute de la classe A minamaxa
Si le nombre maximum est indeacutetermineacute on note n ou
Atention
La notation de la cardinaliteacute en UML est opposeacutee agrave celle adopteacutee en E-A En UML on note agrave gauche
(resp agrave droite) le nombre dinstances de la classe de gauche (resp de droite) autoriseacutees dans
lassociation En E-A on note agrave gauche (resp agrave droite) le nombre dinstances de la classe de
droite (resp de gauche) autoriseacutees dans lassociation
Remarque
Les cardinaliteacutes les plus courantes sont
01 (optionnel)
11 ou 1 (un)
Lassociation Conduit
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
38
0n ou 0 ou (plusieurs)
Ici un conducteur peut posseacuteder plusieurs voitures (y compris aucune) et une voiture nest posseacutedeacutee que par
un seul conducteur
i) Classe dassociation
Deacutefinition Classe dassociation
On utilise la notation des classes dassociation lorsque lon souhaite ajouter des proprieacuteteacutes agrave une association
Syntaxe Notation dune classe dassociation en UML
Image 8 Notation dune classe dassociation en UML
1 n ou 1 (obligatoire )
Image 7 Repreacutesentation de cardinaliteacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
39
Image 9 Emplois
B Exercices
1 Exercice Lire lUML [15 min]
Tennis Le scheacutema suivant repreacutesente les rencontres lors dun tournoi de tennis Quelles sont les assertions vraies selon ce scheacutema
Image 10
On peut jouer des matchs de double
Un joueur peut gagner un match sans y avoir participeacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
40
Il peut y avoir deux matchs sur le mecircme terrain agrave la mecircme heure
Connaissant un joueur on peut savoir sur quels terrains il a joueacute
Journal Voici le scheacutema conceptuel du systegraveme dinformation (tregraves simplifieacute) dun quotidien Quelles sont les assertions vraies selon ce scheacutema
Image 11
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
41
Un article peut ecirctre reacutedigeacute par plusieurs journalistes
Un article peut ecirctre publieacute plusieurs fois dans le mecircme journal
Un article peut ecirctre publieacute dans un journal par un journaliste qui ne travaille pas pour ce
journal
Il peut y avoir plusieurs articles sur le mecircme sujet
Un journaliste peut interviewer une personnaliteacute sans faire darticle agrave ce propos
Logistique Une socieacuteteacute de transport routier veut installer un systegraveme dinformation pour rendre plus efficace sa logistique Embaucheacute au service informatique de cette compagnie vous ecirctes donc chargeacute de reprendre le travail deacutejagrave effectueacute (cest agrave dire le scheacutema suivant)
Quelles sont les assertions vraies selon ce scheacutema
Image 12
Un conducteur peut conduire plusieurs camions
Un conducteur peut conduire un camion sans y ecirctre autoriseacute
Il peut y avoir plusieurs conducteurs pour le mecircme camion
Un conducteur peut livrer sa propre ville
2 Gestion dune coopeacuterative viticole
[20 minutes] Cet exercice a eacuteteacute inspireacute par Bases de donneacutees objet et relationnel [Gardarin99]
On considegravere une base Coopeacuterative qui possegravede les caracteacuteristiques suivantes
Un vin est caracteacuteriseacute par un numeacutero entier unique nv un cru une anneacutee de production et un degreacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
42
Un viticulteur est caracteacuteriseacute par un numeacutero entier unique nvt un nom et une ville Un viticulteur produit un ou plusieurs vins et reacuteciproquement un vin est produit par un ou plusieurs
producteurs (eacuteventuellement aucun)
Les buveurs sont caracteacuteriseacutes par un numeacutero de buveur nb un nom preacutenom et une adresse (limiteacutee agrave
la ville pour simplifier)
Un buveur consomme des vins et peut passer des commandes pour acheter des vins
Question 1
Lister tous les types dobjet agrave consideacuterer les attributs associeacutes et les domaines de valeurs de ces attributs
Repeacuterer les eacuteventuelles cleacutes
Question 2
Lister toutes les associations agrave consideacuterer et indiquer leurs cardinaliteacutes
Question 3
Donner le diagramme UML de cette situation
3 Cours et intervenants
[20 min] On souhaite reacutealiser une base de donneacutees pour geacuterer les cours dispenseacutes dans une eacutecole dingeacutenieur ainsi
que les personnes qui interviennent dans ces cours
Chaque cours est identifieacute par une anneacutee et un numeacutero Chaque cours a donc un numeacutero unique localement
agrave chaque anneacutee Un cours possegravede un titre et un type (C pour Cours TD ou TP) Un cours possegravede
eacutegalement une date de deacutebut et une date de fin qui est toujours de 5 jours apregraves la date de deacutebut
Chaque intervenant est identifieacute par son nom (deux intervenants ne peuvent pas avoir le mecircme nom) Il a un
preacutenom un bureau un ou plusieurs numeacuteros de teacuteleacutephones (jusquagrave trois numeacuteros) et des speacutecialiteacutes Un
bureau est deacutefini par un centre (R pour Royallieu BF pour Benjamin Franklin et PG pour Pierre Guillaumat)
un bacirctiment (une lettre de A agrave Z) et un numeacutero (infeacuterieur agrave 1000) Les speacutecialiteacutes sont des couples de chaicircnes
de caractegraveres deacutesignant un domaine (par exemple BD) et une speacutecialiteacute (par exemple SGBDRO)
Chaque cours est donneacute par un unique intervenant
Voici un exemple Le cours Machines universelles ndeg21 de lanneacutee 2014 est donneacute par Alan Turing entre le
05012014 et le 10012014 Cest un cours de type C Alan Turing a le bureau 666 au bacirctiment X de PG Il
a les numeacuteros de teacuteleacutephone 0666666666 et 0766666666 Il possegravede les speacutecialiteacutes suivantes
Domaine Matheacutematique Speacutecialiteacute Cryptographie
Domaine Informatique Speacutecialiteacute Algorithmie
Domaine Informatique Speacutecialiteacute Intelligence Artificielle
Question
Reacutealiser le modegravele UML de la base de donneacutees Preacuteciser les cleacutes et les types des attributs
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
43
4 Gestion du personnel
[30 minutes] Le service de gestion du personnel dune entreprise deacutesire seacutequiper dun outil lui permettant de geacuterer
informatiquement ses employeacutes leurs salaires et leurs congeacutes Les speacutecifications suivantes ont pu ecirctre mises
en exergue par une analyse des besoins reacutealiseacutee aupregraves des utilisateurs du service du personnel
Geacuteneacuteraliteacutes
tout employeacute est identifieacute par un nom un preacutenom et une date de naissance
tout employeacute remplit une fonction et appartient agrave un service
pour chaque employeacute on gegravere la date dembauche et la quotiteacute (cest agrave dire le pourcentage de temps
travailleacute par rapport au temps plein en cas de travail agrave temps partiel)
Gestion des salaires
pour chaque employeacute on gegravere lhistorique de ses salaires dans lentreprise chaque salaire eacutetant affecteacute
agrave une peacuteriode de temps
un salaire est composeacute dun salaire brut de charges patronales et de charges salariales
on cherchera agrave partir des ces donneacutees agrave obtenir eacutegalement le salaire chargeacute (brut + charges patronales)
et le salaire net (brut - charges salariales) et ce en particulier pour le salaire en cours (celui que
touche actuellement le salarieacute)
Gestion des congeacutes
pour chaque employeacute on meacutemorise chaque congeacute pris (posant quun congeacute concerne toujours une ou
plusieurs journeacutees entiegraveres)
chaque employeacute a le droit aux jours de congeacutes suivants
- 25 jours (pour une quotiteacute de 1) et 25 x quotiteacute sinon - chaque fonction ouvre les droits agrave un certain nombre de jours de RTT - chaque service ouvre les droits agrave un certain nombre de jours de RTT - chaque tranche de 5 ans passeacutes dans lentreprise donne droit agrave 1 jour suppleacutementaire - les employeacutes de plus de 40 ans ont un jour suppleacutementaire et ceux de plus de 50 ans deux
pour chaque employeacute on cherchera agrave connaicirctre le nombre total de jours de congeacutes autoriseacutes le nombre
de jours pris et le nombre de jours restants sur lanneacutee en cours
Question
Reacutealiser le diagramme de classes permettant de modeacuteliser ce problegraveme
44
III - La modeacutelisation logique
relationnelle
A Cours
Le modegravele relationnel est aux fondements des SGBDR Il a eacuteteacute et continue decirctre le modegravele theacuteorique
dominant pour la repreacutesentation logique des base de donneacutees mecircme si le mouvement NoSQL propose des
alternatives
Le modegravele relationnel permet de reformuler le modegravele conceptuel dans un formalisme - le tableau - beaucoup
plus proche de limpleacutementation informatique bien quencore indeacutependant dune solution technologique
particuliegravere
1 Introduction au modegravele relationnel
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
III
La modeacutelisation logique relationnelle
45
a) Niveau logique Le niveau logique est le lien entre le niveau conceptuel et limpleacutementation effective de lapplication Le modegravele
conceptuel eacutetant un modegravele formel le modegravele logique a pour vocation decirctre eacutegalement un modegravele formel
mais speacutecifiant non plus la reacutealiteacute existante ou rechercheacutee comme le modegravele conceptuel mais les donneacutees
telles quelles vont exister dans lapplication informatique
Pour assumer cette fonction le modegravele relationnel [Codd70] sest imposeacute en reacuteaction aux insuffisances des
modegraveles anteacuterieurs les modegraveles hieacuterarchique et reacuteseau et de part la puissance de ses fondements
matheacutematiques Encore aujourdhui dominant le modegravele relationnel est un fondement indispensable agrave la
conception de bases de donneacutees
Ratptpel
Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
b) Deacutefinition du modegravele relationnel
Introduction
Le modegravele relationnel a eacuteteacute introduit par Codd [Codd70] en 1970 au laboratoire de recherche dIBM de San
Joseacute Il sagit dun modegravele simple et puissant agrave la base de la majoriteacute des bases de donneacutees encore aujourdhui
Les objectifs du modegravele relationnel formuleacutes par Codd sont les suivants
Assurer lindeacutependance des applications et de la repreacutesentation interne des donneacutees
Geacuterer les problegravemes de coheacuterence et de redondance des donneacutees
Utiliser des langages de donneacutees baseacutes sur des theacuteories solides
Deacutefinition Modegravele relationnel
On appelle modegravele relationnel un ensemble de concepts permettant de formaliser logiquement la description
darticles de fichiers plats indeacutependamment de la faccedilon dont ils sont physiquement stockeacutes dans une meacutemoire
numeacuterique
Le modegravele relationnel inclut des concepts pour la description de donneacutees ainsi que des concepts pour la
manipulation de donneacutees
Fondamental Repreacutesenter le monde en tables
Le modegravele relationnel permet de repreacutesenter les donneacutees que lon va geacuterer agrave laide dun tregraves petit
nombre de concepts tregraves simples
Les relations ou tables des lignes et des colonnes
Les domaines de valeurs chaque case dune table prend une unique valeur dans un
domaine preacute-deacutefini
Les cleacutes il existe des cases dont les valeurs doivent ecirctre uniques et non nulles
Les cleacutes eacutetrangegraveres il existe des cases qui doivent prendre une valeur existante dans les
cases dune autre table
La modeacutelisation logique relationnelle
46
Comtpleacutement Extension du modegravele relationnel
Le modegravele relationnel est un standard normaliseacute par lISO agrave travers son langage le SQL Il se veut neacuteanmoins
degraves lorigine extensible pour permettre de geacuterer des donneacutees plus complexes que les donneacutees tabulaires Le
modegravele relationnel-objet est neacute de cette extension
2 Les concepts fondamentaux du modegravele relationnel
atributs enregistrement domaine
a) Domaine
Deacutefinition Domaine
Ensemble caracteacuteriseacute par un nom dans lequel des donneacutees peuvent prendre leurs valeurs
Remarque Un domaine peut-ecirctre deacutefini en intension (cest agrave dire en deacutefinissant les proprieacuteteacutes caracteacuteristiques des
valeurs du domaine on parle aussi de compreacutehension) ou en extension (cest agrave dire en eacutenumeacuterant toutes
les valeurs du domaine)
Exemtple Domaines deacutefinis en intension
Tous les entiers
Les reacuteels infeacuterieur agrave 5
Les booleacuteen (vrai ou faux)
Toutes les chaicircnes de 1 agrave 255 caractegraveres
Les valeurs moneacutetaires deacutefinie comme des deacutecimaux avec deux chiffres apregraves la virgule
Les dates deacutefinies comme des chaicircnes de 10 caractegraveres comprenant des chiffres et des tirets selon le
patron 00-00-0000
Les salaires deacutefinis comme des valeurs moneacutetaires compris entre 15000 et 100000
Exemtple Domaines deacutefinis en extension
Couleur Bleu Vert Rouge Jaune Blanc Noir
SGBD Hieacuterarchique Reacuteseau Relationnel Objet Relationnel-Objet
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
La modeacutelisation logique relationnelle
47
b) Exercice Indiquez quelle deacutefinition et quel exemple correspondent respectivement aux mots intension et extension
1 - Le domaine des couleurs
2 - Eacutenonciation exhaustive de lensemble des objets du domaine
3 - bleu rouge vert
4 - Explicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa compreacutehension
abstraite geacuteneacuterale)
Intension Extension
c) Atribut et enregistrement
Deacutefinition Atribut
On appelle attribut dune relation une colonne de cette relation Un attribut est caracteacuteriseacute par un nom et un
domaine dans lequel il prend ses valeurs
Synonymes Champs Proprieacuteteacute Colonne
Deacutefinition Enregistrement
On appelle enregistrement dune relation une ligne de cette relation Un enregistrement prend une valeur
pour chaque attribut de la relation
Synonymes Tuple N-uplet Vecteur Ligne
La modeacutelisation logique relationnelle
48
Exemtple
A B
1 1
1 2
2 2
Tableau 5 Relation R
La relation R comporte les deux attributs A et B et les trois enregistrements lt11gt lt12gt et lt22gt
Remarque Atribut domaine ordre
Un attribut se distingue dun domaine car il peut ne comporter que certaines valeurs de ce domaine
Les colonnes de la relation ne sont pas ordonneacutees et elles ne sont donc repeacutereacutees que par le nom de lattribut
Remarque Valeur nulle
Un enregistrement peut ne pas avoir de valeur pour certains attributs de la relation parce que cette valeur
est inconnue ou inapplicable sa valeur est alors null
d) Exemple La relation Vol
Exemtple
Numero Compagnie Avion Deacutepart Arriveacutee Date
AF3245 Air France 747 Paris Oulan Bator 01shy08shy2002
AF6767 Air France A320 Paris Toulouse 30shy07shy2002
KLM234 KML 727 Paris Amsterdam 31shy07shy2002
Tableau 6 Relation Vol
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel
Objectifs
Connaicirctre les notions de cleacutes candidates naturelles artificielles primaire eacutetrangegravere
Aborder le principe deacuteclatement des relations et de nonredondance
La modeacutelisation logique relationnelle
49
a) Cleacute
Deacutefinition Cleacute
Une cleacute est un groupe dattributs minimum qui permet didentifier de faccedilon univoque un tuple dans une
relation
Fondamental
Toute relation doit comporter au moins une cleacute ce qui implique quune relation ne peut pas
contenir deux tuples identiques
Atention Atributs de cleacutes unique et non null Afin decirctre deacuteterminants pour lidentification dun enregistrement tous les attributs dune cleacute
doivent ecirctre valueacutes cest-agrave-dire quaucun ne peut avoir de valeur null Dire quun groupe
dattribut est une cleacute eacutequivaut agrave dire quil est unique et non null
Exemtple Numeacutero deacutetudiant
Le numeacutero deacutetudiant dune relation Etudiant est une bonne cleacute car il y aura systeacutematiquement une
valeur non nulle
Le groupe dattributs (nom preacutenom) dune relation Etudiant est en geacuteneacuteral une mauvaise cleacute car les
homonymes existent
b) Deacuteterminer les cleacutes
Deacutetermination dune cleacute
Deacutefinir un groupe dattributs comme eacutetant une cleacute neacutecessite une reacuteflexion seacutemantique sur les donneacutees
composant ces attributs afin de sassurer de leur uniciteacute
Fondamental
La deacutefinition des cleacutes est un acte de modeacutelisation elle ne renvoie pas donc pas agrave une veacuteriteacute
intangible mais agrave la reacutealiteacute telle quelle est repreacutesenteacutee dans le modegravele que lon eacutelabore
Exemtple
Lattribut numeacutero de seacutecuriteacute sociale dune relation personne peut paraicirctre une bonne cleacute a priori car son
uniciteacute est assureacutee Mais tout le monde nen dispose pas forceacutement (les enfants des eacutetrangers) donc ce nest
une cleacute que si lon considegravere des personnes affilieacutees agrave la seacutecuriteacute sociale
c) Cleacute primaire et cleacutes candidates
Deacutefinition Cleacute tprimaire
Si plusieurs cleacutes existent dans une relation on en choisit une parmi celles-ci Cette cleacute est appeleacutee cleacute
primaire
La modeacutelisation logique relationnelle
50
La cleacute primaire est geacuteneacuteralement choisie de faccedilon agrave ce quelle soit la plus simple cest agrave dire portant sur le
moins dattributs et sur les attributs de domaine les plus basiques (entiers ou chaicircnes courtes typiquement)
Deacutefinition Cleacutes candidates
On appelle cleacutes candidates lensemble des cleacutes dune relation qui nont pas eacuteteacute choisies comme cleacute primaire
(elles eacutetaient candidates agrave cette fonction)
d) Cleacute artificielle
Deacutefinition Cleacute artificielle
Sil est impossible de trouver une cleacute primaire ou que les cleacutes candidates sont trop complexes il est possible
de faire appel agrave une cleacute artificielle Une cleacute artificielle est un attribut suppleacutementaire ajouteacute au scheacutema de
la relation qui nest lieacute agrave aucune signification et qui sert uniquement agrave identifier de faccedilon unique les
enregistrements etou agrave simplifier les reacutefeacuterences de cleacutes eacutetrangegraveres
Deacutefinition Cleacute signifiante
Une cleacute est signifiante si elle nest pas artificielle
Synonyme Cleacute naturelle
Atention Cleacute artificielle et niveau logique
Au niveau du modegravele logique il faut eacuteviter la simpliciteacute consistant agrave identifier toutes les relations
avec des cleacutes artificielles et ne reacuteserver cet usage quaux cas particuliers
Conseil
1 Si au moins une cleacute naturelle composeacutee dun seul attribut existe en choisir une parmi celles-ci comme
cleacute primaire 2 Sinon choisir une cleacute naturelle composeacutee de plusieurs attributs si elle ne pose pas de problegraveme identifieacute 3 Toujours justifier lemploi dune cleacute artificielle (au niveau logique uniquement pour des raisons de
complexiteacute du modegravele les questions de performance sont eacutetudieacutees au niveau physique)
RemarqueCleacute artificielle et niveau tphysique eacutevolutiviteacute maintenance et tperformance
Au niveau de limpleacutementation physique par contre il est courant que des cleacutes artificielles soient utiliseacutees de
faccedilon systeacutematique
Du point de vue de leacutevolutiviteacute de la BD il existe toujours un risque quune cleacute nonartificielle perde
sa proprieacuteteacute duniciteacute ou de non-nulliteacute
Du point de vue de la maintenance de la BD il existe toujours un risque quune cleacute non-artificielle
voit sa valeur modifieacutee et dans ce cas la reacutepercution de ce changement pour mettre agrave jour toutes les
reacutefeacuterences peut poser problegraveme
Du point de vue de la performance de la BD les cleacutes non-artificielles ne sont pas en geacuteneacuteral optimiseacutees
en terme de type et de taille et donc peuvent limiter les performances dans le cadre des jointures
Preacutecisons neacuteanmoins quinversement les cleacutes artificielles ont pour conseacutequence de systeacutematiser des
jointures qui auraient pu ecirctre eacuteviteacutees avec des cleacutes primaires signifiantes
La modeacutelisation logique relationnelle
51
Exemtple Problegraveme deacutevolutiviteacute tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD franccedilaise elle ne permettra pas dentrer
un individu non-franccedilais issu dun pays ne disposant pas dun tel numeacutero
Exemtple Problegraveme de maintenance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD centrale dont les donneacutees sont exploiteacutees
par dautres tables dautres BD qui viennent piocher dans cette BD pour leurs propres usages sans que la
BD centrale ne connaisse ses clients Soit une erreur dans la saisie dun numeacutero de seacutecuriteacute sociale dans la
BD centrale si ce numeacutero est corrigeacute il faudrait (ce qui nest pas possible dans notre cas) impeacuterativement en
avertir toutes les bases utilisatrices pour quelles mettent agrave jour leurs reacutefeacuterences
Exemtple Problegraveme de tperformance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table comptant un million denregistrements ce numeacutero
est geacuteneacuteralement un nombre agrave 13 chiffres ou une chaicircne agrave 13 caractegraveres ce qui dans les deux cas est supeacuterieur
au nombre agrave 7 chiffres suffisant pour identifier tous les individus de la BD Les performances seront donc
toujours moins bonnes lors des jointures si une cleacute prend deux fois plus de place en meacutemoire que son
optimum Mais ajoutons que cette perte de performance na pas toujours de conseacutequence sur la reacutealiteacute
perceptible par les utilisateurs de la BD
Inversement soit une cleacute artificielle la cleacute primaire dune table T1 par ailleurs reacutefeacuterenceacutee par une autre table
T2 Soit le numeacutero de seacutecuriteacute sociale un attribut cleacute de T1 Si lon veut par requecircte disposer des informations
de T2 ainsi que du numeacutero de seacutecuriteacute sociale de T1 alors il faudra faire une jointure tandis que si ce numeacutero
signifiant avait eacuteteacute choisi comme cleacute primaire cela naurait pas eacuteteacute neacutecessaire
La modeacutelisation logique relationnelle
52
e) Cleacute eacutetrangegravere
Deacutefinition Cleacute eacutetrangegravere
Une cleacute eacutetrangegravere est un attribut ou un groupe dattributs dune relation R1 devant apparaicirctre comme cleacute
primaire dans une relation R2 afin de mateacuterialiser une reacutefeacuterence entre les tuples de R1 et les tuples de R2
Une cleacute eacutetrangegravere dun tuple reacutefeacuterence une cleacute primaire dun autre tuple
Atention
Seule une cleacute primaire peut ecirctre reacutefeacuterenceacutee par une cleacute eacutetrangegravere cest mecircme le seule fonction
de la cleacute primaire ecirctre la cleacute qui peut ecirctre reacutefeacuterenceacutee par les cleacutes eacutetrangegraveres
Deacutefinition Contrainte dinteacutegriteacute reacutefeacuterentielle
Une cleacute eacutetrangegravere respecte la contrainte dinteacutegriteacute reacutefeacuterentielle si sa valeur est effectivement existante dans
la cleacute primaire dun tuple de la relation reacutefeacuterenceacutee ou si sa valeur est null
Une cleacute eacutetrangegravere qui ne respecte pas la contrainte dinteacutegriteacute reacutefeacuterentielle exprime un lien vers un tuple qui
nexiste pas et donc nest pas coheacuterente
f) Reacutefeacuterence entre relations Le modegravele relationnel a pour objectif la structuration de donneacutees selon des relations Lenjeu est de parvenir
agrave traduire un modegravele conceptuel en modegravele logique relationnel Or il ny a pas de notion dassociation en
relationnel donc il faudra pouvoir traduire les associations avec les concepts dont on dispose relation cleacute
cleacute eacutetrangegravere
Afin de repreacutesenter des reacutefeacuterences entre relations dans un modegravele relationnel la seule solution est de stocker
linformation dans une relation et donc que certains attributs dune relation servent agrave pointer sur dautres
relations
Atention
Il ny a pas vraiment de reacutefeacuterence ou de lien en relationnel puisque nous ne disposons que de
tables de cleacutes de cleacutes eacutetrangegravere et de valeurs
On va donc devoir se servir de ces outils pour mateacuterialiser une notion de reacutefeacuterence
Meacutethode Reacutefeacuterence
La reacutefeacuterence entre deux tuples T1 et T2 de deux relations diffeacuterentes est exprimable par une valeur identique
entre une cleacute eacutetrangegravere du tuple T1 et la cleacute primaire de lautre tuple T2 Synonyme Lien Exemtple
R1 R2 a1 a2=gtR2 b1 b2
La modeacutelisation logique relationnelle
53
F
Image 13
Lattribut a2 de la relation R1 reacutefeacuterence lattribut b1 de la relation R2 car a2 est une cleacute eacutetrangegravere de R1 vers
R2 (b1 est la cleacute primaire de R2)
Ici on a donc par exemple les tuples identifieacutes par B et C de R1 qui reacutefeacuterencent le tuple identifieacute par 1 dans
R2
g) Scheacutema relationnel
Deacutefinition Scheacutema dune relation
Le scheacutema dune relation deacutefinit cette relation en intension Il est composeacute
du nom de la relation
de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs
de la cleacute primaire
des cleacutes eacutetrangegraveres
des cleacutes candidates
Deacutefinition Scheacutema relationnel dune base de donneacutee
Le scheacutema relationnel dune BD est la deacutefinition en intension de cette BD (par opposition agrave linstance de la
BD qui est une extension de la BD) Il est composeacute de lensemble des scheacutemas de chaque relation de la BD
Syntaxe Relation
Relation (Attribut1Domaine1 Attribut2Domaine2 AttributNDomaineN) 1
La relation Relation contient N attributs chacun deacutefini sur son domaine
Syntaxe Cleacute tprimaire
Relation (Attribut1Domaine1 AttributMDomaineM AttributNDomaineN)
1
La cleacute de la relation Relation est composeacutee des attributs Attribut1 agrave AttributM (attribut preacuteceacutedeacutes de ou
bien souligneacutes)
En geacuteneacuteral on note la cleacute primaire en premier dans la relation
Syntaxe Cleacute eacutetrangegravere
Relation1 ( AttributM=gtRelation2 AttributN=gtRelation2) 1
La relation Relation1 comporte une cleacute eacutetrangegravere (composeacutee des attributs AttributM agrave AttributN)
reacutefeacuterenccedilant la cleacute primaire de Relation2 Bien sucircr il peut exister plusieurs cleacutes eacutetrangegraveres vers plusieurs
La modeacutelisation logique relationnelle
54
relations distinctes Une cleacute eacutetrangegravere et sa cleacute primaire reacutefeacuterenceacutee sont toujours composeacutees du mecircme nombre
dattributs Il nest pas neacutecessaire de preacuteciser les domaines des attributs appartenant agrave la cleacute eacutetrangegravere car ce
sont forceacutement les mecircmes que ceux de la cleacute primaire reacutefeacuterenceacutee Il nest pas non plus en geacuteneacuteral neacutecessaire
de preacuteciser dans le scheacutema relationnel quels attributs de la cleacute eacutetrangegravere reacutefeacuterencent quels attributs de la cleacute
primaire (cela est geacuteneacuteralement eacutevident) mais il est possible de la faire on notant Attribut=gtRelationAttribut
En geacuteneacuteral on note les cleacutes eacutetrangegraveres en dernier dans la relation sauf pour les cleacutes eacutetrangegraveres qui font partie
de la cleacute primaire (cleacutes identifiantes)
Syntaxe Cleacute candidates
Relation1 (AttributMDomaineM ) avec AttributM cleacute 1
Les cleacutes candidates doivent ecirctre noteacutees sur le scheacutema relationnel
Sil ny a quune ou deux cleacutes candidates les noter directement apregraves la deacutefinition de la relation
Sil y a beaucoup de cleacutes pour ne pas trop alourdir la notation renvoyer agrave un tableau agrave part
Atention Cleacutes candidates et cleacute primaire
La notation R(ab) signifie toujours que R a comme cleacute primaire (ab) et non que R aurait
deux cleacutes a et b (dont on ne saurait pas laquelle est primaire)
La notation R(ab) avec b cleacute signifie bien que a et b sont deux cleacutes de R et que a est primaire
Il ne faut pas confondre une cleacute composeacutee de deux attributs avec deux cleacutes
h) Exemple de scheacutema relationnel pour la geacuteographie
Exemtple
Personne (NumeroEntier NomChaicircne PreacutenomChaicircne LieuNaissance=gtVille) Pays (NomChaicircne PopulationEntier SuperficieReacuteel Dirigeant=gtPersonne) Reacutegion (Pays=gtPays NomChaicircne Superficie Dirigeant=gtPersonne) Ville (CodePostalCP NomChaicircne Pays=gtReacutegionPays Reacutegion=gtReacutegionNom Dirigeant=gtPersonne)
1 2 3 4
Exemtple Exemtple dinstance de la base de donneacutees
Personne Num ero Nom Prenom LieuNaissance
1 Durand Pierre 60200 2 Dupont Marie 60200
Pays
Nom Population Superficie Dirig eant
France 60 50000101 2 Allemagne 80 60000023564 2 Espagne 40 3500001 1
La modeacutelisation logique relationnelle
55
Reacutegion Pays Nom Superficie Dirig eant France Picardie 50 1 Espagne Picardie 40 1 France Normandie 30 2
Ville CodePostal Nom Pays Reacuteg ion Dirig eant F60200 Compiegravegne France Picardie 1
F60300 Senlis France Picardie 2 F60301 Senlis France Picardie 2 E8000 Senlis Espagne Picardie 2
Le scheacutema relationnel preacuteceacutedent deacutecrit
Des personnes
Elles sont identifieacutees par un numeacutero qui est en fait une cleacute artificielle En effet mecircme une cleacute composeacutee
de tous les attributs (Nom Preacutenom LieuNaissance) laisse une possibiliteacute de doublons (homonymes
neacutes dans la mecircme ville)
La cleacute eacutetrangegravere LieuNaissance fait reacutefeacuterence agrave la relation Ville et plus preacuteciseacutement agrave sa cleacute primaire
CodePostal ce qui est est laisseacute implicite car eacutevident
Des pays
Ils sont identifieacutes par leur nom puisque deux pays ne peuvent avoir le mecircme nom Les pays sont
dirigeacutes par des personnes et ce lien est mateacuterialiseacute par la cleacute eacutetrangegravere Dirigeant
Des reacutegions
Elles font partie dun pays et ont un nom Deux reacutegions de pays diffeacuterents pouvant avoir le mecircme
nom il faut utiliser une cleacute primaire composeacutee agrave la fois du nom de la reacutegion et du nom du pays qui
est une cleacute eacutetrangegravere (le nom est appeleacute cleacute locale car il nest pas suffisant pour identifier un tuple de
la relation Reacutegion et la cleacute eacutetrangegravere vers la relation Pays est appeleacutee cleacute identifiante)
Des villes
Elles sont identifieacute par un code postal qui est unique dans le monde (en utilisant le preacutefixe de pays de
type F-60200) Ce code postal a pour domaine CP qui est une chaicircne composeacutee dune ou deux
lettres dun tiret puis dune seacuterie de chiffres
Le lien dappartenance entre une ville et une reacutegion est mateacuterialiseacute par la cleacute eacutetrangegravere composeacutee des
deux attributs Pays et Reacutegion Cette cleacute reacutefeacuterence la cleacute primaire de la relation Reacutegion eacutegalement composeacutee
de deux attributs Pour clairement expliciter les reacutefeacuterences (bien que seacutemantiquement la deacutenomination des
attributs ne laisse pas de place au doute) on utilise la syntaxe ReacutegionPays et ReacutegionNom
4 Synthegravese
a) Synthegravese Scheacutema relationnel
Scheacutema relationnel
Un scheacutema relationnel permet une formalisation dun modegravele logique
Relation ou table
La modeacutelisation logique relationnelle
56
Sous-ensemble dun produit carteacutesien -
Attribut ou colonne Prend ses valeurs dans un domaine
- Enregistrement ou ligne Pose une valeur (y compris la valeur null) pour chaque attribut
Cleacute
Groupe dattributs ayant un rocircle didentification au sein dun enregistrement - Cleacute candidate
Identifie de faccedilon unique un enregistrement - Cleacute primaire
Cleacute candidate choisie pour repreacutesenter un enregistrement pour sa faciliteacute dusage - Cleacute eacutetrangegravere
Reacutefeacuterence la cleacute primaire dun tuple dune autre relation pour exprimer un lien
b) Bibliographie commenteacutee sur le modegravele relationnel
Comtpleacutement Synthegraveses
SQL2 SQL3 applications agrave Oracle [Delmal01]
Une deacutefinition syntheacutetique et efficace du domaine relationnel relation domaine attribut cleacute inteacutegriteacute
opeacuterateurs (Premier chapitre)
5 Deacutefinition formelle dune relation
a) Produit carteacutesien
Deacutefinition Produit carteacutesien
Le produit carteacutesien noteacute X des domaines D1 D2 Dn noteacute D1 X D2 X X Dn est lensemble des
tuples (ou n-uplets ou vecteurs) ltV1V2Vngt tel que Vi est une valeur de Di et tel que toutes les
combinaisons de valeurs possibles sont exprimeacutees
Exemtple
D1 = A B C D2 = 1 2 3 D1 X D2 = ltA1gt ltA2gt ltA3gt ltB1gt ltB2gt ltB3gt ltC1gt ltC2gt ltC3gt
1 2 3
b) Relation
Deacutefinition Relation
Une relation sur les domaines D1 D2 Dn est un sous-ensemble du produit carteacutesien D1 X D2 X X Dn
Une relation est caracteacuteriseacutee par un nom Synonymes Table tableau
Syntaxe
La modeacutelisation logique relationnelle
57
On peut repreacutesenter la relation R sur les domaine D1 Dn par une table comportant une colonne pour
chaque domaine et une ligne pour chaque tuple de la relation
D1 Dn
V1 Vn
V1 Vn
Tableau 7 Relation R
Remarque
Une relation est deacutefinie en extension par leacutenumeacuteration des tuples la composant
B Exercices
1 Lab I-
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Dessiner des relations instancieacutees (en extension donc) remplies avec les donneacutees fournies en exemple
La modeacutelisation logique relationnelle
58
Question 2
Eacutecrivez le scheacutema relationnel (deacutefinition en intension donc) permettant de repreacutesenter une base de donneacutees
relationnelle pour le laboratoire
59
IV - Introduction au
passage
UMLRelationnel classes et
associations
A Cours
Afin de pouvoir impleacutementer une base de donneacutees il faut pouvoir traduire le modegravele conceptuel en modegravele
logique Cela signifie quil faut pouvoir convertir un modegravele UML en modegravele relationnel Les modegraveles
conceptuels sont suffisamment formels pour que ce passage soit systeacutematiseacute dans la plupart des cas
1 Transformation des classes et atributs
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
IV
Introduction au passage UML-Relationnel classes et associations
60
a) Transformation des classes
Meacutethode Classe
Pour chaque classe non abstraite
on creacutee une relation dont le scheacutema est celui de la classe
la cleacute primaire de cette relation est une des cleacutes de la classe
Classe1
Graphique 2 Classe
Classe1()
Remarque
Les classes abstraites sont ignoreacutees agrave ce stade et neacutetant pas instanciables ne donnent geacuteneacuteralement pas
lieu agrave la creacuteation de relation
b) Transformation des atributs
Meacutethode Atributs simtples
Pour chaque attribut eacuteleacutementaire et monovalueacute dune
classe on creacutee un attribut correspondant
Classe1
a key
b
Graphique 3 Attribut
Classe1(ab)
Meacutethode Atributs comtposites
Pour chaque attribut composite comprenant N sous-attributs dune classe
on creacutee N attributs correspondants
dont les noms sont la concateacutenation du nom de lattribut composite avec celui du sous attribut
Classe1
a key b -b1 -b2
Introduction au passage UML-Relationnel classes et associations
61
Graphique 4 Attribut composeacute
Classe1(ab_b1b_b2)
Meacutethode Atributs multivalueacutes
Pour chaque attribut multivalueacute b dune classe C
on creacutee une nouvelle relation RB
qui comprend un attribut monovalueacute correspondant agrave b
plus la cleacute de la relation repreacutesentant C
la cleacute de RB est la concateacutenation des deux attributs
Classe1
a key
b[110]
Graphique 5 Attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Meacutethode Atributs multivalueacutes (meacutethode alternative)
Dans le cas ougrave le nombre maximum de b est fini et petit on peut eacutegalement adopter la transformation
suivante
Classe1(ab1b2b3b4b5b6b7b8b9b10)
Si le nombre dattributs est infini (b[1]) cest impossible sil est trop grand ce nest pas souhaitable
Meacutethode Atributs comtposeacutes multivalueacutes
On combine les regravegles eacutenonceacutees pour les attributs composeacutes et pour les attributs multivalueacutes
Classe1
a key b [0N] -b1 -b2
Graphique 6 Attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
Ratptpel Voir aussi
Transformation des compositions - p102
Introduction au passage UML-Relationnel classes et associations
62
c) Transformation des atributs deacuteriveacutes et meacutethodes
Meacutethode Atributs deacuteriveacutes et meacutethodes
On ne repreacutesente pas en geacuteneacuteral les attributs deacuteriveacutes ni les meacutethodes dans le modegravele relationnel ils seront
calculeacutes dynamiquement soit par des proceacutedures internes agrave la BD (proceacutedures stockeacutees) soit par des
proceacutedures au niveau applicatif
Classe1
a key
b
m()
Graphique 7 Attribut deacuteriveacute et meacutethodes
Classe1(a)
Comtpleacutement Atribut deacuteriveacute stockeacutes
On peut deacutecider (pour des raisons de performance essentiellement) de repreacutesenter lattribut deacuteriveacute ou la
meacutethode comme sil sagissait dun attribut simple mais il sera neacutecessaire dans ce cas dajouter des
meacutecanismes de validation de contraintes dynamiques (avec des triggers par exemple) pour assurer que la
valeur stockeacutee eacutevolue en mecircme temps que les attributs sur lesquels le calcul deacuteriveacute porte
Notons quintroduire un attribut deacuteriveacute ou un reacutesultat de meacutethode dans le modegravele relationnel eacutequivaut agrave
introduire de la redondance ce qui est en geacuteneacuteral deacuteconseilleacute et ce qui doit ecirctre dans tous les cas controcircleacute
2 Transformation des associations
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
a) Transformation des associations 1N
Meacutethode
Pour chaque association binaire de type 1N
on ajoute agrave la relation cocircteacute N une cleacute eacutetrangegravere vers la relation cocircteacute 1
Classe1
01 association 0N
Classe2
a key
b c key
d
Graphique 8 Association 1N
Classe1(ab)
Introduction au passage UML-Relationnel classes et associations
63
Classe2(cda=gtClasse1)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations 1N - p103
b) Transformation des associations NM
Meacutethode
Pour chaque association binaire de type MN
on creacutee une nouvelle relation
composeacutee de cleacutes eacutetrangegraveres vers chaque relation associeacutee
et dont la cleacute primaire est la concateacutenation de ces cleacutes eacutetrangegraveres
Graphique 9 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations NM - p104
c) Transformation des associations 11 (approche simplifieacutee)
Meacutethode
La solution la plus simple et la plus geacuteneacuterale pour transformer une association 11 consiste agrave traiter cette
association 11 comme une association 1N puis agrave ajouter une contrainte UNIQUE sur la cleacute eacutetrangegravere pour
limiter la cardinaliteacute maximale agrave 1
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 10 Association 11
Classe1(abc=gtClasse2) avec c UNIQUE
Classe2(cd) ou
Introduction au passage UML-Relationnel classes et associations
64
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE
Remarque
Il existe toujours deux solutions selon que lon choisit une ou lautre relation pour accueillir la cleacute eacutetrangegravere
Selon la cardinaliteacute minimale un des deux choix peut ecirctre plus pertinent
Comtpleacutement
Il est parfois possible de choisir de fusionner les deux classes au sein dune seule relation plutocirct que dopter
pour une cleacute eacutetrangegravere
Comtpleacutement
Transformation des associations 11 (approche geacuteneacuterale) - p105
d) Transformation des classes dassociation
Meacutethode Classe dassociation NM
Graphique 11 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2ef)
Comtpleacutement Classe dassociation 1N
Les attributs de la classe dassociation sont ajouteacutes agrave la relation issue de la classe cocircteacute N
Comtpleacutement Classe dassociation 11
Les attributs de la classe dassociation sont ajouteacutes agrave la relation qui a eacuteteacute choisie pour recevoir la cleacute eacutetrangegravere
Si les deux classes ont eacuteteacute fusionneacutees en une seule relation les attributs sont ajouteacutes agrave celle-ci
a key b
Classe1
c key d
Classe2
0 N 0 N
e f
Cl-A ssoc
Introduction au passage UML-Relationnel classes et associations
65
B Exercices
1 Lab I+
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
Question 3
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 4
Dessiner des tableaux remplis avec les donneacutees fournies en exemple afin de montrer que le modegravele fonctionne
selon le besoin exprimeacute initialement On pourra mettre le premier mot seulement des descriptions pour gagner
du temps
Introduction au passage UML-Relationnel classes et associations
66
2 Usine de production
[30 minutes] Une usine cherche agrave modeacuteliser sa production de veacutehicules et de moteurs
Les veacutehicules sont identifieacutes par un numeacutero dimmatriculation alphanumeacuterique et caracteacuteriseacutes par une
couleur dont la deacutenomination est une chaicircne de caractegraveres Chaque veacutehicule peut comporter un
unique moteur etou un nombre quelconque de pneus
Chaque moteur est monteacute sur un et un seul veacutehicule et est identifieacute par un numeacutero de seacuterie Un moteur
est caracteacuteriseacute par une puissance en chevaux
Tout pneu est monteacute sur un unique veacutehicule et est identifieacute par un numeacutero de seacuterie Sa position est
deacutefinie localement sur ce veacutehicule et par rapport agrave lessieu Dn pour les pneus situeacute sur la droite de
lessieu et Gn pour les pneus situeacutes agrave gauche n repreacutesentant le numeacutero de lessieu (1 pour celui situeacute
devant 2 pour la deuxiegraveme rangeacutee etc) Un pneu est caracteacuteriseacute par un diamegravetre et une largeur en
pouces
Les moteurs les pneus et les veacutehicules sont fabriqueacutes sous une marque Les mecircmes marques peuvent
fabriquer indiffeacuteremment des moteurs des pneus etou des veacutehicules et un veacutehicule dune certaine
marque peut comporter un moteur etou des pneus de marque diffeacuterente
Question 1
Reacutealiser le modegravele UML de ce problegraveme en faisant apparaicirctre les domaines et les cleacutes
Question 2
Reacutealiser le passage au modegravele relationnel en faisant apparaicirctre les cleacutes primaires candidates et eacutetrangegraveres
Question 3
Dessiner les tableaux correspondant aux relations du modegravele Instancier au minimum deux veacutehicules et quatre
marques
Question 4
Donner quatre exemples denregistrements qui seront refuseacutes - eacutetant donneacutees les donneacutees deacutejagrave inseacutereacutees -
pour quatre raisons diffeacuterentes
contrainte de cleacute sur une cleacute primaire
contrainte de cleacute sur une cleacute candidate
contrainte dinteacutegriteacute reacutefeacuterentielle
contrainte de non nulliteacute
67
V - Creacuteation et
alimentation de bases
de donneacutees SQL
A Cours
1 Le langage SQL
Deacutefinition SQL
SQL (pour langage de requecirctes structureacute) est un langage deacuteclaratif destineacute agrave la manipulation de bases de
donneacutees au sein des SGBD et plus particuliegraverement des SGBDR
SQL LDD LCD LMD LCT
SQL est un langage deacuteclaratif il nest donc pas a proprement parleacute un langage de programmation mais plutocirct
une interface standard pour acceacuteder aux bases de donneacutees
Il est composeacute de quatre sous ensembles
Le Langage de Deacutefinition de Donneacutees (LDD ou en anglais DDL Data Definition
Language) pour creacuteer et supprimer des objets dans la base de donneacutees (tables contraintes dinteacutegriteacute
vues etc)
Exemple de commandes CREATE DROP ALTER
Le Langage de Controcircle de Donneacutees (LCD ou en anglais DCL Data Control Language) pour geacuterer les
droits sur les objets de la base (creacuteation des utilisateurs et affectation de leurs droits)
Exemple de commandes GRANT REVOKE
V
Creacuteation et alimentation de bases de donneacutees SQL
68
Le Langage de Manipulation de Donneacutees (LMD ou en anglais DML Data Manipulation
Language) pour la recherche linsertion la mise agrave jour et la suppression de donneacutees Le LMD est baseacute
sur les opeacuterateurs relationnels auxquels sont ajouteacutes des fonctions de calcul dagreacutegats et des
instructions pour reacutealiser les opeacuterations dinsertion mise agrave jour et suppression
Exemple de commandes INSERT UPDATE DELETE SELECT
Le Langage de Controcircle de Transaction (LCT ou en anglais TCL Transaction Control Language) pour
la gestion des transactions (validation ou annulation de modifications de donneacutees dans la BD)
Exemple de commandes COMMIT ROLLBACK
Fondamental Reacutefeacuterence SQL SQL-99 complete really
Gulutzan and Pelzer 1999 [Gulutzan and Pelzer 1999] httpsmariadbcomkbensql-99)2
Comtpleacutement Origine du SQL
Le modegravele relationnel a eacuteteacute inventeacute par EF Codd (Directeur de recherche du centre IBM de San Joseacute) en
1970 suite agrave quoi de nombreux langages ont fait leur apparition
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel2
IBM SystemR
IBM DB2
Ce sont ces langages qui ont donneacute naissance au standard SQL normaliseacute en 1986 au Eacutetats-Unis par lANSI
pour donner SQL86 (puis au niveau international par lISO en 1987)
Comtpleacutement Versions de SQL
SQL-86 (ou SQL-87) Version dorigine
SQL-89 (ou SQL-1) Ameacuteliorations mineures
SQL-92 (ou SQL-2) Extensions fonctionnelles majeures (types de donneacutees opeacuterations relationnelles
instruction LDD transactions etc
SQL-99 (ou SQL-3) Introduction du PSM (couche proceacutedurale sous forme de proceacutedure stockeacutees)
et du RO
SQL-2003 Extensions XML
SQL-2006 Ameacuteliorations mineures (pour XML notamment)
SQL-2008 Ameacuteliorations mineures (pour le RO notamment)
Remarque Version SQL et imtpleacutementations SGBD
Selon leur niveau dimpleacutementation de SQL les SGBD acceptent ou non certaines fonctions
Certains SGBD ayant entameacute certaines impleacutementations avant leur standardisation deacutefinitive ces
impleacutementations peuvent diffeacuterer de la norme
Creacuteation et alimentation de bases de donneacutees SQL
69
2 Creacuteer des tables en SQL (Langage de Deacutefinition de
Donneacutees)
Le LDD est la partie du langage SQL qui permet de creacuteer de faccedilon deacuteclarative les objets composant une
BD Il permet notamment la deacutefinition des scheacutemas des relations des contraintes dinteacutegriteacute des vues
Rappel Le code SQL peut ecirctre testeacute avec Db Discodbdiscocrztfr
2 - httpsmariadbcomkbensql-99
a) Lab I++
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
70
Question 2
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 3
Creacuteer une base de donneacutees en SQL correspondant au modegravele relationnel
Question 4
Inseacuterer les donneacutees fournies en exemple dans la base de donneacutees
b) Creacuteation de tables
Ratptpel
Quest ce que le SQL
Introduction
La creacuteation de table est le fondement de la creacuteation dune base de donneacutees en SQL
Deacutefinition Creacuteation de table
La creacuteation de table est la deacutefinition dun scheacutema de relation en intension par la speacutecification de tous les
attributs le composant avec leurs domaines respectifs
Syntaxe
CREATE TABLE nom_table ( nom_colonne1 domaine1 nom_colonne2 domaine2 nom_colonneN domaineN )
1 2 3 4 5 6
Exemtple
CREATE TABLE Personne ( Nom VARCHAR(25) Prenom VARCHAR(25) Age NUMERIC(3) )
1 2 3 4 5
Atention Contrainte dinteacutegriteacute
La deacutefinition des types nest pas suffisante pour deacutefinir un scheacutema relationnel il faut lui adjoindre
la deacutefinition de contraintes dinteacutegriteacute qui permette de poser les notions de cleacute dinteacutegriteacute
reacutefeacuterentielle de restriction de domaines etc
Creacuteation et alimentation de bases de donneacutees SQL
71
c) Domaines de donneacutees
Introduction
Un attribut dune relation est deacutefini pour un certain domaine ou type Les types de donneacutees disponibles en
SQL varient dun SGBD agrave lautre on peut neacuteanmoins citer un certain nombre de types standards que lon
retrouve dans tous les SGBD
Fondamental Les types standard
INTEGER ou INT SMALLINT
NUMERIC(X)
DECIMAL(XY) ou NUMERIC(XY)
FLOAT(X) REAL
CHAR(X)
VARCHAR(X)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HHMMSS)
Les tytpes numeacuteriques standard
Les nombres entiers
INTEGER (ou INT) et SMALLINT permettent de coder des entiers sur 4 octets (2147483648 agrave
2147483647) ou 2 octets (-32768 agrave 32767)
Les nombres entiers
NUMERIC(X) deacutesigne un entier de X chiffres au maximum
Les nombres deacutecimaux
DECIMAL(XY) ougrave X et Y sont optionnels et deacutesignent respectivement le nombre de chiffres maximum
pouvant composer le nombre et le nombre de chiffres apregraves la virgule
NUMERIC(XY) est un synonyme standard
Les nombres agrave virgule flottante
FLOAT(X) avec X deacutefinissant la preacutecision (nombre de bits de codage de la mantisse)
REAL est un synonyme standard de FLOAT(24)
Conseil FLOAT versus DECIMAL
Il est conseilleacute dutiliser DECIMAL qui est un nombre exact plutocirct que FLOAT qui est un nombre approximatif
si la preacutecision requise est suffisante FLOAT sera reacuteserveacute typiquement agrave des calculs scientifiques neacutecessitant
un degreacute de preacutecision supeacuterieur
Les tytpes chaicircne de caractegraveres standard
On distingue principalement les types CHAR(X) et VARCHAR(X) ougrave X est obligatoire et deacutesigne la longueur de
la chaicircne
CHAR deacutefinit des chaicircnes de longueur fixe (compleacuteteacutee agrave droites par des espaces si la longueur est
infeacuterieure agrave X)
et VARCHAR des chaicircnes de longueurs variables
Creacuteation et alimentation de bases de donneacutees SQL
72
CHAR et VARCHAR sont geacuteneacuteralement limiteacutes agrave 255 caractegraveres La plupart des SGBD proposent des types tels
que TEXT ou CLOB (Character Long Object) pour repreacutesenter des chaicircnes de caractegraveres longues jusquagrave
65000 caractegraveres par exemple
Les tytpes date standard
Les types date dont introduits avec la norme SQL2 On distingue
DATE qui repreacutesente une date selon un format de type AAAA-MM-JJ
et DATETIME qui repreacutesente une date plus une heure dans un format tel que AAAAMM-JJ HHMMSS
Comtpleacutement Les autres tytpes
En fonction du SGBD il peut exister de nombreux autres types On peut citer par exemple
MONEY pour repreacutesenter des deacutecimaux associeacutes agrave une monnaie
BOOLEAN pour repreacutesenter des booleacuteens
BLOB (pour Binary Long Oject) pour repreacutesenter des donneacutees binaires tels que des documents
multimeacutedia (images bitmap videacuteo etc)
d) La valeur NULL Labsence de valeur repreacutesenteacutee par la valeur NULL est une information fondamentale en SQL quil ne faut
pas confondre avec la chaicircne espace de caractegravere ougrave bien la valeur 0 Il ne sagit pas dun type agrave proprement
parler mais dune valeur possible dans tous les types
Fondamental
Par deacutefaut en SQL NULL fait partie du domaine il faut lexclure explicitement par la clause NOT
NULL apregraves la deacutefinition de type si on ne le souhaite pas Syntaxe
CREATE TABLE nom de table ( 1
CREATE TABLE nom_table ( nom_colonne1 domaine1 NOT NULL
nom_colonne2 domaine2
nom_colonneN domaineN NOT NULL )
2 3 4 5 6 7
e) Contraintes dinteacutegriteacute
Fondamental
PRIMARY KEY (ltliste dattibutsgt)
UNIQUE (ltliste dattibutsgt)
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt)
CHECK (ltconditiongt)
Une contrainte dinteacutegriteacute est une regravegle qui deacutefinit la coheacuterence dune donneacutee ou dun ensemble de donneacutees
de la
Creacuteation et alimentation de bases de donneacutees SQL
73
BD
Il existe deux types de contraintes
sur une colonne unique
ou sur une table lorsque la contrainte porte sur une ou plusieurs colonnes
Les contraintes sont deacutefinies au moment de la creacuteation des tables
Deacutefinition Contraintes dinteacutegriteacute sur une colonne
Les contraintes dinteacutegriteacute sur une colonne sont
PRIMARY KEY deacutefinit lattribut comme la cleacute primaire
UNIQUE interdit que deux tuples de la relation aient la mecircme valeur pour lattribut
REFERENCES ltnom tablegt (ltnom colonnesgt) controcircle linteacutegriteacute reacutefeacuterentielle entre lattribut et la
table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur de lattribut speacutecifieacute dans la condition dans le
cadre dune restriction de domaine
Deacutefinition Contraintes dinteacutegriteacute sur une table
Les contraintes dinteacutegriteacute sur une table sont
PRIMARY KEY (ltliste dattibutsgt) deacutefinit les attributs de la liste comme la cleacute primaire
UNIQUE (ltliste dattibutsgt) interdit que deux tuples de la relation aient les mecircmes valeurs pour
lensemble des attributs de la liste
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt) controcircle linteacutegriteacute
reacutefeacuterentielle entre les attributs de la liste et la table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur des attributs speacutecifieacutes dans la condition dans le
cadre dune restriction de domaine Syntaxe
CREATE TABLE nom de table ( CREATE TABLE nom_table ( nom_colonne1 domaine1 ltcontraintes colonne1gt nom_colonne2 domaine2 ltcontraintes colonne2gt nom_colonneN domaineN ltcontraintes colonneNgt
1 2 3 4 5 6
ltcontraintes de tablegt )
7 8
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) UNIQUE
(Nom Prenom) )
1 2 3 4 5 6 7 8
Remarque Cleacute candidate
La clause UNIQUE NOT NULL sur un attribut ou un groupe dattributs deacutefinit une cleacute candidate non primaire
Creacuteation et alimentation de bases de donneacutees SQL
74
Remarque
Les contraintes sur une colonne et sur une table peuvent ecirctre combineacutees dans la deacutefinition dun mecircme scheacutema
de relation
Remarque
Une contrainte sur une colonne peut toujours ecirctre remplaceacutee par une contrainte sur une table
f) Exemple de contraintes dinteacutegriteacute
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) Codepostal INTEGER(5) Pays VARCHAR(50) UNIQUE (Nom Prenom) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) CHECK (Initiale = LEFT(Pays 1)) PRIMARY KEY (CP Pays) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
Dans la deacutefinition de scheacutema preacuteceacutedente on a poseacute les contraintes suivantes
La cleacute primaire de Personne est NdegSS et la cleacute primaire de Adresse est (CP Pays)
Nom Preacutenom ne peuvent pas ecirctre null et (Nom Preacutenom) est une cleacute
Age doit ecirctre compris entre 18 et 65 et Initiale doit ecirctre la premiegravere lettre de Pays (avec la fonction
LEFT qui renvoie la sous chaicircne agrave gauche de la chaicircne passeacutee en premier argument sur le nombre de
caractegraveres passeacutes en second argument)
Mariage est cleacute eacutetrangegravere vers Personne et (Codepostal Pays) est une cleacute eacutetrangegravere vers Adresse
Exemtple Reacuteeacutecriture avec uniquement des contraintes de table
Creacuteation et alimentation de bases de donneacutees SQL
75
CREATE TABLE Personne ( NdegSS CHAR(13) Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) Mariage CHAR(13) Codepostal INTEGER(5) Pays VARCHAR(50) PRIMARY KEY (NdegSS) UNIQUE (Nom Prenom) CHECK (Age BETWEEN 18 AND 65) FOREIGN KEY (Mariage) REFERENCES Personne(NdegSS) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) PRIMARY KEY (CP Pays) CHECK
(Initiale = LEFT(Pays 1)) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22
Ce scheacutema est strictement le mecircme que le preacuteceacutedent simplement les contraintes ont toutes eacuteteacute reacuteeacutecrites
comme des contraintes de table
g) Exercice Les instructions SQL ci-apregraves ont-elles pu permettre de creacuteer le scheacutema des trois relations instancieacutees ci-dessous
CREATE TABLE A ( A1 CHAR(255) A2 CHAR(255) A3 CHAR(255) A4 CHAR(255) ) CREATE TABLE B ( B1 CHAR(255) B2 CHAR(255) B3 CHAR(255) B4 CHAR(255) B5 CHAR(255) B6 CHAR(255) B7 CHAR(255) ) CREATE TABLE C ( C1 CHAR(255) C2 CHAR(255) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Oui
Non
Creacuteation et alimentation de bases de donneacutees SQL
76
3 Inseacuterer modifier et supprimer des donneacutees en SQL
(Langage de Manipulation de Donneacutees)
Objectifs
Maicirctriser les bases du SQL pour entrer modifier et effacer des donneacutees dans les
tables
a) Exercice Quelle valeur renvoie la derniegravere instruction SQL de la liste ci-dessous
CREATE TABLE t ( a integer b integer c integer)
INSERT INTO t VALUES (0 0 0)
INSERT INTO t VALUES (1 0 0)
INSERT INTO t SELECT FROM t
SELECT sum(a) + count(b) FROM t
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
b) Insertion de donneacutees Le langage SQL fournit des instructions pour ajouter des nouveaux tuples agrave une relation Il offre ainsi une
interface standard pour ajouter des information dans une base de donneacutees
Il existe deux moyens dajouter des donneacutees soit par fourniture directe des valeurs des proprieacuteteacutes du tuple agrave
ajouter soit par seacutelection des tuples agrave ajouter dans une autre relation
Syntaxe Insertion directe de valeurs
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) VALUES (ltListe ordonneacutee
des valeurs agrave affecter aux proprieacuteteacutes speacutecifieacutees cidessusgt) 1 2
Exemtple Insertion directe de valeurs
INSERT INTO Virement (Date Montant Objet) VALUES (14-07-1975 1000 Prime de naissance)
1 2
Syntaxe Insertion de valeurs tpar lintermeacutediaire dune seacutelection
Creacuteation et alimentation de bases de donneacutees SQL
77
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) SELECT 1 2
Linstruction SELECT projetant un nombre de proprieacuteteacutes identiques aux proprieacuteteacutes agrave valoriser
Exemtple Insertion de valeurs tpar lintermeacutediaire dune seacutelection
INSERT INTO Credit (Date Montant Objet) SELECT Date Montant Annulation de deacutebit FROM Debit WHERE DebitDate = 25-12-2001
1 2 3 4
Dans cet exemple tous les deacutebits effectueacutes le 25 deacutecembre 2001 sont re-creacutediteacutes pour le mecircme montant (et
agrave la mecircme date) avec la mention annulation dans lobjet du creacutedit Ceci pourrait typiquement reacutealiseacute en cas
de deacutebits erroneacutes ce jour lagrave
Remarque
Les proprieacuteteacutes non valoriseacutees sont affecteacutees agrave la valeur NULL
Il est possible de ne pas speacutecifier les proprieacuteteacutes agrave valoriser dans ce cas toutes les proprieacuteteacutes de la
relation seront consideacutereacutees dans leur ordre de deacutefinition dans la relation (agrave nutiliser que dans les cas
les plus simples)
c) Mise agrave jour de donneacutees Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation
Syntaxe Mise agrave jour directe de valeurs
1 UPDATE ltNom de la relationgt
2 SET ltListe daffectations Proprieacuteteacute=Valeur Proprieacuteteacute=Valeurgt 3 WHERE ltCondition pour filtrer les tuples agrave mettre agrave jourgt
1 UPDATE r
2 SET a=1 b=x 3 WHERE c=0
Exemtple Mise agrave jour directe de valeurs
UPDATE Compte SET Monnaie=Euro WHERE Monnaie=Franc
1 2 3
Exemtple Mise agrave jour tpar calcul sur lancienne valeur
UPDATE Compte SET Total=Total 655957 WHERE Monnaie=Euro
1 2 3
Creacuteation et alimentation de bases de donneacutees SQL
78
d) Suppression de donneacutees Le langage SQL fournit une instruction pour supprimer des tuples existants dans une relation
Syntaxe
DELETE FROM ltNom de la relationgt WHERE ltCondition pour filtrer les tuples agrave supprimergt
1 2
Exemtple Sutptpression de tous les tutples dune relation
DELETE FROM FaussesFactures 1
Exemtple Sutptpression seacutelective
DELETE FROM FaussesFactures WHERE Auteur=Moi
1 2
4 Supprimer et modifier des tables en SQL (Langage de
Deacutefinition de Donneacutees)
Le LDD permet de creacuteer les objets composant une BD de faccedilon deacuteclarative Il permet notamment la
deacutefinition des scheacutemas des relations la deacutefinition des contraintes dinteacutegriteacute la deacutefinition de vues
relationnelles
a) Suppression dobjets Il est possible de supprimer des objets de la BD tels que les tables ou les vues
Syntaxe
DROP lttype objetgt ltnom objetgt 1
Exemtple
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
79
DROP TABLE Personne DROP VIEW Employe
1 2
b) Modification de tables
Introduction
Linstruction ALTER TABLE permet de modifier la deacutefinition dune table (colonnes ou contraintes) preacutealablement
creacuteeacutee
Cette commande absente de SQL-89 est normaliseacutee dans SQL-92
Syntaxe Ajout de colonne
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de colonnegt
1 2
Syntaxe Sutptpression de colonne
ALTER TABLE ltnom de tablegt DROP ltnom de colonnegt
1 2
Syntaxe Ajout de contrainte
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de contrainte de tablegt
1 2
RemarqueModification de table sans donneacutee sans la commande ALTER
Pour modifier une table ne contenant pas encore de donneacutee la commande ALTER nest pas indispensable
lon peut supprimer la table agrave modifier (DROP) et la recreacuteer telle quon la souhaite Notons neacuteanmoins que si
la table est reacutefeacuterenceacutee par des clauses FOREIGN KEY cette suppression sera plus compliqueacutee car il faudra
eacutegalement supprimer et recreacuteer les tables reacutefeacuterenccedilantes (ce qui ce complique encore si ces derniegraveres
contiennent des donneacutees)
RemarqueModification de table avec donneacutees sans la commande ALTER
Pour modifier une table contenant des donneacutees la commande ALTER nest pas indispensable On peut en effet
1 Copier les donneacutees dans une table temporaire de mecircme scheacutema que la table agrave modifier
2 Supprimer et recreacuteer la table agrave modifier avec le nouveau scheacutema 3 Copier les donneacutees depuis la table temporaire vers la table modifieacutee
c) Exemple de modifications de tables
Table initiale
Soit une table initiale telle que deacutefinie ci-apregraves
Creacuteation et alimentation de bases de donneacutees SQL
80
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) prenom
VARCHAR(50) PRIMARY KEY
(pk_n) )
1 2 3 4 5 6
Modifications
On deacutecide dapporter les ameacutenagements suivants agrave la table on deacutefinit nom comme UNIQUE et on supprime
le champ prenom
ALTER TABLE Personne ADD UNIQUE (nom)
ALTER TABLE Personne DROP prenom
1 2 3 4 5
Table finale
La table obtenue apregraves modification est identique agrave la table qui aurait eacuteteacute deacutefinie directement telle que ci-
apregraves
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) PRIMARY KEY (pk_n) UNIQUE
(nom) )
1 2 3 4 5 6
B Exercices
1 The show
[30 minutes] Soit le scheacutema relationnel suivant deacutecrivant un systegraveme de reacuteservations de places de spectacles
SPECTACLE (nospectacleint nomstr dureacuteeint typetheacuteacirctre|danse|concert) SALLE (nosalleint nbplacesint) REPRESENTATION (datedate nospectacle=gtSPECTACLE nosalle=gtSALLE prixdecimal)
1 2 3
En faisant les suppositions suivantes
On gegravere un espace de spectacles ayant un ensemble de salles (deacutecrit par la relation SALLE)
On suppose que pour un jour donneacute et une salle donneacutee il ny a quun seul spectacle repreacutesenteacute
Question 1
Retro-concevoir le MCD en UML
Question 2
Proposer des contraintes dinteacutegriteacute reacutealistes pour ce scheacutema (en franccedilais)
Question 3
Creacuteation et alimentation de bases de donneacutees SQL
81
Proposer une deacutefinition du scheacutema en SQL qui prenne en compte certaines de ces contraintes
Question 4
Inseacuterer des donneacutees reacutealistes dans votre scheacutema afin de veacuterifier son bon fonctionnement
2 Du producteur au consommateur
[30 min] Soit le modegravele relationnel suivant
Producteur(raison_socialechaicircne(25) villechaicircne(255)) Consommateur(loginchaicircne(10)
emailchaicircne(50) nomchaicircne(50)prenomchaicircne(50) villechaicircne(255)) Produit(identier descriptionchaicircne(100) produit-par=gtProducteur consommepar-
login=gtConsommateur consomme-par-email=gtConsommateur)
1 2
3
On ajoute que
(nomprenomville) est une cleacute candidate de Consommateur
Tous les produits sont produits
Tous les produits ne sont pas consommeacutes
Question 1
Reacutetro-concevez le modegravele conceptuel sous-jacent agrave ce modegravele relationnel
Question 2
Eacutetablissez le code LDD standard permettant dimpleacutementer ce modegravele en SQL
Question 3
Inseacuterez les donneacutees dans votre base de donneacutees correspondant aux assertions suivantes
Lentreprise de Compiegravegne Pommes Picardes SARL a produit 4 lots de pommes et 2 lots de cidre
Il existe trois utilisateurs consommateurs dans la base donc les adresses mails sont
AlUncompiegnefr - BobDeuxcompiegnefr - CharlieTroiscompiegnefr
Ce sont des employeacutes de la ville de Compiegravegne qui habitent cette ville Leur mail est construit sur le
modegravele PrenomNomcompiegnefr Leur login est leur preacutenom
Question 4
Modifiez les donneacutees de votre base de donneacutees pour inteacutegrer les assertions suivantes
1 lots de pommes a eacuteteacute consommeacutes par Al Un
2 lots de pomme ont eacuteteacute consommeacute par Bob Deux
Tous les lots de cidre ont eacuteteacute consommeacutes par Al Un
Question 5
Charlie Trois nayant rien consommeacute modifiez votre base de donneacutees afin de le supprimer de la base
82
VI - Algegravebre relationnelle
A Cours
1 Opeacuterateurs fondamentaux projection restriction et
jointure
Objectifs
Connaicirctre et savoir utiliser les opeacuterateurs relationnels de projection restriction
produit et jointure
a) Introduction La repreacutesentation dinformation sous forme relationnelle est inteacuteressante car les fondements matheacutematiques
du relationnel outre quils permettent une modeacutelisation logique simple et puissante fournissent eacutegalement
un ensemble de concepts pour manipuler formellement linformation ainsi modeacuteliseacutee
Ainsi une algegravebre relationnelle sous forme dun ensemble dopeacuterations formelles permet dexprimer des
questions ou requecirctes poseacutees agrave une repreacutesentation relationnelle sous forme dexpressions algeacutebriques
Lalgegravebre relationnelle est composeacutee par les cinq opeacuterateurs de base et les trois opeacuterateurs additionnels
suivants
Opeacuterateurs de base
- Union - Diffeacuterence - Projection - Restriction
VI
Algegravebre relationnelle
83
- Produit carteacutesien
Opeacuterateurs additionels
- Intersection - Jointure - Division
Fondamental Algegravebre relationnelle et SQL
Les questions formuleacutees en algegravebre relationnelle sont la base des questions formuleacutees en SQL
pour interroger une base de donneacutees relationnelle
b) Employeacutes et deacutepartements
[30 minutes] Soit les deux relations EMP et DEPT ci-apregraves
EMP (ENO ENOM PROF SAL COMM DNO=gtDEPT(DNO)) DEPT (DNO DNOM DIR=gtEMP(ENO) VILLE)
1 2
ENO numeacutero demployeacute cleacute
ENOM nom de lemployeacute
PROF profession (directeur nest pas une profession)
SAL salaire
COMM commission (un employeacute peut ne pas avoir de commission)
DNO numeacutero de deacutepartement auquel appartient lemployeacute
DNO numeacutero de deacutepartement cleacute
DNOM nom du deacutepartement
DIR numeacutero demployeacute du directeur du deacutepartement
VILLE lieu du deacutepartement (ville)
Eacutecrire en algegravebre relationnelle les requecirctes permettant dobtenir les informations suivantes
Question 1
Lister les employeacutes ayant des revenus supeacuterieurs agrave 10000 euros
Question 2
Trouver le nom et la profession de lemployeacute numeacutero 10
Question 3
Lister les noms des employeacutes qui travaillent agrave Paris
Question 4
Trouver le nom du directeur du deacutepartement Commercial
Question 5
Trouver les professions des directeurs des deacutepartements
Question 6
Algegravebre relationnelle
84
Trouver le nom des directeurs de deacutepartement ayant comme profession Ingeacutenieur
c) Projection
Deacutefinition Projection
La projection est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La projection de R1 sur
une partie de ses attributs A1 A2 produit une relation R2 dont le scheacutema est restreint aux attributs
mentionneacutes en opeacuterande comportant les mecircmes tuples que R1 et dont les doublons sont eacutelimineacutes
Remarque Eacutelimination des doublons
Apregraves suppression dune partie des attributs du scheacutema la relation peut comporter des doublons Eacutetant donneacute
que lon ne pourrait plus identifier ces doublons les uns par rapport aux autres la seule solution senseacutee est
donc de consideacuterer que deux doublons sont eacutequivalents et donc de nen garder quun seul dans la relation
reacutesultante
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Dupont Pierre 20
Durand Jean 30
Tableau 8 Personne
Soit lopeacuteration suivante
R = Projection (Personne Nom Age) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont 20
Durand 30
Tableau 9 R
d) Restriction
Deacutefinition Restriction
La restriction est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La restriction de R1 eacutetant
donneacutee une condition C produit une relation R2 de mecircme scheacutema que R1 et dont les tuples sont les tuples
de R1 veacuterifiant la condition C
Algegravebre relationnelle
85
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Soit les tuples suivants
Dupont Pierre 20
Durand Jean 30
Tableau 10 Personne
Soit lopeacuteration suivante
R = Restriction (Personne Agegt25) 1
On obtient alors la relation R composeacutee de lunique tuple restant suivant
Durand Jean 30
Tableau 11 R
e) Produit
Deacutefinition Produit carteacutesien
Le produit carteacutesien est une opeacuteration binaire (cest agrave dire portant sur deux relations) Le produit de R1 par
R2 (eacutequivalent au produit de R2 par R1) produit une relation R3 ayant pour scheacutema la juxtaposition de ceux
des relations R1 et R2 et pour tuples lensemble des combinaisons possibles entre les tuples de R1 et ceux de
R2 Synonymes Produit
Remarque
Le nombre de tuples reacutesultant du produit de R1 par R2 est eacutegal au nombre de tuples de R1 fois le nombre de
tuples de R2
Remarque
Le nombre de colonne du produit de R1 par R2 est eacutegal au nombre de colonne de R1 plus le nombre de
colonnes de R2
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Algegravebre relationnelle
86
Durand Jean 30
Tableau 12 Homme
Tesla Model X
Citroeumln 2 CV
Tableau 13 Voiture
Soit lopeacuteration suivante
R = Produit (Homme Voiture) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X
Dupont Pierre 20 Citroeumln 2 CV
Durand Jean 30 Tesla Model X
Durand Jean 30 Citroeumln 2 CV
Tableau 14 R
Remarque
Le produit carteacutesien est rarement utiliseacute seul mais il est agrave la base de la jointure
f) Jointure
Deacutefinition Jointure
La jointure est une opeacuteration binaire (cest agrave dire portant sur deux relations) La jointure de R1 et R2 eacutetant
donneacute une condition C portant sur des attributs de R1 et de R2 de mecircme domaine produit une relation R3
ayant pour scheacutema la juxtaposition de ceux des relations R1 et R2 et pour tuples lensemble de ceux obtenus
par concateacutenation des tuples de R1 et de R2 et qui veacuterifient la condition C
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 15 Homme
Algegravebre relationnelle
87
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV Dupont
Tableau 16 Voiture
Soit lopeacuteration suivante
R = Jointure (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Dupont Pierre 20 Citroeumln 3 CV Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Tableau 17 R
(Dupont Pierre 20 Dupont Georges 1) (Dupont Pierre 20 Dupont Jacques 3)
1 2
Fondamental
La jointure est lopeacuteration qui permet de rassembler les informations seacutepareacutees entre plusieurs
tables et reacutefeacuterenceacutees par des cleacutes eacutetrangegraveres
Remarque Otpeacuteration additionnelle
La jointure nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit et la restriction
g) Exercice Quelles sont les expressions relationnelles eacutequivalentes agrave
Projection ( Jointure (R1 R2 R1A1=R2A1) R1A1 R2A2) 1
Jointure ( Projection(R1 A1) Projection(R2 A2) R1A1=R2A1)
Projection ( Jointure (R2 R1 R2A1=R1A1) R1A1 R2A2)
Projection ( Restriction ( Produit(R1 R2) R1A1=R2A1) R1A1 R2A2)
Produit (R1 R2 R1A1=R2A1 R1A1 R2A2)
Algegravebre relationnelle
88
2 Opeacuterateurs compleacutementaires
a) Jointure naturelle
Deacutefinition Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition est leacutegaliteacute entre les attributs
de mecircme nom de R1 et de R2 Il est donc inutile de speacutecifier la condition dans une jointure naturelle elle
reste toujours implicite
Exemtple
Soit deux relations R1 (A B C) et R2 (A D) lopeacuteration Jointure(R1R2R1A=R2A) est eacutequivalente agrave
lopeacuteration JointureNaturelle(R1R2)
Remarque
Pour appliquer une jointure naturelle il faut que les deux relations opeacuterandes aient au moins un attribut ayant
le mecircme nom en commun
b) Jointure externe
Introduction
La jointure est une opeacuteration qui entraicircne la perte de certains tuples ceux qui appartiennent agrave une des deux
relations opeacuterandes et qui nont pas de correspondance dans lautre relation Il est neacutecessaire dans certains
cas de palier cette lacune et lon introduit pour cela la notion de jointure externe
Deacutefinition Jointure externe
La jointure externe entre R1 et R2 est une jointure qui produit une relation R3 agrave laquelle on ajoute les tuples
de R1 et de R2 exclus par la jointure en compleacutetant avec des valeurs nulles pour les attributs de lautre
relation
Deacutefinition Jointure externe gauche
La jointure externe gauche entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les
tuples de R1 (cest agrave dire la relation de gauche) ayant eacuteteacute exclus
Synonymes Jointure gauche
Deacutefinition Jointure externe droite
Objectifs
Maicirctriser lalgegravebre relationnelle
Algegravebre relationnelle
89
La jointure externe droite entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les tuples
de R2 (cest agrave dire la relation de droite) ayant eacuteteacute exclus
Bien entendu une jointure externe droite peut ecirctre reacuteeacutecrite par une jointure externe gauche (et
reacuteciproquement) en substituant les relations opeacuterandes R1 et R2
Synonymes Jointure droite
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Martin Georges 40
Tableau 18 Homme
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV NULL
Tableau 19 Voiture
Soit lopeacuteration suivante
R = JointureExterne (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Martin Georges 40 NULL NULL NULL
NULL NULL NULL Citroeumln 3 CV NULL
Tableau 20 R
Une jointure externe gauche naurait renvoyeacute que les trois premiers tuples et une jointure externe droite
naurait renvoyeacutee que les deux premiers et le dernier tuple
Algegravebre relationnelle
90
c) Opeacuterateurs ensemblistes
Atention Les opeacuterateurs ensemblistes sont des relations binaires (cest agrave dire entre deux relations) portant
sur des relations de mecircme scheacutema
Deacutefinition Union
Lunion de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee de
lensemble des tuples appartenant agrave R1 etou agrave R2
Deacutefinition Difeacuterence
La diffeacuterence entre deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema
constitueacutee de lensemble des tuples de R1 nappartenant pas agrave R2 Notons que la diffeacuterence entre R1 et R2
nest pas eacutegale agrave la diffeacuterence entre R2 et R1
Deacutefinition Intersection
Lintersection de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee
de lensemble des tuples appartenant agrave la fois agrave R1 et agrave R2 Notons que lintersection nest pas une opeacuteration
de base car elle est eacutequivalent agrave deux opeacuterations de diffeacuterence successives
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Femme (Nom Preacutenom Age)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 21 Homme
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 22 Femme
Soit lopeacuteration suivante
R = Union (Homme Femme) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20
Durand Jean 30
Algegravebre relationnelle
91
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 23 R
La diffeacuterence entre Homme et Femme (respectivement entre Femme et Homme) renvoie la relation Homme
(respectivement Femme) car aucun tuple nest commun aux deux relations Lintersection entre Homme est
Femme est vide pour la mecircme raison
Remarque Union externe
Il est possible de deacutefinir une opeacuteration dunion externe qui permet de reacutealiser lunion de deux relations de
scheacutema diffeacuterent en ramenant les relations aux mecircmes scheacutemas et en les compleacutetant avec des valeurs nulles
d) Division
Deacutefinition Division
La division est une opeacuteration binaire (cest agrave dire portant sur deux relations) La division de R1 par R2 sachant
que R1 et R2 ont au moins un attribut commun (cest agrave dire de mecircme nom et de mecircme domaine) produit
une relation R3 qui comporte les attributs appartenant agrave R1 mais nappartenant pas agrave R2 et lensemble des
tuples qui concateacuteneacutes agrave ceux de R2 donnent toujours un tuple de R1
Exemtple
Soit les deux relations suivantes
Pratique (Homme Meacutetier Salaire) Meacutetier (Metier)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Ingeacutenieur 35
Durand Professeur 40
Dupont Ingeacutenieur 45
Martin Ingeacutenieur 50
Tableau 24 Pratique
Ingeacutenieur
Professeur
Tableau 25 Meacutetier
Soit lopeacuteration suivante
R = Division (Homme Meacutetier) 1
Algegravebre relationnelle
92
On obtient alors la relation R composeacutee des tuples suivants
Dupont 35
Tableau 26 R
Meacutethode Reacutetponse aux questions Pour tous les
La division permet de reacutepondre aux questions du type Donnez toutes les personnes qui pratiquent tous les
meacutetiers de la relation meacutetier
Remarque Otpeacuteration additionnelle
La division nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit la restriction et la
diffeacuterence
e) Proposition de notations Introduction Il existe plusieurs syntaxes pour eacutecrire des opeacuterations dalgegravebre relationnelle certaines inspireacutees de lalgegravebre
classiques dautres reposant sur des notations graphiques Nous proposons une notation fonctionnelle qui a
le meacuterite decirctre facile agrave eacutecrire et decirctre lisible Si cette notation peut parfois perdre en simpliciteacute lorsquelle
concerne un nombre eacuteleveacute dopeacuterateurs il est possible de deacutecomposer une opeacuteration compliqueacutee afin de
lalleacuteger
Syntaxe
R = Union (R1 R2) R = Diffeacuterence (R1 R2) R = Intersection (R1 R2) R = Projection (R1 A1 A2 ) R = Restriction (R1 condition) R = Produit (R1 R2) R = Jointure (R1 R2 condition) R = JointureNaturelle (R1 R2) R = JointureExterne (R1 R2 condition) R = JointureGauche (R1 R2 condition) R = JointureDroite (R1 R2 condition) R = Division (R1 R2)
1 2 3 4 5 6 7 8 9
10 11 12
Exemtple Notation syntheacutetique
R = Projection(Restriction(R1 A1=1 AND A2=2) A3) 1
Exemtple Notation deacutecomtposeacutee
R = Restriction(R1 A1=1 AND A2=2) R = Projection (R A3)
1 2
Algegravebre relationnelle
93
f) Exercice Soit les deux relations R1 et R2 suivantes deacutefinies en extension
A B
1 A
2 B
3 C
Tableau 27 R1
A
1
2
Tableau 28 R2
Combien de tuples renvoie lopeacuteration relationnelle suivante
R3 = JointureNaturelle (Intersection (Projection(R1A) R2) R2) 1
g) Opeacuterateurs de base et additionnels Reacuteeacutecrivez les opeacuterateurs additionnels suivants agrave partir dopeacuterateurs de base
Question 1
Reacuteeacutecrivez Intersection agrave partir de Diffeacuterence
Question 2
Reacuteeacutecrivez Jointure agrave partir de Produit et Restriction
Algegravebre relationnelle
94
B Exercices
1 Faire du Cineacutema
[30 minutes] On considegravere les deux relations suivantes
FILMS (titre pays anneacutee reacutealisateur dureacutee) ACTEURS (titre acteur)
1 2
ougrave les attributs ont les significations et les types suivants
titre titre dun film (chaicircne 50 caractegraveres)
pays pays dougrave un film est originaire (chaicircne 10 caractegraveres)
annee anneacutee de sortie du film (entier 4 chiffres)
realisateur nom du reacutealisateur du film (chaicircne 20 caractegraveres)
duree dureacutee du film en minutes (entier 3 chiffres)
acteur nom dacteur (chaicircne 20 caractegraveres)
La relation FILMS donne pour chaque film identifieacute par son titre le pays lanneacutee de sortie reacutealisateur et la
dureacutee
La relation ACTEURS donne pour chaque film lensemble des principaux acteurs
Agrave laide de lalgegravebre relationnelle exprimer les requecirctes suivantes
Question 1
Lister les films franccedilais (titre anneacutee reacutealisateur)
Question 2
Donnez les anneacutees de sortie des films dans lesquels lacteur Jean GABIN a joueacute
Question 3
Trouver les acteurs qui ont tourneacute avec Franccedilois Truffaut comme reacutealisateur
Question 4
Trouver tous les acteurs qui ont eacuteteacute partenaires de lactrice Catherine Deneuve
Question 5
Lister les films dans lesquels le reacutealisateur est aussi acteur
Question 6
Lister les reacutealisateurs nayant joueacute comme acteurs que dans des films quils ne reacutealisaient pas eux-mecircmes
Question 7
Lister les reacutealisateurs ayant joueacute comme acteurs dans des films quils ne reacutealisaient pas eux-mecircmes
Question 8
Donnez les acteurs qui jouent dans tous les films de Franccedilois TRUFFAUT
Algegravebre relationnelle
95
2 Qiz Algegravebre relationnelle
Exercice 1 Quelles sont les opeacuterations relationnelles qui appliqueacutees sur les relations instancieacutees cidessous renvoient un ensemble non nul de tuples
Num Nom Famille
1 Ours Mammifegravere
2 Truite Poisson
3 Homme Mammifegravere
4 Martinshypecirccheur Oiseau
Tableau 29 Animal
Num Nom
1 Forecirct
2 Montagne
3 Ciel
4 Riviegravere
5 Mer
Tableau 30 Environnement
Animal Environnement
1 1
1 2
1 4
2 4
4 3
Tableau 31 Habiter
Mangeur Mangeacute Freacutequence
1 2 Souvent
1 3 Rarement
1 4 Rarement
4 2 Souvent
3 1 Rarement
Algegravebre relationnelle
96
3 2 Souvent
Tableau 32 Manger
Restriction( Projection (Animal Nom Famille) Famille=Mammifegravere)
Restriction( Jointure( Jointure (Animal Habiter AnimalNum=HabiterAnimal) Environnement
EnvironnementNum=HabiterEnvironnement) AnimalNum=3)
Restriction( JointureExterneGauche( Animal Habiter
AnimalNum=HabiterAnimal) AnimalNom=Homme)
Jointure( Animal Manger AnimalNum=MangerMangeur AND AnimalNum=MangerMangeacute)
Exercice 2 Soit le scheacutema relationnel
R1(X Y) R2(X Y)
1 2
Quelles sont les opeacuterations relationnelles eacutequivalentes agrave lopeacuteration
Projection( JointureNaturelle(R1R2) R1X) 1
JointureNaturelle(Projection(R1 X) Projection(R2 X))
Projection( Selection (Produit(R1 R2) R1X=R2X AND R1Y=R2Y) R1X)
Projection( Union( R1 R2) R1X)
Projection( JointureExterne ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Projection( Jointure ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Algegravebre relationnelle
97
Exercice 3 Soit la relation instancieacutee suivante
A B C
1 1 0
1 0 1
0 1 1
Tableau 33 Relation R1
Quelles relations sont retourneacutees par lopeacuteration relationnelle suivante
R2 = JointureNaturelle(R1 R1) 1
1 1 0
1 0 1
0 1 1
Tableau 34 R2a
1 1 0
1 0 1
0 1 1
1 1 0
1 0 1
0 1 1
Tableau 35 R2b
1 1 1
0 0 0
Tableau 36 R2c
1 1 0 1 1 0
1 0 1 1 0 1
0 1 1 0 1 1
Algegravebre relationnelle
98
Tableau 37 R2d
R2a
R2b
R2c
R2d
Une relation vide (aucun tuple)
3 Le retour des eacutecoliers
[45 minutes] Soit le scheacutema relationnel suivant
IMMEUBLE (ADI NBETAGES DATEC PROP) APPIM (ADI NAPR OCCUP TYPE SUPER ETAGE) PERSONNE (NOM AGE PROF ADR NAPR) EacuteCOLE (NOMEC ADEC DIR) CLASSE (NOMEC NCL MAITRE) ENFANT (NOMP PRENOM AN NOMEC NCL)
1 2 3 4 5 6
Avec la signification suivante
Relation IMMEUBLE
ADI adresse dimmeuble cleacute on fait lhypothegravese pour simplifier que ladresse identifie de maniegravere
unique un immeuble NBETAGES nombre deacutetages dun immeuble
DATEC date de construction (anneacutee)
PROP nom du proprieacutetaire de limmeuble qui est une personne
Relation APPIM (Appartement) ADI
adresse dimmeuble
NAPR numeacutero dappartement
OCCUP occupant de lappartement (nom de la personne ayant signeacute le contrat de location
eacuteventuellement aucun)
TYPE type de lappartement (Studio F2 )
SUPER superficie de lappartement
ETAGE eacutetage ougrave se situe lappartement
Relation PERSONNE
NOM nom de personne cleacute on fait lhypothegravese pour simplifier que ce nom est unique sur lensemble
des personnes que lon considegravere dans la base
AGE acircge de la personne
PROF profession de la personne
ADR adresse de la reacutesidence dune personne il sagit dun immeuble NAPR numeacutero
dappartement
Relation EacuteCOLE
NOMEC nom dune eacutecole cleacute
ADEC adresse dune eacutecole
DIR nom du directeur
Algegravebre relationnelle
99
Relation CLASSE
NOMEC nom dune eacutecole
NCL nom de la classe eg CP1 CE2 CE3 etc MAITRE nom
de linstituteur
Relation ENFANT
NOMP nom de la personne responsable de lenfant cleacute eg pegravere megravere etc
PRENOM preacutenom de lenfant
AN anneacutee de naissance
NOMEC nom dune eacutecole
NCL nom de la classe
La relation IMMEUBLE deacutecrit un ensemble dimmeubles Chaque immeuble a un proprieacutetaire La relation APPIM
deacutecrit pour chaque immeuble lensemble des appartements qui le compose (il y a au mimimum un appartement
par immeuble) Chaque appartement peut heacuteberger plusieurs personnes mais il y en a une qui est responsable
(par exemple la personne qui a signeacute le contrat de location) et qui est deacutesigneacutee par lattribut OCCUP Si
lappartement est inoccupeacute il prend la valeur NULL La relation PERSONNE deacutecrit un ensemble de personnes
ADR et NAPR repreacutesentent ladresse ougrave reacuteside une personne Une personne peut avoir plusieurs enfants deacutecrits
par la relation ENFANT Pour simplifier on ne considegravere que les enfants allant agrave leacutecole primaire Les eacutecoles et
les classes sont deacutecrites dans les relations EacuteCOLE et CLASSE chaque eacutecole est composeacutee au minimum dune
classe et chaque classe est au moins freacutequenteacutee par un enfant
Question 1
Donner ladresse des immeubles ayant plus de 10 eacutetages et construits avant 1970
Question 2
Donner les noms des personnes qui habitent dans un immeuble dont ils sont proprieacutetaires
Question 3
Donner les noms des personnes qui ne sont pas proprieacutetaires
Question 4
Donner les adresses des immeubles posseacutedeacutes par des informaticiens dont lacircge est infeacuterieur agrave 40 ans
Question 5
Donner la liste des occupants (nom acircge profession) des immeubles posseacutedeacutes par DUPONT
Question 6
Donner le nom et la profession des proprieacutetaires dimmeubles dans lesquels il y a des appartements vides
Question 7
Donner les noms des maicirctres qui habitent dans le mecircme immeuble (agrave la mecircme adresse) quau moins un de
leurs eacutelegraveves (on suppose que les enfants vivent sous le mecircme toit que leur parents)
Question 8
Donner ladresse de limmeuble la date de construction le type dappartement et leacutetage ougrave habitent chacun
des maicirctres des enfants de DUPONT
Algegravebre relationnelle
100
101
Qestions de synthegravese
Pourquoi est-il fondamental mais difficile de parvenir agrave un MCD correct
Eacutenoncer quelques actions agrave mener pour reacutealiser une speacutecification geacuteneacuterale de lexistant et des besoins
Quest ce qui diffeacuterencie fondamentalement un MCD dun MLD
Questions de synthegravese
102
Quels sont les principaux eacuteleacutements du diagramme de classes UML
Quelles sont les diffeacuterences et points communs entre la diagramme de classe UML et le modegravele E-A
eacutetendu
Questions de synthegravese
103
Quest ce quun domaine
Comment identifie-t-on un attribut dune relation
Comment identifie-t-on un enregistrement dune relation
Questions de synthegravese
104
Quand doit-on ajouter des cleacutes artificielles
Quelle problegraveme pose la redondance et comment le reacutesoudre
A quoi sert le LDD
Questions de synthegravese
105
Quel rapport y-a-t il entre le LDD et le concept de relation
Pourquoi la jointure est-elle un opeacuterateur essentiel
Questions de synthegravese
106
Quels sont les opeacuterateurs algeacutebriques de base Quels sont les autres opeacuterateurs Quest ce qui les diffeacuterencie
Quels sont les opeacuterateurs ensemblistes Quest ce qui les caracteacuterise
Pourquoi la jointure est-elle un opeacuterateur essentiel
Quest ce qui diffeacuterencie une jointure externe dune jointure classique
107
Glossaire
Cleacute artificielle
Une cleacute artificielle est un attribut ajouteacute agrave une relation afin didentifier ses enregistrements On fait appel agrave
une cleacute artificielle lorsque la relation ne comporte aucune cleacute naturelle ou que ses cleacutes naturelles sont jugeacutees
inadapteacutees agrave lidentification au sein de la base de donneacutees
Extension
Lextension est lexplicitation dun domaine par leacutenonciation exhaustive de lensemble des objets du domaine
Elle soppose agrave linstension qui est une description abstraite des caracteacuteristiques du domaine
Exemple bleu rouge vert
Contre-exemple Le domaine des couleurs
Intension
Lintension est lexplicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa
compreacutehension abstraite geacuteneacuterale)
Elle soppose agrave lextension qui est leacutenonciation exhaustive de lensemble des objets du domaine
Exemple Le domaine des couleurs
Contre-exemple bleu rouge vert
108
Signification des abreacuteviations
- ANSI American National Standards Institute
- BD Base de Donneacutees
- E-A Entiteacute-Association
- ISO International Standardization Organization
- LCD Langage de Controcircle de Donneacutees
- LDD Langage de Deacutefinition de Donneacutees
- LMD Langage de Manipulation de Donneacutees
- OMG Object Management Group
- PSM Persistent Stored Modules
- RO Relationnel-Objet
- SGBD Systegraveme de Gestion de Bases de Donneacutees
- SGBDR Systegraveme de Gestion de Bases de Donneacutees Relationnelles
- SQL Structured Query Language
- UML Unified Modeling Language
- XML eXtensible Markup Language
Reacutefeacuterences
[dbdiscocrztfr] httpdbdiscocrztfr3
109
3 - httpdbdiscocrztfr
Bibliographie
[Arribe 2014] ARRIBE THIBAUT 2014 Conception des chaicircnes eacuteditoriales documentariser lactiviteacute et structurer le graphe documentaire pour ameacuteliorer la maicirctrise de la reacuteeacuteditorialisation Universiteacute de Technologie de
Compiegravegne Meacutemoire de Doctorat httpicsutcfr~tha
[Codd70] CODD EF A relational model for large shared data banks Communications de lACM juin 1970
[Delmal01] DELMAL PIERRE SQL2 SQL3 applications agrave Oracle De Boeck Universiteacute 2001
[Gardarin99] GARDARIN GEORGES Bases de donneacutees objet et relationnel Eyrolles 1999
[Gulutzan and Pelzer 1999] GULUTZAN PETER PELZER TRUDY 1999 SQL-99 complete really CMP books
[Muller98] MULLER PA Modeacutelisation objet avec UML Eyrolles 1998
[Roques04] ROQUES PASCAL VALLEacuteE FRANCK UML 2 en action De lanalyse des besoins agrave la conception J2EE
ISBN 2212-11462-1 (3egraveme eacutedition) Paris Eyrolles 2004 385 p architecte logiciel
[Rothenberg et al 1989] ROTHENBERG JEFF WIDMAN LAWRENCE E LOPARO KENNETH A NIELSEN NORMAN R 1989 The nature of modeling Rand vol3027
[Soutou02] SOUTOU CHRISTIAN De UML agrave SQL Conception de bases de donneacutees Eyrolles 2002
[Tardieu83] TARDIEU H ROCHFELD A COLLETI R Meacutethode MERISE Tome 1 Principes et outils Les Editions dOrganisation 1983
Webographie
[w_journaldunetcom(1)] MORLON JEacuteROcircME UML en 5 eacutetapes httpdeveloppeurjournaldunetcomdossiersalg_umlshtml 2004
[w_journaldunetcom(2)] BORDERIE XAVIER Cinq petits conseils pour un scheacutema UML efficace
httpdeveloppeurjournaldunetcomtutorielcpt031013cpt_uml5conseilsshtml 2004
[w_objecteering] Objecteering software httpwwwobjecteeringcom [2002-septembre]
[w_umlfreefr] UML en Franccedilais httpumlfreefr consulteacute en 2002
Questions de synthegravese
110
Index
11 p54 Error Reference source
not found 1N p53 Error Reference source
not found Algegravebre p48 71 71 72 73 74 75
76 76 76 78 79 80 ALTER TABLE p67 68 Analyse p9 11 12 13 Application p6 Association pError Reference
source not found 31 Error
Reference source not found 32 44
Error Reference source not found
53 Error Reference source not
found 53 Error Reference source
not found 54 Error Reference
source not found 54 Attribut p28 32 40 41 41 42 44
51 52 54 Base de donneacutees p17 BD p4
Cardinaliteacute p32 Error
Reference source not found Error
Reference source not found Carteacutesien p74 CHECK p62 63 Classe p27 50 54 Cleacute p41 42 42 44 Cleacute artificielle p42 Cleacute candidate p42 Cleacute primaire p42 42 Cleacute signifiante p42 Codd p39 Composition pError Reference
source not found Error Reference
source not found Conception p9 11
Conceptuel p9 11 13 15 26 27
50 53
CREATE TABLE p59
Creacuteation p58 Deacuteclaratif p58 DELETE p65 66 Diagramme p26 Diffeacuterence p78 Division p79 Domaine p39 48 48 60 61 DROP p67 E-A p32 Enregistrement p40 41 Externe p15 76 FOREIGN KEY p62 63 INSERT p65 65 Instance p15 Interne p15 Intersection p78 Jointure p75 76 76 Langage p8 65 LDD p8 58 67 Lien p44 LMD p8 65 Logique p38 38 39 39 41 50
53 Manipulation p71 Meacutethode p30 Modegravele p13 23 38 39 39 41 45
46 Modeacutelisation p42 Modification p67 NM p53 N M pError Reference source not
found Naturelle p76 NOT NULL p62 63 Null p61 OMG p27 Opeacuteration p30 48 Passage p50 53 PostgreSQL p17
PRIMARY KEY p62 63 Produit p48 48 74
Projection p72 Proprieacuteteacute p28 32 Reacutefeacuterence p44 REFERENCES p62 63 Relation p40 41 41 42 44 44 45
48 Relationnel p5 Error
Reference source not found 38 38
39 39 41 45 46 48 48 50 50
51 Error Reference source not
found 52 53 53 Error Reference
source not found 53 Error Reference source not found 54
Error Reference source not found 54 71
71 76 80 Relationnel-objet p38 39 Requecircte p65 Restriction p73 Scheacutema p15 45 46 SGBD p5 Speacutecifications p12 SQL p8 58 65 67 Suppression p67 Table p58 67 Tuple p40 Type p60 61 UML p13 26 27 27 28
Error Reference source not found
30 31 Error Reference source not found 32 50
50 51 Error Reference source not
found 52 53 53 Error Reference source not
found 53 Error Reference source not
found 54 Error Reference source not found
54 Union p78 UNIQUE p62 63 UPDATE p65 66
wwwsambaconsultantscom 111
Contenus annexes
- Deacutefinition du mouvement NoSQL
Deacutefinition
Le NoSQL regroupe de nombreuses bases de donneacutees reacutecentes pour la plupart qui se caracteacuterisent par une logique de repreacutesentation de donneacutees non relationnelle et qui noffrent donc pas une interface de requecirctes en SQL
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-dedonnees-nosql4
NoSQL signifie Not Only SQL et non pas No SQL il sagit de compleacutements aux SGBDR pour des
besoins speacutecifiques et non de solutions de remplacement Exemtple
BD orienteacutee cleacute-valeur
BD orienteacutee graphe
BD orienteacutee colonne
BD orienteacutee document
Comtpleacutement
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql5
- Transformation des meacutethodes par des vues
Meacutethode
Lorsquune meacutethode est speacutecifieacutee sur un diagramme UML pour une classe C si cette meacutethode est une fonction
relationnelle (elle renvoie une unique valeur et elle peut ecirctre reacutesolue par une requecircte SQL) alors on creacutee une
vue qui reprend les attributs de la classe C et ajoute des colonnes calculeacutees pour les meacutethodes
Remarque Atributs deacuteriveacutes
Les attributs deacuteriveacutes eacutetant apparenteacutes agrave des meacutethodes ils peuvent eacutegalement ecirctre geacutereacutes par des vues
Contenus annexes
112
- Composition
Deacutefinition Association de comtposition
On appelle composition une association particuliegravere qui possegravede les proprieacuteteacutes suivantes
La composition associe une classe composite et des classes parties tel que tout objet partie appartient
agrave un et un seul objet composite Cest donc une association 1N (voire 11)
La composition nest pas partageable donc un objet partie ne peut appartenir quagrave un seul objet
composite agrave la fois
Le cycle de vie des objets parties est lieacute agrave celui de lobjet composite donc un objet partie disparaicirct
quand lobjet composite auquel il est associeacute disparaicirct
Remarque
La composition est une association particuliegravere (binaire de cardinaliteacute contrainte)
La composition nest pas symeacutetrique une classe joue le rocircle de conteneur pour les classes lieacutees elle
prend donc un rocircle particulier a priori
La composition est une agreacutegation avec des contraintes suppleacutementaires (non partageabiliteacute et cycle
de vie lieacute)
Image 14 Notation de la composition en UML
Atention Composition et cardinaliteacute
La cardinaliteacute cocircteacute composite est toujours de exactement 1
Cocircteacute partie la cardinaliteacute est libre elle peut ecirctre 01 1 ou bien 1
Image 15 Un livre
On voit bien ici quun chapitre na de sens que faisant partie dun livre quil ne peut exister dans deux livres
diffeacuterents et que si le livre nexiste plus les chapitres le composant non plus
Remarque Comtposition et entiteacutes faibles
Syntaxe
Contenus annexes
113
wwwsambaconsultantscom
La composition permet dexprimer une association analogue agrave celle qui relie une entiteacute faible agrave une entiteacute
identifiante en modeacutelisation E-A Lentiteacute de type faible correspond agrave un objet partie et lentiteacute identifiante
agrave un objet composite
Conseil Comtposition et atribut multivalueacute
Une composition avec une classe partie doteacutee dun seul attribut peut seacutecrire avec un attribut multivalueacute
Un attribut composeacute et multivalueacute peut seacutecrire avec une composition
Ratptpel Voir aussi
Attributs
Agreacutegation - p100
- Agreacutegation
Deacutefinition Association dagreacutegation
Lagreacutegation est une association particuliegravere utiliseacutee pour preacuteciser une relation toutpartie (ou
ensembleeacuteleacutement) on parle dassociation meacutereacuteologique
Elle possegravede la proprieacuteteacute suivante Lagreacutegation associe une classe agreacutegat et des classes parties tel que tout
objet partie appartient agrave au moins un objet agreacutegat
Remarque
Lagreacutegation est une association particuliegravere (binaire de cardinaliteacute libre)
Lagreacutegation nest pas symeacutetrique Syntaxe
Image 16 Notation de lagreacutegation en UML
La cardinaliteacute peut ecirctre exprimeacutee librement en particulier les instances de la classe Eacuteleacutement peuvent ecirctre
associeacutees agrave plusieurs instances de la classe Ensemble et mecircme de plusieurs classes
Atention
Lagreacutegation garde toutes les proprieacuteteacutes dune association classique (cardinaliteacute cycle de vie
etc) elle ajoute simplement une terminologie un plus preacutecise via la notion de toutpartie
- Explicitation des associations
Syntaxe Sens de lecture
Il est possible dajouter le sens de lecture du verbe caracteacuterisant lassociation sur un diagramme de classe
UML afin den faciliter la lecture On ajoute pour cela un signe lt ou gt (ou un triangle noir) agrave cocircteacute du nom
de lassociation
Contenus annexes
114
Syntaxe Rocircle
Il est possible de preacuteciser le rocircle joueacute par une ou plusieurs des classes composant une association afin den
faciliter la compreacutehension On ajoute pour cela ce rocircle agrave cocircteacute de la classe concerneacutee (parfois dans un petit
encadreacute colleacute au trait de lassociation
Exemtple
Image 17 Rocircle et sens de lecture sur une association
Deacutefinition Association reacuteflexive
Une association reacuteflexive est une association qui associe une classe avec elle-mecircme
Lexplicitation des associations est particuliegraverement utile dans le cas des associations reacuteflexives
- Associations ternaires
Image 18 Notation dune association ternaire
Conseil Ne tpas abuser des associations ternaires
Il est toujours possible de reacuteeacutecrire une association ternaire avec trois associations binaires en transformant
lassociation en classe
Conseil Pas de degreacute sutpeacuterieur agrave 3
En pratique on nutilise jamais en UML dassociation de degreacute supeacuterieur agrave 3
- Transformation des agreacutegations
Ratptpel Agreacutegation
Les associations de type agreacutegation se traitent de la mecircme faccedilon que les associations classiques
Syntaxe
Contenus annexes
115
wwwsambaconsultantscom
Graphique 12 Agreacutegation 1N
Classe1(ab)
Classe2(cda=gtClasse1)
Graphique 13 Agreacutegation NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
- Transformation des compositions
Meacutethode
Une composition
est transformeacutee comme une association 1N
puis on ajoute agrave la cleacute de la classe partie (dite cleacute locale) la cleacute eacutetrangegravere vers la classe composite pour
construire une cleacute primaire composeacutee
Graphique 14 Composition
Classe1(ab)
Classe2(ca=gtClasse1d)
Remarque Cleacute locale
Pour identifier une classe partie dans une composition on utilise une cleacute locale concateacuteneacutee agrave la cleacute eacutetrangegravere
vers la classe composite afin dexprimer la deacutependance entre les deux classes
Si une cleacute naturelle globale permet didentifier de faccedilon unique une partie indeacutependamment du tout on
preacutefeacuterera la conserver comme cleacute candidate plutocirct que de la prendre pour cleacute primaire
Contenus annexes
116
Si on la choisit comme cleacute primaire cela revient agrave avoir transformeacute la composition en agreacutegation en redonnant
une vie propre aux objets composants
Comtpleacutement Comtposition et entiteacutes faibles en E-A
Une composition est transformeacutee selon les mecircmes principes quune entiteacute faible en E-A
Comtpleacutement Atributs multivalueacutes et comtposeacutes
La transformation dun attribut composeacute multivalueacute donne un reacutesultat eacutequivalent agrave la transformation dune
composition
Classe1
a key b [0N] -b1 -b2
Graphique 15 Composition et attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
La transformation dune composition avec un seul attribut pour la classe composante donne un reacutesultat
eacutequivalent agrave la transformation dun attribut multivalueacute
Graphique 16 Composition et attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Ratptpel Voir aussi
Transformation des attributs
- Contrainte de cardinaliteacute minimale 1 dans les associations 1N
Ratptpel
Transformation des associations 1N
Meacutethode
a key
Classe1
0 N
( b1b2) local key
Contenus annexes
117
wwwsambaconsultantscom
Classe1
1 association 1N
Classe2
a key
b c key
d
Graphique 17 Association 1N
Si la cardinaliteacute est exactement 1 (11) cocircteacute 1 alors on ajoutera une contrainte de non nulliteacute sur la
cleacute eacutetrangegravere
si la cardinaliteacute est au moins 1 (1N) cocircteacute N on ajoutera une contrainte dexistence de tuples
reacutefeacuterenccedilant pour chaque tuple de la relation reacutefeacuterenceacutee
Classe1(ab)
Classe2(cda=gtClasse1)
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Graphique 18 Classe dassociation (1N)
Classe1(ab)
Classe2(cda=gtClasse1 e f) avec e KEY
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Comtpleacutement
Projection
- Contrainte de cardinaliteacute minimale 1 dans les associations NM
Ratptpel
Transformation des associations NM
Meacutethode
Si la cardinaliteacute est exactement au moins 1 (1N) dun cocircteacute etou de lautre alors des contraintes
dexistence simultaneacutee de tuple devront ecirctre ajouteacutee
Ce nest pas neacutecessaire si la cardinaliteacute est 0N
a key b
Classe1
c key d
Classe2
1 N 1
e loc al key f
Cl-A ssoc
Contenus annexes
118
Graphique 19 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Graphique 20 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Cl-Assoc(a=gtClasse1c=gtClasse2ef)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Comtpleacutement
Projection
- Transformation des associations 11 (approche geacuteneacuterale) Il existe deux solutions pour transformer une association 11
Avec deux relations on traite lassociation 11 comme une association 1N puis lon ajoute une
contrainte UNIQUE sur la cleacute eacutetrangegravere pour limiter la cardinaliteacute maximale agrave 1
Avec une seule relation on fusionne les deux classes en une seule relation
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 21 Association 11
Meacutethode Avec deux relations (cleacute eacutetrangegravere)
Une des deux relations est choisie pour porter la cleacute eacutetrangegravere
on ajoute les contraintes UNIQUE ou KEY (cleacute candidate) sur la cleacute eacutetrangegravere et si neacutecessaire une
contrainte imposant linstanciation simultaneacutee des deux relations
Classe1(abc=gtClasse2) avec c UNIQUE ou KEY
Classe2(cd)
a key b
Classe1
c key d
Classe2
1 N 1 N
e key f
ssoc Cl-A
Contenus annexes
119
wwwsambaconsultantscom
Contrainte (eacuteventuellement) PROJ(Classe1c)=PROJ(Classe2c) ou
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE ou KEY
Contrainte (eacuteventuellement) PROJ(Classe1a)=PROJ(Classe2a)
Meacutethode Avec une relation (fusion)
On creacuteeacute une seule relation contenant lensemble des attributs des deux classes on
choisit une cleacute parmi les cleacutes candidates
Classe12(abcd) avec c UNIQUE ou KEY ou
Classe21(cdab) avec a UNIQUE ou KEY
RemarqueFusion des relations dans le cas de la traduction de lassociation 11
Ce choix entre les deux meacutethodes sera conduit par une appreacuteciation du rapport entre
La complexiteacute introduite par le fait davoir deux relations lagrave ou une suffit
La pertinence de la seacuteparation des deux relations dun point de vue seacutemantique
Les pertes de performance dues agrave leacuteclatement des relations
Les pertes de performance dues au fait davoir une grande relation
Les questions de seacutecuriteacute et de sucircreteacute factoriseacutees ou non au niveau des deux relations
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 8
Exemtple Comtpagnie aeacuterienne Une base de donneacutees de gestion de lactiviteacute dune compagnie aeacuterienne concerne les voyageurs les vols les
avions le personnel les reacuteservations
Une application agrave partir dune telle base de donneacutees pourra permettre la gestion des reacuteservations des
disponibiliteacutes des avions en fonction des vols agrave effectuer des affectations des personnels volants
Exemtple Atptplication de bureau Access
Avec un logiciel comme Access on peut reacutealiser agrave la fois une base de donneacutees et une application permettant
de manipuler cette base de donneacutees pour des besoins bureautiques simples
d) Donneacutee (en relationnel) table objet proprieacuteteacute domaine
atomiciteacute
Ratptpel Base de donneacutees relationnelle
Une base de donneacutees relationnelle permet dorganiser les donneacutees en tables (appeleacutes relations)
Chaque case de la table contient une information atomique
Deacutefinition Objet (ligne)
Chaque ligne de la table correspond agrave un objet que lon veut geacuterer dans la base de donneacutees une voiture une
personne une espegravece
Fondamental
Toutes les lignes dune mecircme table correspondent agrave des objets du mecircme type donc dans une
table on met soit des voitures soit des personnes mais on ne meacutelange pas les deux
Deacutefinition Protprieacuteteacute et domaine (colonne)
Chaque colonne de la table correspond agrave une proprieacuteteacute des objets qui se trouvent dans la table tous les
objets de la table partagent donc les mecircmes proprieacuteteacutes
Fondamental Domaine
Chaque colonne de la table est associeacutee agrave un domaine de valeur fixeacute a priori par exemple entier
texte booleacuteen
Deacutefinition Donneacutee en relationnel (cellule)
Une donneacutee en relationnel cest une cellule dune table qui correspond agrave la proprieacuteteacute dun objet
proprieacuteteacute 1 domaine
d1 proprieacuteteacute 2 domaine
d2
objet1 donneacutee 1 objet1 donneacutee 2
Introduction geacuteneacuterale aux bases de donneacutees
9
objet2 donneacutee 1 objet2 donneacutee 2
Tableau 2 Une table ou relation ( en relationnel)
Exemtple
espegravece domaine
texte eucaryote domaine
booleacuteen
bacteacuteries false
archeacutees false
Tableau 3 Exemple de relation instancieacutee
Atention Atomiciteacute
Pour que la base de donneacutees fonctionne correctement on veille agrave ne mettre quune seule donneacutee
par case cest le principe datomiciteacute en relationnel
espegravece domaine texte
bacteacuteries procaryotes unicellulaires
archeacutees procaryotes unicellulaires
protistes eucaryotes unicellulaires
champignons eucaryotes multicellulaires qui deacutecomposent
veacutegeacutetaux eucaryotes multicellulaires qui photosyntheacutetisent
animaux eucaryotes multicellulaires qui ingegraverent
Tableau 4 Un mauvais exemple de relation les donneacutees ne sont pas atomiques (il y a
plusieurs donneacutees par case de la table)
e) Langage de donneacutees lexemple du langage SQL
Deacutefinition Langage de donneacutees
Un langage de donneacutees est un langage informatique permettant de deacutecrire et de manipuler les scheacutemas et les
donneacutees dune BD
Synonymes Langage orienteacute donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 10
Fondamental SQL
SQL est le langage consacreacute aux SGBD relationnels et relationnels-objet
Il permet de
creacuteer des tables en deacutefinissant le domaine de chaque colonne
inseacuterer des lignes dans les tables
lire les donneacutees entreacutees dans la base de donneacutees
Exemtple Creacuteation de table en SQL (deacutefinition du scheacutema de donneacutees)
CREATE TABLE Etudiant ( NumEtu
integer PRIMARY KEY Nom varchar Ville varchar)
1 2 3 4
Cette instruction permet de creacuteer une relation Etudiant comportant les proprieacuteteacutes NumEtu Nom et Ville
de domaines respectivement entier texte et texte
Exemtple Insertion de ligne en SQL (creacuteation de donneacutees)
INSERT INTO Etudiant (NumEtu Nom Ville) VALUES (1 Holmes Londres) 1
Cette instruction permet de creacuteer leacutetudiant numeacutero 1 de nom Holmes qui habite la ville de Londres
Exemtple Manitpulation de donneacutees en SQL (extploitation des donneacutees)
SELECT Nom FROM Etudiant WHERE Ville = Compiegravegne
1 2 3
Cette instruction permet de rechercher les noms de tous les eacutetudiants habitant la ville de Compiegravegne
Comtpleacutement Autres langages de donneacutees
XQuery est un langage de donneacutees mobiliseacute dans les bases de donneacutees arborescentes XML
Les bases NoSQL proposent des langages de donneacutees speacutecifiques souvent inspireacutes du
SQL Par exemple le langage de MongoDB permet de manipuler une base de contenus JSON
2 Approche geacuteneacuterale pour la conception des bases de
donneacutees
a) Exercice Eacutetapes de la conception dune base de donneacutees
relationnelle Mettre dans lordre les eacutetapes de conception suivantes
1 Creacuteation du code SQL pour un SGBDR
2 Modeacutelisation conceptuelle en UML ou E-A
Introduction geacuteneacuterale aux bases de donneacutees
11
3 Eacutelaboration du modegravele logique en relationnel
4 Analyse de la situation existante et des besoins
Reacuteponse ___ ___ ___ ___
b) Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
Meacutethode Eacutetatpes de la concetption dune base de donneacutees
1 Analyse de la situation existante et des besoins (clarification) 2 Creacuteation dun modegravele conceptuel qui permet de repreacutesenter tous les aspects importants du problegraveme 3 Traduction du modegravele conceptuel en modegravele logique (et normalisation de ce modegravele logique) 4 Impleacutementation dune base de donneacutees dans un SGBD agrave partir du modegravele logique (et optimisation)
Graphique 1 Processus de conception dune base de donneacutees
On distingue quatre eacutetapes dans la conception dune base de donneacutees
Lanalyse
Elle consiste agrave eacutetudier le problegraveme et agrave consigner dans un document la note de clarification les
besoins les choix les contraintes
La modeacutelisation conceptuelle
Elle permet de deacutecrire le problegraveme poseacute de faccedilon non-formelle (en geacuteneacuterale graphique) en prenant
des hypothegraveses de simplification Ce nest pas une description du reacuteel mais une repreacutesentation
simplifieacutee dune reacutealiteacute
La modeacutelisation logique
Ele permet de deacutecrire une solution en prenant une orientation informatique geacuteneacuterale (type de SGBD
typiquement) formelle mais indeacutependamment de choix dimpleacutementation speacutecifiques
Limpleacutementation
Elle correspond aux choix techniques en terme de SGBD choisi et agrave leur mise en œuvre
(programmation optimisation)
Fondamental
Bien analyser le problegraveme poseacute en amont
BD solution proposeacutee
Domaine problegraveme poseacute
Modegravele Conceptuel
Modegravele Logique
Repreacutesenter
Impleacutementer
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 12
Bien modeacuteliser le problegraveme au niveau conceptuel avant de passer au niveau logique et agrave
limpleacutementation
Conseil Limtportance de leacutetatpe danalyse
La premiegravere eacutetape de la conception repose sur lanalyse de lexistant et des besoins De la qualiteacute de la
reacutealisation de cette premiegravere eacutetape deacutependra ensuite la pertinence de la base de donneacutees par rapports aux
usages Cette premiegravere eacutetape est donc essentielle et doit ecirctre meneacutee avec soins
Si la premiegravere eacutetape est fondamentale dans le processus de conception elle est aussi la plus deacutelicate En effet
tandis que des formalismes puissants existent pour la modeacutelisation conceptuelle puis pour la modeacutelisation
logique la perception de lexistant et des besoins reste une eacutetape qui repose essentiellement sur lexpertise
danalyse de lingeacutenieur
Conseil Limtportance de leacutetatpe de modeacutelisation concetptuelle
Eacutetant donneacutee une analyse des besoins correctement reacutealiseacutee la seconde eacutetape consiste agrave la traduire selon un
modegravele conceptuel Le modegravele conceptuel eacutetant formel il va permettre de passer dune speacutecification en
langage naturel et donc soumise agrave interpreacutetation agrave une speacutecification non ambiguumle Le recours aux
formalismes de modeacutelisation tels que E-A ou UML est donc une aide fondamentale pour parvenir agrave une
repreacutesentation qui ne sera plus lieacutee agrave linterpreacutetation du lecteur
La traduction dun cahier des charges speacutecifiant lexistant et les besoins en modegravele conceptuel reste neacuteanmoins
une eacutetape deacutelicate qui va conditionner ensuite lensemble de limpleacutementation informatique En effet les eacutetape
suivantes sont plus meacutecaniques dans la mesure ougrave un modegravele logique est deacuteduit de faccedilon systeacutematique du
modegravele conceptuel et que limpleacutementation logicielle est eacutegalement reacutealiseacutee par traduction directe du modegravele
logique
RemarqueLes eacutetatpes de traduction logique et dimtpleacutementation
Des logiciels speacutecialiseacutes (par exemple Objecteering [w_objecteering]) sont capables agrave partir dun modegravele
conceptuel dappliquer des algorithmes de traduction qui permettent dobtenir directement le modegravele logique
puis les instructions pour la creacuteation de la base de donneacutees dans un langage orienteacute donneacutees tel que SQL
Lexistence de tels algorithmes de traduction montre que les eacutetapes de traduction logique et dimpleacutementation
sont moins complexes que les preacuteceacutedentes car plus systeacutematiques
Neacuteanmoins ces eacutetapes exigent tout de mecircme des compeacutetences techniques pour optimiser les modegraveles logiques
(normalisation) puis les impleacutementations en fonction dun contexte de mise en œuvre mateacuteriel logiciel et
humain
c) Qatre eacutetapes pour reacuteduire la complexiteacute La reacutealisation dune base de donneacutees est une tacircche complexe le deacutecoupage en quatre eacutetapes permet de geacuterer
cette complexiteacute
Clarification ModeacutelisationConceptuelle ModeacutelisationLogique Im pleacutem entation
Conception en quatre eacutetapes
Introduction geacuteneacuterale aux bases de donneacutees
13
Lideacutee geacuteneacuterale est de ne pas meacutelanger la nature des tacircches typiquement on ne veut pas en mecircme temps
se poser des questions geacuteneacuterales relatives aux besoins (ce que je veux faire) et des questions techniques tregraves
speacutecifiques (comment repreacutesenter telle information)
Meacutethode
Lapproche est donc
de regarder agrave gauche on regarde le monde quand on clarifie on regarde la note de clarification
quand on fait le MCD on regarde le MCD quand on fait le MLD on regarde le MLD quand on
impleacutemente
et de ne pas regarder trop loin on anticipe deacutejagrave le MCD pendant la clarification mais on ne se
preacuteoccupe pas de questions dimpleacutementation quand on fait le MLD on ne se pose plus de question
sur le monde la clarification et le MCD ont ducirc deacutejagrave reacutepondre quand on impleacutemente on ne se pose
plus de question de modeacutelisation on soccupe des programmes de la machine
Fondamental
On peut toujours revenir sur une eacutetape la conception est iteacuterative mais on ne doit pas tout le
temps se poser tous les problegravemes en mecircme temps
d) Eacuteleacutements pour lanalyse de lexistant et des besoins La phase danalyse de lexistant et des besoins est une phase essentielle et complexe Elle doit aboutir agrave des
speacutecifications geacuteneacuterales qui deacutecrivent en langage naturel les donneacutees manipuleacutees et les traitements agrave
effectuer sur ces donneacutees
On se propose de donner une liste non exhaustive dactions agrave mener pour reacutediger de telles speacutecifications
Meacutethode Lanalyse de documents existants
La conception dune base de donneacutees sinscrit geacuteneacuteralement au sein dusages existants Ces usages sont
geacuteneacuteralement au moins en partie instrumenteacutes agrave travers des documents eacutelectroniques ou non (papier
typiquement) Il est fondamental danalyser ces documents et de recenser les donneacutees quils manipulent
Exemtple Exemtples de document existants agrave analyser
Fichiers papiers de stockage des donneacutees (personnel produits etc)
Formulaires papiers denregistrement des donneacutees (fiche didentification dun salarieacute fiche de
description dun produit bon de commande etc)
Documents eacutelectroniques de type traitement de texte (lettres mailing proceacutedures etc)
Documents eacutelectroniques de type tableurs (bilans statistiques calculs etc)
Bases de donneacutees existantes agrave remplacer ou avec lesquelles saccorder (gestion des salaires de la
production etc)
Intranet dentreprise (information teacuteleacutechargement de documents etc)
etc
Meacutethode Le recueil dextpertise meacutetier
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 14
Les donneacutees que la base va devoir manipuler sont toujours relatives aux meacutetiers de lentreprise et il existe
des experts qui pratiquent ces meacutetiers Le dialogue avec ces experts est une source importante dinformations
Il permet eacutegalement de fixer la terminologie du domaine
Exemtple Exemtples dextperts agrave consulter
Praticiens (secreacutetaires ouvrier controcircleurs etc)
Cadres (responsables de service contre-maicirctres etc)
Experts externes (clients fournisseurs etc)
etc
Meacutethode Le dialogue avec les usagers
La base de donneacutees concerne des utilisateurs cibles cest agrave dire ceux qui produiront et consommeront
effectivement les donneacutees de la base Il est neacutecessaire de dialoguer avec ces utilisateurs qui sont les
deacutetenteurs des connaissances relatives aux besoins reacuteels lieacutes agrave leur reacutealiteacute actuelle (aspects de lorganisation
fonctionnant correctement ou deacutefaillants) et agrave la reacutealiteacute souhaiteacutee (eacutevolutions lacunes etc)
Exemtple Exemtples dutilisateurs avec qui dialoguer
Personnes qui vont effectuer les saisies dinformation (agrave partir de quelles sources Quelle est leur
responsabiliteacute etc)
Personnes qui vont consulter les informations saisies (pour quel usage pour quel destinataire etc)
Personnes qui vont mettre agrave jour les informations (pour quelles raisons comment le processus est
enclencheacute etc)
etc
Meacutethode Leacutetude des autres systegravemes informatiques existants
la base de donneacutees va geacuteneacuteralement (et en fait quasi systeacutematiquement aujourdhui) sinseacuterer parmi un
ensemble dautres logiciels informatiques travaillant sur les donneacutees de lentreprise Il est important danalyser
ces systegravemes afin de mieux comprendre les meacutecanismes existants leurs forces et leurs lacunes et de preacuteparer
linteacutegration de la base avec ces autres systegravemes Une partie de ces systegravemes seront dailleurs souvent
eacutegalement des utilisateurs de la base de donneacutees tandis que la base de donneacutees sera elle mecircme utilisatrice
dautre systegravemes
Exemtple Exemtples dautres systegravemes coexistants agrave eacutetudier
Autres bases de donneacutees (les donneacutees sont elle disjointes ou partiellement communes avec celles de la
base agrave concevoir quelles sont les technologies logicielles sur lesquelles reposent ces BD etc)
Systegravemes de fichiers classiques (certains fichiers ont-ils vocations agrave ecirctre supplanteacutes par la base agrave ecirctre
geacuteneacutereacutes par la base agrave alimenter la base etc)
Applications (ces applications ont elles besoins de donneacutees de la base peuvent-elles lui en fournir
etc)
etc
Comtpleacutement Meacutethodes danalyse
Il existe des outils et meacutethodes danalyse en ingeacutenierie comme lanalyse fonctionnelle (AF) qui deacutepassent le
cadre de la conception des bases de donneacutees mais sont tout agrave fait compleacutementaires
Introduction geacuteneacuterale aux bases de donneacutees
15
e) Modeacutelisation conceptuelle de donneacutees Lobjection du modegravele conceptuel est de repreacutesenter le problegraveme agrave laide de repreacutesentations graphiques et
partiellement formelles
Les principales caracteacuteristiques du modegravele conceptuel sont
Une repreacutesentation graphique simple
Une puissance dexpression eacuteleveacutee pour un nombre de symboles raisonnables
Une lecture accessible agrave tous et donc un bon outil de dialogue entre les acteurs techniques et non
techniques
Une formalisation peu ambigueuml et donc un bon outil de speacutecification deacutetailleacutee
Remarque
Le modegravele nest pas encore formel donc certaines repreacutesentations peuvent ecirctre eacutequivoques mecircme si on a
leveacute de tregraves nombreuses ambiguiumlteacutes
E-A
La modeacutelisation conceptuelle en bases de donneacutees relationnelle eacutetait agrave lorigine faite avec le formalisme E-A
de la meacutethode MERISE
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 16
Modegravele E-A gestion de projets
UML
UML est un autre langage de modeacutelisation plus reacutecent que E-A et couvrant un spectre plus large que les
bases de donneacutees En tant que standard de lOMG et en tant que outil tregraves utiliseacute pour la programmation
orienteacutee objet il a supplanteacute la modeacutelisation E-A
Remarque
En BD on utilise uniquement le diagramme de classe dUML pour modeacuteliser conceptuellement les donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 17
Modegravele UML gestion de projets
f) Modeacutelisation logique de donneacutees
Deacutefinition Modegravele logique de donneacutees
Un modegravele logique de donneacutees est une description au moyen dun langage formel dun ensemble de donneacutees
Un scheacutema permet de deacutecrire la structure dune base de donneacutees en deacutecrivant lensemble des types de
donneacutees de la base Une instance de base de donneacutees est constitueacutee dun ensemble de donneacutees qui respectent
le scheacutema de la base
Synonyme scheacutema de donneacutees scheacutema
Exemtple Modegravele logique de donneacutees relationnel
Un modegravele logique de donneacutees relationnel permet de repreacutesenter une base de donneacutees relationnelles cest agrave
dire des tables des proprieacuteteacutes des domaines
Exemtple Scheacutema dune relation
Espece(nomchaicircne eucaryotebooleacuteen multicellulairebooleacuteen proprieacuteteacutechaicircne) 1
Exemtple Scheacutema dune base de donneacutees avec tplusieurs relations
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 18
Etudiant (numentier nomchaicircne villechaicircne) Module(numentier titrechaicircne) Inscription(numetuentier nummodentier anneacuteeentier(4))
1 2 3
Instance de base de donneacutees
Etudiant Module
172 Dupont Lille
173 Durand Paris
174 Martin Isabelle
1 SGBD
2 OS
Inscription 172 1 2016 172 2 2016 173 1 2015 174 2 2017
Comtpleacutement Exemtple de formalismes de modeacutelisation logique
Le modegravele CODASYL anteacuterieur au modegravele relationnel est un modegravele hieacuterarchique (Tardieu 1983
[Tardieu83])
Le modegravele relationnel (tabulaire) est le modegravele dominant agrave la base des SGBDR
Le modegravele relationnel-objet (adaptation des modegraveles relationnels et objets au cadre des SGBD) est
actuellement en croissance
Dautres modegraveles (document graphe ) se deacuteveloppent dans le cadre du mouvement NoSQL
Comtpleacutement Voir aussi
Bregraveve introduction aux bases de donneacutees NoSQL - p98
g) Synthegravese Les trois niveaux de conception Niveau Conceptuel
Modegravele conceptuel graphique -
Exemples E-A
UML
Niveau Logique
Scheacutema logique indeacutependant dun SGBD -
Exemples Relationnel
Objet
Relationnel-Objet
Graphe
Document
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 19
Niveau Informatique
Impleacutementation pour un SGBD particulier -
Exemples Oracle
MySQL
PostgreSQL
DB2
Access
SQLServer
MongoDB
Cassandra
Modeacutelisation Modeacutelisation Im pleacutem entation Clarification Conceptuelle
Logique
AF UML Relationnel SQL Conception en quatre eacutetapes exemple de
formalismes
B Exercices
1 Deacutecouverte dune base de donneacutees relationnelle
Cette seacuterie dexercices est destineacutee agrave faire expeacuterimenter un SGBDR afin de se familiariser avec les concepts
classiques des bases de donneacutees relationnelles
Pour la reacutealisation de cet exercice se connecter sur le site dbdiscocrztfr et conserver la fenecirctre du navigateur
ouverte
Db Discodbdiscocrztfr
Objectifs
Deacutecouvrir le modegravele relationnel Deacutecouvrir un SGBDR Deacutecouvrir le langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 20
a) Notion de table
Creacuteer sa premiegravere table Une base de donneacutees relationnelle est principalement constitueacutee de tables (ou laquo relations raquo dougrave le nom
de relationnel) Une table est basiquement un eacuteleacutement dorganisation de linformation constitueacute de colonnes
(ou attributs) et de lignes (ou enregistrements)
Nous allons dans un premier temps creacuteer le scheacutema dune table cest agrave dire deacutefinir ses colonnes Pour cela
nous utiliserons linstruction SQL LDD laquo CREATE raquo
Question 1
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
CREATE TABLE tEtu ( pk_numSecu CHAR(13) PRIMARY KEY k_numEtu
VARCHAR(20) UNIQUE NOT NULL nom
VARCHAR(50) prenom VARCHAR(50))
1 2 3 4 5
Introduction geacuteneacuterale aux bases de donneacutees
21
Alimenter la table Une fois les colonnes de la table deacutefinies nous pouvons en deacuteclarer les lignes Nous utilisons pour cela
linstruction SQL LMD laquo INSERT raquo
Question 2
Exeacutecuter les deux instructions suivantes et deacutecrire ce quelles font
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 AB3937098X Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2820475001124 XGB67668 Durand Anne)
1 2 3 4
Interroger la table Une fois une table creacuteeacutee il est possible agrave tout moment den inspecter le contenu Nous utilisons pour cela
linstruction SQL LMD laquo SELECT raquo
Question 3
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT pk_numSecu k_numEtu nom prenom FROM tEtu
1 2
Question 4
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT nom prenom FROM tEtu WHERE pk_numSecu=2820475001124
1 2 3
b) Notion de contraintes
Contrainte de domaine Lorsque lon deacutefinit une table on deacutefinit eacutegalement des contraintes sur cette table qui serviront agrave controcircler
son inteacutegriteacute par rapport agrave des regravegles que lon aura fixeacutees
Cest notamment le cas des contraintes de domaine qui permettent de veacuterifier quune colonne prend ses
valeurs parmi un ensemble deacutetermineacute (les chaicircnes de 10 caractegraveres au plus les entier de 1 agrave 1000 etc)
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi le systegraveme renvoie une erreur
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (XXXXXXXXXXXXXXX XXXXXX Dupont Pierre)
1 2
Question 2
Donner un exemple de contrainte qui nest pas formuleacutee dans la deacutefinition de la table tEtu et que lon aurait
pu souhaiter
Indice
Pour indiquer quun eacuteleacutement est obligatoire on ajoute la clause NOT NULL apregraves la deacutefinition de son domaine dans linstruction CREATE TABLE
Introduction geacuteneacuterale aux bases de donneacutees
22
Contraintes de cleacute Les contraintes de cleacute se composent de contraintes duniciteacute et de contraintes de non nulliteacute Elles
permettent dassurer que toutes les valeurs dune colonne seront diffeacuterentes pour chaque ligne
Question 3
Exeacutecuter les trois instructions suivantes (les unes apregraves les autres) et expliquer ce qui se passe
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 HGYT67655Y Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 XGB67668 Durand Anne) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 HGYT67655Y Duchemin Aline)
1 2 3 4 5 6
Question 4
Explorer le contenu de votre table en exeacutecutant linstruction suivante et veacuterifier vos explications preacuteceacutedentes
SELECT FROM tEtu
1 2
Question 5
Pourrait-on inseacuterer dans la table une seconde personne qui aurait le preacutenom Aline et le nom Duchemin
Pourquoi
c) Notion de reacutefeacuterences
Cleacute eacutetrangegravere Une base de donneacutees est en geacuteneacuteral constitueacutee de plusieurs tables Ces tables se reacutefeacuterencent entre elles en
utilisant une cleacute eacutetrangegravere cest agrave dire quune des colonnes de la table est utiliseacutee pour faire reacutefeacuterence agrave la
colonne dune autre table
On va agrave preacutesent creacuteer une seconde table qui permettra dassocier des Uniteacutes de Valeurs (UVs) aux eacutetudiants
puis inseacuterer des valeurs dans cette table
CREATE TABLE tUv ( pk_code
CHAR(4) NOT NULL fk_etu
CHAR(13) NOT NULL PRIMARY KEY (pk_code fk_etu) FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu))
1 2 3 4 5
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF26 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF29 1800675001066)
1 2 3 4 5 6
Question 1
Introduction geacuteneacuterale aux bases de donneacutees
23
Expliciter ce quexprime le contenu de la table tUv
Contraintes dinteacutegriteacute reacutefeacuterentielle Lorsque nous avons deacutefini la table tUv nous avons deacutefini une contrainte suppleacutementaire dite dinteacutegriteacute
reacutefeacuterentielle contrainte de type FOREIGN KEY
Question 2
En exeacutecutant les instructions suivantes expliquer quel est le rocircle dune contrainte dinteacutegriteacute reacutefeacuterentielle
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 2810592012232) INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1700792001278)
1 2 3 4
d) Projection restriction et jointure Linstruction SELECT du langage SQL LMD nous donne de larges possibiliteacutes pour interroger les tables dune
base de donneacutees Cette instruction se fonde notamment sur les opeacuterations matheacutematiques de lalgegravebre
relationnelle dont les principales sont la projection la restriction le produit et la jointure
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi cest une projection
SELECT nom prenom FROM tEtu
1 2
Question 2
Exeacutecuter linstruction suivante et expliquer pourquoi cest une restriction
SELECT FROM tEtu WHERE nom=Dupont
1 2 3
Question 3
Exeacutecuter linstruction suivante et expliquer pourquoi cest un produit (carteacutesien)
SELECT FROM tEtutUv
1 2
Question 4
Exeacutecuter linstruction suivante et expliquer pourquoi cest une jointure
SELECT FROM tEtu JOIN tUv ON pk_numSecu=fk_etu
1 2
Question 5
Exeacutecuter linstruction suivante et montrer quune jointure est la composition dun produit et dune restriction
SELECT FROM tEtutUv WHERE pk_numSecu=fk_etu
1 2 3
Introduction geacuteneacuterale aux bases de donneacutees
24
e) Fonctions et agreacutegats Linstruction SELECT permet eacutegalement deffectuer des calculs qui portent sur plusieurs lignes ce que lon
appelle des agreacutegats
Question 1
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT COUNT(pk_code) FROM tUv
1 2
WHERE fk_etu=1800675001066 3
Question 2
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT fk_etu COUNT(pk_code) FROM tUv GROUP BY fk_etu
1 2 3
Question 3
Compleacuteter la requecircte SQL suivante afin quelle renvoie pour chaque UV le nombre deacutetudiants inscrits
SELECT _______ COUNT(______) FROM tUv GROUP BY _______
1 2 3
Agrave lissue de cette seacuterie dexercices vous devez savoir deacutefinir les termes suivants
table ou relation
scheacutema relationnel
domaine
cleacute
cleacute eacutetrangegravere
opeacuterations de projection restriction jointure produit
Introduction geacuteneacuterale aux bases de donneacutees
25
2 Lab 0
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux meacutedicaments
avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi quune description
longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le nombre de pilules par boicircte
(qui est un nombre entier)
Ce problegraveme est un exemple tregraves simple que lon pourra modeacuteliser avec une base de donneacutees relationnelle agrave
une seule table
Vous pouvez tester vos instructions SQL ici Db Discodbdiscocrztfr
Question 1
Proposer une clarification du problegraveme (par exemple sous la forme dune liste des proprieacuteteacutes de la relation
viseacutee)
Question 2
Proposer un exemple de donneacutees
Question 3
Dessiner un modegravele conceptuel de donneacutees en UML Il ne contient quune seule classe
Indice Modeacutelisation conceptuelle de donneacutees
Question 4
Proposer un modegravele logique de donneacutees sous forme de scheacutema relationnel Il ne contient quune seule relation
Indice Modeacutelisation logique de donneacutees
Question 5
Proposer une impleacutementation en SQL standard de votre modegravele relationnel Il ne contient quune seule
instruction CREATE TABLE
Indice Langage de donneacutees lexemple du langage SQL
Question 6
Eacutecrivez les instructions SQL permettant dinseacuterer vos donneacutees de test dans votre base de donneacutees
Indice Langage de donneacutees lexemple du langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
26
27
II - Introduction agrave la
modeacutelisation
conceptuelle de donneacutees avec
UML
A Cours
La modeacutelisation conceptuelle est leacutetape fondatrice du processus de conception de BD Elle consiste agrave
abstraire le problegraveme reacuteel poseacute pour en faire une reformulation qui trouvera une solution dans le cadre
technologique dun
SGBD
Si le modegravele dominant en conception de bases de donneacutees a longtemps eacuteteacute le modegravele E-A le modegravele UML
se geacuteneacuteralise de plus en plus Nous proposons ici une introduction au diagramme de classes agrave travers la
repreacutesentation de classes et dassociations simples (il existe dautres diagrammes UML par exemple le
diagramme de cas et dautres primitives de repreacutesentation dans le diagramme de classe par exemple
lheacuteritage)
II
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
28
1 Notion de modegravele
a) Exercice Centre meacutedical [5 min]
Soit le modegravele conceptuel suivant repreacutesentant des visites dans un centre meacutedical Quelles sont les assertions vraies selon ce scheacutema
Image 1
Un patient peut effectuer plusieurs visites
Tous les patients ont effectueacute au moins une consultation
Un meacutedecin peut recevoir plusieurs patients pendant la mecircme consultation
Un meacutedecin peut prescrire plusieurs meacutedicaments lors dune mecircme consultation
Deux meacutedecins diffeacuterents peuvent prescrire le mecircme meacutedicament
b) Qest ce quun modegravele
Deacutefinition Modegravele
laquo Modeling in the broadest sense is the cost-effective use of something in place of something else for some
cognitive purpose It allows us to use something that is simpler safer or cheaper than reality instead of reality
for some purpose A model represents reality for the given purpose the model is an abstraction of reality in
the sense that it cannot represent all aspects of reality raquo (Rothenberg 1989 [Rothenberg et al 1989] citeacute
par Arribe 2014 [Arribe 2014])
laquo Systegraveme physique matheacutematique ou logique repreacutesentant les structures essentielles dune reacutealiteacute et capable
agrave son niveau den expliquer ou den reproduire dynamiquement le fonctionnement raquo (TLFi)
Fondamental Modegravele
Un modegravele est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser quelque chose
Objectifs
Savoir ce quest un modegravele
Savoir ce quest le langage UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
29
c) Qest ce quun modegravele en informatique
Deacutefinition Modegravele informatique
Un modegravele informatique est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser un traitement avec
un ordinateur
Comtpleacutement Numeacuterisation et abstraction Toute information numeacuterique a
eacuteteacute codeacutee selon un modegravele donneacute
laquo Tout numeacuterisation est une repreacutesentation de la reacutealiteacute sous la forme dune modeacutelisation numeacuterique Cette
modeacutelisation procegravede dune abstraction au sens ougrave cest une seacuteparation davec le reacuteel au sens ougrave cest une
construction destineacutee agrave la manipulation (algorithmique en loccurrence) et au sens ougrave cest une simplification
de la reacutealiteacute raquo
httpaswemayfrcotropism-preshtml1
d) Qest ce quun bon modegravele
Atention
Un modegravele est une abstraction une simplification de la reacutealiteacute ce nest pas la reacutealiteacute il nest
jamais complegravetement fidegravele par construction
Le seul modegravele complegravetement fidegravele agrave la reacutealiteacute est la reacutealiteacute elle-mecircme et ce nest donc pas un
modegravele
Exemtple La carte et le territoire
Une carte est un modegravele dun territoire Elle est une repreacutesentation simplifieacutee destineacute agrave un usage particulier
randonner agrave pied en veacutelo
se diriger en voiture sur des grands axes sur des axes secondaires
voler en avion de tourisme en avion de ligne
naviguer sur fleuve sur mer
eacutetudier les frontiegraveres dune reacutegion dun pays de la terre
eacutetudier la deacutemographie leacuteconomie
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
30
Fondamental
Agrave partir de cet exemple on notera que 1 Un modegravele est orienteacute par un usage
Chacune de ces cartes est tregraves diffeacuterente selon ce que lon veut faire 2 Un modegravele ne cherche pas agrave ecirctre proche de la reacutealiteacute
Chacune de ces cartes est tregraves diffeacuterente de la reacutealiteacute quelle repreacutesente 3 Un modegravele adresse un niveau dinformation qui existe mais qui nest pas accessible dans
la reacutealiteacute Chacune de ces cartes permet quelque chose que ne permet pas laccegraves direct agrave la reacutealiteacute
ndash wwwsambaconsultantscom
Meacutethode Le rasoir dOckham Entre deux modegraveles donneacutes le meilleur modegravele est-il
toujours le tplus fourni
La meacutethode de raisonnement connue sous le nom de rasoir dOckham (du nom du philosophe eacuteponyme)
consiste agrave preacutefeacuterer les solutions les plus simples aux plus complexes lorsquelles semblent permettre
eacutegalement de reacutesoudre un problegraveme donneacute entre deux theacuteories eacutequivalentes toujours preacutefeacuterer la plus simple
Ce principe sapplique tregraves bien agrave la modeacutelisation eacutetant donneacute un objectif et plusieurs modegraveles possibles il
ne faut pas choisir a priori celui qui repreacutesente le plus de choses mais preacutefeacuterer le plus simple degraves quil couvre
le besoin
Cest un principe deacuteconomie (il coucircte moins cher agrave produire) et defficaciteacute (car les eacuteleacutements inutiles du modegravele
plus fourni nuiront agrave lefficaciteacute de la tacircche)
Exemtple
Ainsi pour naviguer en voiture il est plus simple de ne pas avoir sur la carte les chemins de randonneacutees qui
ne sont pas praticables en voiture
2 Introduction au diagramme de classes UML classes et
associations
a) Lab I
Description du problegraveme [15 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
Objectifs
Savoir faire un modegravele conceptuel
Savoir interpreacuteter un modegravele conceptuel
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
31
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
b) Preacutesentation dUML UML est un langage de repreacutesentation destineacute en particulier agrave la modeacutelisation objet UML est devenu une
norme OMG en 1997
UML propose un formalisme qui impose de penser objet et permet de rester indeacutependant dun langage de
programmation donneacute Pour ce faire UML normalise les concepts de lobjet (eacutenumeacuteration et deacutefinition
exhaustive des concepts) ainsi que leur notation graphique Il peut donc ecirctre utiliseacute comme un moyen de
communication entre les eacutetapes de speacutecification conceptuelle et les eacutetapes de speacutecifications techniques
Fondamental Diagramme de classe
Le diagramme de classes est un sous ensemble dUML qui sattache agrave la description statique dun
modegravele de donneacutees repreacutesenteacutees par des classes dobjets
Remarque
Dans le domaine des bases de donneacutees UML peut ecirctre utiliseacute agrave la place du modegravele E-A pour modeacuteliser le
domaine De la mecircme faccedilon un scheacutema conceptuel UML peut alors ecirctre traduit en scheacutema logique (relationnel
ou relationnel-objet typiquement)
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
32
c) Classes
Deacutefinition Classe
Une classe est un type abstrait caracteacuteriseacute par des proprieacuteteacutes (attributs et meacutethodes) communes agrave un ensemble
dobjets et permettant de creacuteer des instances de ces objets ayant ces proprieacuteteacutes
Image 2 Repreacutesentation UML dune classe
Exemtple La classe Voiture
Lobjet V1 est une instance de la classe Voiture
V1 Voiture
Marque Citroeumln
Type ZX
Portes 5
Puissance 6
Kilomeacutetrage 300000
Comtpleacutement
La modeacutelisation sous forme de diagramme de classes est une modeacutelisation statique qui met en exergue la
structure dun modegravele mais ne rend pas compte de son eacutevolution temporelle UML propose dautres types de
diagrammes pour traiter notamment de ces aspects
d) Atributs
Deacutefinition Atribut
Un attribut est une information eacuteleacutementaire qui caracteacuterise une classe et dont la valeur deacutepend de lobjet
instancieacute
Syntaxe
Image 3 Exemple de classe repreacutesenteacutee en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
33
Un attribut est typeacute Le domaine des valeurs que peut prendre lattribut est fixeacute a priori
Un attribut peut ecirctre multivalueacute Il peut prendre plusieurs valeurs distinctes dans son domaine
Un attribut peut ecirctre deacuteriveacute Sa valeur alors est une fonction sur dautres attributs de la classe
Un attribut peut ecirctre composeacute (ou composite) Il joue alors le rocircle dun groupe dattributs (par
exemple une adresse peut ecirctre un attribut composeacute des attributs numeacutero type de voie nom de la
voie) Cette notion renvoie agrave la notion de variable de type Record dans les langages de programmation
classiques
Atention On utilise peu les atributs deacuteriveacutes et composeacutes en UML
En UML on preacutefegravere lusage de meacutethodes aux attributs deacuteriveacutes On utilisera toujours des
meacutethodes degraves que la valeur de lattribut deacuteriveacute deacutepend dautres attributs exteacuterieurs agrave sa
classe
En UML on preacutefegravere lusage de compositions aux attributs composeacutes On utilisera toujours
des compositions pour les attributs composeacutes et multivalueacutes
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
34
Syntaxe
attributtype attribut_multivalueacute[nbMinValeursnbMaxValeurs]type attribut_deacuteriveacutetype attribut_composeacute - sous-attribut1type - sous-attribut2type -
1 2 3 4 5 6 7
Image 4 Repreacutesentation dattributs en UML
Dans cet exemple les attributs Nom Preacutenom sont de type string lun de 20 caractegraveres et lautre de 10 tandis
que DateNaissance est de type date et Age de type integer Preacutenom est un attribut multivalueacute ici une personne
peut avoir de 1 agrave 3 preacutenoms Age est un attribut deacuteriveacute il est calculeacute par une fonction sur DateNaissance
Comtpleacutement Voir aussi
Meacutethodes
Composition - p99
e) Repeacuterage des cleacutes Un attribut ou un groupe dattributs peut ecirctre annoteacute comme eacutetant cleacute sil permet didentifier de faccedilon unique
un objet de la classe
On ajoute le symbole key agrave cocircteacute du ou des attributs concerneacutes
Cleacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
35
Cleacute composeacutee de deux attributs
Meacutethode
Le repeacuterage des cleacutes nest pas systeacutematique en UML (la deacutefinition des cleacutes se fera essentiellement au niveau
logique) On cherchera neacuteanmoins agrave repeacuterer les cleacutes rendues eacutevidentes par la phase de clarification
Atention
On najoutera jamais de cleacute artificielle au niveau du MCD Si aucune cleacute nest eacutevidente on laisse
la classe sans cleacute Atention Atribut souligneacute et
On trouvera dans ce cours des exemples dattributs souligneacutes ou preacuteceacutedeacutes de pour exprimer
luniciteacute Ce nest pas une pratique standard et la notation key devrait lui ecirctre substitueacutee
Un attribut souligneacute est normalement un attribut de classe ou static en UML Un
attribut preacuteceacutedeacute de est normalement un attribut proteacutegeacute en UML
Mais les concepts dattribut de classe et dattribut proteacutegeacute ne sont pas utiliseacutes dans le cadre des
bases de donneacutees
f) Meacutethodes
Deacutefinition Meacutethode
Une meacutethode (ou opeacuteration) est une fonction associeacutee agrave une classe dobjet qui permet dagir sur les objets de
la classe ou qui permet agrave ces objets de renvoyer des valeurs (calculeacutees en fonction de paramegravetres)
Syntaxe
methode(paramegravetres)type 1
Remarque Meacutethodes et modeacutelisation de BD
Pour la modeacutelisation des bases de donneacutees les meacutethodes sont surtout utiliseacutees pour repreacutesenter des donneacutees
calculeacutees (agrave linstar des attributs deacuteriveacutees) ou pour mettre en exergue des fonctions importantes du systegraveme
cible Seules les meacutethodes les plus importantes sont repreacutesenteacutees lapproche est moins systeacutematique quen
modeacutelisation objet par exemple
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
36
Remarque Meacutethodes relationnel relationnel-objet
Lors de la transformation du modegravele conceptuel UML en modegravele logique relationnel les meacutethodes ne seront
geacuteneacuteralement pas impleacutementeacutees Leur repeacuterage au niveau conceptuel sert donc surtout daide-meacutemoire
pour limpleacutementation au niveau applicatif
Au contraire un modegravele logique relationnel-objet permettra limpleacutementation de meacutethodes directement
associeacutees agrave des tables Leur repeacuterage au niveau conceptuel est donc encore plus important
Comtpleacutement Transformation des meacutethodes par des vues - p98
g) Associations
Deacutefinition Association
Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire)
qui deacutefinit un ensemble de liens entre les objets de ces classes
Une association est nommeacutee geacuteneacuteralement par un verbe Une association peut avoir des proprieacuteteacutes (agrave linstar
dune classe) Une association deacutefinit le nombre minimum et maximum dinstances autoriseacutee dans la relation
(on parle de cardinaliteacute)
Syntaxe
Image 5 Notation de lassociation en UML
Atention
Le nom de lassociation (verbe qui la deacutecrit) est obligatoire au mecircme titre que le nom dune
classe ou dun attribut
Remarque
Une association est geacuteneacuteralement bidirectionnelle (cest agrave dire quelle peut se lire dans les deux sens) Les
associations qui ne respectent pas cette proprieacuteteacute sont dites unidirectionnelles ou agrave navigation restreinte
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
37
Image 6 Repreacutesentation dassociation en UML
Lassociation Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des
voitures
Comtpleacutement Voir aussi
Cardinaliteacute
Explicitation des associations - p100
Associations ternaires - p101
Contraintes sur les associations - p101
h) Cardinaliteacute
Deacutefinition Cardinaliteacute dune association
La cardinaliteacute dune association permet de repreacutesenter le nombre minimum et maximum dinstances qui sont
autoriseacutees agrave participer agrave la relation La cardinaliteacute est deacutefinie pour les deux sens de la relation
Syntaxe
Si mina (resp maxa) est le nombre minimum (resp maximum) dinstances de la classe A autoriseacutees agrave participer
agrave lassociation on note sur la relation agrave cocircteacute de la classe A minamaxa
Si le nombre maximum est indeacutetermineacute on note n ou
Atention
La notation de la cardinaliteacute en UML est opposeacutee agrave celle adopteacutee en E-A En UML on note agrave gauche
(resp agrave droite) le nombre dinstances de la classe de gauche (resp de droite) autoriseacutees dans
lassociation En E-A on note agrave gauche (resp agrave droite) le nombre dinstances de la classe de
droite (resp de gauche) autoriseacutees dans lassociation
Remarque
Les cardinaliteacutes les plus courantes sont
01 (optionnel)
11 ou 1 (un)
Lassociation Conduit
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
38
0n ou 0 ou (plusieurs)
Ici un conducteur peut posseacuteder plusieurs voitures (y compris aucune) et une voiture nest posseacutedeacutee que par
un seul conducteur
i) Classe dassociation
Deacutefinition Classe dassociation
On utilise la notation des classes dassociation lorsque lon souhaite ajouter des proprieacuteteacutes agrave une association
Syntaxe Notation dune classe dassociation en UML
Image 8 Notation dune classe dassociation en UML
1 n ou 1 (obligatoire )
Image 7 Repreacutesentation de cardinaliteacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
39
Image 9 Emplois
B Exercices
1 Exercice Lire lUML [15 min]
Tennis Le scheacutema suivant repreacutesente les rencontres lors dun tournoi de tennis Quelles sont les assertions vraies selon ce scheacutema
Image 10
On peut jouer des matchs de double
Un joueur peut gagner un match sans y avoir participeacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
40
Il peut y avoir deux matchs sur le mecircme terrain agrave la mecircme heure
Connaissant un joueur on peut savoir sur quels terrains il a joueacute
Journal Voici le scheacutema conceptuel du systegraveme dinformation (tregraves simplifieacute) dun quotidien Quelles sont les assertions vraies selon ce scheacutema
Image 11
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
41
Un article peut ecirctre reacutedigeacute par plusieurs journalistes
Un article peut ecirctre publieacute plusieurs fois dans le mecircme journal
Un article peut ecirctre publieacute dans un journal par un journaliste qui ne travaille pas pour ce
journal
Il peut y avoir plusieurs articles sur le mecircme sujet
Un journaliste peut interviewer une personnaliteacute sans faire darticle agrave ce propos
Logistique Une socieacuteteacute de transport routier veut installer un systegraveme dinformation pour rendre plus efficace sa logistique Embaucheacute au service informatique de cette compagnie vous ecirctes donc chargeacute de reprendre le travail deacutejagrave effectueacute (cest agrave dire le scheacutema suivant)
Quelles sont les assertions vraies selon ce scheacutema
Image 12
Un conducteur peut conduire plusieurs camions
Un conducteur peut conduire un camion sans y ecirctre autoriseacute
Il peut y avoir plusieurs conducteurs pour le mecircme camion
Un conducteur peut livrer sa propre ville
2 Gestion dune coopeacuterative viticole
[20 minutes] Cet exercice a eacuteteacute inspireacute par Bases de donneacutees objet et relationnel [Gardarin99]
On considegravere une base Coopeacuterative qui possegravede les caracteacuteristiques suivantes
Un vin est caracteacuteriseacute par un numeacutero entier unique nv un cru une anneacutee de production et un degreacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
42
Un viticulteur est caracteacuteriseacute par un numeacutero entier unique nvt un nom et une ville Un viticulteur produit un ou plusieurs vins et reacuteciproquement un vin est produit par un ou plusieurs
producteurs (eacuteventuellement aucun)
Les buveurs sont caracteacuteriseacutes par un numeacutero de buveur nb un nom preacutenom et une adresse (limiteacutee agrave
la ville pour simplifier)
Un buveur consomme des vins et peut passer des commandes pour acheter des vins
Question 1
Lister tous les types dobjet agrave consideacuterer les attributs associeacutes et les domaines de valeurs de ces attributs
Repeacuterer les eacuteventuelles cleacutes
Question 2
Lister toutes les associations agrave consideacuterer et indiquer leurs cardinaliteacutes
Question 3
Donner le diagramme UML de cette situation
3 Cours et intervenants
[20 min] On souhaite reacutealiser une base de donneacutees pour geacuterer les cours dispenseacutes dans une eacutecole dingeacutenieur ainsi
que les personnes qui interviennent dans ces cours
Chaque cours est identifieacute par une anneacutee et un numeacutero Chaque cours a donc un numeacutero unique localement
agrave chaque anneacutee Un cours possegravede un titre et un type (C pour Cours TD ou TP) Un cours possegravede
eacutegalement une date de deacutebut et une date de fin qui est toujours de 5 jours apregraves la date de deacutebut
Chaque intervenant est identifieacute par son nom (deux intervenants ne peuvent pas avoir le mecircme nom) Il a un
preacutenom un bureau un ou plusieurs numeacuteros de teacuteleacutephones (jusquagrave trois numeacuteros) et des speacutecialiteacutes Un
bureau est deacutefini par un centre (R pour Royallieu BF pour Benjamin Franklin et PG pour Pierre Guillaumat)
un bacirctiment (une lettre de A agrave Z) et un numeacutero (infeacuterieur agrave 1000) Les speacutecialiteacutes sont des couples de chaicircnes
de caractegraveres deacutesignant un domaine (par exemple BD) et une speacutecialiteacute (par exemple SGBDRO)
Chaque cours est donneacute par un unique intervenant
Voici un exemple Le cours Machines universelles ndeg21 de lanneacutee 2014 est donneacute par Alan Turing entre le
05012014 et le 10012014 Cest un cours de type C Alan Turing a le bureau 666 au bacirctiment X de PG Il
a les numeacuteros de teacuteleacutephone 0666666666 et 0766666666 Il possegravede les speacutecialiteacutes suivantes
Domaine Matheacutematique Speacutecialiteacute Cryptographie
Domaine Informatique Speacutecialiteacute Algorithmie
Domaine Informatique Speacutecialiteacute Intelligence Artificielle
Question
Reacutealiser le modegravele UML de la base de donneacutees Preacuteciser les cleacutes et les types des attributs
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
43
4 Gestion du personnel
[30 minutes] Le service de gestion du personnel dune entreprise deacutesire seacutequiper dun outil lui permettant de geacuterer
informatiquement ses employeacutes leurs salaires et leurs congeacutes Les speacutecifications suivantes ont pu ecirctre mises
en exergue par une analyse des besoins reacutealiseacutee aupregraves des utilisateurs du service du personnel
Geacuteneacuteraliteacutes
tout employeacute est identifieacute par un nom un preacutenom et une date de naissance
tout employeacute remplit une fonction et appartient agrave un service
pour chaque employeacute on gegravere la date dembauche et la quotiteacute (cest agrave dire le pourcentage de temps
travailleacute par rapport au temps plein en cas de travail agrave temps partiel)
Gestion des salaires
pour chaque employeacute on gegravere lhistorique de ses salaires dans lentreprise chaque salaire eacutetant affecteacute
agrave une peacuteriode de temps
un salaire est composeacute dun salaire brut de charges patronales et de charges salariales
on cherchera agrave partir des ces donneacutees agrave obtenir eacutegalement le salaire chargeacute (brut + charges patronales)
et le salaire net (brut - charges salariales) et ce en particulier pour le salaire en cours (celui que
touche actuellement le salarieacute)
Gestion des congeacutes
pour chaque employeacute on meacutemorise chaque congeacute pris (posant quun congeacute concerne toujours une ou
plusieurs journeacutees entiegraveres)
chaque employeacute a le droit aux jours de congeacutes suivants
- 25 jours (pour une quotiteacute de 1) et 25 x quotiteacute sinon - chaque fonction ouvre les droits agrave un certain nombre de jours de RTT - chaque service ouvre les droits agrave un certain nombre de jours de RTT - chaque tranche de 5 ans passeacutes dans lentreprise donne droit agrave 1 jour suppleacutementaire - les employeacutes de plus de 40 ans ont un jour suppleacutementaire et ceux de plus de 50 ans deux
pour chaque employeacute on cherchera agrave connaicirctre le nombre total de jours de congeacutes autoriseacutes le nombre
de jours pris et le nombre de jours restants sur lanneacutee en cours
Question
Reacutealiser le diagramme de classes permettant de modeacuteliser ce problegraveme
44
III - La modeacutelisation logique
relationnelle
A Cours
Le modegravele relationnel est aux fondements des SGBDR Il a eacuteteacute et continue decirctre le modegravele theacuteorique
dominant pour la repreacutesentation logique des base de donneacutees mecircme si le mouvement NoSQL propose des
alternatives
Le modegravele relationnel permet de reformuler le modegravele conceptuel dans un formalisme - le tableau - beaucoup
plus proche de limpleacutementation informatique bien quencore indeacutependant dune solution technologique
particuliegravere
1 Introduction au modegravele relationnel
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
III
La modeacutelisation logique relationnelle
45
a) Niveau logique Le niveau logique est le lien entre le niveau conceptuel et limpleacutementation effective de lapplication Le modegravele
conceptuel eacutetant un modegravele formel le modegravele logique a pour vocation decirctre eacutegalement un modegravele formel
mais speacutecifiant non plus la reacutealiteacute existante ou rechercheacutee comme le modegravele conceptuel mais les donneacutees
telles quelles vont exister dans lapplication informatique
Pour assumer cette fonction le modegravele relationnel [Codd70] sest imposeacute en reacuteaction aux insuffisances des
modegraveles anteacuterieurs les modegraveles hieacuterarchique et reacuteseau et de part la puissance de ses fondements
matheacutematiques Encore aujourdhui dominant le modegravele relationnel est un fondement indispensable agrave la
conception de bases de donneacutees
Ratptpel
Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
b) Deacutefinition du modegravele relationnel
Introduction
Le modegravele relationnel a eacuteteacute introduit par Codd [Codd70] en 1970 au laboratoire de recherche dIBM de San
Joseacute Il sagit dun modegravele simple et puissant agrave la base de la majoriteacute des bases de donneacutees encore aujourdhui
Les objectifs du modegravele relationnel formuleacutes par Codd sont les suivants
Assurer lindeacutependance des applications et de la repreacutesentation interne des donneacutees
Geacuterer les problegravemes de coheacuterence et de redondance des donneacutees
Utiliser des langages de donneacutees baseacutes sur des theacuteories solides
Deacutefinition Modegravele relationnel
On appelle modegravele relationnel un ensemble de concepts permettant de formaliser logiquement la description
darticles de fichiers plats indeacutependamment de la faccedilon dont ils sont physiquement stockeacutes dans une meacutemoire
numeacuterique
Le modegravele relationnel inclut des concepts pour la description de donneacutees ainsi que des concepts pour la
manipulation de donneacutees
Fondamental Repreacutesenter le monde en tables
Le modegravele relationnel permet de repreacutesenter les donneacutees que lon va geacuterer agrave laide dun tregraves petit
nombre de concepts tregraves simples
Les relations ou tables des lignes et des colonnes
Les domaines de valeurs chaque case dune table prend une unique valeur dans un
domaine preacute-deacutefini
Les cleacutes il existe des cases dont les valeurs doivent ecirctre uniques et non nulles
Les cleacutes eacutetrangegraveres il existe des cases qui doivent prendre une valeur existante dans les
cases dune autre table
La modeacutelisation logique relationnelle
46
Comtpleacutement Extension du modegravele relationnel
Le modegravele relationnel est un standard normaliseacute par lISO agrave travers son langage le SQL Il se veut neacuteanmoins
degraves lorigine extensible pour permettre de geacuterer des donneacutees plus complexes que les donneacutees tabulaires Le
modegravele relationnel-objet est neacute de cette extension
2 Les concepts fondamentaux du modegravele relationnel
atributs enregistrement domaine
a) Domaine
Deacutefinition Domaine
Ensemble caracteacuteriseacute par un nom dans lequel des donneacutees peuvent prendre leurs valeurs
Remarque Un domaine peut-ecirctre deacutefini en intension (cest agrave dire en deacutefinissant les proprieacuteteacutes caracteacuteristiques des
valeurs du domaine on parle aussi de compreacutehension) ou en extension (cest agrave dire en eacutenumeacuterant toutes
les valeurs du domaine)
Exemtple Domaines deacutefinis en intension
Tous les entiers
Les reacuteels infeacuterieur agrave 5
Les booleacuteen (vrai ou faux)
Toutes les chaicircnes de 1 agrave 255 caractegraveres
Les valeurs moneacutetaires deacutefinie comme des deacutecimaux avec deux chiffres apregraves la virgule
Les dates deacutefinies comme des chaicircnes de 10 caractegraveres comprenant des chiffres et des tirets selon le
patron 00-00-0000
Les salaires deacutefinis comme des valeurs moneacutetaires compris entre 15000 et 100000
Exemtple Domaines deacutefinis en extension
Couleur Bleu Vert Rouge Jaune Blanc Noir
SGBD Hieacuterarchique Reacuteseau Relationnel Objet Relationnel-Objet
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
La modeacutelisation logique relationnelle
47
b) Exercice Indiquez quelle deacutefinition et quel exemple correspondent respectivement aux mots intension et extension
1 - Le domaine des couleurs
2 - Eacutenonciation exhaustive de lensemble des objets du domaine
3 - bleu rouge vert
4 - Explicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa compreacutehension
abstraite geacuteneacuterale)
Intension Extension
c) Atribut et enregistrement
Deacutefinition Atribut
On appelle attribut dune relation une colonne de cette relation Un attribut est caracteacuteriseacute par un nom et un
domaine dans lequel il prend ses valeurs
Synonymes Champs Proprieacuteteacute Colonne
Deacutefinition Enregistrement
On appelle enregistrement dune relation une ligne de cette relation Un enregistrement prend une valeur
pour chaque attribut de la relation
Synonymes Tuple N-uplet Vecteur Ligne
La modeacutelisation logique relationnelle
48
Exemtple
A B
1 1
1 2
2 2
Tableau 5 Relation R
La relation R comporte les deux attributs A et B et les trois enregistrements lt11gt lt12gt et lt22gt
Remarque Atribut domaine ordre
Un attribut se distingue dun domaine car il peut ne comporter que certaines valeurs de ce domaine
Les colonnes de la relation ne sont pas ordonneacutees et elles ne sont donc repeacutereacutees que par le nom de lattribut
Remarque Valeur nulle
Un enregistrement peut ne pas avoir de valeur pour certains attributs de la relation parce que cette valeur
est inconnue ou inapplicable sa valeur est alors null
d) Exemple La relation Vol
Exemtple
Numero Compagnie Avion Deacutepart Arriveacutee Date
AF3245 Air France 747 Paris Oulan Bator 01shy08shy2002
AF6767 Air France A320 Paris Toulouse 30shy07shy2002
KLM234 KML 727 Paris Amsterdam 31shy07shy2002
Tableau 6 Relation Vol
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel
Objectifs
Connaicirctre les notions de cleacutes candidates naturelles artificielles primaire eacutetrangegravere
Aborder le principe deacuteclatement des relations et de nonredondance
La modeacutelisation logique relationnelle
49
a) Cleacute
Deacutefinition Cleacute
Une cleacute est un groupe dattributs minimum qui permet didentifier de faccedilon univoque un tuple dans une
relation
Fondamental
Toute relation doit comporter au moins une cleacute ce qui implique quune relation ne peut pas
contenir deux tuples identiques
Atention Atributs de cleacutes unique et non null Afin decirctre deacuteterminants pour lidentification dun enregistrement tous les attributs dune cleacute
doivent ecirctre valueacutes cest-agrave-dire quaucun ne peut avoir de valeur null Dire quun groupe
dattribut est une cleacute eacutequivaut agrave dire quil est unique et non null
Exemtple Numeacutero deacutetudiant
Le numeacutero deacutetudiant dune relation Etudiant est une bonne cleacute car il y aura systeacutematiquement une
valeur non nulle
Le groupe dattributs (nom preacutenom) dune relation Etudiant est en geacuteneacuteral une mauvaise cleacute car les
homonymes existent
b) Deacuteterminer les cleacutes
Deacutetermination dune cleacute
Deacutefinir un groupe dattributs comme eacutetant une cleacute neacutecessite une reacuteflexion seacutemantique sur les donneacutees
composant ces attributs afin de sassurer de leur uniciteacute
Fondamental
La deacutefinition des cleacutes est un acte de modeacutelisation elle ne renvoie pas donc pas agrave une veacuteriteacute
intangible mais agrave la reacutealiteacute telle quelle est repreacutesenteacutee dans le modegravele que lon eacutelabore
Exemtple
Lattribut numeacutero de seacutecuriteacute sociale dune relation personne peut paraicirctre une bonne cleacute a priori car son
uniciteacute est assureacutee Mais tout le monde nen dispose pas forceacutement (les enfants des eacutetrangers) donc ce nest
une cleacute que si lon considegravere des personnes affilieacutees agrave la seacutecuriteacute sociale
c) Cleacute primaire et cleacutes candidates
Deacutefinition Cleacute tprimaire
Si plusieurs cleacutes existent dans une relation on en choisit une parmi celles-ci Cette cleacute est appeleacutee cleacute
primaire
La modeacutelisation logique relationnelle
50
La cleacute primaire est geacuteneacuteralement choisie de faccedilon agrave ce quelle soit la plus simple cest agrave dire portant sur le
moins dattributs et sur les attributs de domaine les plus basiques (entiers ou chaicircnes courtes typiquement)
Deacutefinition Cleacutes candidates
On appelle cleacutes candidates lensemble des cleacutes dune relation qui nont pas eacuteteacute choisies comme cleacute primaire
(elles eacutetaient candidates agrave cette fonction)
d) Cleacute artificielle
Deacutefinition Cleacute artificielle
Sil est impossible de trouver une cleacute primaire ou que les cleacutes candidates sont trop complexes il est possible
de faire appel agrave une cleacute artificielle Une cleacute artificielle est un attribut suppleacutementaire ajouteacute au scheacutema de
la relation qui nest lieacute agrave aucune signification et qui sert uniquement agrave identifier de faccedilon unique les
enregistrements etou agrave simplifier les reacutefeacuterences de cleacutes eacutetrangegraveres
Deacutefinition Cleacute signifiante
Une cleacute est signifiante si elle nest pas artificielle
Synonyme Cleacute naturelle
Atention Cleacute artificielle et niveau logique
Au niveau du modegravele logique il faut eacuteviter la simpliciteacute consistant agrave identifier toutes les relations
avec des cleacutes artificielles et ne reacuteserver cet usage quaux cas particuliers
Conseil
1 Si au moins une cleacute naturelle composeacutee dun seul attribut existe en choisir une parmi celles-ci comme
cleacute primaire 2 Sinon choisir une cleacute naturelle composeacutee de plusieurs attributs si elle ne pose pas de problegraveme identifieacute 3 Toujours justifier lemploi dune cleacute artificielle (au niveau logique uniquement pour des raisons de
complexiteacute du modegravele les questions de performance sont eacutetudieacutees au niveau physique)
RemarqueCleacute artificielle et niveau tphysique eacutevolutiviteacute maintenance et tperformance
Au niveau de limpleacutementation physique par contre il est courant que des cleacutes artificielles soient utiliseacutees de
faccedilon systeacutematique
Du point de vue de leacutevolutiviteacute de la BD il existe toujours un risque quune cleacute nonartificielle perde
sa proprieacuteteacute duniciteacute ou de non-nulliteacute
Du point de vue de la maintenance de la BD il existe toujours un risque quune cleacute non-artificielle
voit sa valeur modifieacutee et dans ce cas la reacutepercution de ce changement pour mettre agrave jour toutes les
reacutefeacuterences peut poser problegraveme
Du point de vue de la performance de la BD les cleacutes non-artificielles ne sont pas en geacuteneacuteral optimiseacutees
en terme de type et de taille et donc peuvent limiter les performances dans le cadre des jointures
Preacutecisons neacuteanmoins quinversement les cleacutes artificielles ont pour conseacutequence de systeacutematiser des
jointures qui auraient pu ecirctre eacuteviteacutees avec des cleacutes primaires signifiantes
La modeacutelisation logique relationnelle
51
Exemtple Problegraveme deacutevolutiviteacute tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD franccedilaise elle ne permettra pas dentrer
un individu non-franccedilais issu dun pays ne disposant pas dun tel numeacutero
Exemtple Problegraveme de maintenance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD centrale dont les donneacutees sont exploiteacutees
par dautres tables dautres BD qui viennent piocher dans cette BD pour leurs propres usages sans que la
BD centrale ne connaisse ses clients Soit une erreur dans la saisie dun numeacutero de seacutecuriteacute sociale dans la
BD centrale si ce numeacutero est corrigeacute il faudrait (ce qui nest pas possible dans notre cas) impeacuterativement en
avertir toutes les bases utilisatrices pour quelles mettent agrave jour leurs reacutefeacuterences
Exemtple Problegraveme de tperformance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table comptant un million denregistrements ce numeacutero
est geacuteneacuteralement un nombre agrave 13 chiffres ou une chaicircne agrave 13 caractegraveres ce qui dans les deux cas est supeacuterieur
au nombre agrave 7 chiffres suffisant pour identifier tous les individus de la BD Les performances seront donc
toujours moins bonnes lors des jointures si une cleacute prend deux fois plus de place en meacutemoire que son
optimum Mais ajoutons que cette perte de performance na pas toujours de conseacutequence sur la reacutealiteacute
perceptible par les utilisateurs de la BD
Inversement soit une cleacute artificielle la cleacute primaire dune table T1 par ailleurs reacutefeacuterenceacutee par une autre table
T2 Soit le numeacutero de seacutecuriteacute sociale un attribut cleacute de T1 Si lon veut par requecircte disposer des informations
de T2 ainsi que du numeacutero de seacutecuriteacute sociale de T1 alors il faudra faire une jointure tandis que si ce numeacutero
signifiant avait eacuteteacute choisi comme cleacute primaire cela naurait pas eacuteteacute neacutecessaire
La modeacutelisation logique relationnelle
52
e) Cleacute eacutetrangegravere
Deacutefinition Cleacute eacutetrangegravere
Une cleacute eacutetrangegravere est un attribut ou un groupe dattributs dune relation R1 devant apparaicirctre comme cleacute
primaire dans une relation R2 afin de mateacuterialiser une reacutefeacuterence entre les tuples de R1 et les tuples de R2
Une cleacute eacutetrangegravere dun tuple reacutefeacuterence une cleacute primaire dun autre tuple
Atention
Seule une cleacute primaire peut ecirctre reacutefeacuterenceacutee par une cleacute eacutetrangegravere cest mecircme le seule fonction
de la cleacute primaire ecirctre la cleacute qui peut ecirctre reacutefeacuterenceacutee par les cleacutes eacutetrangegraveres
Deacutefinition Contrainte dinteacutegriteacute reacutefeacuterentielle
Une cleacute eacutetrangegravere respecte la contrainte dinteacutegriteacute reacutefeacuterentielle si sa valeur est effectivement existante dans
la cleacute primaire dun tuple de la relation reacutefeacuterenceacutee ou si sa valeur est null
Une cleacute eacutetrangegravere qui ne respecte pas la contrainte dinteacutegriteacute reacutefeacuterentielle exprime un lien vers un tuple qui
nexiste pas et donc nest pas coheacuterente
f) Reacutefeacuterence entre relations Le modegravele relationnel a pour objectif la structuration de donneacutees selon des relations Lenjeu est de parvenir
agrave traduire un modegravele conceptuel en modegravele logique relationnel Or il ny a pas de notion dassociation en
relationnel donc il faudra pouvoir traduire les associations avec les concepts dont on dispose relation cleacute
cleacute eacutetrangegravere
Afin de repreacutesenter des reacutefeacuterences entre relations dans un modegravele relationnel la seule solution est de stocker
linformation dans une relation et donc que certains attributs dune relation servent agrave pointer sur dautres
relations
Atention
Il ny a pas vraiment de reacutefeacuterence ou de lien en relationnel puisque nous ne disposons que de
tables de cleacutes de cleacutes eacutetrangegravere et de valeurs
On va donc devoir se servir de ces outils pour mateacuterialiser une notion de reacutefeacuterence
Meacutethode Reacutefeacuterence
La reacutefeacuterence entre deux tuples T1 et T2 de deux relations diffeacuterentes est exprimable par une valeur identique
entre une cleacute eacutetrangegravere du tuple T1 et la cleacute primaire de lautre tuple T2 Synonyme Lien Exemtple
R1 R2 a1 a2=gtR2 b1 b2
La modeacutelisation logique relationnelle
53
F
Image 13
Lattribut a2 de la relation R1 reacutefeacuterence lattribut b1 de la relation R2 car a2 est une cleacute eacutetrangegravere de R1 vers
R2 (b1 est la cleacute primaire de R2)
Ici on a donc par exemple les tuples identifieacutes par B et C de R1 qui reacutefeacuterencent le tuple identifieacute par 1 dans
R2
g) Scheacutema relationnel
Deacutefinition Scheacutema dune relation
Le scheacutema dune relation deacutefinit cette relation en intension Il est composeacute
du nom de la relation
de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs
de la cleacute primaire
des cleacutes eacutetrangegraveres
des cleacutes candidates
Deacutefinition Scheacutema relationnel dune base de donneacutee
Le scheacutema relationnel dune BD est la deacutefinition en intension de cette BD (par opposition agrave linstance de la
BD qui est une extension de la BD) Il est composeacute de lensemble des scheacutemas de chaque relation de la BD
Syntaxe Relation
Relation (Attribut1Domaine1 Attribut2Domaine2 AttributNDomaineN) 1
La relation Relation contient N attributs chacun deacutefini sur son domaine
Syntaxe Cleacute tprimaire
Relation (Attribut1Domaine1 AttributMDomaineM AttributNDomaineN)
1
La cleacute de la relation Relation est composeacutee des attributs Attribut1 agrave AttributM (attribut preacuteceacutedeacutes de ou
bien souligneacutes)
En geacuteneacuteral on note la cleacute primaire en premier dans la relation
Syntaxe Cleacute eacutetrangegravere
Relation1 ( AttributM=gtRelation2 AttributN=gtRelation2) 1
La relation Relation1 comporte une cleacute eacutetrangegravere (composeacutee des attributs AttributM agrave AttributN)
reacutefeacuterenccedilant la cleacute primaire de Relation2 Bien sucircr il peut exister plusieurs cleacutes eacutetrangegraveres vers plusieurs
La modeacutelisation logique relationnelle
54
relations distinctes Une cleacute eacutetrangegravere et sa cleacute primaire reacutefeacuterenceacutee sont toujours composeacutees du mecircme nombre
dattributs Il nest pas neacutecessaire de preacuteciser les domaines des attributs appartenant agrave la cleacute eacutetrangegravere car ce
sont forceacutement les mecircmes que ceux de la cleacute primaire reacutefeacuterenceacutee Il nest pas non plus en geacuteneacuteral neacutecessaire
de preacuteciser dans le scheacutema relationnel quels attributs de la cleacute eacutetrangegravere reacutefeacuterencent quels attributs de la cleacute
primaire (cela est geacuteneacuteralement eacutevident) mais il est possible de la faire on notant Attribut=gtRelationAttribut
En geacuteneacuteral on note les cleacutes eacutetrangegraveres en dernier dans la relation sauf pour les cleacutes eacutetrangegraveres qui font partie
de la cleacute primaire (cleacutes identifiantes)
Syntaxe Cleacute candidates
Relation1 (AttributMDomaineM ) avec AttributM cleacute 1
Les cleacutes candidates doivent ecirctre noteacutees sur le scheacutema relationnel
Sil ny a quune ou deux cleacutes candidates les noter directement apregraves la deacutefinition de la relation
Sil y a beaucoup de cleacutes pour ne pas trop alourdir la notation renvoyer agrave un tableau agrave part
Atention Cleacutes candidates et cleacute primaire
La notation R(ab) signifie toujours que R a comme cleacute primaire (ab) et non que R aurait
deux cleacutes a et b (dont on ne saurait pas laquelle est primaire)
La notation R(ab) avec b cleacute signifie bien que a et b sont deux cleacutes de R et que a est primaire
Il ne faut pas confondre une cleacute composeacutee de deux attributs avec deux cleacutes
h) Exemple de scheacutema relationnel pour la geacuteographie
Exemtple
Personne (NumeroEntier NomChaicircne PreacutenomChaicircne LieuNaissance=gtVille) Pays (NomChaicircne PopulationEntier SuperficieReacuteel Dirigeant=gtPersonne) Reacutegion (Pays=gtPays NomChaicircne Superficie Dirigeant=gtPersonne) Ville (CodePostalCP NomChaicircne Pays=gtReacutegionPays Reacutegion=gtReacutegionNom Dirigeant=gtPersonne)
1 2 3 4
Exemtple Exemtple dinstance de la base de donneacutees
Personne Num ero Nom Prenom LieuNaissance
1 Durand Pierre 60200 2 Dupont Marie 60200
Pays
Nom Population Superficie Dirig eant
France 60 50000101 2 Allemagne 80 60000023564 2 Espagne 40 3500001 1
La modeacutelisation logique relationnelle
55
Reacutegion Pays Nom Superficie Dirig eant France Picardie 50 1 Espagne Picardie 40 1 France Normandie 30 2
Ville CodePostal Nom Pays Reacuteg ion Dirig eant F60200 Compiegravegne France Picardie 1
F60300 Senlis France Picardie 2 F60301 Senlis France Picardie 2 E8000 Senlis Espagne Picardie 2
Le scheacutema relationnel preacuteceacutedent deacutecrit
Des personnes
Elles sont identifieacutees par un numeacutero qui est en fait une cleacute artificielle En effet mecircme une cleacute composeacutee
de tous les attributs (Nom Preacutenom LieuNaissance) laisse une possibiliteacute de doublons (homonymes
neacutes dans la mecircme ville)
La cleacute eacutetrangegravere LieuNaissance fait reacutefeacuterence agrave la relation Ville et plus preacuteciseacutement agrave sa cleacute primaire
CodePostal ce qui est est laisseacute implicite car eacutevident
Des pays
Ils sont identifieacutes par leur nom puisque deux pays ne peuvent avoir le mecircme nom Les pays sont
dirigeacutes par des personnes et ce lien est mateacuterialiseacute par la cleacute eacutetrangegravere Dirigeant
Des reacutegions
Elles font partie dun pays et ont un nom Deux reacutegions de pays diffeacuterents pouvant avoir le mecircme
nom il faut utiliser une cleacute primaire composeacutee agrave la fois du nom de la reacutegion et du nom du pays qui
est une cleacute eacutetrangegravere (le nom est appeleacute cleacute locale car il nest pas suffisant pour identifier un tuple de
la relation Reacutegion et la cleacute eacutetrangegravere vers la relation Pays est appeleacutee cleacute identifiante)
Des villes
Elles sont identifieacute par un code postal qui est unique dans le monde (en utilisant le preacutefixe de pays de
type F-60200) Ce code postal a pour domaine CP qui est une chaicircne composeacutee dune ou deux
lettres dun tiret puis dune seacuterie de chiffres
Le lien dappartenance entre une ville et une reacutegion est mateacuterialiseacute par la cleacute eacutetrangegravere composeacutee des
deux attributs Pays et Reacutegion Cette cleacute reacutefeacuterence la cleacute primaire de la relation Reacutegion eacutegalement composeacutee
de deux attributs Pour clairement expliciter les reacutefeacuterences (bien que seacutemantiquement la deacutenomination des
attributs ne laisse pas de place au doute) on utilise la syntaxe ReacutegionPays et ReacutegionNom
4 Synthegravese
a) Synthegravese Scheacutema relationnel
Scheacutema relationnel
Un scheacutema relationnel permet une formalisation dun modegravele logique
Relation ou table
La modeacutelisation logique relationnelle
56
Sous-ensemble dun produit carteacutesien -
Attribut ou colonne Prend ses valeurs dans un domaine
- Enregistrement ou ligne Pose une valeur (y compris la valeur null) pour chaque attribut
Cleacute
Groupe dattributs ayant un rocircle didentification au sein dun enregistrement - Cleacute candidate
Identifie de faccedilon unique un enregistrement - Cleacute primaire
Cleacute candidate choisie pour repreacutesenter un enregistrement pour sa faciliteacute dusage - Cleacute eacutetrangegravere
Reacutefeacuterence la cleacute primaire dun tuple dune autre relation pour exprimer un lien
b) Bibliographie commenteacutee sur le modegravele relationnel
Comtpleacutement Synthegraveses
SQL2 SQL3 applications agrave Oracle [Delmal01]
Une deacutefinition syntheacutetique et efficace du domaine relationnel relation domaine attribut cleacute inteacutegriteacute
opeacuterateurs (Premier chapitre)
5 Deacutefinition formelle dune relation
a) Produit carteacutesien
Deacutefinition Produit carteacutesien
Le produit carteacutesien noteacute X des domaines D1 D2 Dn noteacute D1 X D2 X X Dn est lensemble des
tuples (ou n-uplets ou vecteurs) ltV1V2Vngt tel que Vi est une valeur de Di et tel que toutes les
combinaisons de valeurs possibles sont exprimeacutees
Exemtple
D1 = A B C D2 = 1 2 3 D1 X D2 = ltA1gt ltA2gt ltA3gt ltB1gt ltB2gt ltB3gt ltC1gt ltC2gt ltC3gt
1 2 3
b) Relation
Deacutefinition Relation
Une relation sur les domaines D1 D2 Dn est un sous-ensemble du produit carteacutesien D1 X D2 X X Dn
Une relation est caracteacuteriseacutee par un nom Synonymes Table tableau
Syntaxe
La modeacutelisation logique relationnelle
57
On peut repreacutesenter la relation R sur les domaine D1 Dn par une table comportant une colonne pour
chaque domaine et une ligne pour chaque tuple de la relation
D1 Dn
V1 Vn
V1 Vn
Tableau 7 Relation R
Remarque
Une relation est deacutefinie en extension par leacutenumeacuteration des tuples la composant
B Exercices
1 Lab I-
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Dessiner des relations instancieacutees (en extension donc) remplies avec les donneacutees fournies en exemple
La modeacutelisation logique relationnelle
58
Question 2
Eacutecrivez le scheacutema relationnel (deacutefinition en intension donc) permettant de repreacutesenter une base de donneacutees
relationnelle pour le laboratoire
59
IV - Introduction au
passage
UMLRelationnel classes et
associations
A Cours
Afin de pouvoir impleacutementer une base de donneacutees il faut pouvoir traduire le modegravele conceptuel en modegravele
logique Cela signifie quil faut pouvoir convertir un modegravele UML en modegravele relationnel Les modegraveles
conceptuels sont suffisamment formels pour que ce passage soit systeacutematiseacute dans la plupart des cas
1 Transformation des classes et atributs
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
IV
Introduction au passage UML-Relationnel classes et associations
60
a) Transformation des classes
Meacutethode Classe
Pour chaque classe non abstraite
on creacutee une relation dont le scheacutema est celui de la classe
la cleacute primaire de cette relation est une des cleacutes de la classe
Classe1
Graphique 2 Classe
Classe1()
Remarque
Les classes abstraites sont ignoreacutees agrave ce stade et neacutetant pas instanciables ne donnent geacuteneacuteralement pas
lieu agrave la creacuteation de relation
b) Transformation des atributs
Meacutethode Atributs simtples
Pour chaque attribut eacuteleacutementaire et monovalueacute dune
classe on creacutee un attribut correspondant
Classe1
a key
b
Graphique 3 Attribut
Classe1(ab)
Meacutethode Atributs comtposites
Pour chaque attribut composite comprenant N sous-attributs dune classe
on creacutee N attributs correspondants
dont les noms sont la concateacutenation du nom de lattribut composite avec celui du sous attribut
Classe1
a key b -b1 -b2
Introduction au passage UML-Relationnel classes et associations
61
Graphique 4 Attribut composeacute
Classe1(ab_b1b_b2)
Meacutethode Atributs multivalueacutes
Pour chaque attribut multivalueacute b dune classe C
on creacutee une nouvelle relation RB
qui comprend un attribut monovalueacute correspondant agrave b
plus la cleacute de la relation repreacutesentant C
la cleacute de RB est la concateacutenation des deux attributs
Classe1
a key
b[110]
Graphique 5 Attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Meacutethode Atributs multivalueacutes (meacutethode alternative)
Dans le cas ougrave le nombre maximum de b est fini et petit on peut eacutegalement adopter la transformation
suivante
Classe1(ab1b2b3b4b5b6b7b8b9b10)
Si le nombre dattributs est infini (b[1]) cest impossible sil est trop grand ce nest pas souhaitable
Meacutethode Atributs comtposeacutes multivalueacutes
On combine les regravegles eacutenonceacutees pour les attributs composeacutes et pour les attributs multivalueacutes
Classe1
a key b [0N] -b1 -b2
Graphique 6 Attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
Ratptpel Voir aussi
Transformation des compositions - p102
Introduction au passage UML-Relationnel classes et associations
62
c) Transformation des atributs deacuteriveacutes et meacutethodes
Meacutethode Atributs deacuteriveacutes et meacutethodes
On ne repreacutesente pas en geacuteneacuteral les attributs deacuteriveacutes ni les meacutethodes dans le modegravele relationnel ils seront
calculeacutes dynamiquement soit par des proceacutedures internes agrave la BD (proceacutedures stockeacutees) soit par des
proceacutedures au niveau applicatif
Classe1
a key
b
m()
Graphique 7 Attribut deacuteriveacute et meacutethodes
Classe1(a)
Comtpleacutement Atribut deacuteriveacute stockeacutes
On peut deacutecider (pour des raisons de performance essentiellement) de repreacutesenter lattribut deacuteriveacute ou la
meacutethode comme sil sagissait dun attribut simple mais il sera neacutecessaire dans ce cas dajouter des
meacutecanismes de validation de contraintes dynamiques (avec des triggers par exemple) pour assurer que la
valeur stockeacutee eacutevolue en mecircme temps que les attributs sur lesquels le calcul deacuteriveacute porte
Notons quintroduire un attribut deacuteriveacute ou un reacutesultat de meacutethode dans le modegravele relationnel eacutequivaut agrave
introduire de la redondance ce qui est en geacuteneacuteral deacuteconseilleacute et ce qui doit ecirctre dans tous les cas controcircleacute
2 Transformation des associations
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
a) Transformation des associations 1N
Meacutethode
Pour chaque association binaire de type 1N
on ajoute agrave la relation cocircteacute N une cleacute eacutetrangegravere vers la relation cocircteacute 1
Classe1
01 association 0N
Classe2
a key
b c key
d
Graphique 8 Association 1N
Classe1(ab)
Introduction au passage UML-Relationnel classes et associations
63
Classe2(cda=gtClasse1)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations 1N - p103
b) Transformation des associations NM
Meacutethode
Pour chaque association binaire de type MN
on creacutee une nouvelle relation
composeacutee de cleacutes eacutetrangegraveres vers chaque relation associeacutee
et dont la cleacute primaire est la concateacutenation de ces cleacutes eacutetrangegraveres
Graphique 9 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations NM - p104
c) Transformation des associations 11 (approche simplifieacutee)
Meacutethode
La solution la plus simple et la plus geacuteneacuterale pour transformer une association 11 consiste agrave traiter cette
association 11 comme une association 1N puis agrave ajouter une contrainte UNIQUE sur la cleacute eacutetrangegravere pour
limiter la cardinaliteacute maximale agrave 1
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 10 Association 11
Classe1(abc=gtClasse2) avec c UNIQUE
Classe2(cd) ou
Introduction au passage UML-Relationnel classes et associations
64
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE
Remarque
Il existe toujours deux solutions selon que lon choisit une ou lautre relation pour accueillir la cleacute eacutetrangegravere
Selon la cardinaliteacute minimale un des deux choix peut ecirctre plus pertinent
Comtpleacutement
Il est parfois possible de choisir de fusionner les deux classes au sein dune seule relation plutocirct que dopter
pour une cleacute eacutetrangegravere
Comtpleacutement
Transformation des associations 11 (approche geacuteneacuterale) - p105
d) Transformation des classes dassociation
Meacutethode Classe dassociation NM
Graphique 11 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2ef)
Comtpleacutement Classe dassociation 1N
Les attributs de la classe dassociation sont ajouteacutes agrave la relation issue de la classe cocircteacute N
Comtpleacutement Classe dassociation 11
Les attributs de la classe dassociation sont ajouteacutes agrave la relation qui a eacuteteacute choisie pour recevoir la cleacute eacutetrangegravere
Si les deux classes ont eacuteteacute fusionneacutees en une seule relation les attributs sont ajouteacutes agrave celle-ci
a key b
Classe1
c key d
Classe2
0 N 0 N
e f
Cl-A ssoc
Introduction au passage UML-Relationnel classes et associations
65
B Exercices
1 Lab I+
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
Question 3
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 4
Dessiner des tableaux remplis avec les donneacutees fournies en exemple afin de montrer que le modegravele fonctionne
selon le besoin exprimeacute initialement On pourra mettre le premier mot seulement des descriptions pour gagner
du temps
Introduction au passage UML-Relationnel classes et associations
66
2 Usine de production
[30 minutes] Une usine cherche agrave modeacuteliser sa production de veacutehicules et de moteurs
Les veacutehicules sont identifieacutes par un numeacutero dimmatriculation alphanumeacuterique et caracteacuteriseacutes par une
couleur dont la deacutenomination est une chaicircne de caractegraveres Chaque veacutehicule peut comporter un
unique moteur etou un nombre quelconque de pneus
Chaque moteur est monteacute sur un et un seul veacutehicule et est identifieacute par un numeacutero de seacuterie Un moteur
est caracteacuteriseacute par une puissance en chevaux
Tout pneu est monteacute sur un unique veacutehicule et est identifieacute par un numeacutero de seacuterie Sa position est
deacutefinie localement sur ce veacutehicule et par rapport agrave lessieu Dn pour les pneus situeacute sur la droite de
lessieu et Gn pour les pneus situeacutes agrave gauche n repreacutesentant le numeacutero de lessieu (1 pour celui situeacute
devant 2 pour la deuxiegraveme rangeacutee etc) Un pneu est caracteacuteriseacute par un diamegravetre et une largeur en
pouces
Les moteurs les pneus et les veacutehicules sont fabriqueacutes sous une marque Les mecircmes marques peuvent
fabriquer indiffeacuteremment des moteurs des pneus etou des veacutehicules et un veacutehicule dune certaine
marque peut comporter un moteur etou des pneus de marque diffeacuterente
Question 1
Reacutealiser le modegravele UML de ce problegraveme en faisant apparaicirctre les domaines et les cleacutes
Question 2
Reacutealiser le passage au modegravele relationnel en faisant apparaicirctre les cleacutes primaires candidates et eacutetrangegraveres
Question 3
Dessiner les tableaux correspondant aux relations du modegravele Instancier au minimum deux veacutehicules et quatre
marques
Question 4
Donner quatre exemples denregistrements qui seront refuseacutes - eacutetant donneacutees les donneacutees deacutejagrave inseacutereacutees -
pour quatre raisons diffeacuterentes
contrainte de cleacute sur une cleacute primaire
contrainte de cleacute sur une cleacute candidate
contrainte dinteacutegriteacute reacutefeacuterentielle
contrainte de non nulliteacute
67
V - Creacuteation et
alimentation de bases
de donneacutees SQL
A Cours
1 Le langage SQL
Deacutefinition SQL
SQL (pour langage de requecirctes structureacute) est un langage deacuteclaratif destineacute agrave la manipulation de bases de
donneacutees au sein des SGBD et plus particuliegraverement des SGBDR
SQL LDD LCD LMD LCT
SQL est un langage deacuteclaratif il nest donc pas a proprement parleacute un langage de programmation mais plutocirct
une interface standard pour acceacuteder aux bases de donneacutees
Il est composeacute de quatre sous ensembles
Le Langage de Deacutefinition de Donneacutees (LDD ou en anglais DDL Data Definition
Language) pour creacuteer et supprimer des objets dans la base de donneacutees (tables contraintes dinteacutegriteacute
vues etc)
Exemple de commandes CREATE DROP ALTER
Le Langage de Controcircle de Donneacutees (LCD ou en anglais DCL Data Control Language) pour geacuterer les
droits sur les objets de la base (creacuteation des utilisateurs et affectation de leurs droits)
Exemple de commandes GRANT REVOKE
V
Creacuteation et alimentation de bases de donneacutees SQL
68
Le Langage de Manipulation de Donneacutees (LMD ou en anglais DML Data Manipulation
Language) pour la recherche linsertion la mise agrave jour et la suppression de donneacutees Le LMD est baseacute
sur les opeacuterateurs relationnels auxquels sont ajouteacutes des fonctions de calcul dagreacutegats et des
instructions pour reacutealiser les opeacuterations dinsertion mise agrave jour et suppression
Exemple de commandes INSERT UPDATE DELETE SELECT
Le Langage de Controcircle de Transaction (LCT ou en anglais TCL Transaction Control Language) pour
la gestion des transactions (validation ou annulation de modifications de donneacutees dans la BD)
Exemple de commandes COMMIT ROLLBACK
Fondamental Reacutefeacuterence SQL SQL-99 complete really
Gulutzan and Pelzer 1999 [Gulutzan and Pelzer 1999] httpsmariadbcomkbensql-99)2
Comtpleacutement Origine du SQL
Le modegravele relationnel a eacuteteacute inventeacute par EF Codd (Directeur de recherche du centre IBM de San Joseacute) en
1970 suite agrave quoi de nombreux langages ont fait leur apparition
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel2
IBM SystemR
IBM DB2
Ce sont ces langages qui ont donneacute naissance au standard SQL normaliseacute en 1986 au Eacutetats-Unis par lANSI
pour donner SQL86 (puis au niveau international par lISO en 1987)
Comtpleacutement Versions de SQL
SQL-86 (ou SQL-87) Version dorigine
SQL-89 (ou SQL-1) Ameacuteliorations mineures
SQL-92 (ou SQL-2) Extensions fonctionnelles majeures (types de donneacutees opeacuterations relationnelles
instruction LDD transactions etc
SQL-99 (ou SQL-3) Introduction du PSM (couche proceacutedurale sous forme de proceacutedure stockeacutees)
et du RO
SQL-2003 Extensions XML
SQL-2006 Ameacuteliorations mineures (pour XML notamment)
SQL-2008 Ameacuteliorations mineures (pour le RO notamment)
Remarque Version SQL et imtpleacutementations SGBD
Selon leur niveau dimpleacutementation de SQL les SGBD acceptent ou non certaines fonctions
Certains SGBD ayant entameacute certaines impleacutementations avant leur standardisation deacutefinitive ces
impleacutementations peuvent diffeacuterer de la norme
Creacuteation et alimentation de bases de donneacutees SQL
69
2 Creacuteer des tables en SQL (Langage de Deacutefinition de
Donneacutees)
Le LDD est la partie du langage SQL qui permet de creacuteer de faccedilon deacuteclarative les objets composant une
BD Il permet notamment la deacutefinition des scheacutemas des relations des contraintes dinteacutegriteacute des vues
Rappel Le code SQL peut ecirctre testeacute avec Db Discodbdiscocrztfr
2 - httpsmariadbcomkbensql-99
a) Lab I++
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
70
Question 2
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 3
Creacuteer une base de donneacutees en SQL correspondant au modegravele relationnel
Question 4
Inseacuterer les donneacutees fournies en exemple dans la base de donneacutees
b) Creacuteation de tables
Ratptpel
Quest ce que le SQL
Introduction
La creacuteation de table est le fondement de la creacuteation dune base de donneacutees en SQL
Deacutefinition Creacuteation de table
La creacuteation de table est la deacutefinition dun scheacutema de relation en intension par la speacutecification de tous les
attributs le composant avec leurs domaines respectifs
Syntaxe
CREATE TABLE nom_table ( nom_colonne1 domaine1 nom_colonne2 domaine2 nom_colonneN domaineN )
1 2 3 4 5 6
Exemtple
CREATE TABLE Personne ( Nom VARCHAR(25) Prenom VARCHAR(25) Age NUMERIC(3) )
1 2 3 4 5
Atention Contrainte dinteacutegriteacute
La deacutefinition des types nest pas suffisante pour deacutefinir un scheacutema relationnel il faut lui adjoindre
la deacutefinition de contraintes dinteacutegriteacute qui permette de poser les notions de cleacute dinteacutegriteacute
reacutefeacuterentielle de restriction de domaines etc
Creacuteation et alimentation de bases de donneacutees SQL
71
c) Domaines de donneacutees
Introduction
Un attribut dune relation est deacutefini pour un certain domaine ou type Les types de donneacutees disponibles en
SQL varient dun SGBD agrave lautre on peut neacuteanmoins citer un certain nombre de types standards que lon
retrouve dans tous les SGBD
Fondamental Les types standard
INTEGER ou INT SMALLINT
NUMERIC(X)
DECIMAL(XY) ou NUMERIC(XY)
FLOAT(X) REAL
CHAR(X)
VARCHAR(X)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HHMMSS)
Les tytpes numeacuteriques standard
Les nombres entiers
INTEGER (ou INT) et SMALLINT permettent de coder des entiers sur 4 octets (2147483648 agrave
2147483647) ou 2 octets (-32768 agrave 32767)
Les nombres entiers
NUMERIC(X) deacutesigne un entier de X chiffres au maximum
Les nombres deacutecimaux
DECIMAL(XY) ougrave X et Y sont optionnels et deacutesignent respectivement le nombre de chiffres maximum
pouvant composer le nombre et le nombre de chiffres apregraves la virgule
NUMERIC(XY) est un synonyme standard
Les nombres agrave virgule flottante
FLOAT(X) avec X deacutefinissant la preacutecision (nombre de bits de codage de la mantisse)
REAL est un synonyme standard de FLOAT(24)
Conseil FLOAT versus DECIMAL
Il est conseilleacute dutiliser DECIMAL qui est un nombre exact plutocirct que FLOAT qui est un nombre approximatif
si la preacutecision requise est suffisante FLOAT sera reacuteserveacute typiquement agrave des calculs scientifiques neacutecessitant
un degreacute de preacutecision supeacuterieur
Les tytpes chaicircne de caractegraveres standard
On distingue principalement les types CHAR(X) et VARCHAR(X) ougrave X est obligatoire et deacutesigne la longueur de
la chaicircne
CHAR deacutefinit des chaicircnes de longueur fixe (compleacuteteacutee agrave droites par des espaces si la longueur est
infeacuterieure agrave X)
et VARCHAR des chaicircnes de longueurs variables
Creacuteation et alimentation de bases de donneacutees SQL
72
CHAR et VARCHAR sont geacuteneacuteralement limiteacutes agrave 255 caractegraveres La plupart des SGBD proposent des types tels
que TEXT ou CLOB (Character Long Object) pour repreacutesenter des chaicircnes de caractegraveres longues jusquagrave
65000 caractegraveres par exemple
Les tytpes date standard
Les types date dont introduits avec la norme SQL2 On distingue
DATE qui repreacutesente une date selon un format de type AAAA-MM-JJ
et DATETIME qui repreacutesente une date plus une heure dans un format tel que AAAAMM-JJ HHMMSS
Comtpleacutement Les autres tytpes
En fonction du SGBD il peut exister de nombreux autres types On peut citer par exemple
MONEY pour repreacutesenter des deacutecimaux associeacutes agrave une monnaie
BOOLEAN pour repreacutesenter des booleacuteens
BLOB (pour Binary Long Oject) pour repreacutesenter des donneacutees binaires tels que des documents
multimeacutedia (images bitmap videacuteo etc)
d) La valeur NULL Labsence de valeur repreacutesenteacutee par la valeur NULL est une information fondamentale en SQL quil ne faut
pas confondre avec la chaicircne espace de caractegravere ougrave bien la valeur 0 Il ne sagit pas dun type agrave proprement
parler mais dune valeur possible dans tous les types
Fondamental
Par deacutefaut en SQL NULL fait partie du domaine il faut lexclure explicitement par la clause NOT
NULL apregraves la deacutefinition de type si on ne le souhaite pas Syntaxe
CREATE TABLE nom de table ( 1
CREATE TABLE nom_table ( nom_colonne1 domaine1 NOT NULL
nom_colonne2 domaine2
nom_colonneN domaineN NOT NULL )
2 3 4 5 6 7
e) Contraintes dinteacutegriteacute
Fondamental
PRIMARY KEY (ltliste dattibutsgt)
UNIQUE (ltliste dattibutsgt)
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt)
CHECK (ltconditiongt)
Une contrainte dinteacutegriteacute est une regravegle qui deacutefinit la coheacuterence dune donneacutee ou dun ensemble de donneacutees
de la
Creacuteation et alimentation de bases de donneacutees SQL
73
BD
Il existe deux types de contraintes
sur une colonne unique
ou sur une table lorsque la contrainte porte sur une ou plusieurs colonnes
Les contraintes sont deacutefinies au moment de la creacuteation des tables
Deacutefinition Contraintes dinteacutegriteacute sur une colonne
Les contraintes dinteacutegriteacute sur une colonne sont
PRIMARY KEY deacutefinit lattribut comme la cleacute primaire
UNIQUE interdit que deux tuples de la relation aient la mecircme valeur pour lattribut
REFERENCES ltnom tablegt (ltnom colonnesgt) controcircle linteacutegriteacute reacutefeacuterentielle entre lattribut et la
table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur de lattribut speacutecifieacute dans la condition dans le
cadre dune restriction de domaine
Deacutefinition Contraintes dinteacutegriteacute sur une table
Les contraintes dinteacutegriteacute sur une table sont
PRIMARY KEY (ltliste dattibutsgt) deacutefinit les attributs de la liste comme la cleacute primaire
UNIQUE (ltliste dattibutsgt) interdit que deux tuples de la relation aient les mecircmes valeurs pour
lensemble des attributs de la liste
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt) controcircle linteacutegriteacute
reacutefeacuterentielle entre les attributs de la liste et la table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur des attributs speacutecifieacutes dans la condition dans le
cadre dune restriction de domaine Syntaxe
CREATE TABLE nom de table ( CREATE TABLE nom_table ( nom_colonne1 domaine1 ltcontraintes colonne1gt nom_colonne2 domaine2 ltcontraintes colonne2gt nom_colonneN domaineN ltcontraintes colonneNgt
1 2 3 4 5 6
ltcontraintes de tablegt )
7 8
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) UNIQUE
(Nom Prenom) )
1 2 3 4 5 6 7 8
Remarque Cleacute candidate
La clause UNIQUE NOT NULL sur un attribut ou un groupe dattributs deacutefinit une cleacute candidate non primaire
Creacuteation et alimentation de bases de donneacutees SQL
74
Remarque
Les contraintes sur une colonne et sur une table peuvent ecirctre combineacutees dans la deacutefinition dun mecircme scheacutema
de relation
Remarque
Une contrainte sur une colonne peut toujours ecirctre remplaceacutee par une contrainte sur une table
f) Exemple de contraintes dinteacutegriteacute
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) Codepostal INTEGER(5) Pays VARCHAR(50) UNIQUE (Nom Prenom) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) CHECK (Initiale = LEFT(Pays 1)) PRIMARY KEY (CP Pays) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
Dans la deacutefinition de scheacutema preacuteceacutedente on a poseacute les contraintes suivantes
La cleacute primaire de Personne est NdegSS et la cleacute primaire de Adresse est (CP Pays)
Nom Preacutenom ne peuvent pas ecirctre null et (Nom Preacutenom) est une cleacute
Age doit ecirctre compris entre 18 et 65 et Initiale doit ecirctre la premiegravere lettre de Pays (avec la fonction
LEFT qui renvoie la sous chaicircne agrave gauche de la chaicircne passeacutee en premier argument sur le nombre de
caractegraveres passeacutes en second argument)
Mariage est cleacute eacutetrangegravere vers Personne et (Codepostal Pays) est une cleacute eacutetrangegravere vers Adresse
Exemtple Reacuteeacutecriture avec uniquement des contraintes de table
Creacuteation et alimentation de bases de donneacutees SQL
75
CREATE TABLE Personne ( NdegSS CHAR(13) Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) Mariage CHAR(13) Codepostal INTEGER(5) Pays VARCHAR(50) PRIMARY KEY (NdegSS) UNIQUE (Nom Prenom) CHECK (Age BETWEEN 18 AND 65) FOREIGN KEY (Mariage) REFERENCES Personne(NdegSS) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) PRIMARY KEY (CP Pays) CHECK
(Initiale = LEFT(Pays 1)) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22
Ce scheacutema est strictement le mecircme que le preacuteceacutedent simplement les contraintes ont toutes eacuteteacute reacuteeacutecrites
comme des contraintes de table
g) Exercice Les instructions SQL ci-apregraves ont-elles pu permettre de creacuteer le scheacutema des trois relations instancieacutees ci-dessous
CREATE TABLE A ( A1 CHAR(255) A2 CHAR(255) A3 CHAR(255) A4 CHAR(255) ) CREATE TABLE B ( B1 CHAR(255) B2 CHAR(255) B3 CHAR(255) B4 CHAR(255) B5 CHAR(255) B6 CHAR(255) B7 CHAR(255) ) CREATE TABLE C ( C1 CHAR(255) C2 CHAR(255) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Oui
Non
Creacuteation et alimentation de bases de donneacutees SQL
76
3 Inseacuterer modifier et supprimer des donneacutees en SQL
(Langage de Manipulation de Donneacutees)
Objectifs
Maicirctriser les bases du SQL pour entrer modifier et effacer des donneacutees dans les
tables
a) Exercice Quelle valeur renvoie la derniegravere instruction SQL de la liste ci-dessous
CREATE TABLE t ( a integer b integer c integer)
INSERT INTO t VALUES (0 0 0)
INSERT INTO t VALUES (1 0 0)
INSERT INTO t SELECT FROM t
SELECT sum(a) + count(b) FROM t
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
b) Insertion de donneacutees Le langage SQL fournit des instructions pour ajouter des nouveaux tuples agrave une relation Il offre ainsi une
interface standard pour ajouter des information dans une base de donneacutees
Il existe deux moyens dajouter des donneacutees soit par fourniture directe des valeurs des proprieacuteteacutes du tuple agrave
ajouter soit par seacutelection des tuples agrave ajouter dans une autre relation
Syntaxe Insertion directe de valeurs
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) VALUES (ltListe ordonneacutee
des valeurs agrave affecter aux proprieacuteteacutes speacutecifieacutees cidessusgt) 1 2
Exemtple Insertion directe de valeurs
INSERT INTO Virement (Date Montant Objet) VALUES (14-07-1975 1000 Prime de naissance)
1 2
Syntaxe Insertion de valeurs tpar lintermeacutediaire dune seacutelection
Creacuteation et alimentation de bases de donneacutees SQL
77
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) SELECT 1 2
Linstruction SELECT projetant un nombre de proprieacuteteacutes identiques aux proprieacuteteacutes agrave valoriser
Exemtple Insertion de valeurs tpar lintermeacutediaire dune seacutelection
INSERT INTO Credit (Date Montant Objet) SELECT Date Montant Annulation de deacutebit FROM Debit WHERE DebitDate = 25-12-2001
1 2 3 4
Dans cet exemple tous les deacutebits effectueacutes le 25 deacutecembre 2001 sont re-creacutediteacutes pour le mecircme montant (et
agrave la mecircme date) avec la mention annulation dans lobjet du creacutedit Ceci pourrait typiquement reacutealiseacute en cas
de deacutebits erroneacutes ce jour lagrave
Remarque
Les proprieacuteteacutes non valoriseacutees sont affecteacutees agrave la valeur NULL
Il est possible de ne pas speacutecifier les proprieacuteteacutes agrave valoriser dans ce cas toutes les proprieacuteteacutes de la
relation seront consideacutereacutees dans leur ordre de deacutefinition dans la relation (agrave nutiliser que dans les cas
les plus simples)
c) Mise agrave jour de donneacutees Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation
Syntaxe Mise agrave jour directe de valeurs
1 UPDATE ltNom de la relationgt
2 SET ltListe daffectations Proprieacuteteacute=Valeur Proprieacuteteacute=Valeurgt 3 WHERE ltCondition pour filtrer les tuples agrave mettre agrave jourgt
1 UPDATE r
2 SET a=1 b=x 3 WHERE c=0
Exemtple Mise agrave jour directe de valeurs
UPDATE Compte SET Monnaie=Euro WHERE Monnaie=Franc
1 2 3
Exemtple Mise agrave jour tpar calcul sur lancienne valeur
UPDATE Compte SET Total=Total 655957 WHERE Monnaie=Euro
1 2 3
Creacuteation et alimentation de bases de donneacutees SQL
78
d) Suppression de donneacutees Le langage SQL fournit une instruction pour supprimer des tuples existants dans une relation
Syntaxe
DELETE FROM ltNom de la relationgt WHERE ltCondition pour filtrer les tuples agrave supprimergt
1 2
Exemtple Sutptpression de tous les tutples dune relation
DELETE FROM FaussesFactures 1
Exemtple Sutptpression seacutelective
DELETE FROM FaussesFactures WHERE Auteur=Moi
1 2
4 Supprimer et modifier des tables en SQL (Langage de
Deacutefinition de Donneacutees)
Le LDD permet de creacuteer les objets composant une BD de faccedilon deacuteclarative Il permet notamment la
deacutefinition des scheacutemas des relations la deacutefinition des contraintes dinteacutegriteacute la deacutefinition de vues
relationnelles
a) Suppression dobjets Il est possible de supprimer des objets de la BD tels que les tables ou les vues
Syntaxe
DROP lttype objetgt ltnom objetgt 1
Exemtple
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
79
DROP TABLE Personne DROP VIEW Employe
1 2
b) Modification de tables
Introduction
Linstruction ALTER TABLE permet de modifier la deacutefinition dune table (colonnes ou contraintes) preacutealablement
creacuteeacutee
Cette commande absente de SQL-89 est normaliseacutee dans SQL-92
Syntaxe Ajout de colonne
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de colonnegt
1 2
Syntaxe Sutptpression de colonne
ALTER TABLE ltnom de tablegt DROP ltnom de colonnegt
1 2
Syntaxe Ajout de contrainte
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de contrainte de tablegt
1 2
RemarqueModification de table sans donneacutee sans la commande ALTER
Pour modifier une table ne contenant pas encore de donneacutee la commande ALTER nest pas indispensable
lon peut supprimer la table agrave modifier (DROP) et la recreacuteer telle quon la souhaite Notons neacuteanmoins que si
la table est reacutefeacuterenceacutee par des clauses FOREIGN KEY cette suppression sera plus compliqueacutee car il faudra
eacutegalement supprimer et recreacuteer les tables reacutefeacuterenccedilantes (ce qui ce complique encore si ces derniegraveres
contiennent des donneacutees)
RemarqueModification de table avec donneacutees sans la commande ALTER
Pour modifier une table contenant des donneacutees la commande ALTER nest pas indispensable On peut en effet
1 Copier les donneacutees dans une table temporaire de mecircme scheacutema que la table agrave modifier
2 Supprimer et recreacuteer la table agrave modifier avec le nouveau scheacutema 3 Copier les donneacutees depuis la table temporaire vers la table modifieacutee
c) Exemple de modifications de tables
Table initiale
Soit une table initiale telle que deacutefinie ci-apregraves
Creacuteation et alimentation de bases de donneacutees SQL
80
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) prenom
VARCHAR(50) PRIMARY KEY
(pk_n) )
1 2 3 4 5 6
Modifications
On deacutecide dapporter les ameacutenagements suivants agrave la table on deacutefinit nom comme UNIQUE et on supprime
le champ prenom
ALTER TABLE Personne ADD UNIQUE (nom)
ALTER TABLE Personne DROP prenom
1 2 3 4 5
Table finale
La table obtenue apregraves modification est identique agrave la table qui aurait eacuteteacute deacutefinie directement telle que ci-
apregraves
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) PRIMARY KEY (pk_n) UNIQUE
(nom) )
1 2 3 4 5 6
B Exercices
1 The show
[30 minutes] Soit le scheacutema relationnel suivant deacutecrivant un systegraveme de reacuteservations de places de spectacles
SPECTACLE (nospectacleint nomstr dureacuteeint typetheacuteacirctre|danse|concert) SALLE (nosalleint nbplacesint) REPRESENTATION (datedate nospectacle=gtSPECTACLE nosalle=gtSALLE prixdecimal)
1 2 3
En faisant les suppositions suivantes
On gegravere un espace de spectacles ayant un ensemble de salles (deacutecrit par la relation SALLE)
On suppose que pour un jour donneacute et une salle donneacutee il ny a quun seul spectacle repreacutesenteacute
Question 1
Retro-concevoir le MCD en UML
Question 2
Proposer des contraintes dinteacutegriteacute reacutealistes pour ce scheacutema (en franccedilais)
Question 3
Creacuteation et alimentation de bases de donneacutees SQL
81
Proposer une deacutefinition du scheacutema en SQL qui prenne en compte certaines de ces contraintes
Question 4
Inseacuterer des donneacutees reacutealistes dans votre scheacutema afin de veacuterifier son bon fonctionnement
2 Du producteur au consommateur
[30 min] Soit le modegravele relationnel suivant
Producteur(raison_socialechaicircne(25) villechaicircne(255)) Consommateur(loginchaicircne(10)
emailchaicircne(50) nomchaicircne(50)prenomchaicircne(50) villechaicircne(255)) Produit(identier descriptionchaicircne(100) produit-par=gtProducteur consommepar-
login=gtConsommateur consomme-par-email=gtConsommateur)
1 2
3
On ajoute que
(nomprenomville) est une cleacute candidate de Consommateur
Tous les produits sont produits
Tous les produits ne sont pas consommeacutes
Question 1
Reacutetro-concevez le modegravele conceptuel sous-jacent agrave ce modegravele relationnel
Question 2
Eacutetablissez le code LDD standard permettant dimpleacutementer ce modegravele en SQL
Question 3
Inseacuterez les donneacutees dans votre base de donneacutees correspondant aux assertions suivantes
Lentreprise de Compiegravegne Pommes Picardes SARL a produit 4 lots de pommes et 2 lots de cidre
Il existe trois utilisateurs consommateurs dans la base donc les adresses mails sont
AlUncompiegnefr - BobDeuxcompiegnefr - CharlieTroiscompiegnefr
Ce sont des employeacutes de la ville de Compiegravegne qui habitent cette ville Leur mail est construit sur le
modegravele PrenomNomcompiegnefr Leur login est leur preacutenom
Question 4
Modifiez les donneacutees de votre base de donneacutees pour inteacutegrer les assertions suivantes
1 lots de pommes a eacuteteacute consommeacutes par Al Un
2 lots de pomme ont eacuteteacute consommeacute par Bob Deux
Tous les lots de cidre ont eacuteteacute consommeacutes par Al Un
Question 5
Charlie Trois nayant rien consommeacute modifiez votre base de donneacutees afin de le supprimer de la base
82
VI - Algegravebre relationnelle
A Cours
1 Opeacuterateurs fondamentaux projection restriction et
jointure
Objectifs
Connaicirctre et savoir utiliser les opeacuterateurs relationnels de projection restriction
produit et jointure
a) Introduction La repreacutesentation dinformation sous forme relationnelle est inteacuteressante car les fondements matheacutematiques
du relationnel outre quils permettent une modeacutelisation logique simple et puissante fournissent eacutegalement
un ensemble de concepts pour manipuler formellement linformation ainsi modeacuteliseacutee
Ainsi une algegravebre relationnelle sous forme dun ensemble dopeacuterations formelles permet dexprimer des
questions ou requecirctes poseacutees agrave une repreacutesentation relationnelle sous forme dexpressions algeacutebriques
Lalgegravebre relationnelle est composeacutee par les cinq opeacuterateurs de base et les trois opeacuterateurs additionnels
suivants
Opeacuterateurs de base
- Union - Diffeacuterence - Projection - Restriction
VI
Algegravebre relationnelle
83
- Produit carteacutesien
Opeacuterateurs additionels
- Intersection - Jointure - Division
Fondamental Algegravebre relationnelle et SQL
Les questions formuleacutees en algegravebre relationnelle sont la base des questions formuleacutees en SQL
pour interroger une base de donneacutees relationnelle
b) Employeacutes et deacutepartements
[30 minutes] Soit les deux relations EMP et DEPT ci-apregraves
EMP (ENO ENOM PROF SAL COMM DNO=gtDEPT(DNO)) DEPT (DNO DNOM DIR=gtEMP(ENO) VILLE)
1 2
ENO numeacutero demployeacute cleacute
ENOM nom de lemployeacute
PROF profession (directeur nest pas une profession)
SAL salaire
COMM commission (un employeacute peut ne pas avoir de commission)
DNO numeacutero de deacutepartement auquel appartient lemployeacute
DNO numeacutero de deacutepartement cleacute
DNOM nom du deacutepartement
DIR numeacutero demployeacute du directeur du deacutepartement
VILLE lieu du deacutepartement (ville)
Eacutecrire en algegravebre relationnelle les requecirctes permettant dobtenir les informations suivantes
Question 1
Lister les employeacutes ayant des revenus supeacuterieurs agrave 10000 euros
Question 2
Trouver le nom et la profession de lemployeacute numeacutero 10
Question 3
Lister les noms des employeacutes qui travaillent agrave Paris
Question 4
Trouver le nom du directeur du deacutepartement Commercial
Question 5
Trouver les professions des directeurs des deacutepartements
Question 6
Algegravebre relationnelle
84
Trouver le nom des directeurs de deacutepartement ayant comme profession Ingeacutenieur
c) Projection
Deacutefinition Projection
La projection est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La projection de R1 sur
une partie de ses attributs A1 A2 produit une relation R2 dont le scheacutema est restreint aux attributs
mentionneacutes en opeacuterande comportant les mecircmes tuples que R1 et dont les doublons sont eacutelimineacutes
Remarque Eacutelimination des doublons
Apregraves suppression dune partie des attributs du scheacutema la relation peut comporter des doublons Eacutetant donneacute
que lon ne pourrait plus identifier ces doublons les uns par rapport aux autres la seule solution senseacutee est
donc de consideacuterer que deux doublons sont eacutequivalents et donc de nen garder quun seul dans la relation
reacutesultante
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Dupont Pierre 20
Durand Jean 30
Tableau 8 Personne
Soit lopeacuteration suivante
R = Projection (Personne Nom Age) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont 20
Durand 30
Tableau 9 R
d) Restriction
Deacutefinition Restriction
La restriction est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La restriction de R1 eacutetant
donneacutee une condition C produit une relation R2 de mecircme scheacutema que R1 et dont les tuples sont les tuples
de R1 veacuterifiant la condition C
Algegravebre relationnelle
85
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Soit les tuples suivants
Dupont Pierre 20
Durand Jean 30
Tableau 10 Personne
Soit lopeacuteration suivante
R = Restriction (Personne Agegt25) 1
On obtient alors la relation R composeacutee de lunique tuple restant suivant
Durand Jean 30
Tableau 11 R
e) Produit
Deacutefinition Produit carteacutesien
Le produit carteacutesien est une opeacuteration binaire (cest agrave dire portant sur deux relations) Le produit de R1 par
R2 (eacutequivalent au produit de R2 par R1) produit une relation R3 ayant pour scheacutema la juxtaposition de ceux
des relations R1 et R2 et pour tuples lensemble des combinaisons possibles entre les tuples de R1 et ceux de
R2 Synonymes Produit
Remarque
Le nombre de tuples reacutesultant du produit de R1 par R2 est eacutegal au nombre de tuples de R1 fois le nombre de
tuples de R2
Remarque
Le nombre de colonne du produit de R1 par R2 est eacutegal au nombre de colonne de R1 plus le nombre de
colonnes de R2
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Algegravebre relationnelle
86
Durand Jean 30
Tableau 12 Homme
Tesla Model X
Citroeumln 2 CV
Tableau 13 Voiture
Soit lopeacuteration suivante
R = Produit (Homme Voiture) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X
Dupont Pierre 20 Citroeumln 2 CV
Durand Jean 30 Tesla Model X
Durand Jean 30 Citroeumln 2 CV
Tableau 14 R
Remarque
Le produit carteacutesien est rarement utiliseacute seul mais il est agrave la base de la jointure
f) Jointure
Deacutefinition Jointure
La jointure est une opeacuteration binaire (cest agrave dire portant sur deux relations) La jointure de R1 et R2 eacutetant
donneacute une condition C portant sur des attributs de R1 et de R2 de mecircme domaine produit une relation R3
ayant pour scheacutema la juxtaposition de ceux des relations R1 et R2 et pour tuples lensemble de ceux obtenus
par concateacutenation des tuples de R1 et de R2 et qui veacuterifient la condition C
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 15 Homme
Algegravebre relationnelle
87
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV Dupont
Tableau 16 Voiture
Soit lopeacuteration suivante
R = Jointure (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Dupont Pierre 20 Citroeumln 3 CV Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Tableau 17 R
(Dupont Pierre 20 Dupont Georges 1) (Dupont Pierre 20 Dupont Jacques 3)
1 2
Fondamental
La jointure est lopeacuteration qui permet de rassembler les informations seacutepareacutees entre plusieurs
tables et reacutefeacuterenceacutees par des cleacutes eacutetrangegraveres
Remarque Otpeacuteration additionnelle
La jointure nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit et la restriction
g) Exercice Quelles sont les expressions relationnelles eacutequivalentes agrave
Projection ( Jointure (R1 R2 R1A1=R2A1) R1A1 R2A2) 1
Jointure ( Projection(R1 A1) Projection(R2 A2) R1A1=R2A1)
Projection ( Jointure (R2 R1 R2A1=R1A1) R1A1 R2A2)
Projection ( Restriction ( Produit(R1 R2) R1A1=R2A1) R1A1 R2A2)
Produit (R1 R2 R1A1=R2A1 R1A1 R2A2)
Algegravebre relationnelle
88
2 Opeacuterateurs compleacutementaires
a) Jointure naturelle
Deacutefinition Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition est leacutegaliteacute entre les attributs
de mecircme nom de R1 et de R2 Il est donc inutile de speacutecifier la condition dans une jointure naturelle elle
reste toujours implicite
Exemtple
Soit deux relations R1 (A B C) et R2 (A D) lopeacuteration Jointure(R1R2R1A=R2A) est eacutequivalente agrave
lopeacuteration JointureNaturelle(R1R2)
Remarque
Pour appliquer une jointure naturelle il faut que les deux relations opeacuterandes aient au moins un attribut ayant
le mecircme nom en commun
b) Jointure externe
Introduction
La jointure est une opeacuteration qui entraicircne la perte de certains tuples ceux qui appartiennent agrave une des deux
relations opeacuterandes et qui nont pas de correspondance dans lautre relation Il est neacutecessaire dans certains
cas de palier cette lacune et lon introduit pour cela la notion de jointure externe
Deacutefinition Jointure externe
La jointure externe entre R1 et R2 est une jointure qui produit une relation R3 agrave laquelle on ajoute les tuples
de R1 et de R2 exclus par la jointure en compleacutetant avec des valeurs nulles pour les attributs de lautre
relation
Deacutefinition Jointure externe gauche
La jointure externe gauche entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les
tuples de R1 (cest agrave dire la relation de gauche) ayant eacuteteacute exclus
Synonymes Jointure gauche
Deacutefinition Jointure externe droite
Objectifs
Maicirctriser lalgegravebre relationnelle
Algegravebre relationnelle
89
La jointure externe droite entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les tuples
de R2 (cest agrave dire la relation de droite) ayant eacuteteacute exclus
Bien entendu une jointure externe droite peut ecirctre reacuteeacutecrite par une jointure externe gauche (et
reacuteciproquement) en substituant les relations opeacuterandes R1 et R2
Synonymes Jointure droite
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Martin Georges 40
Tableau 18 Homme
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV NULL
Tableau 19 Voiture
Soit lopeacuteration suivante
R = JointureExterne (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Martin Georges 40 NULL NULL NULL
NULL NULL NULL Citroeumln 3 CV NULL
Tableau 20 R
Une jointure externe gauche naurait renvoyeacute que les trois premiers tuples et une jointure externe droite
naurait renvoyeacutee que les deux premiers et le dernier tuple
Algegravebre relationnelle
90
c) Opeacuterateurs ensemblistes
Atention Les opeacuterateurs ensemblistes sont des relations binaires (cest agrave dire entre deux relations) portant
sur des relations de mecircme scheacutema
Deacutefinition Union
Lunion de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee de
lensemble des tuples appartenant agrave R1 etou agrave R2
Deacutefinition Difeacuterence
La diffeacuterence entre deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema
constitueacutee de lensemble des tuples de R1 nappartenant pas agrave R2 Notons que la diffeacuterence entre R1 et R2
nest pas eacutegale agrave la diffeacuterence entre R2 et R1
Deacutefinition Intersection
Lintersection de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee
de lensemble des tuples appartenant agrave la fois agrave R1 et agrave R2 Notons que lintersection nest pas une opeacuteration
de base car elle est eacutequivalent agrave deux opeacuterations de diffeacuterence successives
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Femme (Nom Preacutenom Age)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 21 Homme
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 22 Femme
Soit lopeacuteration suivante
R = Union (Homme Femme) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20
Durand Jean 30
Algegravebre relationnelle
91
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 23 R
La diffeacuterence entre Homme et Femme (respectivement entre Femme et Homme) renvoie la relation Homme
(respectivement Femme) car aucun tuple nest commun aux deux relations Lintersection entre Homme est
Femme est vide pour la mecircme raison
Remarque Union externe
Il est possible de deacutefinir une opeacuteration dunion externe qui permet de reacutealiser lunion de deux relations de
scheacutema diffeacuterent en ramenant les relations aux mecircmes scheacutemas et en les compleacutetant avec des valeurs nulles
d) Division
Deacutefinition Division
La division est une opeacuteration binaire (cest agrave dire portant sur deux relations) La division de R1 par R2 sachant
que R1 et R2 ont au moins un attribut commun (cest agrave dire de mecircme nom et de mecircme domaine) produit
une relation R3 qui comporte les attributs appartenant agrave R1 mais nappartenant pas agrave R2 et lensemble des
tuples qui concateacuteneacutes agrave ceux de R2 donnent toujours un tuple de R1
Exemtple
Soit les deux relations suivantes
Pratique (Homme Meacutetier Salaire) Meacutetier (Metier)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Ingeacutenieur 35
Durand Professeur 40
Dupont Ingeacutenieur 45
Martin Ingeacutenieur 50
Tableau 24 Pratique
Ingeacutenieur
Professeur
Tableau 25 Meacutetier
Soit lopeacuteration suivante
R = Division (Homme Meacutetier) 1
Algegravebre relationnelle
92
On obtient alors la relation R composeacutee des tuples suivants
Dupont 35
Tableau 26 R
Meacutethode Reacutetponse aux questions Pour tous les
La division permet de reacutepondre aux questions du type Donnez toutes les personnes qui pratiquent tous les
meacutetiers de la relation meacutetier
Remarque Otpeacuteration additionnelle
La division nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit la restriction et la
diffeacuterence
e) Proposition de notations Introduction Il existe plusieurs syntaxes pour eacutecrire des opeacuterations dalgegravebre relationnelle certaines inspireacutees de lalgegravebre
classiques dautres reposant sur des notations graphiques Nous proposons une notation fonctionnelle qui a
le meacuterite decirctre facile agrave eacutecrire et decirctre lisible Si cette notation peut parfois perdre en simpliciteacute lorsquelle
concerne un nombre eacuteleveacute dopeacuterateurs il est possible de deacutecomposer une opeacuteration compliqueacutee afin de
lalleacuteger
Syntaxe
R = Union (R1 R2) R = Diffeacuterence (R1 R2) R = Intersection (R1 R2) R = Projection (R1 A1 A2 ) R = Restriction (R1 condition) R = Produit (R1 R2) R = Jointure (R1 R2 condition) R = JointureNaturelle (R1 R2) R = JointureExterne (R1 R2 condition) R = JointureGauche (R1 R2 condition) R = JointureDroite (R1 R2 condition) R = Division (R1 R2)
1 2 3 4 5 6 7 8 9
10 11 12
Exemtple Notation syntheacutetique
R = Projection(Restriction(R1 A1=1 AND A2=2) A3) 1
Exemtple Notation deacutecomtposeacutee
R = Restriction(R1 A1=1 AND A2=2) R = Projection (R A3)
1 2
Algegravebre relationnelle
93
f) Exercice Soit les deux relations R1 et R2 suivantes deacutefinies en extension
A B
1 A
2 B
3 C
Tableau 27 R1
A
1
2
Tableau 28 R2
Combien de tuples renvoie lopeacuteration relationnelle suivante
R3 = JointureNaturelle (Intersection (Projection(R1A) R2) R2) 1
g) Opeacuterateurs de base et additionnels Reacuteeacutecrivez les opeacuterateurs additionnels suivants agrave partir dopeacuterateurs de base
Question 1
Reacuteeacutecrivez Intersection agrave partir de Diffeacuterence
Question 2
Reacuteeacutecrivez Jointure agrave partir de Produit et Restriction
Algegravebre relationnelle
94
B Exercices
1 Faire du Cineacutema
[30 minutes] On considegravere les deux relations suivantes
FILMS (titre pays anneacutee reacutealisateur dureacutee) ACTEURS (titre acteur)
1 2
ougrave les attributs ont les significations et les types suivants
titre titre dun film (chaicircne 50 caractegraveres)
pays pays dougrave un film est originaire (chaicircne 10 caractegraveres)
annee anneacutee de sortie du film (entier 4 chiffres)
realisateur nom du reacutealisateur du film (chaicircne 20 caractegraveres)
duree dureacutee du film en minutes (entier 3 chiffres)
acteur nom dacteur (chaicircne 20 caractegraveres)
La relation FILMS donne pour chaque film identifieacute par son titre le pays lanneacutee de sortie reacutealisateur et la
dureacutee
La relation ACTEURS donne pour chaque film lensemble des principaux acteurs
Agrave laide de lalgegravebre relationnelle exprimer les requecirctes suivantes
Question 1
Lister les films franccedilais (titre anneacutee reacutealisateur)
Question 2
Donnez les anneacutees de sortie des films dans lesquels lacteur Jean GABIN a joueacute
Question 3
Trouver les acteurs qui ont tourneacute avec Franccedilois Truffaut comme reacutealisateur
Question 4
Trouver tous les acteurs qui ont eacuteteacute partenaires de lactrice Catherine Deneuve
Question 5
Lister les films dans lesquels le reacutealisateur est aussi acteur
Question 6
Lister les reacutealisateurs nayant joueacute comme acteurs que dans des films quils ne reacutealisaient pas eux-mecircmes
Question 7
Lister les reacutealisateurs ayant joueacute comme acteurs dans des films quils ne reacutealisaient pas eux-mecircmes
Question 8
Donnez les acteurs qui jouent dans tous les films de Franccedilois TRUFFAUT
Algegravebre relationnelle
95
2 Qiz Algegravebre relationnelle
Exercice 1 Quelles sont les opeacuterations relationnelles qui appliqueacutees sur les relations instancieacutees cidessous renvoient un ensemble non nul de tuples
Num Nom Famille
1 Ours Mammifegravere
2 Truite Poisson
3 Homme Mammifegravere
4 Martinshypecirccheur Oiseau
Tableau 29 Animal
Num Nom
1 Forecirct
2 Montagne
3 Ciel
4 Riviegravere
5 Mer
Tableau 30 Environnement
Animal Environnement
1 1
1 2
1 4
2 4
4 3
Tableau 31 Habiter
Mangeur Mangeacute Freacutequence
1 2 Souvent
1 3 Rarement
1 4 Rarement
4 2 Souvent
3 1 Rarement
Algegravebre relationnelle
96
3 2 Souvent
Tableau 32 Manger
Restriction( Projection (Animal Nom Famille) Famille=Mammifegravere)
Restriction( Jointure( Jointure (Animal Habiter AnimalNum=HabiterAnimal) Environnement
EnvironnementNum=HabiterEnvironnement) AnimalNum=3)
Restriction( JointureExterneGauche( Animal Habiter
AnimalNum=HabiterAnimal) AnimalNom=Homme)
Jointure( Animal Manger AnimalNum=MangerMangeur AND AnimalNum=MangerMangeacute)
Exercice 2 Soit le scheacutema relationnel
R1(X Y) R2(X Y)
1 2
Quelles sont les opeacuterations relationnelles eacutequivalentes agrave lopeacuteration
Projection( JointureNaturelle(R1R2) R1X) 1
JointureNaturelle(Projection(R1 X) Projection(R2 X))
Projection( Selection (Produit(R1 R2) R1X=R2X AND R1Y=R2Y) R1X)
Projection( Union( R1 R2) R1X)
Projection( JointureExterne ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Projection( Jointure ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Algegravebre relationnelle
97
Exercice 3 Soit la relation instancieacutee suivante
A B C
1 1 0
1 0 1
0 1 1
Tableau 33 Relation R1
Quelles relations sont retourneacutees par lopeacuteration relationnelle suivante
R2 = JointureNaturelle(R1 R1) 1
1 1 0
1 0 1
0 1 1
Tableau 34 R2a
1 1 0
1 0 1
0 1 1
1 1 0
1 0 1
0 1 1
Tableau 35 R2b
1 1 1
0 0 0
Tableau 36 R2c
1 1 0 1 1 0
1 0 1 1 0 1
0 1 1 0 1 1
Algegravebre relationnelle
98
Tableau 37 R2d
R2a
R2b
R2c
R2d
Une relation vide (aucun tuple)
3 Le retour des eacutecoliers
[45 minutes] Soit le scheacutema relationnel suivant
IMMEUBLE (ADI NBETAGES DATEC PROP) APPIM (ADI NAPR OCCUP TYPE SUPER ETAGE) PERSONNE (NOM AGE PROF ADR NAPR) EacuteCOLE (NOMEC ADEC DIR) CLASSE (NOMEC NCL MAITRE) ENFANT (NOMP PRENOM AN NOMEC NCL)
1 2 3 4 5 6
Avec la signification suivante
Relation IMMEUBLE
ADI adresse dimmeuble cleacute on fait lhypothegravese pour simplifier que ladresse identifie de maniegravere
unique un immeuble NBETAGES nombre deacutetages dun immeuble
DATEC date de construction (anneacutee)
PROP nom du proprieacutetaire de limmeuble qui est une personne
Relation APPIM (Appartement) ADI
adresse dimmeuble
NAPR numeacutero dappartement
OCCUP occupant de lappartement (nom de la personne ayant signeacute le contrat de location
eacuteventuellement aucun)
TYPE type de lappartement (Studio F2 )
SUPER superficie de lappartement
ETAGE eacutetage ougrave se situe lappartement
Relation PERSONNE
NOM nom de personne cleacute on fait lhypothegravese pour simplifier que ce nom est unique sur lensemble
des personnes que lon considegravere dans la base
AGE acircge de la personne
PROF profession de la personne
ADR adresse de la reacutesidence dune personne il sagit dun immeuble NAPR numeacutero
dappartement
Relation EacuteCOLE
NOMEC nom dune eacutecole cleacute
ADEC adresse dune eacutecole
DIR nom du directeur
Algegravebre relationnelle
99
Relation CLASSE
NOMEC nom dune eacutecole
NCL nom de la classe eg CP1 CE2 CE3 etc MAITRE nom
de linstituteur
Relation ENFANT
NOMP nom de la personne responsable de lenfant cleacute eg pegravere megravere etc
PRENOM preacutenom de lenfant
AN anneacutee de naissance
NOMEC nom dune eacutecole
NCL nom de la classe
La relation IMMEUBLE deacutecrit un ensemble dimmeubles Chaque immeuble a un proprieacutetaire La relation APPIM
deacutecrit pour chaque immeuble lensemble des appartements qui le compose (il y a au mimimum un appartement
par immeuble) Chaque appartement peut heacuteberger plusieurs personnes mais il y en a une qui est responsable
(par exemple la personne qui a signeacute le contrat de location) et qui est deacutesigneacutee par lattribut OCCUP Si
lappartement est inoccupeacute il prend la valeur NULL La relation PERSONNE deacutecrit un ensemble de personnes
ADR et NAPR repreacutesentent ladresse ougrave reacuteside une personne Une personne peut avoir plusieurs enfants deacutecrits
par la relation ENFANT Pour simplifier on ne considegravere que les enfants allant agrave leacutecole primaire Les eacutecoles et
les classes sont deacutecrites dans les relations EacuteCOLE et CLASSE chaque eacutecole est composeacutee au minimum dune
classe et chaque classe est au moins freacutequenteacutee par un enfant
Question 1
Donner ladresse des immeubles ayant plus de 10 eacutetages et construits avant 1970
Question 2
Donner les noms des personnes qui habitent dans un immeuble dont ils sont proprieacutetaires
Question 3
Donner les noms des personnes qui ne sont pas proprieacutetaires
Question 4
Donner les adresses des immeubles posseacutedeacutes par des informaticiens dont lacircge est infeacuterieur agrave 40 ans
Question 5
Donner la liste des occupants (nom acircge profession) des immeubles posseacutedeacutes par DUPONT
Question 6
Donner le nom et la profession des proprieacutetaires dimmeubles dans lesquels il y a des appartements vides
Question 7
Donner les noms des maicirctres qui habitent dans le mecircme immeuble (agrave la mecircme adresse) quau moins un de
leurs eacutelegraveves (on suppose que les enfants vivent sous le mecircme toit que leur parents)
Question 8
Donner ladresse de limmeuble la date de construction le type dappartement et leacutetage ougrave habitent chacun
des maicirctres des enfants de DUPONT
Algegravebre relationnelle
100
101
Qestions de synthegravese
Pourquoi est-il fondamental mais difficile de parvenir agrave un MCD correct
Eacutenoncer quelques actions agrave mener pour reacutealiser une speacutecification geacuteneacuterale de lexistant et des besoins
Quest ce qui diffeacuterencie fondamentalement un MCD dun MLD
Questions de synthegravese
102
Quels sont les principaux eacuteleacutements du diagramme de classes UML
Quelles sont les diffeacuterences et points communs entre la diagramme de classe UML et le modegravele E-A
eacutetendu
Questions de synthegravese
103
Quest ce quun domaine
Comment identifie-t-on un attribut dune relation
Comment identifie-t-on un enregistrement dune relation
Questions de synthegravese
104
Quand doit-on ajouter des cleacutes artificielles
Quelle problegraveme pose la redondance et comment le reacutesoudre
A quoi sert le LDD
Questions de synthegravese
105
Quel rapport y-a-t il entre le LDD et le concept de relation
Pourquoi la jointure est-elle un opeacuterateur essentiel
Questions de synthegravese
106
Quels sont les opeacuterateurs algeacutebriques de base Quels sont les autres opeacuterateurs Quest ce qui les diffeacuterencie
Quels sont les opeacuterateurs ensemblistes Quest ce qui les caracteacuterise
Pourquoi la jointure est-elle un opeacuterateur essentiel
Quest ce qui diffeacuterencie une jointure externe dune jointure classique
107
Glossaire
Cleacute artificielle
Une cleacute artificielle est un attribut ajouteacute agrave une relation afin didentifier ses enregistrements On fait appel agrave
une cleacute artificielle lorsque la relation ne comporte aucune cleacute naturelle ou que ses cleacutes naturelles sont jugeacutees
inadapteacutees agrave lidentification au sein de la base de donneacutees
Extension
Lextension est lexplicitation dun domaine par leacutenonciation exhaustive de lensemble des objets du domaine
Elle soppose agrave linstension qui est une description abstraite des caracteacuteristiques du domaine
Exemple bleu rouge vert
Contre-exemple Le domaine des couleurs
Intension
Lintension est lexplicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa
compreacutehension abstraite geacuteneacuterale)
Elle soppose agrave lextension qui est leacutenonciation exhaustive de lensemble des objets du domaine
Exemple Le domaine des couleurs
Contre-exemple bleu rouge vert
108
Signification des abreacuteviations
- ANSI American National Standards Institute
- BD Base de Donneacutees
- E-A Entiteacute-Association
- ISO International Standardization Organization
- LCD Langage de Controcircle de Donneacutees
- LDD Langage de Deacutefinition de Donneacutees
- LMD Langage de Manipulation de Donneacutees
- OMG Object Management Group
- PSM Persistent Stored Modules
- RO Relationnel-Objet
- SGBD Systegraveme de Gestion de Bases de Donneacutees
- SGBDR Systegraveme de Gestion de Bases de Donneacutees Relationnelles
- SQL Structured Query Language
- UML Unified Modeling Language
- XML eXtensible Markup Language
Reacutefeacuterences
[dbdiscocrztfr] httpdbdiscocrztfr3
109
3 - httpdbdiscocrztfr
Bibliographie
[Arribe 2014] ARRIBE THIBAUT 2014 Conception des chaicircnes eacuteditoriales documentariser lactiviteacute et structurer le graphe documentaire pour ameacuteliorer la maicirctrise de la reacuteeacuteditorialisation Universiteacute de Technologie de
Compiegravegne Meacutemoire de Doctorat httpicsutcfr~tha
[Codd70] CODD EF A relational model for large shared data banks Communications de lACM juin 1970
[Delmal01] DELMAL PIERRE SQL2 SQL3 applications agrave Oracle De Boeck Universiteacute 2001
[Gardarin99] GARDARIN GEORGES Bases de donneacutees objet et relationnel Eyrolles 1999
[Gulutzan and Pelzer 1999] GULUTZAN PETER PELZER TRUDY 1999 SQL-99 complete really CMP books
[Muller98] MULLER PA Modeacutelisation objet avec UML Eyrolles 1998
[Roques04] ROQUES PASCAL VALLEacuteE FRANCK UML 2 en action De lanalyse des besoins agrave la conception J2EE
ISBN 2212-11462-1 (3egraveme eacutedition) Paris Eyrolles 2004 385 p architecte logiciel
[Rothenberg et al 1989] ROTHENBERG JEFF WIDMAN LAWRENCE E LOPARO KENNETH A NIELSEN NORMAN R 1989 The nature of modeling Rand vol3027
[Soutou02] SOUTOU CHRISTIAN De UML agrave SQL Conception de bases de donneacutees Eyrolles 2002
[Tardieu83] TARDIEU H ROCHFELD A COLLETI R Meacutethode MERISE Tome 1 Principes et outils Les Editions dOrganisation 1983
Webographie
[w_journaldunetcom(1)] MORLON JEacuteROcircME UML en 5 eacutetapes httpdeveloppeurjournaldunetcomdossiersalg_umlshtml 2004
[w_journaldunetcom(2)] BORDERIE XAVIER Cinq petits conseils pour un scheacutema UML efficace
httpdeveloppeurjournaldunetcomtutorielcpt031013cpt_uml5conseilsshtml 2004
[w_objecteering] Objecteering software httpwwwobjecteeringcom [2002-septembre]
[w_umlfreefr] UML en Franccedilais httpumlfreefr consulteacute en 2002
Questions de synthegravese
110
Index
11 p54 Error Reference source
not found 1N p53 Error Reference source
not found Algegravebre p48 71 71 72 73 74 75
76 76 76 78 79 80 ALTER TABLE p67 68 Analyse p9 11 12 13 Application p6 Association pError Reference
source not found 31 Error
Reference source not found 32 44
Error Reference source not found
53 Error Reference source not
found 53 Error Reference source
not found 54 Error Reference
source not found 54 Attribut p28 32 40 41 41 42 44
51 52 54 Base de donneacutees p17 BD p4
Cardinaliteacute p32 Error
Reference source not found Error
Reference source not found Carteacutesien p74 CHECK p62 63 Classe p27 50 54 Cleacute p41 42 42 44 Cleacute artificielle p42 Cleacute candidate p42 Cleacute primaire p42 42 Cleacute signifiante p42 Codd p39 Composition pError Reference
source not found Error Reference
source not found Conception p9 11
Conceptuel p9 11 13 15 26 27
50 53
CREATE TABLE p59
Creacuteation p58 Deacuteclaratif p58 DELETE p65 66 Diagramme p26 Diffeacuterence p78 Division p79 Domaine p39 48 48 60 61 DROP p67 E-A p32 Enregistrement p40 41 Externe p15 76 FOREIGN KEY p62 63 INSERT p65 65 Instance p15 Interne p15 Intersection p78 Jointure p75 76 76 Langage p8 65 LDD p8 58 67 Lien p44 LMD p8 65 Logique p38 38 39 39 41 50
53 Manipulation p71 Meacutethode p30 Modegravele p13 23 38 39 39 41 45
46 Modeacutelisation p42 Modification p67 NM p53 N M pError Reference source not
found Naturelle p76 NOT NULL p62 63 Null p61 OMG p27 Opeacuteration p30 48 Passage p50 53 PostgreSQL p17
PRIMARY KEY p62 63 Produit p48 48 74
Projection p72 Proprieacuteteacute p28 32 Reacutefeacuterence p44 REFERENCES p62 63 Relation p40 41 41 42 44 44 45
48 Relationnel p5 Error
Reference source not found 38 38
39 39 41 45 46 48 48 50 50
51 Error Reference source not
found 52 53 53 Error Reference
source not found 53 Error Reference source not found 54
Error Reference source not found 54 71
71 76 80 Relationnel-objet p38 39 Requecircte p65 Restriction p73 Scheacutema p15 45 46 SGBD p5 Speacutecifications p12 SQL p8 58 65 67 Suppression p67 Table p58 67 Tuple p40 Type p60 61 UML p13 26 27 27 28
Error Reference source not found
30 31 Error Reference source not found 32 50
50 51 Error Reference source not
found 52 53 53 Error Reference source not
found 53 Error Reference source not
found 54 Error Reference source not found
54 Union p78 UNIQUE p62 63 UPDATE p65 66
wwwsambaconsultantscom 111
Contenus annexes
- Deacutefinition du mouvement NoSQL
Deacutefinition
Le NoSQL regroupe de nombreuses bases de donneacutees reacutecentes pour la plupart qui se caracteacuterisent par une logique de repreacutesentation de donneacutees non relationnelle et qui noffrent donc pas une interface de requecirctes en SQL
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-dedonnees-nosql4
NoSQL signifie Not Only SQL et non pas No SQL il sagit de compleacutements aux SGBDR pour des
besoins speacutecifiques et non de solutions de remplacement Exemtple
BD orienteacutee cleacute-valeur
BD orienteacutee graphe
BD orienteacutee colonne
BD orienteacutee document
Comtpleacutement
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql5
- Transformation des meacutethodes par des vues
Meacutethode
Lorsquune meacutethode est speacutecifieacutee sur un diagramme UML pour une classe C si cette meacutethode est une fonction
relationnelle (elle renvoie une unique valeur et elle peut ecirctre reacutesolue par une requecircte SQL) alors on creacutee une
vue qui reprend les attributs de la classe C et ajoute des colonnes calculeacutees pour les meacutethodes
Remarque Atributs deacuteriveacutes
Les attributs deacuteriveacutes eacutetant apparenteacutes agrave des meacutethodes ils peuvent eacutegalement ecirctre geacutereacutes par des vues
Contenus annexes
112
- Composition
Deacutefinition Association de comtposition
On appelle composition une association particuliegravere qui possegravede les proprieacuteteacutes suivantes
La composition associe une classe composite et des classes parties tel que tout objet partie appartient
agrave un et un seul objet composite Cest donc une association 1N (voire 11)
La composition nest pas partageable donc un objet partie ne peut appartenir quagrave un seul objet
composite agrave la fois
Le cycle de vie des objets parties est lieacute agrave celui de lobjet composite donc un objet partie disparaicirct
quand lobjet composite auquel il est associeacute disparaicirct
Remarque
La composition est une association particuliegravere (binaire de cardinaliteacute contrainte)
La composition nest pas symeacutetrique une classe joue le rocircle de conteneur pour les classes lieacutees elle
prend donc un rocircle particulier a priori
La composition est une agreacutegation avec des contraintes suppleacutementaires (non partageabiliteacute et cycle
de vie lieacute)
Image 14 Notation de la composition en UML
Atention Composition et cardinaliteacute
La cardinaliteacute cocircteacute composite est toujours de exactement 1
Cocircteacute partie la cardinaliteacute est libre elle peut ecirctre 01 1 ou bien 1
Image 15 Un livre
On voit bien ici quun chapitre na de sens que faisant partie dun livre quil ne peut exister dans deux livres
diffeacuterents et que si le livre nexiste plus les chapitres le composant non plus
Remarque Comtposition et entiteacutes faibles
Syntaxe
Contenus annexes
113
wwwsambaconsultantscom
La composition permet dexprimer une association analogue agrave celle qui relie une entiteacute faible agrave une entiteacute
identifiante en modeacutelisation E-A Lentiteacute de type faible correspond agrave un objet partie et lentiteacute identifiante
agrave un objet composite
Conseil Comtposition et atribut multivalueacute
Une composition avec une classe partie doteacutee dun seul attribut peut seacutecrire avec un attribut multivalueacute
Un attribut composeacute et multivalueacute peut seacutecrire avec une composition
Ratptpel Voir aussi
Attributs
Agreacutegation - p100
- Agreacutegation
Deacutefinition Association dagreacutegation
Lagreacutegation est une association particuliegravere utiliseacutee pour preacuteciser une relation toutpartie (ou
ensembleeacuteleacutement) on parle dassociation meacutereacuteologique
Elle possegravede la proprieacuteteacute suivante Lagreacutegation associe une classe agreacutegat et des classes parties tel que tout
objet partie appartient agrave au moins un objet agreacutegat
Remarque
Lagreacutegation est une association particuliegravere (binaire de cardinaliteacute libre)
Lagreacutegation nest pas symeacutetrique Syntaxe
Image 16 Notation de lagreacutegation en UML
La cardinaliteacute peut ecirctre exprimeacutee librement en particulier les instances de la classe Eacuteleacutement peuvent ecirctre
associeacutees agrave plusieurs instances de la classe Ensemble et mecircme de plusieurs classes
Atention
Lagreacutegation garde toutes les proprieacuteteacutes dune association classique (cardinaliteacute cycle de vie
etc) elle ajoute simplement une terminologie un plus preacutecise via la notion de toutpartie
- Explicitation des associations
Syntaxe Sens de lecture
Il est possible dajouter le sens de lecture du verbe caracteacuterisant lassociation sur un diagramme de classe
UML afin den faciliter la lecture On ajoute pour cela un signe lt ou gt (ou un triangle noir) agrave cocircteacute du nom
de lassociation
Contenus annexes
114
Syntaxe Rocircle
Il est possible de preacuteciser le rocircle joueacute par une ou plusieurs des classes composant une association afin den
faciliter la compreacutehension On ajoute pour cela ce rocircle agrave cocircteacute de la classe concerneacutee (parfois dans un petit
encadreacute colleacute au trait de lassociation
Exemtple
Image 17 Rocircle et sens de lecture sur une association
Deacutefinition Association reacuteflexive
Une association reacuteflexive est une association qui associe une classe avec elle-mecircme
Lexplicitation des associations est particuliegraverement utile dans le cas des associations reacuteflexives
- Associations ternaires
Image 18 Notation dune association ternaire
Conseil Ne tpas abuser des associations ternaires
Il est toujours possible de reacuteeacutecrire une association ternaire avec trois associations binaires en transformant
lassociation en classe
Conseil Pas de degreacute sutpeacuterieur agrave 3
En pratique on nutilise jamais en UML dassociation de degreacute supeacuterieur agrave 3
- Transformation des agreacutegations
Ratptpel Agreacutegation
Les associations de type agreacutegation se traitent de la mecircme faccedilon que les associations classiques
Syntaxe
Contenus annexes
115
wwwsambaconsultantscom
Graphique 12 Agreacutegation 1N
Classe1(ab)
Classe2(cda=gtClasse1)
Graphique 13 Agreacutegation NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
- Transformation des compositions
Meacutethode
Une composition
est transformeacutee comme une association 1N
puis on ajoute agrave la cleacute de la classe partie (dite cleacute locale) la cleacute eacutetrangegravere vers la classe composite pour
construire une cleacute primaire composeacutee
Graphique 14 Composition
Classe1(ab)
Classe2(ca=gtClasse1d)
Remarque Cleacute locale
Pour identifier une classe partie dans une composition on utilise une cleacute locale concateacuteneacutee agrave la cleacute eacutetrangegravere
vers la classe composite afin dexprimer la deacutependance entre les deux classes
Si une cleacute naturelle globale permet didentifier de faccedilon unique une partie indeacutependamment du tout on
preacutefeacuterera la conserver comme cleacute candidate plutocirct que de la prendre pour cleacute primaire
Contenus annexes
116
Si on la choisit comme cleacute primaire cela revient agrave avoir transformeacute la composition en agreacutegation en redonnant
une vie propre aux objets composants
Comtpleacutement Comtposition et entiteacutes faibles en E-A
Une composition est transformeacutee selon les mecircmes principes quune entiteacute faible en E-A
Comtpleacutement Atributs multivalueacutes et comtposeacutes
La transformation dun attribut composeacute multivalueacute donne un reacutesultat eacutequivalent agrave la transformation dune
composition
Classe1
a key b [0N] -b1 -b2
Graphique 15 Composition et attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
La transformation dune composition avec un seul attribut pour la classe composante donne un reacutesultat
eacutequivalent agrave la transformation dun attribut multivalueacute
Graphique 16 Composition et attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Ratptpel Voir aussi
Transformation des attributs
- Contrainte de cardinaliteacute minimale 1 dans les associations 1N
Ratptpel
Transformation des associations 1N
Meacutethode
a key
Classe1
0 N
( b1b2) local key
Contenus annexes
117
wwwsambaconsultantscom
Classe1
1 association 1N
Classe2
a key
b c key
d
Graphique 17 Association 1N
Si la cardinaliteacute est exactement 1 (11) cocircteacute 1 alors on ajoutera une contrainte de non nulliteacute sur la
cleacute eacutetrangegravere
si la cardinaliteacute est au moins 1 (1N) cocircteacute N on ajoutera une contrainte dexistence de tuples
reacutefeacuterenccedilant pour chaque tuple de la relation reacutefeacuterenceacutee
Classe1(ab)
Classe2(cda=gtClasse1)
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Graphique 18 Classe dassociation (1N)
Classe1(ab)
Classe2(cda=gtClasse1 e f) avec e KEY
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Comtpleacutement
Projection
- Contrainte de cardinaliteacute minimale 1 dans les associations NM
Ratptpel
Transformation des associations NM
Meacutethode
Si la cardinaliteacute est exactement au moins 1 (1N) dun cocircteacute etou de lautre alors des contraintes
dexistence simultaneacutee de tuple devront ecirctre ajouteacutee
Ce nest pas neacutecessaire si la cardinaliteacute est 0N
a key b
Classe1
c key d
Classe2
1 N 1
e loc al key f
Cl-A ssoc
Contenus annexes
118
Graphique 19 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Graphique 20 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Cl-Assoc(a=gtClasse1c=gtClasse2ef)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Comtpleacutement
Projection
- Transformation des associations 11 (approche geacuteneacuterale) Il existe deux solutions pour transformer une association 11
Avec deux relations on traite lassociation 11 comme une association 1N puis lon ajoute une
contrainte UNIQUE sur la cleacute eacutetrangegravere pour limiter la cardinaliteacute maximale agrave 1
Avec une seule relation on fusionne les deux classes en une seule relation
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 21 Association 11
Meacutethode Avec deux relations (cleacute eacutetrangegravere)
Une des deux relations est choisie pour porter la cleacute eacutetrangegravere
on ajoute les contraintes UNIQUE ou KEY (cleacute candidate) sur la cleacute eacutetrangegravere et si neacutecessaire une
contrainte imposant linstanciation simultaneacutee des deux relations
Classe1(abc=gtClasse2) avec c UNIQUE ou KEY
Classe2(cd)
a key b
Classe1
c key d
Classe2
1 N 1 N
e key f
ssoc Cl-A
Contenus annexes
119
wwwsambaconsultantscom
Contrainte (eacuteventuellement) PROJ(Classe1c)=PROJ(Classe2c) ou
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE ou KEY
Contrainte (eacuteventuellement) PROJ(Classe1a)=PROJ(Classe2a)
Meacutethode Avec une relation (fusion)
On creacuteeacute une seule relation contenant lensemble des attributs des deux classes on
choisit une cleacute parmi les cleacutes candidates
Classe12(abcd) avec c UNIQUE ou KEY ou
Classe21(cdab) avec a UNIQUE ou KEY
RemarqueFusion des relations dans le cas de la traduction de lassociation 11
Ce choix entre les deux meacutethodes sera conduit par une appreacuteciation du rapport entre
La complexiteacute introduite par le fait davoir deux relations lagrave ou une suffit
La pertinence de la seacuteparation des deux relations dun point de vue seacutemantique
Les pertes de performance dues agrave leacuteclatement des relations
Les pertes de performance dues au fait davoir une grande relation
Les questions de seacutecuriteacute et de sucircreteacute factoriseacutees ou non au niveau des deux relations
Introduction geacuteneacuterale aux bases de donneacutees
9
objet2 donneacutee 1 objet2 donneacutee 2
Tableau 2 Une table ou relation ( en relationnel)
Exemtple
espegravece domaine
texte eucaryote domaine
booleacuteen
bacteacuteries false
archeacutees false
Tableau 3 Exemple de relation instancieacutee
Atention Atomiciteacute
Pour que la base de donneacutees fonctionne correctement on veille agrave ne mettre quune seule donneacutee
par case cest le principe datomiciteacute en relationnel
espegravece domaine texte
bacteacuteries procaryotes unicellulaires
archeacutees procaryotes unicellulaires
protistes eucaryotes unicellulaires
champignons eucaryotes multicellulaires qui deacutecomposent
veacutegeacutetaux eucaryotes multicellulaires qui photosyntheacutetisent
animaux eucaryotes multicellulaires qui ingegraverent
Tableau 4 Un mauvais exemple de relation les donneacutees ne sont pas atomiques (il y a
plusieurs donneacutees par case de la table)
e) Langage de donneacutees lexemple du langage SQL
Deacutefinition Langage de donneacutees
Un langage de donneacutees est un langage informatique permettant de deacutecrire et de manipuler les scheacutemas et les
donneacutees dune BD
Synonymes Langage orienteacute donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 10
Fondamental SQL
SQL est le langage consacreacute aux SGBD relationnels et relationnels-objet
Il permet de
creacuteer des tables en deacutefinissant le domaine de chaque colonne
inseacuterer des lignes dans les tables
lire les donneacutees entreacutees dans la base de donneacutees
Exemtple Creacuteation de table en SQL (deacutefinition du scheacutema de donneacutees)
CREATE TABLE Etudiant ( NumEtu
integer PRIMARY KEY Nom varchar Ville varchar)
1 2 3 4
Cette instruction permet de creacuteer une relation Etudiant comportant les proprieacuteteacutes NumEtu Nom et Ville
de domaines respectivement entier texte et texte
Exemtple Insertion de ligne en SQL (creacuteation de donneacutees)
INSERT INTO Etudiant (NumEtu Nom Ville) VALUES (1 Holmes Londres) 1
Cette instruction permet de creacuteer leacutetudiant numeacutero 1 de nom Holmes qui habite la ville de Londres
Exemtple Manitpulation de donneacutees en SQL (extploitation des donneacutees)
SELECT Nom FROM Etudiant WHERE Ville = Compiegravegne
1 2 3
Cette instruction permet de rechercher les noms de tous les eacutetudiants habitant la ville de Compiegravegne
Comtpleacutement Autres langages de donneacutees
XQuery est un langage de donneacutees mobiliseacute dans les bases de donneacutees arborescentes XML
Les bases NoSQL proposent des langages de donneacutees speacutecifiques souvent inspireacutes du
SQL Par exemple le langage de MongoDB permet de manipuler une base de contenus JSON
2 Approche geacuteneacuterale pour la conception des bases de
donneacutees
a) Exercice Eacutetapes de la conception dune base de donneacutees
relationnelle Mettre dans lordre les eacutetapes de conception suivantes
1 Creacuteation du code SQL pour un SGBDR
2 Modeacutelisation conceptuelle en UML ou E-A
Introduction geacuteneacuterale aux bases de donneacutees
11
3 Eacutelaboration du modegravele logique en relationnel
4 Analyse de la situation existante et des besoins
Reacuteponse ___ ___ ___ ___
b) Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
Meacutethode Eacutetatpes de la concetption dune base de donneacutees
1 Analyse de la situation existante et des besoins (clarification) 2 Creacuteation dun modegravele conceptuel qui permet de repreacutesenter tous les aspects importants du problegraveme 3 Traduction du modegravele conceptuel en modegravele logique (et normalisation de ce modegravele logique) 4 Impleacutementation dune base de donneacutees dans un SGBD agrave partir du modegravele logique (et optimisation)
Graphique 1 Processus de conception dune base de donneacutees
On distingue quatre eacutetapes dans la conception dune base de donneacutees
Lanalyse
Elle consiste agrave eacutetudier le problegraveme et agrave consigner dans un document la note de clarification les
besoins les choix les contraintes
La modeacutelisation conceptuelle
Elle permet de deacutecrire le problegraveme poseacute de faccedilon non-formelle (en geacuteneacuterale graphique) en prenant
des hypothegraveses de simplification Ce nest pas une description du reacuteel mais une repreacutesentation
simplifieacutee dune reacutealiteacute
La modeacutelisation logique
Ele permet de deacutecrire une solution en prenant une orientation informatique geacuteneacuterale (type de SGBD
typiquement) formelle mais indeacutependamment de choix dimpleacutementation speacutecifiques
Limpleacutementation
Elle correspond aux choix techniques en terme de SGBD choisi et agrave leur mise en œuvre
(programmation optimisation)
Fondamental
Bien analyser le problegraveme poseacute en amont
BD solution proposeacutee
Domaine problegraveme poseacute
Modegravele Conceptuel
Modegravele Logique
Repreacutesenter
Impleacutementer
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 12
Bien modeacuteliser le problegraveme au niveau conceptuel avant de passer au niveau logique et agrave
limpleacutementation
Conseil Limtportance de leacutetatpe danalyse
La premiegravere eacutetape de la conception repose sur lanalyse de lexistant et des besoins De la qualiteacute de la
reacutealisation de cette premiegravere eacutetape deacutependra ensuite la pertinence de la base de donneacutees par rapports aux
usages Cette premiegravere eacutetape est donc essentielle et doit ecirctre meneacutee avec soins
Si la premiegravere eacutetape est fondamentale dans le processus de conception elle est aussi la plus deacutelicate En effet
tandis que des formalismes puissants existent pour la modeacutelisation conceptuelle puis pour la modeacutelisation
logique la perception de lexistant et des besoins reste une eacutetape qui repose essentiellement sur lexpertise
danalyse de lingeacutenieur
Conseil Limtportance de leacutetatpe de modeacutelisation concetptuelle
Eacutetant donneacutee une analyse des besoins correctement reacutealiseacutee la seconde eacutetape consiste agrave la traduire selon un
modegravele conceptuel Le modegravele conceptuel eacutetant formel il va permettre de passer dune speacutecification en
langage naturel et donc soumise agrave interpreacutetation agrave une speacutecification non ambiguumle Le recours aux
formalismes de modeacutelisation tels que E-A ou UML est donc une aide fondamentale pour parvenir agrave une
repreacutesentation qui ne sera plus lieacutee agrave linterpreacutetation du lecteur
La traduction dun cahier des charges speacutecifiant lexistant et les besoins en modegravele conceptuel reste neacuteanmoins
une eacutetape deacutelicate qui va conditionner ensuite lensemble de limpleacutementation informatique En effet les eacutetape
suivantes sont plus meacutecaniques dans la mesure ougrave un modegravele logique est deacuteduit de faccedilon systeacutematique du
modegravele conceptuel et que limpleacutementation logicielle est eacutegalement reacutealiseacutee par traduction directe du modegravele
logique
RemarqueLes eacutetatpes de traduction logique et dimtpleacutementation
Des logiciels speacutecialiseacutes (par exemple Objecteering [w_objecteering]) sont capables agrave partir dun modegravele
conceptuel dappliquer des algorithmes de traduction qui permettent dobtenir directement le modegravele logique
puis les instructions pour la creacuteation de la base de donneacutees dans un langage orienteacute donneacutees tel que SQL
Lexistence de tels algorithmes de traduction montre que les eacutetapes de traduction logique et dimpleacutementation
sont moins complexes que les preacuteceacutedentes car plus systeacutematiques
Neacuteanmoins ces eacutetapes exigent tout de mecircme des compeacutetences techniques pour optimiser les modegraveles logiques
(normalisation) puis les impleacutementations en fonction dun contexte de mise en œuvre mateacuteriel logiciel et
humain
c) Qatre eacutetapes pour reacuteduire la complexiteacute La reacutealisation dune base de donneacutees est une tacircche complexe le deacutecoupage en quatre eacutetapes permet de geacuterer
cette complexiteacute
Clarification ModeacutelisationConceptuelle ModeacutelisationLogique Im pleacutem entation
Conception en quatre eacutetapes
Introduction geacuteneacuterale aux bases de donneacutees
13
Lideacutee geacuteneacuterale est de ne pas meacutelanger la nature des tacircches typiquement on ne veut pas en mecircme temps
se poser des questions geacuteneacuterales relatives aux besoins (ce que je veux faire) et des questions techniques tregraves
speacutecifiques (comment repreacutesenter telle information)
Meacutethode
Lapproche est donc
de regarder agrave gauche on regarde le monde quand on clarifie on regarde la note de clarification
quand on fait le MCD on regarde le MCD quand on fait le MLD on regarde le MLD quand on
impleacutemente
et de ne pas regarder trop loin on anticipe deacutejagrave le MCD pendant la clarification mais on ne se
preacuteoccupe pas de questions dimpleacutementation quand on fait le MLD on ne se pose plus de question
sur le monde la clarification et le MCD ont ducirc deacutejagrave reacutepondre quand on impleacutemente on ne se pose
plus de question de modeacutelisation on soccupe des programmes de la machine
Fondamental
On peut toujours revenir sur une eacutetape la conception est iteacuterative mais on ne doit pas tout le
temps se poser tous les problegravemes en mecircme temps
d) Eacuteleacutements pour lanalyse de lexistant et des besoins La phase danalyse de lexistant et des besoins est une phase essentielle et complexe Elle doit aboutir agrave des
speacutecifications geacuteneacuterales qui deacutecrivent en langage naturel les donneacutees manipuleacutees et les traitements agrave
effectuer sur ces donneacutees
On se propose de donner une liste non exhaustive dactions agrave mener pour reacutediger de telles speacutecifications
Meacutethode Lanalyse de documents existants
La conception dune base de donneacutees sinscrit geacuteneacuteralement au sein dusages existants Ces usages sont
geacuteneacuteralement au moins en partie instrumenteacutes agrave travers des documents eacutelectroniques ou non (papier
typiquement) Il est fondamental danalyser ces documents et de recenser les donneacutees quils manipulent
Exemtple Exemtples de document existants agrave analyser
Fichiers papiers de stockage des donneacutees (personnel produits etc)
Formulaires papiers denregistrement des donneacutees (fiche didentification dun salarieacute fiche de
description dun produit bon de commande etc)
Documents eacutelectroniques de type traitement de texte (lettres mailing proceacutedures etc)
Documents eacutelectroniques de type tableurs (bilans statistiques calculs etc)
Bases de donneacutees existantes agrave remplacer ou avec lesquelles saccorder (gestion des salaires de la
production etc)
Intranet dentreprise (information teacuteleacutechargement de documents etc)
etc
Meacutethode Le recueil dextpertise meacutetier
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 14
Les donneacutees que la base va devoir manipuler sont toujours relatives aux meacutetiers de lentreprise et il existe
des experts qui pratiquent ces meacutetiers Le dialogue avec ces experts est une source importante dinformations
Il permet eacutegalement de fixer la terminologie du domaine
Exemtple Exemtples dextperts agrave consulter
Praticiens (secreacutetaires ouvrier controcircleurs etc)
Cadres (responsables de service contre-maicirctres etc)
Experts externes (clients fournisseurs etc)
etc
Meacutethode Le dialogue avec les usagers
La base de donneacutees concerne des utilisateurs cibles cest agrave dire ceux qui produiront et consommeront
effectivement les donneacutees de la base Il est neacutecessaire de dialoguer avec ces utilisateurs qui sont les
deacutetenteurs des connaissances relatives aux besoins reacuteels lieacutes agrave leur reacutealiteacute actuelle (aspects de lorganisation
fonctionnant correctement ou deacutefaillants) et agrave la reacutealiteacute souhaiteacutee (eacutevolutions lacunes etc)
Exemtple Exemtples dutilisateurs avec qui dialoguer
Personnes qui vont effectuer les saisies dinformation (agrave partir de quelles sources Quelle est leur
responsabiliteacute etc)
Personnes qui vont consulter les informations saisies (pour quel usage pour quel destinataire etc)
Personnes qui vont mettre agrave jour les informations (pour quelles raisons comment le processus est
enclencheacute etc)
etc
Meacutethode Leacutetude des autres systegravemes informatiques existants
la base de donneacutees va geacuteneacuteralement (et en fait quasi systeacutematiquement aujourdhui) sinseacuterer parmi un
ensemble dautres logiciels informatiques travaillant sur les donneacutees de lentreprise Il est important danalyser
ces systegravemes afin de mieux comprendre les meacutecanismes existants leurs forces et leurs lacunes et de preacuteparer
linteacutegration de la base avec ces autres systegravemes Une partie de ces systegravemes seront dailleurs souvent
eacutegalement des utilisateurs de la base de donneacutees tandis que la base de donneacutees sera elle mecircme utilisatrice
dautre systegravemes
Exemtple Exemtples dautres systegravemes coexistants agrave eacutetudier
Autres bases de donneacutees (les donneacutees sont elle disjointes ou partiellement communes avec celles de la
base agrave concevoir quelles sont les technologies logicielles sur lesquelles reposent ces BD etc)
Systegravemes de fichiers classiques (certains fichiers ont-ils vocations agrave ecirctre supplanteacutes par la base agrave ecirctre
geacuteneacutereacutes par la base agrave alimenter la base etc)
Applications (ces applications ont elles besoins de donneacutees de la base peuvent-elles lui en fournir
etc)
etc
Comtpleacutement Meacutethodes danalyse
Il existe des outils et meacutethodes danalyse en ingeacutenierie comme lanalyse fonctionnelle (AF) qui deacutepassent le
cadre de la conception des bases de donneacutees mais sont tout agrave fait compleacutementaires
Introduction geacuteneacuterale aux bases de donneacutees
15
e) Modeacutelisation conceptuelle de donneacutees Lobjection du modegravele conceptuel est de repreacutesenter le problegraveme agrave laide de repreacutesentations graphiques et
partiellement formelles
Les principales caracteacuteristiques du modegravele conceptuel sont
Une repreacutesentation graphique simple
Une puissance dexpression eacuteleveacutee pour un nombre de symboles raisonnables
Une lecture accessible agrave tous et donc un bon outil de dialogue entre les acteurs techniques et non
techniques
Une formalisation peu ambigueuml et donc un bon outil de speacutecification deacutetailleacutee
Remarque
Le modegravele nest pas encore formel donc certaines repreacutesentations peuvent ecirctre eacutequivoques mecircme si on a
leveacute de tregraves nombreuses ambiguiumlteacutes
E-A
La modeacutelisation conceptuelle en bases de donneacutees relationnelle eacutetait agrave lorigine faite avec le formalisme E-A
de la meacutethode MERISE
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 16
Modegravele E-A gestion de projets
UML
UML est un autre langage de modeacutelisation plus reacutecent que E-A et couvrant un spectre plus large que les
bases de donneacutees En tant que standard de lOMG et en tant que outil tregraves utiliseacute pour la programmation
orienteacutee objet il a supplanteacute la modeacutelisation E-A
Remarque
En BD on utilise uniquement le diagramme de classe dUML pour modeacuteliser conceptuellement les donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 17
Modegravele UML gestion de projets
f) Modeacutelisation logique de donneacutees
Deacutefinition Modegravele logique de donneacutees
Un modegravele logique de donneacutees est une description au moyen dun langage formel dun ensemble de donneacutees
Un scheacutema permet de deacutecrire la structure dune base de donneacutees en deacutecrivant lensemble des types de
donneacutees de la base Une instance de base de donneacutees est constitueacutee dun ensemble de donneacutees qui respectent
le scheacutema de la base
Synonyme scheacutema de donneacutees scheacutema
Exemtple Modegravele logique de donneacutees relationnel
Un modegravele logique de donneacutees relationnel permet de repreacutesenter une base de donneacutees relationnelles cest agrave
dire des tables des proprieacuteteacutes des domaines
Exemtple Scheacutema dune relation
Espece(nomchaicircne eucaryotebooleacuteen multicellulairebooleacuteen proprieacuteteacutechaicircne) 1
Exemtple Scheacutema dune base de donneacutees avec tplusieurs relations
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 18
Etudiant (numentier nomchaicircne villechaicircne) Module(numentier titrechaicircne) Inscription(numetuentier nummodentier anneacuteeentier(4))
1 2 3
Instance de base de donneacutees
Etudiant Module
172 Dupont Lille
173 Durand Paris
174 Martin Isabelle
1 SGBD
2 OS
Inscription 172 1 2016 172 2 2016 173 1 2015 174 2 2017
Comtpleacutement Exemtple de formalismes de modeacutelisation logique
Le modegravele CODASYL anteacuterieur au modegravele relationnel est un modegravele hieacuterarchique (Tardieu 1983
[Tardieu83])
Le modegravele relationnel (tabulaire) est le modegravele dominant agrave la base des SGBDR
Le modegravele relationnel-objet (adaptation des modegraveles relationnels et objets au cadre des SGBD) est
actuellement en croissance
Dautres modegraveles (document graphe ) se deacuteveloppent dans le cadre du mouvement NoSQL
Comtpleacutement Voir aussi
Bregraveve introduction aux bases de donneacutees NoSQL - p98
g) Synthegravese Les trois niveaux de conception Niveau Conceptuel
Modegravele conceptuel graphique -
Exemples E-A
UML
Niveau Logique
Scheacutema logique indeacutependant dun SGBD -
Exemples Relationnel
Objet
Relationnel-Objet
Graphe
Document
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 19
Niveau Informatique
Impleacutementation pour un SGBD particulier -
Exemples Oracle
MySQL
PostgreSQL
DB2
Access
SQLServer
MongoDB
Cassandra
Modeacutelisation Modeacutelisation Im pleacutem entation Clarification Conceptuelle
Logique
AF UML Relationnel SQL Conception en quatre eacutetapes exemple de
formalismes
B Exercices
1 Deacutecouverte dune base de donneacutees relationnelle
Cette seacuterie dexercices est destineacutee agrave faire expeacuterimenter un SGBDR afin de se familiariser avec les concepts
classiques des bases de donneacutees relationnelles
Pour la reacutealisation de cet exercice se connecter sur le site dbdiscocrztfr et conserver la fenecirctre du navigateur
ouverte
Db Discodbdiscocrztfr
Objectifs
Deacutecouvrir le modegravele relationnel Deacutecouvrir un SGBDR Deacutecouvrir le langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 20
a) Notion de table
Creacuteer sa premiegravere table Une base de donneacutees relationnelle est principalement constitueacutee de tables (ou laquo relations raquo dougrave le nom
de relationnel) Une table est basiquement un eacuteleacutement dorganisation de linformation constitueacute de colonnes
(ou attributs) et de lignes (ou enregistrements)
Nous allons dans un premier temps creacuteer le scheacutema dune table cest agrave dire deacutefinir ses colonnes Pour cela
nous utiliserons linstruction SQL LDD laquo CREATE raquo
Question 1
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
CREATE TABLE tEtu ( pk_numSecu CHAR(13) PRIMARY KEY k_numEtu
VARCHAR(20) UNIQUE NOT NULL nom
VARCHAR(50) prenom VARCHAR(50))
1 2 3 4 5
Introduction geacuteneacuterale aux bases de donneacutees
21
Alimenter la table Une fois les colonnes de la table deacutefinies nous pouvons en deacuteclarer les lignes Nous utilisons pour cela
linstruction SQL LMD laquo INSERT raquo
Question 2
Exeacutecuter les deux instructions suivantes et deacutecrire ce quelles font
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 AB3937098X Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2820475001124 XGB67668 Durand Anne)
1 2 3 4
Interroger la table Une fois une table creacuteeacutee il est possible agrave tout moment den inspecter le contenu Nous utilisons pour cela
linstruction SQL LMD laquo SELECT raquo
Question 3
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT pk_numSecu k_numEtu nom prenom FROM tEtu
1 2
Question 4
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT nom prenom FROM tEtu WHERE pk_numSecu=2820475001124
1 2 3
b) Notion de contraintes
Contrainte de domaine Lorsque lon deacutefinit une table on deacutefinit eacutegalement des contraintes sur cette table qui serviront agrave controcircler
son inteacutegriteacute par rapport agrave des regravegles que lon aura fixeacutees
Cest notamment le cas des contraintes de domaine qui permettent de veacuterifier quune colonne prend ses
valeurs parmi un ensemble deacutetermineacute (les chaicircnes de 10 caractegraveres au plus les entier de 1 agrave 1000 etc)
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi le systegraveme renvoie une erreur
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (XXXXXXXXXXXXXXX XXXXXX Dupont Pierre)
1 2
Question 2
Donner un exemple de contrainte qui nest pas formuleacutee dans la deacutefinition de la table tEtu et que lon aurait
pu souhaiter
Indice
Pour indiquer quun eacuteleacutement est obligatoire on ajoute la clause NOT NULL apregraves la deacutefinition de son domaine dans linstruction CREATE TABLE
Introduction geacuteneacuterale aux bases de donneacutees
22
Contraintes de cleacute Les contraintes de cleacute se composent de contraintes duniciteacute et de contraintes de non nulliteacute Elles
permettent dassurer que toutes les valeurs dune colonne seront diffeacuterentes pour chaque ligne
Question 3
Exeacutecuter les trois instructions suivantes (les unes apregraves les autres) et expliquer ce qui se passe
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 HGYT67655Y Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 XGB67668 Durand Anne) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 HGYT67655Y Duchemin Aline)
1 2 3 4 5 6
Question 4
Explorer le contenu de votre table en exeacutecutant linstruction suivante et veacuterifier vos explications preacuteceacutedentes
SELECT FROM tEtu
1 2
Question 5
Pourrait-on inseacuterer dans la table une seconde personne qui aurait le preacutenom Aline et le nom Duchemin
Pourquoi
c) Notion de reacutefeacuterences
Cleacute eacutetrangegravere Une base de donneacutees est en geacuteneacuteral constitueacutee de plusieurs tables Ces tables se reacutefeacuterencent entre elles en
utilisant une cleacute eacutetrangegravere cest agrave dire quune des colonnes de la table est utiliseacutee pour faire reacutefeacuterence agrave la
colonne dune autre table
On va agrave preacutesent creacuteer une seconde table qui permettra dassocier des Uniteacutes de Valeurs (UVs) aux eacutetudiants
puis inseacuterer des valeurs dans cette table
CREATE TABLE tUv ( pk_code
CHAR(4) NOT NULL fk_etu
CHAR(13) NOT NULL PRIMARY KEY (pk_code fk_etu) FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu))
1 2 3 4 5
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF26 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF29 1800675001066)
1 2 3 4 5 6
Question 1
Introduction geacuteneacuterale aux bases de donneacutees
23
Expliciter ce quexprime le contenu de la table tUv
Contraintes dinteacutegriteacute reacutefeacuterentielle Lorsque nous avons deacutefini la table tUv nous avons deacutefini une contrainte suppleacutementaire dite dinteacutegriteacute
reacutefeacuterentielle contrainte de type FOREIGN KEY
Question 2
En exeacutecutant les instructions suivantes expliquer quel est le rocircle dune contrainte dinteacutegriteacute reacutefeacuterentielle
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 2810592012232) INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1700792001278)
1 2 3 4
d) Projection restriction et jointure Linstruction SELECT du langage SQL LMD nous donne de larges possibiliteacutes pour interroger les tables dune
base de donneacutees Cette instruction se fonde notamment sur les opeacuterations matheacutematiques de lalgegravebre
relationnelle dont les principales sont la projection la restriction le produit et la jointure
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi cest une projection
SELECT nom prenom FROM tEtu
1 2
Question 2
Exeacutecuter linstruction suivante et expliquer pourquoi cest une restriction
SELECT FROM tEtu WHERE nom=Dupont
1 2 3
Question 3
Exeacutecuter linstruction suivante et expliquer pourquoi cest un produit (carteacutesien)
SELECT FROM tEtutUv
1 2
Question 4
Exeacutecuter linstruction suivante et expliquer pourquoi cest une jointure
SELECT FROM tEtu JOIN tUv ON pk_numSecu=fk_etu
1 2
Question 5
Exeacutecuter linstruction suivante et montrer quune jointure est la composition dun produit et dune restriction
SELECT FROM tEtutUv WHERE pk_numSecu=fk_etu
1 2 3
Introduction geacuteneacuterale aux bases de donneacutees
24
e) Fonctions et agreacutegats Linstruction SELECT permet eacutegalement deffectuer des calculs qui portent sur plusieurs lignes ce que lon
appelle des agreacutegats
Question 1
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT COUNT(pk_code) FROM tUv
1 2
WHERE fk_etu=1800675001066 3
Question 2
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT fk_etu COUNT(pk_code) FROM tUv GROUP BY fk_etu
1 2 3
Question 3
Compleacuteter la requecircte SQL suivante afin quelle renvoie pour chaque UV le nombre deacutetudiants inscrits
SELECT _______ COUNT(______) FROM tUv GROUP BY _______
1 2 3
Agrave lissue de cette seacuterie dexercices vous devez savoir deacutefinir les termes suivants
table ou relation
scheacutema relationnel
domaine
cleacute
cleacute eacutetrangegravere
opeacuterations de projection restriction jointure produit
Introduction geacuteneacuterale aux bases de donneacutees
25
2 Lab 0
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux meacutedicaments
avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi quune description
longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le nombre de pilules par boicircte
(qui est un nombre entier)
Ce problegraveme est un exemple tregraves simple que lon pourra modeacuteliser avec une base de donneacutees relationnelle agrave
une seule table
Vous pouvez tester vos instructions SQL ici Db Discodbdiscocrztfr
Question 1
Proposer une clarification du problegraveme (par exemple sous la forme dune liste des proprieacuteteacutes de la relation
viseacutee)
Question 2
Proposer un exemple de donneacutees
Question 3
Dessiner un modegravele conceptuel de donneacutees en UML Il ne contient quune seule classe
Indice Modeacutelisation conceptuelle de donneacutees
Question 4
Proposer un modegravele logique de donneacutees sous forme de scheacutema relationnel Il ne contient quune seule relation
Indice Modeacutelisation logique de donneacutees
Question 5
Proposer une impleacutementation en SQL standard de votre modegravele relationnel Il ne contient quune seule
instruction CREATE TABLE
Indice Langage de donneacutees lexemple du langage SQL
Question 6
Eacutecrivez les instructions SQL permettant dinseacuterer vos donneacutees de test dans votre base de donneacutees
Indice Langage de donneacutees lexemple du langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
26
27
II - Introduction agrave la
modeacutelisation
conceptuelle de donneacutees avec
UML
A Cours
La modeacutelisation conceptuelle est leacutetape fondatrice du processus de conception de BD Elle consiste agrave
abstraire le problegraveme reacuteel poseacute pour en faire une reformulation qui trouvera une solution dans le cadre
technologique dun
SGBD
Si le modegravele dominant en conception de bases de donneacutees a longtemps eacuteteacute le modegravele E-A le modegravele UML
se geacuteneacuteralise de plus en plus Nous proposons ici une introduction au diagramme de classes agrave travers la
repreacutesentation de classes et dassociations simples (il existe dautres diagrammes UML par exemple le
diagramme de cas et dautres primitives de repreacutesentation dans le diagramme de classe par exemple
lheacuteritage)
II
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
28
1 Notion de modegravele
a) Exercice Centre meacutedical [5 min]
Soit le modegravele conceptuel suivant repreacutesentant des visites dans un centre meacutedical Quelles sont les assertions vraies selon ce scheacutema
Image 1
Un patient peut effectuer plusieurs visites
Tous les patients ont effectueacute au moins une consultation
Un meacutedecin peut recevoir plusieurs patients pendant la mecircme consultation
Un meacutedecin peut prescrire plusieurs meacutedicaments lors dune mecircme consultation
Deux meacutedecins diffeacuterents peuvent prescrire le mecircme meacutedicament
b) Qest ce quun modegravele
Deacutefinition Modegravele
laquo Modeling in the broadest sense is the cost-effective use of something in place of something else for some
cognitive purpose It allows us to use something that is simpler safer or cheaper than reality instead of reality
for some purpose A model represents reality for the given purpose the model is an abstraction of reality in
the sense that it cannot represent all aspects of reality raquo (Rothenberg 1989 [Rothenberg et al 1989] citeacute
par Arribe 2014 [Arribe 2014])
laquo Systegraveme physique matheacutematique ou logique repreacutesentant les structures essentielles dune reacutealiteacute et capable
agrave son niveau den expliquer ou den reproduire dynamiquement le fonctionnement raquo (TLFi)
Fondamental Modegravele
Un modegravele est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser quelque chose
Objectifs
Savoir ce quest un modegravele
Savoir ce quest le langage UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
29
c) Qest ce quun modegravele en informatique
Deacutefinition Modegravele informatique
Un modegravele informatique est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser un traitement avec
un ordinateur
Comtpleacutement Numeacuterisation et abstraction Toute information numeacuterique a
eacuteteacute codeacutee selon un modegravele donneacute
laquo Tout numeacuterisation est une repreacutesentation de la reacutealiteacute sous la forme dune modeacutelisation numeacuterique Cette
modeacutelisation procegravede dune abstraction au sens ougrave cest une seacuteparation davec le reacuteel au sens ougrave cest une
construction destineacutee agrave la manipulation (algorithmique en loccurrence) et au sens ougrave cest une simplification
de la reacutealiteacute raquo
httpaswemayfrcotropism-preshtml1
d) Qest ce quun bon modegravele
Atention
Un modegravele est une abstraction une simplification de la reacutealiteacute ce nest pas la reacutealiteacute il nest
jamais complegravetement fidegravele par construction
Le seul modegravele complegravetement fidegravele agrave la reacutealiteacute est la reacutealiteacute elle-mecircme et ce nest donc pas un
modegravele
Exemtple La carte et le territoire
Une carte est un modegravele dun territoire Elle est une repreacutesentation simplifieacutee destineacute agrave un usage particulier
randonner agrave pied en veacutelo
se diriger en voiture sur des grands axes sur des axes secondaires
voler en avion de tourisme en avion de ligne
naviguer sur fleuve sur mer
eacutetudier les frontiegraveres dune reacutegion dun pays de la terre
eacutetudier la deacutemographie leacuteconomie
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
30
Fondamental
Agrave partir de cet exemple on notera que 1 Un modegravele est orienteacute par un usage
Chacune de ces cartes est tregraves diffeacuterente selon ce que lon veut faire 2 Un modegravele ne cherche pas agrave ecirctre proche de la reacutealiteacute
Chacune de ces cartes est tregraves diffeacuterente de la reacutealiteacute quelle repreacutesente 3 Un modegravele adresse un niveau dinformation qui existe mais qui nest pas accessible dans
la reacutealiteacute Chacune de ces cartes permet quelque chose que ne permet pas laccegraves direct agrave la reacutealiteacute
ndash wwwsambaconsultantscom
Meacutethode Le rasoir dOckham Entre deux modegraveles donneacutes le meilleur modegravele est-il
toujours le tplus fourni
La meacutethode de raisonnement connue sous le nom de rasoir dOckham (du nom du philosophe eacuteponyme)
consiste agrave preacutefeacuterer les solutions les plus simples aux plus complexes lorsquelles semblent permettre
eacutegalement de reacutesoudre un problegraveme donneacute entre deux theacuteories eacutequivalentes toujours preacutefeacuterer la plus simple
Ce principe sapplique tregraves bien agrave la modeacutelisation eacutetant donneacute un objectif et plusieurs modegraveles possibles il
ne faut pas choisir a priori celui qui repreacutesente le plus de choses mais preacutefeacuterer le plus simple degraves quil couvre
le besoin
Cest un principe deacuteconomie (il coucircte moins cher agrave produire) et defficaciteacute (car les eacuteleacutements inutiles du modegravele
plus fourni nuiront agrave lefficaciteacute de la tacircche)
Exemtple
Ainsi pour naviguer en voiture il est plus simple de ne pas avoir sur la carte les chemins de randonneacutees qui
ne sont pas praticables en voiture
2 Introduction au diagramme de classes UML classes et
associations
a) Lab I
Description du problegraveme [15 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
Objectifs
Savoir faire un modegravele conceptuel
Savoir interpreacuteter un modegravele conceptuel
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
31
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
b) Preacutesentation dUML UML est un langage de repreacutesentation destineacute en particulier agrave la modeacutelisation objet UML est devenu une
norme OMG en 1997
UML propose un formalisme qui impose de penser objet et permet de rester indeacutependant dun langage de
programmation donneacute Pour ce faire UML normalise les concepts de lobjet (eacutenumeacuteration et deacutefinition
exhaustive des concepts) ainsi que leur notation graphique Il peut donc ecirctre utiliseacute comme un moyen de
communication entre les eacutetapes de speacutecification conceptuelle et les eacutetapes de speacutecifications techniques
Fondamental Diagramme de classe
Le diagramme de classes est un sous ensemble dUML qui sattache agrave la description statique dun
modegravele de donneacutees repreacutesenteacutees par des classes dobjets
Remarque
Dans le domaine des bases de donneacutees UML peut ecirctre utiliseacute agrave la place du modegravele E-A pour modeacuteliser le
domaine De la mecircme faccedilon un scheacutema conceptuel UML peut alors ecirctre traduit en scheacutema logique (relationnel
ou relationnel-objet typiquement)
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
32
c) Classes
Deacutefinition Classe
Une classe est un type abstrait caracteacuteriseacute par des proprieacuteteacutes (attributs et meacutethodes) communes agrave un ensemble
dobjets et permettant de creacuteer des instances de ces objets ayant ces proprieacuteteacutes
Image 2 Repreacutesentation UML dune classe
Exemtple La classe Voiture
Lobjet V1 est une instance de la classe Voiture
V1 Voiture
Marque Citroeumln
Type ZX
Portes 5
Puissance 6
Kilomeacutetrage 300000
Comtpleacutement
La modeacutelisation sous forme de diagramme de classes est une modeacutelisation statique qui met en exergue la
structure dun modegravele mais ne rend pas compte de son eacutevolution temporelle UML propose dautres types de
diagrammes pour traiter notamment de ces aspects
d) Atributs
Deacutefinition Atribut
Un attribut est une information eacuteleacutementaire qui caracteacuterise une classe et dont la valeur deacutepend de lobjet
instancieacute
Syntaxe
Image 3 Exemple de classe repreacutesenteacutee en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
33
Un attribut est typeacute Le domaine des valeurs que peut prendre lattribut est fixeacute a priori
Un attribut peut ecirctre multivalueacute Il peut prendre plusieurs valeurs distinctes dans son domaine
Un attribut peut ecirctre deacuteriveacute Sa valeur alors est une fonction sur dautres attributs de la classe
Un attribut peut ecirctre composeacute (ou composite) Il joue alors le rocircle dun groupe dattributs (par
exemple une adresse peut ecirctre un attribut composeacute des attributs numeacutero type de voie nom de la
voie) Cette notion renvoie agrave la notion de variable de type Record dans les langages de programmation
classiques
Atention On utilise peu les atributs deacuteriveacutes et composeacutes en UML
En UML on preacutefegravere lusage de meacutethodes aux attributs deacuteriveacutes On utilisera toujours des
meacutethodes degraves que la valeur de lattribut deacuteriveacute deacutepend dautres attributs exteacuterieurs agrave sa
classe
En UML on preacutefegravere lusage de compositions aux attributs composeacutes On utilisera toujours
des compositions pour les attributs composeacutes et multivalueacutes
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
34
Syntaxe
attributtype attribut_multivalueacute[nbMinValeursnbMaxValeurs]type attribut_deacuteriveacutetype attribut_composeacute - sous-attribut1type - sous-attribut2type -
1 2 3 4 5 6 7
Image 4 Repreacutesentation dattributs en UML
Dans cet exemple les attributs Nom Preacutenom sont de type string lun de 20 caractegraveres et lautre de 10 tandis
que DateNaissance est de type date et Age de type integer Preacutenom est un attribut multivalueacute ici une personne
peut avoir de 1 agrave 3 preacutenoms Age est un attribut deacuteriveacute il est calculeacute par une fonction sur DateNaissance
Comtpleacutement Voir aussi
Meacutethodes
Composition - p99
e) Repeacuterage des cleacutes Un attribut ou un groupe dattributs peut ecirctre annoteacute comme eacutetant cleacute sil permet didentifier de faccedilon unique
un objet de la classe
On ajoute le symbole key agrave cocircteacute du ou des attributs concerneacutes
Cleacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
35
Cleacute composeacutee de deux attributs
Meacutethode
Le repeacuterage des cleacutes nest pas systeacutematique en UML (la deacutefinition des cleacutes se fera essentiellement au niveau
logique) On cherchera neacuteanmoins agrave repeacuterer les cleacutes rendues eacutevidentes par la phase de clarification
Atention
On najoutera jamais de cleacute artificielle au niveau du MCD Si aucune cleacute nest eacutevidente on laisse
la classe sans cleacute Atention Atribut souligneacute et
On trouvera dans ce cours des exemples dattributs souligneacutes ou preacuteceacutedeacutes de pour exprimer
luniciteacute Ce nest pas une pratique standard et la notation key devrait lui ecirctre substitueacutee
Un attribut souligneacute est normalement un attribut de classe ou static en UML Un
attribut preacuteceacutedeacute de est normalement un attribut proteacutegeacute en UML
Mais les concepts dattribut de classe et dattribut proteacutegeacute ne sont pas utiliseacutes dans le cadre des
bases de donneacutees
f) Meacutethodes
Deacutefinition Meacutethode
Une meacutethode (ou opeacuteration) est une fonction associeacutee agrave une classe dobjet qui permet dagir sur les objets de
la classe ou qui permet agrave ces objets de renvoyer des valeurs (calculeacutees en fonction de paramegravetres)
Syntaxe
methode(paramegravetres)type 1
Remarque Meacutethodes et modeacutelisation de BD
Pour la modeacutelisation des bases de donneacutees les meacutethodes sont surtout utiliseacutees pour repreacutesenter des donneacutees
calculeacutees (agrave linstar des attributs deacuteriveacutees) ou pour mettre en exergue des fonctions importantes du systegraveme
cible Seules les meacutethodes les plus importantes sont repreacutesenteacutees lapproche est moins systeacutematique quen
modeacutelisation objet par exemple
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
36
Remarque Meacutethodes relationnel relationnel-objet
Lors de la transformation du modegravele conceptuel UML en modegravele logique relationnel les meacutethodes ne seront
geacuteneacuteralement pas impleacutementeacutees Leur repeacuterage au niveau conceptuel sert donc surtout daide-meacutemoire
pour limpleacutementation au niveau applicatif
Au contraire un modegravele logique relationnel-objet permettra limpleacutementation de meacutethodes directement
associeacutees agrave des tables Leur repeacuterage au niveau conceptuel est donc encore plus important
Comtpleacutement Transformation des meacutethodes par des vues - p98
g) Associations
Deacutefinition Association
Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire)
qui deacutefinit un ensemble de liens entre les objets de ces classes
Une association est nommeacutee geacuteneacuteralement par un verbe Une association peut avoir des proprieacuteteacutes (agrave linstar
dune classe) Une association deacutefinit le nombre minimum et maximum dinstances autoriseacutee dans la relation
(on parle de cardinaliteacute)
Syntaxe
Image 5 Notation de lassociation en UML
Atention
Le nom de lassociation (verbe qui la deacutecrit) est obligatoire au mecircme titre que le nom dune
classe ou dun attribut
Remarque
Une association est geacuteneacuteralement bidirectionnelle (cest agrave dire quelle peut se lire dans les deux sens) Les
associations qui ne respectent pas cette proprieacuteteacute sont dites unidirectionnelles ou agrave navigation restreinte
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
37
Image 6 Repreacutesentation dassociation en UML
Lassociation Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des
voitures
Comtpleacutement Voir aussi
Cardinaliteacute
Explicitation des associations - p100
Associations ternaires - p101
Contraintes sur les associations - p101
h) Cardinaliteacute
Deacutefinition Cardinaliteacute dune association
La cardinaliteacute dune association permet de repreacutesenter le nombre minimum et maximum dinstances qui sont
autoriseacutees agrave participer agrave la relation La cardinaliteacute est deacutefinie pour les deux sens de la relation
Syntaxe
Si mina (resp maxa) est le nombre minimum (resp maximum) dinstances de la classe A autoriseacutees agrave participer
agrave lassociation on note sur la relation agrave cocircteacute de la classe A minamaxa
Si le nombre maximum est indeacutetermineacute on note n ou
Atention
La notation de la cardinaliteacute en UML est opposeacutee agrave celle adopteacutee en E-A En UML on note agrave gauche
(resp agrave droite) le nombre dinstances de la classe de gauche (resp de droite) autoriseacutees dans
lassociation En E-A on note agrave gauche (resp agrave droite) le nombre dinstances de la classe de
droite (resp de gauche) autoriseacutees dans lassociation
Remarque
Les cardinaliteacutes les plus courantes sont
01 (optionnel)
11 ou 1 (un)
Lassociation Conduit
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
38
0n ou 0 ou (plusieurs)
Ici un conducteur peut posseacuteder plusieurs voitures (y compris aucune) et une voiture nest posseacutedeacutee que par
un seul conducteur
i) Classe dassociation
Deacutefinition Classe dassociation
On utilise la notation des classes dassociation lorsque lon souhaite ajouter des proprieacuteteacutes agrave une association
Syntaxe Notation dune classe dassociation en UML
Image 8 Notation dune classe dassociation en UML
1 n ou 1 (obligatoire )
Image 7 Repreacutesentation de cardinaliteacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
39
Image 9 Emplois
B Exercices
1 Exercice Lire lUML [15 min]
Tennis Le scheacutema suivant repreacutesente les rencontres lors dun tournoi de tennis Quelles sont les assertions vraies selon ce scheacutema
Image 10
On peut jouer des matchs de double
Un joueur peut gagner un match sans y avoir participeacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
40
Il peut y avoir deux matchs sur le mecircme terrain agrave la mecircme heure
Connaissant un joueur on peut savoir sur quels terrains il a joueacute
Journal Voici le scheacutema conceptuel du systegraveme dinformation (tregraves simplifieacute) dun quotidien Quelles sont les assertions vraies selon ce scheacutema
Image 11
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
41
Un article peut ecirctre reacutedigeacute par plusieurs journalistes
Un article peut ecirctre publieacute plusieurs fois dans le mecircme journal
Un article peut ecirctre publieacute dans un journal par un journaliste qui ne travaille pas pour ce
journal
Il peut y avoir plusieurs articles sur le mecircme sujet
Un journaliste peut interviewer une personnaliteacute sans faire darticle agrave ce propos
Logistique Une socieacuteteacute de transport routier veut installer un systegraveme dinformation pour rendre plus efficace sa logistique Embaucheacute au service informatique de cette compagnie vous ecirctes donc chargeacute de reprendre le travail deacutejagrave effectueacute (cest agrave dire le scheacutema suivant)
Quelles sont les assertions vraies selon ce scheacutema
Image 12
Un conducteur peut conduire plusieurs camions
Un conducteur peut conduire un camion sans y ecirctre autoriseacute
Il peut y avoir plusieurs conducteurs pour le mecircme camion
Un conducteur peut livrer sa propre ville
2 Gestion dune coopeacuterative viticole
[20 minutes] Cet exercice a eacuteteacute inspireacute par Bases de donneacutees objet et relationnel [Gardarin99]
On considegravere une base Coopeacuterative qui possegravede les caracteacuteristiques suivantes
Un vin est caracteacuteriseacute par un numeacutero entier unique nv un cru une anneacutee de production et un degreacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
42
Un viticulteur est caracteacuteriseacute par un numeacutero entier unique nvt un nom et une ville Un viticulteur produit un ou plusieurs vins et reacuteciproquement un vin est produit par un ou plusieurs
producteurs (eacuteventuellement aucun)
Les buveurs sont caracteacuteriseacutes par un numeacutero de buveur nb un nom preacutenom et une adresse (limiteacutee agrave
la ville pour simplifier)
Un buveur consomme des vins et peut passer des commandes pour acheter des vins
Question 1
Lister tous les types dobjet agrave consideacuterer les attributs associeacutes et les domaines de valeurs de ces attributs
Repeacuterer les eacuteventuelles cleacutes
Question 2
Lister toutes les associations agrave consideacuterer et indiquer leurs cardinaliteacutes
Question 3
Donner le diagramme UML de cette situation
3 Cours et intervenants
[20 min] On souhaite reacutealiser une base de donneacutees pour geacuterer les cours dispenseacutes dans une eacutecole dingeacutenieur ainsi
que les personnes qui interviennent dans ces cours
Chaque cours est identifieacute par une anneacutee et un numeacutero Chaque cours a donc un numeacutero unique localement
agrave chaque anneacutee Un cours possegravede un titre et un type (C pour Cours TD ou TP) Un cours possegravede
eacutegalement une date de deacutebut et une date de fin qui est toujours de 5 jours apregraves la date de deacutebut
Chaque intervenant est identifieacute par son nom (deux intervenants ne peuvent pas avoir le mecircme nom) Il a un
preacutenom un bureau un ou plusieurs numeacuteros de teacuteleacutephones (jusquagrave trois numeacuteros) et des speacutecialiteacutes Un
bureau est deacutefini par un centre (R pour Royallieu BF pour Benjamin Franklin et PG pour Pierre Guillaumat)
un bacirctiment (une lettre de A agrave Z) et un numeacutero (infeacuterieur agrave 1000) Les speacutecialiteacutes sont des couples de chaicircnes
de caractegraveres deacutesignant un domaine (par exemple BD) et une speacutecialiteacute (par exemple SGBDRO)
Chaque cours est donneacute par un unique intervenant
Voici un exemple Le cours Machines universelles ndeg21 de lanneacutee 2014 est donneacute par Alan Turing entre le
05012014 et le 10012014 Cest un cours de type C Alan Turing a le bureau 666 au bacirctiment X de PG Il
a les numeacuteros de teacuteleacutephone 0666666666 et 0766666666 Il possegravede les speacutecialiteacutes suivantes
Domaine Matheacutematique Speacutecialiteacute Cryptographie
Domaine Informatique Speacutecialiteacute Algorithmie
Domaine Informatique Speacutecialiteacute Intelligence Artificielle
Question
Reacutealiser le modegravele UML de la base de donneacutees Preacuteciser les cleacutes et les types des attributs
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
43
4 Gestion du personnel
[30 minutes] Le service de gestion du personnel dune entreprise deacutesire seacutequiper dun outil lui permettant de geacuterer
informatiquement ses employeacutes leurs salaires et leurs congeacutes Les speacutecifications suivantes ont pu ecirctre mises
en exergue par une analyse des besoins reacutealiseacutee aupregraves des utilisateurs du service du personnel
Geacuteneacuteraliteacutes
tout employeacute est identifieacute par un nom un preacutenom et une date de naissance
tout employeacute remplit une fonction et appartient agrave un service
pour chaque employeacute on gegravere la date dembauche et la quotiteacute (cest agrave dire le pourcentage de temps
travailleacute par rapport au temps plein en cas de travail agrave temps partiel)
Gestion des salaires
pour chaque employeacute on gegravere lhistorique de ses salaires dans lentreprise chaque salaire eacutetant affecteacute
agrave une peacuteriode de temps
un salaire est composeacute dun salaire brut de charges patronales et de charges salariales
on cherchera agrave partir des ces donneacutees agrave obtenir eacutegalement le salaire chargeacute (brut + charges patronales)
et le salaire net (brut - charges salariales) et ce en particulier pour le salaire en cours (celui que
touche actuellement le salarieacute)
Gestion des congeacutes
pour chaque employeacute on meacutemorise chaque congeacute pris (posant quun congeacute concerne toujours une ou
plusieurs journeacutees entiegraveres)
chaque employeacute a le droit aux jours de congeacutes suivants
- 25 jours (pour une quotiteacute de 1) et 25 x quotiteacute sinon - chaque fonction ouvre les droits agrave un certain nombre de jours de RTT - chaque service ouvre les droits agrave un certain nombre de jours de RTT - chaque tranche de 5 ans passeacutes dans lentreprise donne droit agrave 1 jour suppleacutementaire - les employeacutes de plus de 40 ans ont un jour suppleacutementaire et ceux de plus de 50 ans deux
pour chaque employeacute on cherchera agrave connaicirctre le nombre total de jours de congeacutes autoriseacutes le nombre
de jours pris et le nombre de jours restants sur lanneacutee en cours
Question
Reacutealiser le diagramme de classes permettant de modeacuteliser ce problegraveme
44
III - La modeacutelisation logique
relationnelle
A Cours
Le modegravele relationnel est aux fondements des SGBDR Il a eacuteteacute et continue decirctre le modegravele theacuteorique
dominant pour la repreacutesentation logique des base de donneacutees mecircme si le mouvement NoSQL propose des
alternatives
Le modegravele relationnel permet de reformuler le modegravele conceptuel dans un formalisme - le tableau - beaucoup
plus proche de limpleacutementation informatique bien quencore indeacutependant dune solution technologique
particuliegravere
1 Introduction au modegravele relationnel
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
III
La modeacutelisation logique relationnelle
45
a) Niveau logique Le niveau logique est le lien entre le niveau conceptuel et limpleacutementation effective de lapplication Le modegravele
conceptuel eacutetant un modegravele formel le modegravele logique a pour vocation decirctre eacutegalement un modegravele formel
mais speacutecifiant non plus la reacutealiteacute existante ou rechercheacutee comme le modegravele conceptuel mais les donneacutees
telles quelles vont exister dans lapplication informatique
Pour assumer cette fonction le modegravele relationnel [Codd70] sest imposeacute en reacuteaction aux insuffisances des
modegraveles anteacuterieurs les modegraveles hieacuterarchique et reacuteseau et de part la puissance de ses fondements
matheacutematiques Encore aujourdhui dominant le modegravele relationnel est un fondement indispensable agrave la
conception de bases de donneacutees
Ratptpel
Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
b) Deacutefinition du modegravele relationnel
Introduction
Le modegravele relationnel a eacuteteacute introduit par Codd [Codd70] en 1970 au laboratoire de recherche dIBM de San
Joseacute Il sagit dun modegravele simple et puissant agrave la base de la majoriteacute des bases de donneacutees encore aujourdhui
Les objectifs du modegravele relationnel formuleacutes par Codd sont les suivants
Assurer lindeacutependance des applications et de la repreacutesentation interne des donneacutees
Geacuterer les problegravemes de coheacuterence et de redondance des donneacutees
Utiliser des langages de donneacutees baseacutes sur des theacuteories solides
Deacutefinition Modegravele relationnel
On appelle modegravele relationnel un ensemble de concepts permettant de formaliser logiquement la description
darticles de fichiers plats indeacutependamment de la faccedilon dont ils sont physiquement stockeacutes dans une meacutemoire
numeacuterique
Le modegravele relationnel inclut des concepts pour la description de donneacutees ainsi que des concepts pour la
manipulation de donneacutees
Fondamental Repreacutesenter le monde en tables
Le modegravele relationnel permet de repreacutesenter les donneacutees que lon va geacuterer agrave laide dun tregraves petit
nombre de concepts tregraves simples
Les relations ou tables des lignes et des colonnes
Les domaines de valeurs chaque case dune table prend une unique valeur dans un
domaine preacute-deacutefini
Les cleacutes il existe des cases dont les valeurs doivent ecirctre uniques et non nulles
Les cleacutes eacutetrangegraveres il existe des cases qui doivent prendre une valeur existante dans les
cases dune autre table
La modeacutelisation logique relationnelle
46
Comtpleacutement Extension du modegravele relationnel
Le modegravele relationnel est un standard normaliseacute par lISO agrave travers son langage le SQL Il se veut neacuteanmoins
degraves lorigine extensible pour permettre de geacuterer des donneacutees plus complexes que les donneacutees tabulaires Le
modegravele relationnel-objet est neacute de cette extension
2 Les concepts fondamentaux du modegravele relationnel
atributs enregistrement domaine
a) Domaine
Deacutefinition Domaine
Ensemble caracteacuteriseacute par un nom dans lequel des donneacutees peuvent prendre leurs valeurs
Remarque Un domaine peut-ecirctre deacutefini en intension (cest agrave dire en deacutefinissant les proprieacuteteacutes caracteacuteristiques des
valeurs du domaine on parle aussi de compreacutehension) ou en extension (cest agrave dire en eacutenumeacuterant toutes
les valeurs du domaine)
Exemtple Domaines deacutefinis en intension
Tous les entiers
Les reacuteels infeacuterieur agrave 5
Les booleacuteen (vrai ou faux)
Toutes les chaicircnes de 1 agrave 255 caractegraveres
Les valeurs moneacutetaires deacutefinie comme des deacutecimaux avec deux chiffres apregraves la virgule
Les dates deacutefinies comme des chaicircnes de 10 caractegraveres comprenant des chiffres et des tirets selon le
patron 00-00-0000
Les salaires deacutefinis comme des valeurs moneacutetaires compris entre 15000 et 100000
Exemtple Domaines deacutefinis en extension
Couleur Bleu Vert Rouge Jaune Blanc Noir
SGBD Hieacuterarchique Reacuteseau Relationnel Objet Relationnel-Objet
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
La modeacutelisation logique relationnelle
47
b) Exercice Indiquez quelle deacutefinition et quel exemple correspondent respectivement aux mots intension et extension
1 - Le domaine des couleurs
2 - Eacutenonciation exhaustive de lensemble des objets du domaine
3 - bleu rouge vert
4 - Explicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa compreacutehension
abstraite geacuteneacuterale)
Intension Extension
c) Atribut et enregistrement
Deacutefinition Atribut
On appelle attribut dune relation une colonne de cette relation Un attribut est caracteacuteriseacute par un nom et un
domaine dans lequel il prend ses valeurs
Synonymes Champs Proprieacuteteacute Colonne
Deacutefinition Enregistrement
On appelle enregistrement dune relation une ligne de cette relation Un enregistrement prend une valeur
pour chaque attribut de la relation
Synonymes Tuple N-uplet Vecteur Ligne
La modeacutelisation logique relationnelle
48
Exemtple
A B
1 1
1 2
2 2
Tableau 5 Relation R
La relation R comporte les deux attributs A et B et les trois enregistrements lt11gt lt12gt et lt22gt
Remarque Atribut domaine ordre
Un attribut se distingue dun domaine car il peut ne comporter que certaines valeurs de ce domaine
Les colonnes de la relation ne sont pas ordonneacutees et elles ne sont donc repeacutereacutees que par le nom de lattribut
Remarque Valeur nulle
Un enregistrement peut ne pas avoir de valeur pour certains attributs de la relation parce que cette valeur
est inconnue ou inapplicable sa valeur est alors null
d) Exemple La relation Vol
Exemtple
Numero Compagnie Avion Deacutepart Arriveacutee Date
AF3245 Air France 747 Paris Oulan Bator 01shy08shy2002
AF6767 Air France A320 Paris Toulouse 30shy07shy2002
KLM234 KML 727 Paris Amsterdam 31shy07shy2002
Tableau 6 Relation Vol
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel
Objectifs
Connaicirctre les notions de cleacutes candidates naturelles artificielles primaire eacutetrangegravere
Aborder le principe deacuteclatement des relations et de nonredondance
La modeacutelisation logique relationnelle
49
a) Cleacute
Deacutefinition Cleacute
Une cleacute est un groupe dattributs minimum qui permet didentifier de faccedilon univoque un tuple dans une
relation
Fondamental
Toute relation doit comporter au moins une cleacute ce qui implique quune relation ne peut pas
contenir deux tuples identiques
Atention Atributs de cleacutes unique et non null Afin decirctre deacuteterminants pour lidentification dun enregistrement tous les attributs dune cleacute
doivent ecirctre valueacutes cest-agrave-dire quaucun ne peut avoir de valeur null Dire quun groupe
dattribut est une cleacute eacutequivaut agrave dire quil est unique et non null
Exemtple Numeacutero deacutetudiant
Le numeacutero deacutetudiant dune relation Etudiant est une bonne cleacute car il y aura systeacutematiquement une
valeur non nulle
Le groupe dattributs (nom preacutenom) dune relation Etudiant est en geacuteneacuteral une mauvaise cleacute car les
homonymes existent
b) Deacuteterminer les cleacutes
Deacutetermination dune cleacute
Deacutefinir un groupe dattributs comme eacutetant une cleacute neacutecessite une reacuteflexion seacutemantique sur les donneacutees
composant ces attributs afin de sassurer de leur uniciteacute
Fondamental
La deacutefinition des cleacutes est un acte de modeacutelisation elle ne renvoie pas donc pas agrave une veacuteriteacute
intangible mais agrave la reacutealiteacute telle quelle est repreacutesenteacutee dans le modegravele que lon eacutelabore
Exemtple
Lattribut numeacutero de seacutecuriteacute sociale dune relation personne peut paraicirctre une bonne cleacute a priori car son
uniciteacute est assureacutee Mais tout le monde nen dispose pas forceacutement (les enfants des eacutetrangers) donc ce nest
une cleacute que si lon considegravere des personnes affilieacutees agrave la seacutecuriteacute sociale
c) Cleacute primaire et cleacutes candidates
Deacutefinition Cleacute tprimaire
Si plusieurs cleacutes existent dans une relation on en choisit une parmi celles-ci Cette cleacute est appeleacutee cleacute
primaire
La modeacutelisation logique relationnelle
50
La cleacute primaire est geacuteneacuteralement choisie de faccedilon agrave ce quelle soit la plus simple cest agrave dire portant sur le
moins dattributs et sur les attributs de domaine les plus basiques (entiers ou chaicircnes courtes typiquement)
Deacutefinition Cleacutes candidates
On appelle cleacutes candidates lensemble des cleacutes dune relation qui nont pas eacuteteacute choisies comme cleacute primaire
(elles eacutetaient candidates agrave cette fonction)
d) Cleacute artificielle
Deacutefinition Cleacute artificielle
Sil est impossible de trouver une cleacute primaire ou que les cleacutes candidates sont trop complexes il est possible
de faire appel agrave une cleacute artificielle Une cleacute artificielle est un attribut suppleacutementaire ajouteacute au scheacutema de
la relation qui nest lieacute agrave aucune signification et qui sert uniquement agrave identifier de faccedilon unique les
enregistrements etou agrave simplifier les reacutefeacuterences de cleacutes eacutetrangegraveres
Deacutefinition Cleacute signifiante
Une cleacute est signifiante si elle nest pas artificielle
Synonyme Cleacute naturelle
Atention Cleacute artificielle et niveau logique
Au niveau du modegravele logique il faut eacuteviter la simpliciteacute consistant agrave identifier toutes les relations
avec des cleacutes artificielles et ne reacuteserver cet usage quaux cas particuliers
Conseil
1 Si au moins une cleacute naturelle composeacutee dun seul attribut existe en choisir une parmi celles-ci comme
cleacute primaire 2 Sinon choisir une cleacute naturelle composeacutee de plusieurs attributs si elle ne pose pas de problegraveme identifieacute 3 Toujours justifier lemploi dune cleacute artificielle (au niveau logique uniquement pour des raisons de
complexiteacute du modegravele les questions de performance sont eacutetudieacutees au niveau physique)
RemarqueCleacute artificielle et niveau tphysique eacutevolutiviteacute maintenance et tperformance
Au niveau de limpleacutementation physique par contre il est courant que des cleacutes artificielles soient utiliseacutees de
faccedilon systeacutematique
Du point de vue de leacutevolutiviteacute de la BD il existe toujours un risque quune cleacute nonartificielle perde
sa proprieacuteteacute duniciteacute ou de non-nulliteacute
Du point de vue de la maintenance de la BD il existe toujours un risque quune cleacute non-artificielle
voit sa valeur modifieacutee et dans ce cas la reacutepercution de ce changement pour mettre agrave jour toutes les
reacutefeacuterences peut poser problegraveme
Du point de vue de la performance de la BD les cleacutes non-artificielles ne sont pas en geacuteneacuteral optimiseacutees
en terme de type et de taille et donc peuvent limiter les performances dans le cadre des jointures
Preacutecisons neacuteanmoins quinversement les cleacutes artificielles ont pour conseacutequence de systeacutematiser des
jointures qui auraient pu ecirctre eacuteviteacutees avec des cleacutes primaires signifiantes
La modeacutelisation logique relationnelle
51
Exemtple Problegraveme deacutevolutiviteacute tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD franccedilaise elle ne permettra pas dentrer
un individu non-franccedilais issu dun pays ne disposant pas dun tel numeacutero
Exemtple Problegraveme de maintenance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD centrale dont les donneacutees sont exploiteacutees
par dautres tables dautres BD qui viennent piocher dans cette BD pour leurs propres usages sans que la
BD centrale ne connaisse ses clients Soit une erreur dans la saisie dun numeacutero de seacutecuriteacute sociale dans la
BD centrale si ce numeacutero est corrigeacute il faudrait (ce qui nest pas possible dans notre cas) impeacuterativement en
avertir toutes les bases utilisatrices pour quelles mettent agrave jour leurs reacutefeacuterences
Exemtple Problegraveme de tperformance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table comptant un million denregistrements ce numeacutero
est geacuteneacuteralement un nombre agrave 13 chiffres ou une chaicircne agrave 13 caractegraveres ce qui dans les deux cas est supeacuterieur
au nombre agrave 7 chiffres suffisant pour identifier tous les individus de la BD Les performances seront donc
toujours moins bonnes lors des jointures si une cleacute prend deux fois plus de place en meacutemoire que son
optimum Mais ajoutons que cette perte de performance na pas toujours de conseacutequence sur la reacutealiteacute
perceptible par les utilisateurs de la BD
Inversement soit une cleacute artificielle la cleacute primaire dune table T1 par ailleurs reacutefeacuterenceacutee par une autre table
T2 Soit le numeacutero de seacutecuriteacute sociale un attribut cleacute de T1 Si lon veut par requecircte disposer des informations
de T2 ainsi que du numeacutero de seacutecuriteacute sociale de T1 alors il faudra faire une jointure tandis que si ce numeacutero
signifiant avait eacuteteacute choisi comme cleacute primaire cela naurait pas eacuteteacute neacutecessaire
La modeacutelisation logique relationnelle
52
e) Cleacute eacutetrangegravere
Deacutefinition Cleacute eacutetrangegravere
Une cleacute eacutetrangegravere est un attribut ou un groupe dattributs dune relation R1 devant apparaicirctre comme cleacute
primaire dans une relation R2 afin de mateacuterialiser une reacutefeacuterence entre les tuples de R1 et les tuples de R2
Une cleacute eacutetrangegravere dun tuple reacutefeacuterence une cleacute primaire dun autre tuple
Atention
Seule une cleacute primaire peut ecirctre reacutefeacuterenceacutee par une cleacute eacutetrangegravere cest mecircme le seule fonction
de la cleacute primaire ecirctre la cleacute qui peut ecirctre reacutefeacuterenceacutee par les cleacutes eacutetrangegraveres
Deacutefinition Contrainte dinteacutegriteacute reacutefeacuterentielle
Une cleacute eacutetrangegravere respecte la contrainte dinteacutegriteacute reacutefeacuterentielle si sa valeur est effectivement existante dans
la cleacute primaire dun tuple de la relation reacutefeacuterenceacutee ou si sa valeur est null
Une cleacute eacutetrangegravere qui ne respecte pas la contrainte dinteacutegriteacute reacutefeacuterentielle exprime un lien vers un tuple qui
nexiste pas et donc nest pas coheacuterente
f) Reacutefeacuterence entre relations Le modegravele relationnel a pour objectif la structuration de donneacutees selon des relations Lenjeu est de parvenir
agrave traduire un modegravele conceptuel en modegravele logique relationnel Or il ny a pas de notion dassociation en
relationnel donc il faudra pouvoir traduire les associations avec les concepts dont on dispose relation cleacute
cleacute eacutetrangegravere
Afin de repreacutesenter des reacutefeacuterences entre relations dans un modegravele relationnel la seule solution est de stocker
linformation dans une relation et donc que certains attributs dune relation servent agrave pointer sur dautres
relations
Atention
Il ny a pas vraiment de reacutefeacuterence ou de lien en relationnel puisque nous ne disposons que de
tables de cleacutes de cleacutes eacutetrangegravere et de valeurs
On va donc devoir se servir de ces outils pour mateacuterialiser une notion de reacutefeacuterence
Meacutethode Reacutefeacuterence
La reacutefeacuterence entre deux tuples T1 et T2 de deux relations diffeacuterentes est exprimable par une valeur identique
entre une cleacute eacutetrangegravere du tuple T1 et la cleacute primaire de lautre tuple T2 Synonyme Lien Exemtple
R1 R2 a1 a2=gtR2 b1 b2
La modeacutelisation logique relationnelle
53
F
Image 13
Lattribut a2 de la relation R1 reacutefeacuterence lattribut b1 de la relation R2 car a2 est une cleacute eacutetrangegravere de R1 vers
R2 (b1 est la cleacute primaire de R2)
Ici on a donc par exemple les tuples identifieacutes par B et C de R1 qui reacutefeacuterencent le tuple identifieacute par 1 dans
R2
g) Scheacutema relationnel
Deacutefinition Scheacutema dune relation
Le scheacutema dune relation deacutefinit cette relation en intension Il est composeacute
du nom de la relation
de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs
de la cleacute primaire
des cleacutes eacutetrangegraveres
des cleacutes candidates
Deacutefinition Scheacutema relationnel dune base de donneacutee
Le scheacutema relationnel dune BD est la deacutefinition en intension de cette BD (par opposition agrave linstance de la
BD qui est une extension de la BD) Il est composeacute de lensemble des scheacutemas de chaque relation de la BD
Syntaxe Relation
Relation (Attribut1Domaine1 Attribut2Domaine2 AttributNDomaineN) 1
La relation Relation contient N attributs chacun deacutefini sur son domaine
Syntaxe Cleacute tprimaire
Relation (Attribut1Domaine1 AttributMDomaineM AttributNDomaineN)
1
La cleacute de la relation Relation est composeacutee des attributs Attribut1 agrave AttributM (attribut preacuteceacutedeacutes de ou
bien souligneacutes)
En geacuteneacuteral on note la cleacute primaire en premier dans la relation
Syntaxe Cleacute eacutetrangegravere
Relation1 ( AttributM=gtRelation2 AttributN=gtRelation2) 1
La relation Relation1 comporte une cleacute eacutetrangegravere (composeacutee des attributs AttributM agrave AttributN)
reacutefeacuterenccedilant la cleacute primaire de Relation2 Bien sucircr il peut exister plusieurs cleacutes eacutetrangegraveres vers plusieurs
La modeacutelisation logique relationnelle
54
relations distinctes Une cleacute eacutetrangegravere et sa cleacute primaire reacutefeacuterenceacutee sont toujours composeacutees du mecircme nombre
dattributs Il nest pas neacutecessaire de preacuteciser les domaines des attributs appartenant agrave la cleacute eacutetrangegravere car ce
sont forceacutement les mecircmes que ceux de la cleacute primaire reacutefeacuterenceacutee Il nest pas non plus en geacuteneacuteral neacutecessaire
de preacuteciser dans le scheacutema relationnel quels attributs de la cleacute eacutetrangegravere reacutefeacuterencent quels attributs de la cleacute
primaire (cela est geacuteneacuteralement eacutevident) mais il est possible de la faire on notant Attribut=gtRelationAttribut
En geacuteneacuteral on note les cleacutes eacutetrangegraveres en dernier dans la relation sauf pour les cleacutes eacutetrangegraveres qui font partie
de la cleacute primaire (cleacutes identifiantes)
Syntaxe Cleacute candidates
Relation1 (AttributMDomaineM ) avec AttributM cleacute 1
Les cleacutes candidates doivent ecirctre noteacutees sur le scheacutema relationnel
Sil ny a quune ou deux cleacutes candidates les noter directement apregraves la deacutefinition de la relation
Sil y a beaucoup de cleacutes pour ne pas trop alourdir la notation renvoyer agrave un tableau agrave part
Atention Cleacutes candidates et cleacute primaire
La notation R(ab) signifie toujours que R a comme cleacute primaire (ab) et non que R aurait
deux cleacutes a et b (dont on ne saurait pas laquelle est primaire)
La notation R(ab) avec b cleacute signifie bien que a et b sont deux cleacutes de R et que a est primaire
Il ne faut pas confondre une cleacute composeacutee de deux attributs avec deux cleacutes
h) Exemple de scheacutema relationnel pour la geacuteographie
Exemtple
Personne (NumeroEntier NomChaicircne PreacutenomChaicircne LieuNaissance=gtVille) Pays (NomChaicircne PopulationEntier SuperficieReacuteel Dirigeant=gtPersonne) Reacutegion (Pays=gtPays NomChaicircne Superficie Dirigeant=gtPersonne) Ville (CodePostalCP NomChaicircne Pays=gtReacutegionPays Reacutegion=gtReacutegionNom Dirigeant=gtPersonne)
1 2 3 4
Exemtple Exemtple dinstance de la base de donneacutees
Personne Num ero Nom Prenom LieuNaissance
1 Durand Pierre 60200 2 Dupont Marie 60200
Pays
Nom Population Superficie Dirig eant
France 60 50000101 2 Allemagne 80 60000023564 2 Espagne 40 3500001 1
La modeacutelisation logique relationnelle
55
Reacutegion Pays Nom Superficie Dirig eant France Picardie 50 1 Espagne Picardie 40 1 France Normandie 30 2
Ville CodePostal Nom Pays Reacuteg ion Dirig eant F60200 Compiegravegne France Picardie 1
F60300 Senlis France Picardie 2 F60301 Senlis France Picardie 2 E8000 Senlis Espagne Picardie 2
Le scheacutema relationnel preacuteceacutedent deacutecrit
Des personnes
Elles sont identifieacutees par un numeacutero qui est en fait une cleacute artificielle En effet mecircme une cleacute composeacutee
de tous les attributs (Nom Preacutenom LieuNaissance) laisse une possibiliteacute de doublons (homonymes
neacutes dans la mecircme ville)
La cleacute eacutetrangegravere LieuNaissance fait reacutefeacuterence agrave la relation Ville et plus preacuteciseacutement agrave sa cleacute primaire
CodePostal ce qui est est laisseacute implicite car eacutevident
Des pays
Ils sont identifieacutes par leur nom puisque deux pays ne peuvent avoir le mecircme nom Les pays sont
dirigeacutes par des personnes et ce lien est mateacuterialiseacute par la cleacute eacutetrangegravere Dirigeant
Des reacutegions
Elles font partie dun pays et ont un nom Deux reacutegions de pays diffeacuterents pouvant avoir le mecircme
nom il faut utiliser une cleacute primaire composeacutee agrave la fois du nom de la reacutegion et du nom du pays qui
est une cleacute eacutetrangegravere (le nom est appeleacute cleacute locale car il nest pas suffisant pour identifier un tuple de
la relation Reacutegion et la cleacute eacutetrangegravere vers la relation Pays est appeleacutee cleacute identifiante)
Des villes
Elles sont identifieacute par un code postal qui est unique dans le monde (en utilisant le preacutefixe de pays de
type F-60200) Ce code postal a pour domaine CP qui est une chaicircne composeacutee dune ou deux
lettres dun tiret puis dune seacuterie de chiffres
Le lien dappartenance entre une ville et une reacutegion est mateacuterialiseacute par la cleacute eacutetrangegravere composeacutee des
deux attributs Pays et Reacutegion Cette cleacute reacutefeacuterence la cleacute primaire de la relation Reacutegion eacutegalement composeacutee
de deux attributs Pour clairement expliciter les reacutefeacuterences (bien que seacutemantiquement la deacutenomination des
attributs ne laisse pas de place au doute) on utilise la syntaxe ReacutegionPays et ReacutegionNom
4 Synthegravese
a) Synthegravese Scheacutema relationnel
Scheacutema relationnel
Un scheacutema relationnel permet une formalisation dun modegravele logique
Relation ou table
La modeacutelisation logique relationnelle
56
Sous-ensemble dun produit carteacutesien -
Attribut ou colonne Prend ses valeurs dans un domaine
- Enregistrement ou ligne Pose une valeur (y compris la valeur null) pour chaque attribut
Cleacute
Groupe dattributs ayant un rocircle didentification au sein dun enregistrement - Cleacute candidate
Identifie de faccedilon unique un enregistrement - Cleacute primaire
Cleacute candidate choisie pour repreacutesenter un enregistrement pour sa faciliteacute dusage - Cleacute eacutetrangegravere
Reacutefeacuterence la cleacute primaire dun tuple dune autre relation pour exprimer un lien
b) Bibliographie commenteacutee sur le modegravele relationnel
Comtpleacutement Synthegraveses
SQL2 SQL3 applications agrave Oracle [Delmal01]
Une deacutefinition syntheacutetique et efficace du domaine relationnel relation domaine attribut cleacute inteacutegriteacute
opeacuterateurs (Premier chapitre)
5 Deacutefinition formelle dune relation
a) Produit carteacutesien
Deacutefinition Produit carteacutesien
Le produit carteacutesien noteacute X des domaines D1 D2 Dn noteacute D1 X D2 X X Dn est lensemble des
tuples (ou n-uplets ou vecteurs) ltV1V2Vngt tel que Vi est une valeur de Di et tel que toutes les
combinaisons de valeurs possibles sont exprimeacutees
Exemtple
D1 = A B C D2 = 1 2 3 D1 X D2 = ltA1gt ltA2gt ltA3gt ltB1gt ltB2gt ltB3gt ltC1gt ltC2gt ltC3gt
1 2 3
b) Relation
Deacutefinition Relation
Une relation sur les domaines D1 D2 Dn est un sous-ensemble du produit carteacutesien D1 X D2 X X Dn
Une relation est caracteacuteriseacutee par un nom Synonymes Table tableau
Syntaxe
La modeacutelisation logique relationnelle
57
On peut repreacutesenter la relation R sur les domaine D1 Dn par une table comportant une colonne pour
chaque domaine et une ligne pour chaque tuple de la relation
D1 Dn
V1 Vn
V1 Vn
Tableau 7 Relation R
Remarque
Une relation est deacutefinie en extension par leacutenumeacuteration des tuples la composant
B Exercices
1 Lab I-
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Dessiner des relations instancieacutees (en extension donc) remplies avec les donneacutees fournies en exemple
La modeacutelisation logique relationnelle
58
Question 2
Eacutecrivez le scheacutema relationnel (deacutefinition en intension donc) permettant de repreacutesenter une base de donneacutees
relationnelle pour le laboratoire
59
IV - Introduction au
passage
UMLRelationnel classes et
associations
A Cours
Afin de pouvoir impleacutementer une base de donneacutees il faut pouvoir traduire le modegravele conceptuel en modegravele
logique Cela signifie quil faut pouvoir convertir un modegravele UML en modegravele relationnel Les modegraveles
conceptuels sont suffisamment formels pour que ce passage soit systeacutematiseacute dans la plupart des cas
1 Transformation des classes et atributs
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
IV
Introduction au passage UML-Relationnel classes et associations
60
a) Transformation des classes
Meacutethode Classe
Pour chaque classe non abstraite
on creacutee une relation dont le scheacutema est celui de la classe
la cleacute primaire de cette relation est une des cleacutes de la classe
Classe1
Graphique 2 Classe
Classe1()
Remarque
Les classes abstraites sont ignoreacutees agrave ce stade et neacutetant pas instanciables ne donnent geacuteneacuteralement pas
lieu agrave la creacuteation de relation
b) Transformation des atributs
Meacutethode Atributs simtples
Pour chaque attribut eacuteleacutementaire et monovalueacute dune
classe on creacutee un attribut correspondant
Classe1
a key
b
Graphique 3 Attribut
Classe1(ab)
Meacutethode Atributs comtposites
Pour chaque attribut composite comprenant N sous-attributs dune classe
on creacutee N attributs correspondants
dont les noms sont la concateacutenation du nom de lattribut composite avec celui du sous attribut
Classe1
a key b -b1 -b2
Introduction au passage UML-Relationnel classes et associations
61
Graphique 4 Attribut composeacute
Classe1(ab_b1b_b2)
Meacutethode Atributs multivalueacutes
Pour chaque attribut multivalueacute b dune classe C
on creacutee une nouvelle relation RB
qui comprend un attribut monovalueacute correspondant agrave b
plus la cleacute de la relation repreacutesentant C
la cleacute de RB est la concateacutenation des deux attributs
Classe1
a key
b[110]
Graphique 5 Attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Meacutethode Atributs multivalueacutes (meacutethode alternative)
Dans le cas ougrave le nombre maximum de b est fini et petit on peut eacutegalement adopter la transformation
suivante
Classe1(ab1b2b3b4b5b6b7b8b9b10)
Si le nombre dattributs est infini (b[1]) cest impossible sil est trop grand ce nest pas souhaitable
Meacutethode Atributs comtposeacutes multivalueacutes
On combine les regravegles eacutenonceacutees pour les attributs composeacutes et pour les attributs multivalueacutes
Classe1
a key b [0N] -b1 -b2
Graphique 6 Attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
Ratptpel Voir aussi
Transformation des compositions - p102
Introduction au passage UML-Relationnel classes et associations
62
c) Transformation des atributs deacuteriveacutes et meacutethodes
Meacutethode Atributs deacuteriveacutes et meacutethodes
On ne repreacutesente pas en geacuteneacuteral les attributs deacuteriveacutes ni les meacutethodes dans le modegravele relationnel ils seront
calculeacutes dynamiquement soit par des proceacutedures internes agrave la BD (proceacutedures stockeacutees) soit par des
proceacutedures au niveau applicatif
Classe1
a key
b
m()
Graphique 7 Attribut deacuteriveacute et meacutethodes
Classe1(a)
Comtpleacutement Atribut deacuteriveacute stockeacutes
On peut deacutecider (pour des raisons de performance essentiellement) de repreacutesenter lattribut deacuteriveacute ou la
meacutethode comme sil sagissait dun attribut simple mais il sera neacutecessaire dans ce cas dajouter des
meacutecanismes de validation de contraintes dynamiques (avec des triggers par exemple) pour assurer que la
valeur stockeacutee eacutevolue en mecircme temps que les attributs sur lesquels le calcul deacuteriveacute porte
Notons quintroduire un attribut deacuteriveacute ou un reacutesultat de meacutethode dans le modegravele relationnel eacutequivaut agrave
introduire de la redondance ce qui est en geacuteneacuteral deacuteconseilleacute et ce qui doit ecirctre dans tous les cas controcircleacute
2 Transformation des associations
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
a) Transformation des associations 1N
Meacutethode
Pour chaque association binaire de type 1N
on ajoute agrave la relation cocircteacute N une cleacute eacutetrangegravere vers la relation cocircteacute 1
Classe1
01 association 0N
Classe2
a key
b c key
d
Graphique 8 Association 1N
Classe1(ab)
Introduction au passage UML-Relationnel classes et associations
63
Classe2(cda=gtClasse1)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations 1N - p103
b) Transformation des associations NM
Meacutethode
Pour chaque association binaire de type MN
on creacutee une nouvelle relation
composeacutee de cleacutes eacutetrangegraveres vers chaque relation associeacutee
et dont la cleacute primaire est la concateacutenation de ces cleacutes eacutetrangegraveres
Graphique 9 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations NM - p104
c) Transformation des associations 11 (approche simplifieacutee)
Meacutethode
La solution la plus simple et la plus geacuteneacuterale pour transformer une association 11 consiste agrave traiter cette
association 11 comme une association 1N puis agrave ajouter une contrainte UNIQUE sur la cleacute eacutetrangegravere pour
limiter la cardinaliteacute maximale agrave 1
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 10 Association 11
Classe1(abc=gtClasse2) avec c UNIQUE
Classe2(cd) ou
Introduction au passage UML-Relationnel classes et associations
64
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE
Remarque
Il existe toujours deux solutions selon que lon choisit une ou lautre relation pour accueillir la cleacute eacutetrangegravere
Selon la cardinaliteacute minimale un des deux choix peut ecirctre plus pertinent
Comtpleacutement
Il est parfois possible de choisir de fusionner les deux classes au sein dune seule relation plutocirct que dopter
pour une cleacute eacutetrangegravere
Comtpleacutement
Transformation des associations 11 (approche geacuteneacuterale) - p105
d) Transformation des classes dassociation
Meacutethode Classe dassociation NM
Graphique 11 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2ef)
Comtpleacutement Classe dassociation 1N
Les attributs de la classe dassociation sont ajouteacutes agrave la relation issue de la classe cocircteacute N
Comtpleacutement Classe dassociation 11
Les attributs de la classe dassociation sont ajouteacutes agrave la relation qui a eacuteteacute choisie pour recevoir la cleacute eacutetrangegravere
Si les deux classes ont eacuteteacute fusionneacutees en une seule relation les attributs sont ajouteacutes agrave celle-ci
a key b
Classe1
c key d
Classe2
0 N 0 N
e f
Cl-A ssoc
Introduction au passage UML-Relationnel classes et associations
65
B Exercices
1 Lab I+
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
Question 3
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 4
Dessiner des tableaux remplis avec les donneacutees fournies en exemple afin de montrer que le modegravele fonctionne
selon le besoin exprimeacute initialement On pourra mettre le premier mot seulement des descriptions pour gagner
du temps
Introduction au passage UML-Relationnel classes et associations
66
2 Usine de production
[30 minutes] Une usine cherche agrave modeacuteliser sa production de veacutehicules et de moteurs
Les veacutehicules sont identifieacutes par un numeacutero dimmatriculation alphanumeacuterique et caracteacuteriseacutes par une
couleur dont la deacutenomination est une chaicircne de caractegraveres Chaque veacutehicule peut comporter un
unique moteur etou un nombre quelconque de pneus
Chaque moteur est monteacute sur un et un seul veacutehicule et est identifieacute par un numeacutero de seacuterie Un moteur
est caracteacuteriseacute par une puissance en chevaux
Tout pneu est monteacute sur un unique veacutehicule et est identifieacute par un numeacutero de seacuterie Sa position est
deacutefinie localement sur ce veacutehicule et par rapport agrave lessieu Dn pour les pneus situeacute sur la droite de
lessieu et Gn pour les pneus situeacutes agrave gauche n repreacutesentant le numeacutero de lessieu (1 pour celui situeacute
devant 2 pour la deuxiegraveme rangeacutee etc) Un pneu est caracteacuteriseacute par un diamegravetre et une largeur en
pouces
Les moteurs les pneus et les veacutehicules sont fabriqueacutes sous une marque Les mecircmes marques peuvent
fabriquer indiffeacuteremment des moteurs des pneus etou des veacutehicules et un veacutehicule dune certaine
marque peut comporter un moteur etou des pneus de marque diffeacuterente
Question 1
Reacutealiser le modegravele UML de ce problegraveme en faisant apparaicirctre les domaines et les cleacutes
Question 2
Reacutealiser le passage au modegravele relationnel en faisant apparaicirctre les cleacutes primaires candidates et eacutetrangegraveres
Question 3
Dessiner les tableaux correspondant aux relations du modegravele Instancier au minimum deux veacutehicules et quatre
marques
Question 4
Donner quatre exemples denregistrements qui seront refuseacutes - eacutetant donneacutees les donneacutees deacutejagrave inseacutereacutees -
pour quatre raisons diffeacuterentes
contrainte de cleacute sur une cleacute primaire
contrainte de cleacute sur une cleacute candidate
contrainte dinteacutegriteacute reacutefeacuterentielle
contrainte de non nulliteacute
67
V - Creacuteation et
alimentation de bases
de donneacutees SQL
A Cours
1 Le langage SQL
Deacutefinition SQL
SQL (pour langage de requecirctes structureacute) est un langage deacuteclaratif destineacute agrave la manipulation de bases de
donneacutees au sein des SGBD et plus particuliegraverement des SGBDR
SQL LDD LCD LMD LCT
SQL est un langage deacuteclaratif il nest donc pas a proprement parleacute un langage de programmation mais plutocirct
une interface standard pour acceacuteder aux bases de donneacutees
Il est composeacute de quatre sous ensembles
Le Langage de Deacutefinition de Donneacutees (LDD ou en anglais DDL Data Definition
Language) pour creacuteer et supprimer des objets dans la base de donneacutees (tables contraintes dinteacutegriteacute
vues etc)
Exemple de commandes CREATE DROP ALTER
Le Langage de Controcircle de Donneacutees (LCD ou en anglais DCL Data Control Language) pour geacuterer les
droits sur les objets de la base (creacuteation des utilisateurs et affectation de leurs droits)
Exemple de commandes GRANT REVOKE
V
Creacuteation et alimentation de bases de donneacutees SQL
68
Le Langage de Manipulation de Donneacutees (LMD ou en anglais DML Data Manipulation
Language) pour la recherche linsertion la mise agrave jour et la suppression de donneacutees Le LMD est baseacute
sur les opeacuterateurs relationnels auxquels sont ajouteacutes des fonctions de calcul dagreacutegats et des
instructions pour reacutealiser les opeacuterations dinsertion mise agrave jour et suppression
Exemple de commandes INSERT UPDATE DELETE SELECT
Le Langage de Controcircle de Transaction (LCT ou en anglais TCL Transaction Control Language) pour
la gestion des transactions (validation ou annulation de modifications de donneacutees dans la BD)
Exemple de commandes COMMIT ROLLBACK
Fondamental Reacutefeacuterence SQL SQL-99 complete really
Gulutzan and Pelzer 1999 [Gulutzan and Pelzer 1999] httpsmariadbcomkbensql-99)2
Comtpleacutement Origine du SQL
Le modegravele relationnel a eacuteteacute inventeacute par EF Codd (Directeur de recherche du centre IBM de San Joseacute) en
1970 suite agrave quoi de nombreux langages ont fait leur apparition
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel2
IBM SystemR
IBM DB2
Ce sont ces langages qui ont donneacute naissance au standard SQL normaliseacute en 1986 au Eacutetats-Unis par lANSI
pour donner SQL86 (puis au niveau international par lISO en 1987)
Comtpleacutement Versions de SQL
SQL-86 (ou SQL-87) Version dorigine
SQL-89 (ou SQL-1) Ameacuteliorations mineures
SQL-92 (ou SQL-2) Extensions fonctionnelles majeures (types de donneacutees opeacuterations relationnelles
instruction LDD transactions etc
SQL-99 (ou SQL-3) Introduction du PSM (couche proceacutedurale sous forme de proceacutedure stockeacutees)
et du RO
SQL-2003 Extensions XML
SQL-2006 Ameacuteliorations mineures (pour XML notamment)
SQL-2008 Ameacuteliorations mineures (pour le RO notamment)
Remarque Version SQL et imtpleacutementations SGBD
Selon leur niveau dimpleacutementation de SQL les SGBD acceptent ou non certaines fonctions
Certains SGBD ayant entameacute certaines impleacutementations avant leur standardisation deacutefinitive ces
impleacutementations peuvent diffeacuterer de la norme
Creacuteation et alimentation de bases de donneacutees SQL
69
2 Creacuteer des tables en SQL (Langage de Deacutefinition de
Donneacutees)
Le LDD est la partie du langage SQL qui permet de creacuteer de faccedilon deacuteclarative les objets composant une
BD Il permet notamment la deacutefinition des scheacutemas des relations des contraintes dinteacutegriteacute des vues
Rappel Le code SQL peut ecirctre testeacute avec Db Discodbdiscocrztfr
2 - httpsmariadbcomkbensql-99
a) Lab I++
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
70
Question 2
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 3
Creacuteer une base de donneacutees en SQL correspondant au modegravele relationnel
Question 4
Inseacuterer les donneacutees fournies en exemple dans la base de donneacutees
b) Creacuteation de tables
Ratptpel
Quest ce que le SQL
Introduction
La creacuteation de table est le fondement de la creacuteation dune base de donneacutees en SQL
Deacutefinition Creacuteation de table
La creacuteation de table est la deacutefinition dun scheacutema de relation en intension par la speacutecification de tous les
attributs le composant avec leurs domaines respectifs
Syntaxe
CREATE TABLE nom_table ( nom_colonne1 domaine1 nom_colonne2 domaine2 nom_colonneN domaineN )
1 2 3 4 5 6
Exemtple
CREATE TABLE Personne ( Nom VARCHAR(25) Prenom VARCHAR(25) Age NUMERIC(3) )
1 2 3 4 5
Atention Contrainte dinteacutegriteacute
La deacutefinition des types nest pas suffisante pour deacutefinir un scheacutema relationnel il faut lui adjoindre
la deacutefinition de contraintes dinteacutegriteacute qui permette de poser les notions de cleacute dinteacutegriteacute
reacutefeacuterentielle de restriction de domaines etc
Creacuteation et alimentation de bases de donneacutees SQL
71
c) Domaines de donneacutees
Introduction
Un attribut dune relation est deacutefini pour un certain domaine ou type Les types de donneacutees disponibles en
SQL varient dun SGBD agrave lautre on peut neacuteanmoins citer un certain nombre de types standards que lon
retrouve dans tous les SGBD
Fondamental Les types standard
INTEGER ou INT SMALLINT
NUMERIC(X)
DECIMAL(XY) ou NUMERIC(XY)
FLOAT(X) REAL
CHAR(X)
VARCHAR(X)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HHMMSS)
Les tytpes numeacuteriques standard
Les nombres entiers
INTEGER (ou INT) et SMALLINT permettent de coder des entiers sur 4 octets (2147483648 agrave
2147483647) ou 2 octets (-32768 agrave 32767)
Les nombres entiers
NUMERIC(X) deacutesigne un entier de X chiffres au maximum
Les nombres deacutecimaux
DECIMAL(XY) ougrave X et Y sont optionnels et deacutesignent respectivement le nombre de chiffres maximum
pouvant composer le nombre et le nombre de chiffres apregraves la virgule
NUMERIC(XY) est un synonyme standard
Les nombres agrave virgule flottante
FLOAT(X) avec X deacutefinissant la preacutecision (nombre de bits de codage de la mantisse)
REAL est un synonyme standard de FLOAT(24)
Conseil FLOAT versus DECIMAL
Il est conseilleacute dutiliser DECIMAL qui est un nombre exact plutocirct que FLOAT qui est un nombre approximatif
si la preacutecision requise est suffisante FLOAT sera reacuteserveacute typiquement agrave des calculs scientifiques neacutecessitant
un degreacute de preacutecision supeacuterieur
Les tytpes chaicircne de caractegraveres standard
On distingue principalement les types CHAR(X) et VARCHAR(X) ougrave X est obligatoire et deacutesigne la longueur de
la chaicircne
CHAR deacutefinit des chaicircnes de longueur fixe (compleacuteteacutee agrave droites par des espaces si la longueur est
infeacuterieure agrave X)
et VARCHAR des chaicircnes de longueurs variables
Creacuteation et alimentation de bases de donneacutees SQL
72
CHAR et VARCHAR sont geacuteneacuteralement limiteacutes agrave 255 caractegraveres La plupart des SGBD proposent des types tels
que TEXT ou CLOB (Character Long Object) pour repreacutesenter des chaicircnes de caractegraveres longues jusquagrave
65000 caractegraveres par exemple
Les tytpes date standard
Les types date dont introduits avec la norme SQL2 On distingue
DATE qui repreacutesente une date selon un format de type AAAA-MM-JJ
et DATETIME qui repreacutesente une date plus une heure dans un format tel que AAAAMM-JJ HHMMSS
Comtpleacutement Les autres tytpes
En fonction du SGBD il peut exister de nombreux autres types On peut citer par exemple
MONEY pour repreacutesenter des deacutecimaux associeacutes agrave une monnaie
BOOLEAN pour repreacutesenter des booleacuteens
BLOB (pour Binary Long Oject) pour repreacutesenter des donneacutees binaires tels que des documents
multimeacutedia (images bitmap videacuteo etc)
d) La valeur NULL Labsence de valeur repreacutesenteacutee par la valeur NULL est une information fondamentale en SQL quil ne faut
pas confondre avec la chaicircne espace de caractegravere ougrave bien la valeur 0 Il ne sagit pas dun type agrave proprement
parler mais dune valeur possible dans tous les types
Fondamental
Par deacutefaut en SQL NULL fait partie du domaine il faut lexclure explicitement par la clause NOT
NULL apregraves la deacutefinition de type si on ne le souhaite pas Syntaxe
CREATE TABLE nom de table ( 1
CREATE TABLE nom_table ( nom_colonne1 domaine1 NOT NULL
nom_colonne2 domaine2
nom_colonneN domaineN NOT NULL )
2 3 4 5 6 7
e) Contraintes dinteacutegriteacute
Fondamental
PRIMARY KEY (ltliste dattibutsgt)
UNIQUE (ltliste dattibutsgt)
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt)
CHECK (ltconditiongt)
Une contrainte dinteacutegriteacute est une regravegle qui deacutefinit la coheacuterence dune donneacutee ou dun ensemble de donneacutees
de la
Creacuteation et alimentation de bases de donneacutees SQL
73
BD
Il existe deux types de contraintes
sur une colonne unique
ou sur une table lorsque la contrainte porte sur une ou plusieurs colonnes
Les contraintes sont deacutefinies au moment de la creacuteation des tables
Deacutefinition Contraintes dinteacutegriteacute sur une colonne
Les contraintes dinteacutegriteacute sur une colonne sont
PRIMARY KEY deacutefinit lattribut comme la cleacute primaire
UNIQUE interdit que deux tuples de la relation aient la mecircme valeur pour lattribut
REFERENCES ltnom tablegt (ltnom colonnesgt) controcircle linteacutegriteacute reacutefeacuterentielle entre lattribut et la
table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur de lattribut speacutecifieacute dans la condition dans le
cadre dune restriction de domaine
Deacutefinition Contraintes dinteacutegriteacute sur une table
Les contraintes dinteacutegriteacute sur une table sont
PRIMARY KEY (ltliste dattibutsgt) deacutefinit les attributs de la liste comme la cleacute primaire
UNIQUE (ltliste dattibutsgt) interdit que deux tuples de la relation aient les mecircmes valeurs pour
lensemble des attributs de la liste
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt) controcircle linteacutegriteacute
reacutefeacuterentielle entre les attributs de la liste et la table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur des attributs speacutecifieacutes dans la condition dans le
cadre dune restriction de domaine Syntaxe
CREATE TABLE nom de table ( CREATE TABLE nom_table ( nom_colonne1 domaine1 ltcontraintes colonne1gt nom_colonne2 domaine2 ltcontraintes colonne2gt nom_colonneN domaineN ltcontraintes colonneNgt
1 2 3 4 5 6
ltcontraintes de tablegt )
7 8
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) UNIQUE
(Nom Prenom) )
1 2 3 4 5 6 7 8
Remarque Cleacute candidate
La clause UNIQUE NOT NULL sur un attribut ou un groupe dattributs deacutefinit une cleacute candidate non primaire
Creacuteation et alimentation de bases de donneacutees SQL
74
Remarque
Les contraintes sur une colonne et sur une table peuvent ecirctre combineacutees dans la deacutefinition dun mecircme scheacutema
de relation
Remarque
Une contrainte sur une colonne peut toujours ecirctre remplaceacutee par une contrainte sur une table
f) Exemple de contraintes dinteacutegriteacute
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) Codepostal INTEGER(5) Pays VARCHAR(50) UNIQUE (Nom Prenom) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) CHECK (Initiale = LEFT(Pays 1)) PRIMARY KEY (CP Pays) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
Dans la deacutefinition de scheacutema preacuteceacutedente on a poseacute les contraintes suivantes
La cleacute primaire de Personne est NdegSS et la cleacute primaire de Adresse est (CP Pays)
Nom Preacutenom ne peuvent pas ecirctre null et (Nom Preacutenom) est une cleacute
Age doit ecirctre compris entre 18 et 65 et Initiale doit ecirctre la premiegravere lettre de Pays (avec la fonction
LEFT qui renvoie la sous chaicircne agrave gauche de la chaicircne passeacutee en premier argument sur le nombre de
caractegraveres passeacutes en second argument)
Mariage est cleacute eacutetrangegravere vers Personne et (Codepostal Pays) est une cleacute eacutetrangegravere vers Adresse
Exemtple Reacuteeacutecriture avec uniquement des contraintes de table
Creacuteation et alimentation de bases de donneacutees SQL
75
CREATE TABLE Personne ( NdegSS CHAR(13) Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) Mariage CHAR(13) Codepostal INTEGER(5) Pays VARCHAR(50) PRIMARY KEY (NdegSS) UNIQUE (Nom Prenom) CHECK (Age BETWEEN 18 AND 65) FOREIGN KEY (Mariage) REFERENCES Personne(NdegSS) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) PRIMARY KEY (CP Pays) CHECK
(Initiale = LEFT(Pays 1)) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22
Ce scheacutema est strictement le mecircme que le preacuteceacutedent simplement les contraintes ont toutes eacuteteacute reacuteeacutecrites
comme des contraintes de table
g) Exercice Les instructions SQL ci-apregraves ont-elles pu permettre de creacuteer le scheacutema des trois relations instancieacutees ci-dessous
CREATE TABLE A ( A1 CHAR(255) A2 CHAR(255) A3 CHAR(255) A4 CHAR(255) ) CREATE TABLE B ( B1 CHAR(255) B2 CHAR(255) B3 CHAR(255) B4 CHAR(255) B5 CHAR(255) B6 CHAR(255) B7 CHAR(255) ) CREATE TABLE C ( C1 CHAR(255) C2 CHAR(255) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Oui
Non
Creacuteation et alimentation de bases de donneacutees SQL
76
3 Inseacuterer modifier et supprimer des donneacutees en SQL
(Langage de Manipulation de Donneacutees)
Objectifs
Maicirctriser les bases du SQL pour entrer modifier et effacer des donneacutees dans les
tables
a) Exercice Quelle valeur renvoie la derniegravere instruction SQL de la liste ci-dessous
CREATE TABLE t ( a integer b integer c integer)
INSERT INTO t VALUES (0 0 0)
INSERT INTO t VALUES (1 0 0)
INSERT INTO t SELECT FROM t
SELECT sum(a) + count(b) FROM t
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
b) Insertion de donneacutees Le langage SQL fournit des instructions pour ajouter des nouveaux tuples agrave une relation Il offre ainsi une
interface standard pour ajouter des information dans une base de donneacutees
Il existe deux moyens dajouter des donneacutees soit par fourniture directe des valeurs des proprieacuteteacutes du tuple agrave
ajouter soit par seacutelection des tuples agrave ajouter dans une autre relation
Syntaxe Insertion directe de valeurs
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) VALUES (ltListe ordonneacutee
des valeurs agrave affecter aux proprieacuteteacutes speacutecifieacutees cidessusgt) 1 2
Exemtple Insertion directe de valeurs
INSERT INTO Virement (Date Montant Objet) VALUES (14-07-1975 1000 Prime de naissance)
1 2
Syntaxe Insertion de valeurs tpar lintermeacutediaire dune seacutelection
Creacuteation et alimentation de bases de donneacutees SQL
77
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) SELECT 1 2
Linstruction SELECT projetant un nombre de proprieacuteteacutes identiques aux proprieacuteteacutes agrave valoriser
Exemtple Insertion de valeurs tpar lintermeacutediaire dune seacutelection
INSERT INTO Credit (Date Montant Objet) SELECT Date Montant Annulation de deacutebit FROM Debit WHERE DebitDate = 25-12-2001
1 2 3 4
Dans cet exemple tous les deacutebits effectueacutes le 25 deacutecembre 2001 sont re-creacutediteacutes pour le mecircme montant (et
agrave la mecircme date) avec la mention annulation dans lobjet du creacutedit Ceci pourrait typiquement reacutealiseacute en cas
de deacutebits erroneacutes ce jour lagrave
Remarque
Les proprieacuteteacutes non valoriseacutees sont affecteacutees agrave la valeur NULL
Il est possible de ne pas speacutecifier les proprieacuteteacutes agrave valoriser dans ce cas toutes les proprieacuteteacutes de la
relation seront consideacutereacutees dans leur ordre de deacutefinition dans la relation (agrave nutiliser que dans les cas
les plus simples)
c) Mise agrave jour de donneacutees Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation
Syntaxe Mise agrave jour directe de valeurs
1 UPDATE ltNom de la relationgt
2 SET ltListe daffectations Proprieacuteteacute=Valeur Proprieacuteteacute=Valeurgt 3 WHERE ltCondition pour filtrer les tuples agrave mettre agrave jourgt
1 UPDATE r
2 SET a=1 b=x 3 WHERE c=0
Exemtple Mise agrave jour directe de valeurs
UPDATE Compte SET Monnaie=Euro WHERE Monnaie=Franc
1 2 3
Exemtple Mise agrave jour tpar calcul sur lancienne valeur
UPDATE Compte SET Total=Total 655957 WHERE Monnaie=Euro
1 2 3
Creacuteation et alimentation de bases de donneacutees SQL
78
d) Suppression de donneacutees Le langage SQL fournit une instruction pour supprimer des tuples existants dans une relation
Syntaxe
DELETE FROM ltNom de la relationgt WHERE ltCondition pour filtrer les tuples agrave supprimergt
1 2
Exemtple Sutptpression de tous les tutples dune relation
DELETE FROM FaussesFactures 1
Exemtple Sutptpression seacutelective
DELETE FROM FaussesFactures WHERE Auteur=Moi
1 2
4 Supprimer et modifier des tables en SQL (Langage de
Deacutefinition de Donneacutees)
Le LDD permet de creacuteer les objets composant une BD de faccedilon deacuteclarative Il permet notamment la
deacutefinition des scheacutemas des relations la deacutefinition des contraintes dinteacutegriteacute la deacutefinition de vues
relationnelles
a) Suppression dobjets Il est possible de supprimer des objets de la BD tels que les tables ou les vues
Syntaxe
DROP lttype objetgt ltnom objetgt 1
Exemtple
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
79
DROP TABLE Personne DROP VIEW Employe
1 2
b) Modification de tables
Introduction
Linstruction ALTER TABLE permet de modifier la deacutefinition dune table (colonnes ou contraintes) preacutealablement
creacuteeacutee
Cette commande absente de SQL-89 est normaliseacutee dans SQL-92
Syntaxe Ajout de colonne
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de colonnegt
1 2
Syntaxe Sutptpression de colonne
ALTER TABLE ltnom de tablegt DROP ltnom de colonnegt
1 2
Syntaxe Ajout de contrainte
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de contrainte de tablegt
1 2
RemarqueModification de table sans donneacutee sans la commande ALTER
Pour modifier une table ne contenant pas encore de donneacutee la commande ALTER nest pas indispensable
lon peut supprimer la table agrave modifier (DROP) et la recreacuteer telle quon la souhaite Notons neacuteanmoins que si
la table est reacutefeacuterenceacutee par des clauses FOREIGN KEY cette suppression sera plus compliqueacutee car il faudra
eacutegalement supprimer et recreacuteer les tables reacutefeacuterenccedilantes (ce qui ce complique encore si ces derniegraveres
contiennent des donneacutees)
RemarqueModification de table avec donneacutees sans la commande ALTER
Pour modifier une table contenant des donneacutees la commande ALTER nest pas indispensable On peut en effet
1 Copier les donneacutees dans une table temporaire de mecircme scheacutema que la table agrave modifier
2 Supprimer et recreacuteer la table agrave modifier avec le nouveau scheacutema 3 Copier les donneacutees depuis la table temporaire vers la table modifieacutee
c) Exemple de modifications de tables
Table initiale
Soit une table initiale telle que deacutefinie ci-apregraves
Creacuteation et alimentation de bases de donneacutees SQL
80
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) prenom
VARCHAR(50) PRIMARY KEY
(pk_n) )
1 2 3 4 5 6
Modifications
On deacutecide dapporter les ameacutenagements suivants agrave la table on deacutefinit nom comme UNIQUE et on supprime
le champ prenom
ALTER TABLE Personne ADD UNIQUE (nom)
ALTER TABLE Personne DROP prenom
1 2 3 4 5
Table finale
La table obtenue apregraves modification est identique agrave la table qui aurait eacuteteacute deacutefinie directement telle que ci-
apregraves
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) PRIMARY KEY (pk_n) UNIQUE
(nom) )
1 2 3 4 5 6
B Exercices
1 The show
[30 minutes] Soit le scheacutema relationnel suivant deacutecrivant un systegraveme de reacuteservations de places de spectacles
SPECTACLE (nospectacleint nomstr dureacuteeint typetheacuteacirctre|danse|concert) SALLE (nosalleint nbplacesint) REPRESENTATION (datedate nospectacle=gtSPECTACLE nosalle=gtSALLE prixdecimal)
1 2 3
En faisant les suppositions suivantes
On gegravere un espace de spectacles ayant un ensemble de salles (deacutecrit par la relation SALLE)
On suppose que pour un jour donneacute et une salle donneacutee il ny a quun seul spectacle repreacutesenteacute
Question 1
Retro-concevoir le MCD en UML
Question 2
Proposer des contraintes dinteacutegriteacute reacutealistes pour ce scheacutema (en franccedilais)
Question 3
Creacuteation et alimentation de bases de donneacutees SQL
81
Proposer une deacutefinition du scheacutema en SQL qui prenne en compte certaines de ces contraintes
Question 4
Inseacuterer des donneacutees reacutealistes dans votre scheacutema afin de veacuterifier son bon fonctionnement
2 Du producteur au consommateur
[30 min] Soit le modegravele relationnel suivant
Producteur(raison_socialechaicircne(25) villechaicircne(255)) Consommateur(loginchaicircne(10)
emailchaicircne(50) nomchaicircne(50)prenomchaicircne(50) villechaicircne(255)) Produit(identier descriptionchaicircne(100) produit-par=gtProducteur consommepar-
login=gtConsommateur consomme-par-email=gtConsommateur)
1 2
3
On ajoute que
(nomprenomville) est une cleacute candidate de Consommateur
Tous les produits sont produits
Tous les produits ne sont pas consommeacutes
Question 1
Reacutetro-concevez le modegravele conceptuel sous-jacent agrave ce modegravele relationnel
Question 2
Eacutetablissez le code LDD standard permettant dimpleacutementer ce modegravele en SQL
Question 3
Inseacuterez les donneacutees dans votre base de donneacutees correspondant aux assertions suivantes
Lentreprise de Compiegravegne Pommes Picardes SARL a produit 4 lots de pommes et 2 lots de cidre
Il existe trois utilisateurs consommateurs dans la base donc les adresses mails sont
AlUncompiegnefr - BobDeuxcompiegnefr - CharlieTroiscompiegnefr
Ce sont des employeacutes de la ville de Compiegravegne qui habitent cette ville Leur mail est construit sur le
modegravele PrenomNomcompiegnefr Leur login est leur preacutenom
Question 4
Modifiez les donneacutees de votre base de donneacutees pour inteacutegrer les assertions suivantes
1 lots de pommes a eacuteteacute consommeacutes par Al Un
2 lots de pomme ont eacuteteacute consommeacute par Bob Deux
Tous les lots de cidre ont eacuteteacute consommeacutes par Al Un
Question 5
Charlie Trois nayant rien consommeacute modifiez votre base de donneacutees afin de le supprimer de la base
82
VI - Algegravebre relationnelle
A Cours
1 Opeacuterateurs fondamentaux projection restriction et
jointure
Objectifs
Connaicirctre et savoir utiliser les opeacuterateurs relationnels de projection restriction
produit et jointure
a) Introduction La repreacutesentation dinformation sous forme relationnelle est inteacuteressante car les fondements matheacutematiques
du relationnel outre quils permettent une modeacutelisation logique simple et puissante fournissent eacutegalement
un ensemble de concepts pour manipuler formellement linformation ainsi modeacuteliseacutee
Ainsi une algegravebre relationnelle sous forme dun ensemble dopeacuterations formelles permet dexprimer des
questions ou requecirctes poseacutees agrave une repreacutesentation relationnelle sous forme dexpressions algeacutebriques
Lalgegravebre relationnelle est composeacutee par les cinq opeacuterateurs de base et les trois opeacuterateurs additionnels
suivants
Opeacuterateurs de base
- Union - Diffeacuterence - Projection - Restriction
VI
Algegravebre relationnelle
83
- Produit carteacutesien
Opeacuterateurs additionels
- Intersection - Jointure - Division
Fondamental Algegravebre relationnelle et SQL
Les questions formuleacutees en algegravebre relationnelle sont la base des questions formuleacutees en SQL
pour interroger une base de donneacutees relationnelle
b) Employeacutes et deacutepartements
[30 minutes] Soit les deux relations EMP et DEPT ci-apregraves
EMP (ENO ENOM PROF SAL COMM DNO=gtDEPT(DNO)) DEPT (DNO DNOM DIR=gtEMP(ENO) VILLE)
1 2
ENO numeacutero demployeacute cleacute
ENOM nom de lemployeacute
PROF profession (directeur nest pas une profession)
SAL salaire
COMM commission (un employeacute peut ne pas avoir de commission)
DNO numeacutero de deacutepartement auquel appartient lemployeacute
DNO numeacutero de deacutepartement cleacute
DNOM nom du deacutepartement
DIR numeacutero demployeacute du directeur du deacutepartement
VILLE lieu du deacutepartement (ville)
Eacutecrire en algegravebre relationnelle les requecirctes permettant dobtenir les informations suivantes
Question 1
Lister les employeacutes ayant des revenus supeacuterieurs agrave 10000 euros
Question 2
Trouver le nom et la profession de lemployeacute numeacutero 10
Question 3
Lister les noms des employeacutes qui travaillent agrave Paris
Question 4
Trouver le nom du directeur du deacutepartement Commercial
Question 5
Trouver les professions des directeurs des deacutepartements
Question 6
Algegravebre relationnelle
84
Trouver le nom des directeurs de deacutepartement ayant comme profession Ingeacutenieur
c) Projection
Deacutefinition Projection
La projection est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La projection de R1 sur
une partie de ses attributs A1 A2 produit une relation R2 dont le scheacutema est restreint aux attributs
mentionneacutes en opeacuterande comportant les mecircmes tuples que R1 et dont les doublons sont eacutelimineacutes
Remarque Eacutelimination des doublons
Apregraves suppression dune partie des attributs du scheacutema la relation peut comporter des doublons Eacutetant donneacute
que lon ne pourrait plus identifier ces doublons les uns par rapport aux autres la seule solution senseacutee est
donc de consideacuterer que deux doublons sont eacutequivalents et donc de nen garder quun seul dans la relation
reacutesultante
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Dupont Pierre 20
Durand Jean 30
Tableau 8 Personne
Soit lopeacuteration suivante
R = Projection (Personne Nom Age) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont 20
Durand 30
Tableau 9 R
d) Restriction
Deacutefinition Restriction
La restriction est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La restriction de R1 eacutetant
donneacutee une condition C produit une relation R2 de mecircme scheacutema que R1 et dont les tuples sont les tuples
de R1 veacuterifiant la condition C
Algegravebre relationnelle
85
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Soit les tuples suivants
Dupont Pierre 20
Durand Jean 30
Tableau 10 Personne
Soit lopeacuteration suivante
R = Restriction (Personne Agegt25) 1
On obtient alors la relation R composeacutee de lunique tuple restant suivant
Durand Jean 30
Tableau 11 R
e) Produit
Deacutefinition Produit carteacutesien
Le produit carteacutesien est une opeacuteration binaire (cest agrave dire portant sur deux relations) Le produit de R1 par
R2 (eacutequivalent au produit de R2 par R1) produit une relation R3 ayant pour scheacutema la juxtaposition de ceux
des relations R1 et R2 et pour tuples lensemble des combinaisons possibles entre les tuples de R1 et ceux de
R2 Synonymes Produit
Remarque
Le nombre de tuples reacutesultant du produit de R1 par R2 est eacutegal au nombre de tuples de R1 fois le nombre de
tuples de R2
Remarque
Le nombre de colonne du produit de R1 par R2 est eacutegal au nombre de colonne de R1 plus le nombre de
colonnes de R2
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Algegravebre relationnelle
86
Durand Jean 30
Tableau 12 Homme
Tesla Model X
Citroeumln 2 CV
Tableau 13 Voiture
Soit lopeacuteration suivante
R = Produit (Homme Voiture) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X
Dupont Pierre 20 Citroeumln 2 CV
Durand Jean 30 Tesla Model X
Durand Jean 30 Citroeumln 2 CV
Tableau 14 R
Remarque
Le produit carteacutesien est rarement utiliseacute seul mais il est agrave la base de la jointure
f) Jointure
Deacutefinition Jointure
La jointure est une opeacuteration binaire (cest agrave dire portant sur deux relations) La jointure de R1 et R2 eacutetant
donneacute une condition C portant sur des attributs de R1 et de R2 de mecircme domaine produit une relation R3
ayant pour scheacutema la juxtaposition de ceux des relations R1 et R2 et pour tuples lensemble de ceux obtenus
par concateacutenation des tuples de R1 et de R2 et qui veacuterifient la condition C
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 15 Homme
Algegravebre relationnelle
87
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV Dupont
Tableau 16 Voiture
Soit lopeacuteration suivante
R = Jointure (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Dupont Pierre 20 Citroeumln 3 CV Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Tableau 17 R
(Dupont Pierre 20 Dupont Georges 1) (Dupont Pierre 20 Dupont Jacques 3)
1 2
Fondamental
La jointure est lopeacuteration qui permet de rassembler les informations seacutepareacutees entre plusieurs
tables et reacutefeacuterenceacutees par des cleacutes eacutetrangegraveres
Remarque Otpeacuteration additionnelle
La jointure nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit et la restriction
g) Exercice Quelles sont les expressions relationnelles eacutequivalentes agrave
Projection ( Jointure (R1 R2 R1A1=R2A1) R1A1 R2A2) 1
Jointure ( Projection(R1 A1) Projection(R2 A2) R1A1=R2A1)
Projection ( Jointure (R2 R1 R2A1=R1A1) R1A1 R2A2)
Projection ( Restriction ( Produit(R1 R2) R1A1=R2A1) R1A1 R2A2)
Produit (R1 R2 R1A1=R2A1 R1A1 R2A2)
Algegravebre relationnelle
88
2 Opeacuterateurs compleacutementaires
a) Jointure naturelle
Deacutefinition Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition est leacutegaliteacute entre les attributs
de mecircme nom de R1 et de R2 Il est donc inutile de speacutecifier la condition dans une jointure naturelle elle
reste toujours implicite
Exemtple
Soit deux relations R1 (A B C) et R2 (A D) lopeacuteration Jointure(R1R2R1A=R2A) est eacutequivalente agrave
lopeacuteration JointureNaturelle(R1R2)
Remarque
Pour appliquer une jointure naturelle il faut que les deux relations opeacuterandes aient au moins un attribut ayant
le mecircme nom en commun
b) Jointure externe
Introduction
La jointure est une opeacuteration qui entraicircne la perte de certains tuples ceux qui appartiennent agrave une des deux
relations opeacuterandes et qui nont pas de correspondance dans lautre relation Il est neacutecessaire dans certains
cas de palier cette lacune et lon introduit pour cela la notion de jointure externe
Deacutefinition Jointure externe
La jointure externe entre R1 et R2 est une jointure qui produit une relation R3 agrave laquelle on ajoute les tuples
de R1 et de R2 exclus par la jointure en compleacutetant avec des valeurs nulles pour les attributs de lautre
relation
Deacutefinition Jointure externe gauche
La jointure externe gauche entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les
tuples de R1 (cest agrave dire la relation de gauche) ayant eacuteteacute exclus
Synonymes Jointure gauche
Deacutefinition Jointure externe droite
Objectifs
Maicirctriser lalgegravebre relationnelle
Algegravebre relationnelle
89
La jointure externe droite entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les tuples
de R2 (cest agrave dire la relation de droite) ayant eacuteteacute exclus
Bien entendu une jointure externe droite peut ecirctre reacuteeacutecrite par une jointure externe gauche (et
reacuteciproquement) en substituant les relations opeacuterandes R1 et R2
Synonymes Jointure droite
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Martin Georges 40
Tableau 18 Homme
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV NULL
Tableau 19 Voiture
Soit lopeacuteration suivante
R = JointureExterne (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Martin Georges 40 NULL NULL NULL
NULL NULL NULL Citroeumln 3 CV NULL
Tableau 20 R
Une jointure externe gauche naurait renvoyeacute que les trois premiers tuples et une jointure externe droite
naurait renvoyeacutee que les deux premiers et le dernier tuple
Algegravebre relationnelle
90
c) Opeacuterateurs ensemblistes
Atention Les opeacuterateurs ensemblistes sont des relations binaires (cest agrave dire entre deux relations) portant
sur des relations de mecircme scheacutema
Deacutefinition Union
Lunion de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee de
lensemble des tuples appartenant agrave R1 etou agrave R2
Deacutefinition Difeacuterence
La diffeacuterence entre deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema
constitueacutee de lensemble des tuples de R1 nappartenant pas agrave R2 Notons que la diffeacuterence entre R1 et R2
nest pas eacutegale agrave la diffeacuterence entre R2 et R1
Deacutefinition Intersection
Lintersection de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee
de lensemble des tuples appartenant agrave la fois agrave R1 et agrave R2 Notons que lintersection nest pas une opeacuteration
de base car elle est eacutequivalent agrave deux opeacuterations de diffeacuterence successives
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Femme (Nom Preacutenom Age)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 21 Homme
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 22 Femme
Soit lopeacuteration suivante
R = Union (Homme Femme) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20
Durand Jean 30
Algegravebre relationnelle
91
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 23 R
La diffeacuterence entre Homme et Femme (respectivement entre Femme et Homme) renvoie la relation Homme
(respectivement Femme) car aucun tuple nest commun aux deux relations Lintersection entre Homme est
Femme est vide pour la mecircme raison
Remarque Union externe
Il est possible de deacutefinir une opeacuteration dunion externe qui permet de reacutealiser lunion de deux relations de
scheacutema diffeacuterent en ramenant les relations aux mecircmes scheacutemas et en les compleacutetant avec des valeurs nulles
d) Division
Deacutefinition Division
La division est une opeacuteration binaire (cest agrave dire portant sur deux relations) La division de R1 par R2 sachant
que R1 et R2 ont au moins un attribut commun (cest agrave dire de mecircme nom et de mecircme domaine) produit
une relation R3 qui comporte les attributs appartenant agrave R1 mais nappartenant pas agrave R2 et lensemble des
tuples qui concateacuteneacutes agrave ceux de R2 donnent toujours un tuple de R1
Exemtple
Soit les deux relations suivantes
Pratique (Homme Meacutetier Salaire) Meacutetier (Metier)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Ingeacutenieur 35
Durand Professeur 40
Dupont Ingeacutenieur 45
Martin Ingeacutenieur 50
Tableau 24 Pratique
Ingeacutenieur
Professeur
Tableau 25 Meacutetier
Soit lopeacuteration suivante
R = Division (Homme Meacutetier) 1
Algegravebre relationnelle
92
On obtient alors la relation R composeacutee des tuples suivants
Dupont 35
Tableau 26 R
Meacutethode Reacutetponse aux questions Pour tous les
La division permet de reacutepondre aux questions du type Donnez toutes les personnes qui pratiquent tous les
meacutetiers de la relation meacutetier
Remarque Otpeacuteration additionnelle
La division nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit la restriction et la
diffeacuterence
e) Proposition de notations Introduction Il existe plusieurs syntaxes pour eacutecrire des opeacuterations dalgegravebre relationnelle certaines inspireacutees de lalgegravebre
classiques dautres reposant sur des notations graphiques Nous proposons une notation fonctionnelle qui a
le meacuterite decirctre facile agrave eacutecrire et decirctre lisible Si cette notation peut parfois perdre en simpliciteacute lorsquelle
concerne un nombre eacuteleveacute dopeacuterateurs il est possible de deacutecomposer une opeacuteration compliqueacutee afin de
lalleacuteger
Syntaxe
R = Union (R1 R2) R = Diffeacuterence (R1 R2) R = Intersection (R1 R2) R = Projection (R1 A1 A2 ) R = Restriction (R1 condition) R = Produit (R1 R2) R = Jointure (R1 R2 condition) R = JointureNaturelle (R1 R2) R = JointureExterne (R1 R2 condition) R = JointureGauche (R1 R2 condition) R = JointureDroite (R1 R2 condition) R = Division (R1 R2)
1 2 3 4 5 6 7 8 9
10 11 12
Exemtple Notation syntheacutetique
R = Projection(Restriction(R1 A1=1 AND A2=2) A3) 1
Exemtple Notation deacutecomtposeacutee
R = Restriction(R1 A1=1 AND A2=2) R = Projection (R A3)
1 2
Algegravebre relationnelle
93
f) Exercice Soit les deux relations R1 et R2 suivantes deacutefinies en extension
A B
1 A
2 B
3 C
Tableau 27 R1
A
1
2
Tableau 28 R2
Combien de tuples renvoie lopeacuteration relationnelle suivante
R3 = JointureNaturelle (Intersection (Projection(R1A) R2) R2) 1
g) Opeacuterateurs de base et additionnels Reacuteeacutecrivez les opeacuterateurs additionnels suivants agrave partir dopeacuterateurs de base
Question 1
Reacuteeacutecrivez Intersection agrave partir de Diffeacuterence
Question 2
Reacuteeacutecrivez Jointure agrave partir de Produit et Restriction
Algegravebre relationnelle
94
B Exercices
1 Faire du Cineacutema
[30 minutes] On considegravere les deux relations suivantes
FILMS (titre pays anneacutee reacutealisateur dureacutee) ACTEURS (titre acteur)
1 2
ougrave les attributs ont les significations et les types suivants
titre titre dun film (chaicircne 50 caractegraveres)
pays pays dougrave un film est originaire (chaicircne 10 caractegraveres)
annee anneacutee de sortie du film (entier 4 chiffres)
realisateur nom du reacutealisateur du film (chaicircne 20 caractegraveres)
duree dureacutee du film en minutes (entier 3 chiffres)
acteur nom dacteur (chaicircne 20 caractegraveres)
La relation FILMS donne pour chaque film identifieacute par son titre le pays lanneacutee de sortie reacutealisateur et la
dureacutee
La relation ACTEURS donne pour chaque film lensemble des principaux acteurs
Agrave laide de lalgegravebre relationnelle exprimer les requecirctes suivantes
Question 1
Lister les films franccedilais (titre anneacutee reacutealisateur)
Question 2
Donnez les anneacutees de sortie des films dans lesquels lacteur Jean GABIN a joueacute
Question 3
Trouver les acteurs qui ont tourneacute avec Franccedilois Truffaut comme reacutealisateur
Question 4
Trouver tous les acteurs qui ont eacuteteacute partenaires de lactrice Catherine Deneuve
Question 5
Lister les films dans lesquels le reacutealisateur est aussi acteur
Question 6
Lister les reacutealisateurs nayant joueacute comme acteurs que dans des films quils ne reacutealisaient pas eux-mecircmes
Question 7
Lister les reacutealisateurs ayant joueacute comme acteurs dans des films quils ne reacutealisaient pas eux-mecircmes
Question 8
Donnez les acteurs qui jouent dans tous les films de Franccedilois TRUFFAUT
Algegravebre relationnelle
95
2 Qiz Algegravebre relationnelle
Exercice 1 Quelles sont les opeacuterations relationnelles qui appliqueacutees sur les relations instancieacutees cidessous renvoient un ensemble non nul de tuples
Num Nom Famille
1 Ours Mammifegravere
2 Truite Poisson
3 Homme Mammifegravere
4 Martinshypecirccheur Oiseau
Tableau 29 Animal
Num Nom
1 Forecirct
2 Montagne
3 Ciel
4 Riviegravere
5 Mer
Tableau 30 Environnement
Animal Environnement
1 1
1 2
1 4
2 4
4 3
Tableau 31 Habiter
Mangeur Mangeacute Freacutequence
1 2 Souvent
1 3 Rarement
1 4 Rarement
4 2 Souvent
3 1 Rarement
Algegravebre relationnelle
96
3 2 Souvent
Tableau 32 Manger
Restriction( Projection (Animal Nom Famille) Famille=Mammifegravere)
Restriction( Jointure( Jointure (Animal Habiter AnimalNum=HabiterAnimal) Environnement
EnvironnementNum=HabiterEnvironnement) AnimalNum=3)
Restriction( JointureExterneGauche( Animal Habiter
AnimalNum=HabiterAnimal) AnimalNom=Homme)
Jointure( Animal Manger AnimalNum=MangerMangeur AND AnimalNum=MangerMangeacute)
Exercice 2 Soit le scheacutema relationnel
R1(X Y) R2(X Y)
1 2
Quelles sont les opeacuterations relationnelles eacutequivalentes agrave lopeacuteration
Projection( JointureNaturelle(R1R2) R1X) 1
JointureNaturelle(Projection(R1 X) Projection(R2 X))
Projection( Selection (Produit(R1 R2) R1X=R2X AND R1Y=R2Y) R1X)
Projection( Union( R1 R2) R1X)
Projection( JointureExterne ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Projection( Jointure ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Algegravebre relationnelle
97
Exercice 3 Soit la relation instancieacutee suivante
A B C
1 1 0
1 0 1
0 1 1
Tableau 33 Relation R1
Quelles relations sont retourneacutees par lopeacuteration relationnelle suivante
R2 = JointureNaturelle(R1 R1) 1
1 1 0
1 0 1
0 1 1
Tableau 34 R2a
1 1 0
1 0 1
0 1 1
1 1 0
1 0 1
0 1 1
Tableau 35 R2b
1 1 1
0 0 0
Tableau 36 R2c
1 1 0 1 1 0
1 0 1 1 0 1
0 1 1 0 1 1
Algegravebre relationnelle
98
Tableau 37 R2d
R2a
R2b
R2c
R2d
Une relation vide (aucun tuple)
3 Le retour des eacutecoliers
[45 minutes] Soit le scheacutema relationnel suivant
IMMEUBLE (ADI NBETAGES DATEC PROP) APPIM (ADI NAPR OCCUP TYPE SUPER ETAGE) PERSONNE (NOM AGE PROF ADR NAPR) EacuteCOLE (NOMEC ADEC DIR) CLASSE (NOMEC NCL MAITRE) ENFANT (NOMP PRENOM AN NOMEC NCL)
1 2 3 4 5 6
Avec la signification suivante
Relation IMMEUBLE
ADI adresse dimmeuble cleacute on fait lhypothegravese pour simplifier que ladresse identifie de maniegravere
unique un immeuble NBETAGES nombre deacutetages dun immeuble
DATEC date de construction (anneacutee)
PROP nom du proprieacutetaire de limmeuble qui est une personne
Relation APPIM (Appartement) ADI
adresse dimmeuble
NAPR numeacutero dappartement
OCCUP occupant de lappartement (nom de la personne ayant signeacute le contrat de location
eacuteventuellement aucun)
TYPE type de lappartement (Studio F2 )
SUPER superficie de lappartement
ETAGE eacutetage ougrave se situe lappartement
Relation PERSONNE
NOM nom de personne cleacute on fait lhypothegravese pour simplifier que ce nom est unique sur lensemble
des personnes que lon considegravere dans la base
AGE acircge de la personne
PROF profession de la personne
ADR adresse de la reacutesidence dune personne il sagit dun immeuble NAPR numeacutero
dappartement
Relation EacuteCOLE
NOMEC nom dune eacutecole cleacute
ADEC adresse dune eacutecole
DIR nom du directeur
Algegravebre relationnelle
99
Relation CLASSE
NOMEC nom dune eacutecole
NCL nom de la classe eg CP1 CE2 CE3 etc MAITRE nom
de linstituteur
Relation ENFANT
NOMP nom de la personne responsable de lenfant cleacute eg pegravere megravere etc
PRENOM preacutenom de lenfant
AN anneacutee de naissance
NOMEC nom dune eacutecole
NCL nom de la classe
La relation IMMEUBLE deacutecrit un ensemble dimmeubles Chaque immeuble a un proprieacutetaire La relation APPIM
deacutecrit pour chaque immeuble lensemble des appartements qui le compose (il y a au mimimum un appartement
par immeuble) Chaque appartement peut heacuteberger plusieurs personnes mais il y en a une qui est responsable
(par exemple la personne qui a signeacute le contrat de location) et qui est deacutesigneacutee par lattribut OCCUP Si
lappartement est inoccupeacute il prend la valeur NULL La relation PERSONNE deacutecrit un ensemble de personnes
ADR et NAPR repreacutesentent ladresse ougrave reacuteside une personne Une personne peut avoir plusieurs enfants deacutecrits
par la relation ENFANT Pour simplifier on ne considegravere que les enfants allant agrave leacutecole primaire Les eacutecoles et
les classes sont deacutecrites dans les relations EacuteCOLE et CLASSE chaque eacutecole est composeacutee au minimum dune
classe et chaque classe est au moins freacutequenteacutee par un enfant
Question 1
Donner ladresse des immeubles ayant plus de 10 eacutetages et construits avant 1970
Question 2
Donner les noms des personnes qui habitent dans un immeuble dont ils sont proprieacutetaires
Question 3
Donner les noms des personnes qui ne sont pas proprieacutetaires
Question 4
Donner les adresses des immeubles posseacutedeacutes par des informaticiens dont lacircge est infeacuterieur agrave 40 ans
Question 5
Donner la liste des occupants (nom acircge profession) des immeubles posseacutedeacutes par DUPONT
Question 6
Donner le nom et la profession des proprieacutetaires dimmeubles dans lesquels il y a des appartements vides
Question 7
Donner les noms des maicirctres qui habitent dans le mecircme immeuble (agrave la mecircme adresse) quau moins un de
leurs eacutelegraveves (on suppose que les enfants vivent sous le mecircme toit que leur parents)
Question 8
Donner ladresse de limmeuble la date de construction le type dappartement et leacutetage ougrave habitent chacun
des maicirctres des enfants de DUPONT
Algegravebre relationnelle
100
101
Qestions de synthegravese
Pourquoi est-il fondamental mais difficile de parvenir agrave un MCD correct
Eacutenoncer quelques actions agrave mener pour reacutealiser une speacutecification geacuteneacuterale de lexistant et des besoins
Quest ce qui diffeacuterencie fondamentalement un MCD dun MLD
Questions de synthegravese
102
Quels sont les principaux eacuteleacutements du diagramme de classes UML
Quelles sont les diffeacuterences et points communs entre la diagramme de classe UML et le modegravele E-A
eacutetendu
Questions de synthegravese
103
Quest ce quun domaine
Comment identifie-t-on un attribut dune relation
Comment identifie-t-on un enregistrement dune relation
Questions de synthegravese
104
Quand doit-on ajouter des cleacutes artificielles
Quelle problegraveme pose la redondance et comment le reacutesoudre
A quoi sert le LDD
Questions de synthegravese
105
Quel rapport y-a-t il entre le LDD et le concept de relation
Pourquoi la jointure est-elle un opeacuterateur essentiel
Questions de synthegravese
106
Quels sont les opeacuterateurs algeacutebriques de base Quels sont les autres opeacuterateurs Quest ce qui les diffeacuterencie
Quels sont les opeacuterateurs ensemblistes Quest ce qui les caracteacuterise
Pourquoi la jointure est-elle un opeacuterateur essentiel
Quest ce qui diffeacuterencie une jointure externe dune jointure classique
107
Glossaire
Cleacute artificielle
Une cleacute artificielle est un attribut ajouteacute agrave une relation afin didentifier ses enregistrements On fait appel agrave
une cleacute artificielle lorsque la relation ne comporte aucune cleacute naturelle ou que ses cleacutes naturelles sont jugeacutees
inadapteacutees agrave lidentification au sein de la base de donneacutees
Extension
Lextension est lexplicitation dun domaine par leacutenonciation exhaustive de lensemble des objets du domaine
Elle soppose agrave linstension qui est une description abstraite des caracteacuteristiques du domaine
Exemple bleu rouge vert
Contre-exemple Le domaine des couleurs
Intension
Lintension est lexplicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa
compreacutehension abstraite geacuteneacuterale)
Elle soppose agrave lextension qui est leacutenonciation exhaustive de lensemble des objets du domaine
Exemple Le domaine des couleurs
Contre-exemple bleu rouge vert
108
Signification des abreacuteviations
- ANSI American National Standards Institute
- BD Base de Donneacutees
- E-A Entiteacute-Association
- ISO International Standardization Organization
- LCD Langage de Controcircle de Donneacutees
- LDD Langage de Deacutefinition de Donneacutees
- LMD Langage de Manipulation de Donneacutees
- OMG Object Management Group
- PSM Persistent Stored Modules
- RO Relationnel-Objet
- SGBD Systegraveme de Gestion de Bases de Donneacutees
- SGBDR Systegraveme de Gestion de Bases de Donneacutees Relationnelles
- SQL Structured Query Language
- UML Unified Modeling Language
- XML eXtensible Markup Language
Reacutefeacuterences
[dbdiscocrztfr] httpdbdiscocrztfr3
109
3 - httpdbdiscocrztfr
Bibliographie
[Arribe 2014] ARRIBE THIBAUT 2014 Conception des chaicircnes eacuteditoriales documentariser lactiviteacute et structurer le graphe documentaire pour ameacuteliorer la maicirctrise de la reacuteeacuteditorialisation Universiteacute de Technologie de
Compiegravegne Meacutemoire de Doctorat httpicsutcfr~tha
[Codd70] CODD EF A relational model for large shared data banks Communications de lACM juin 1970
[Delmal01] DELMAL PIERRE SQL2 SQL3 applications agrave Oracle De Boeck Universiteacute 2001
[Gardarin99] GARDARIN GEORGES Bases de donneacutees objet et relationnel Eyrolles 1999
[Gulutzan and Pelzer 1999] GULUTZAN PETER PELZER TRUDY 1999 SQL-99 complete really CMP books
[Muller98] MULLER PA Modeacutelisation objet avec UML Eyrolles 1998
[Roques04] ROQUES PASCAL VALLEacuteE FRANCK UML 2 en action De lanalyse des besoins agrave la conception J2EE
ISBN 2212-11462-1 (3egraveme eacutedition) Paris Eyrolles 2004 385 p architecte logiciel
[Rothenberg et al 1989] ROTHENBERG JEFF WIDMAN LAWRENCE E LOPARO KENNETH A NIELSEN NORMAN R 1989 The nature of modeling Rand vol3027
[Soutou02] SOUTOU CHRISTIAN De UML agrave SQL Conception de bases de donneacutees Eyrolles 2002
[Tardieu83] TARDIEU H ROCHFELD A COLLETI R Meacutethode MERISE Tome 1 Principes et outils Les Editions dOrganisation 1983
Webographie
[w_journaldunetcom(1)] MORLON JEacuteROcircME UML en 5 eacutetapes httpdeveloppeurjournaldunetcomdossiersalg_umlshtml 2004
[w_journaldunetcom(2)] BORDERIE XAVIER Cinq petits conseils pour un scheacutema UML efficace
httpdeveloppeurjournaldunetcomtutorielcpt031013cpt_uml5conseilsshtml 2004
[w_objecteering] Objecteering software httpwwwobjecteeringcom [2002-septembre]
[w_umlfreefr] UML en Franccedilais httpumlfreefr consulteacute en 2002
Questions de synthegravese
110
Index
11 p54 Error Reference source
not found 1N p53 Error Reference source
not found Algegravebre p48 71 71 72 73 74 75
76 76 76 78 79 80 ALTER TABLE p67 68 Analyse p9 11 12 13 Application p6 Association pError Reference
source not found 31 Error
Reference source not found 32 44
Error Reference source not found
53 Error Reference source not
found 53 Error Reference source
not found 54 Error Reference
source not found 54 Attribut p28 32 40 41 41 42 44
51 52 54 Base de donneacutees p17 BD p4
Cardinaliteacute p32 Error
Reference source not found Error
Reference source not found Carteacutesien p74 CHECK p62 63 Classe p27 50 54 Cleacute p41 42 42 44 Cleacute artificielle p42 Cleacute candidate p42 Cleacute primaire p42 42 Cleacute signifiante p42 Codd p39 Composition pError Reference
source not found Error Reference
source not found Conception p9 11
Conceptuel p9 11 13 15 26 27
50 53
CREATE TABLE p59
Creacuteation p58 Deacuteclaratif p58 DELETE p65 66 Diagramme p26 Diffeacuterence p78 Division p79 Domaine p39 48 48 60 61 DROP p67 E-A p32 Enregistrement p40 41 Externe p15 76 FOREIGN KEY p62 63 INSERT p65 65 Instance p15 Interne p15 Intersection p78 Jointure p75 76 76 Langage p8 65 LDD p8 58 67 Lien p44 LMD p8 65 Logique p38 38 39 39 41 50
53 Manipulation p71 Meacutethode p30 Modegravele p13 23 38 39 39 41 45
46 Modeacutelisation p42 Modification p67 NM p53 N M pError Reference source not
found Naturelle p76 NOT NULL p62 63 Null p61 OMG p27 Opeacuteration p30 48 Passage p50 53 PostgreSQL p17
PRIMARY KEY p62 63 Produit p48 48 74
Projection p72 Proprieacuteteacute p28 32 Reacutefeacuterence p44 REFERENCES p62 63 Relation p40 41 41 42 44 44 45
48 Relationnel p5 Error
Reference source not found 38 38
39 39 41 45 46 48 48 50 50
51 Error Reference source not
found 52 53 53 Error Reference
source not found 53 Error Reference source not found 54
Error Reference source not found 54 71
71 76 80 Relationnel-objet p38 39 Requecircte p65 Restriction p73 Scheacutema p15 45 46 SGBD p5 Speacutecifications p12 SQL p8 58 65 67 Suppression p67 Table p58 67 Tuple p40 Type p60 61 UML p13 26 27 27 28
Error Reference source not found
30 31 Error Reference source not found 32 50
50 51 Error Reference source not
found 52 53 53 Error Reference source not
found 53 Error Reference source not
found 54 Error Reference source not found
54 Union p78 UNIQUE p62 63 UPDATE p65 66
wwwsambaconsultantscom 111
Contenus annexes
- Deacutefinition du mouvement NoSQL
Deacutefinition
Le NoSQL regroupe de nombreuses bases de donneacutees reacutecentes pour la plupart qui se caracteacuterisent par une logique de repreacutesentation de donneacutees non relationnelle et qui noffrent donc pas une interface de requecirctes en SQL
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-dedonnees-nosql4
NoSQL signifie Not Only SQL et non pas No SQL il sagit de compleacutements aux SGBDR pour des
besoins speacutecifiques et non de solutions de remplacement Exemtple
BD orienteacutee cleacute-valeur
BD orienteacutee graphe
BD orienteacutee colonne
BD orienteacutee document
Comtpleacutement
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql5
- Transformation des meacutethodes par des vues
Meacutethode
Lorsquune meacutethode est speacutecifieacutee sur un diagramme UML pour une classe C si cette meacutethode est une fonction
relationnelle (elle renvoie une unique valeur et elle peut ecirctre reacutesolue par une requecircte SQL) alors on creacutee une
vue qui reprend les attributs de la classe C et ajoute des colonnes calculeacutees pour les meacutethodes
Remarque Atributs deacuteriveacutes
Les attributs deacuteriveacutes eacutetant apparenteacutes agrave des meacutethodes ils peuvent eacutegalement ecirctre geacutereacutes par des vues
Contenus annexes
112
- Composition
Deacutefinition Association de comtposition
On appelle composition une association particuliegravere qui possegravede les proprieacuteteacutes suivantes
La composition associe une classe composite et des classes parties tel que tout objet partie appartient
agrave un et un seul objet composite Cest donc une association 1N (voire 11)
La composition nest pas partageable donc un objet partie ne peut appartenir quagrave un seul objet
composite agrave la fois
Le cycle de vie des objets parties est lieacute agrave celui de lobjet composite donc un objet partie disparaicirct
quand lobjet composite auquel il est associeacute disparaicirct
Remarque
La composition est une association particuliegravere (binaire de cardinaliteacute contrainte)
La composition nest pas symeacutetrique une classe joue le rocircle de conteneur pour les classes lieacutees elle
prend donc un rocircle particulier a priori
La composition est une agreacutegation avec des contraintes suppleacutementaires (non partageabiliteacute et cycle
de vie lieacute)
Image 14 Notation de la composition en UML
Atention Composition et cardinaliteacute
La cardinaliteacute cocircteacute composite est toujours de exactement 1
Cocircteacute partie la cardinaliteacute est libre elle peut ecirctre 01 1 ou bien 1
Image 15 Un livre
On voit bien ici quun chapitre na de sens que faisant partie dun livre quil ne peut exister dans deux livres
diffeacuterents et que si le livre nexiste plus les chapitres le composant non plus
Remarque Comtposition et entiteacutes faibles
Syntaxe
Contenus annexes
113
wwwsambaconsultantscom
La composition permet dexprimer une association analogue agrave celle qui relie une entiteacute faible agrave une entiteacute
identifiante en modeacutelisation E-A Lentiteacute de type faible correspond agrave un objet partie et lentiteacute identifiante
agrave un objet composite
Conseil Comtposition et atribut multivalueacute
Une composition avec une classe partie doteacutee dun seul attribut peut seacutecrire avec un attribut multivalueacute
Un attribut composeacute et multivalueacute peut seacutecrire avec une composition
Ratptpel Voir aussi
Attributs
Agreacutegation - p100
- Agreacutegation
Deacutefinition Association dagreacutegation
Lagreacutegation est une association particuliegravere utiliseacutee pour preacuteciser une relation toutpartie (ou
ensembleeacuteleacutement) on parle dassociation meacutereacuteologique
Elle possegravede la proprieacuteteacute suivante Lagreacutegation associe une classe agreacutegat et des classes parties tel que tout
objet partie appartient agrave au moins un objet agreacutegat
Remarque
Lagreacutegation est une association particuliegravere (binaire de cardinaliteacute libre)
Lagreacutegation nest pas symeacutetrique Syntaxe
Image 16 Notation de lagreacutegation en UML
La cardinaliteacute peut ecirctre exprimeacutee librement en particulier les instances de la classe Eacuteleacutement peuvent ecirctre
associeacutees agrave plusieurs instances de la classe Ensemble et mecircme de plusieurs classes
Atention
Lagreacutegation garde toutes les proprieacuteteacutes dune association classique (cardinaliteacute cycle de vie
etc) elle ajoute simplement une terminologie un plus preacutecise via la notion de toutpartie
- Explicitation des associations
Syntaxe Sens de lecture
Il est possible dajouter le sens de lecture du verbe caracteacuterisant lassociation sur un diagramme de classe
UML afin den faciliter la lecture On ajoute pour cela un signe lt ou gt (ou un triangle noir) agrave cocircteacute du nom
de lassociation
Contenus annexes
114
Syntaxe Rocircle
Il est possible de preacuteciser le rocircle joueacute par une ou plusieurs des classes composant une association afin den
faciliter la compreacutehension On ajoute pour cela ce rocircle agrave cocircteacute de la classe concerneacutee (parfois dans un petit
encadreacute colleacute au trait de lassociation
Exemtple
Image 17 Rocircle et sens de lecture sur une association
Deacutefinition Association reacuteflexive
Une association reacuteflexive est une association qui associe une classe avec elle-mecircme
Lexplicitation des associations est particuliegraverement utile dans le cas des associations reacuteflexives
- Associations ternaires
Image 18 Notation dune association ternaire
Conseil Ne tpas abuser des associations ternaires
Il est toujours possible de reacuteeacutecrire une association ternaire avec trois associations binaires en transformant
lassociation en classe
Conseil Pas de degreacute sutpeacuterieur agrave 3
En pratique on nutilise jamais en UML dassociation de degreacute supeacuterieur agrave 3
- Transformation des agreacutegations
Ratptpel Agreacutegation
Les associations de type agreacutegation se traitent de la mecircme faccedilon que les associations classiques
Syntaxe
Contenus annexes
115
wwwsambaconsultantscom
Graphique 12 Agreacutegation 1N
Classe1(ab)
Classe2(cda=gtClasse1)
Graphique 13 Agreacutegation NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
- Transformation des compositions
Meacutethode
Une composition
est transformeacutee comme une association 1N
puis on ajoute agrave la cleacute de la classe partie (dite cleacute locale) la cleacute eacutetrangegravere vers la classe composite pour
construire une cleacute primaire composeacutee
Graphique 14 Composition
Classe1(ab)
Classe2(ca=gtClasse1d)
Remarque Cleacute locale
Pour identifier une classe partie dans une composition on utilise une cleacute locale concateacuteneacutee agrave la cleacute eacutetrangegravere
vers la classe composite afin dexprimer la deacutependance entre les deux classes
Si une cleacute naturelle globale permet didentifier de faccedilon unique une partie indeacutependamment du tout on
preacutefeacuterera la conserver comme cleacute candidate plutocirct que de la prendre pour cleacute primaire
Contenus annexes
116
Si on la choisit comme cleacute primaire cela revient agrave avoir transformeacute la composition en agreacutegation en redonnant
une vie propre aux objets composants
Comtpleacutement Comtposition et entiteacutes faibles en E-A
Une composition est transformeacutee selon les mecircmes principes quune entiteacute faible en E-A
Comtpleacutement Atributs multivalueacutes et comtposeacutes
La transformation dun attribut composeacute multivalueacute donne un reacutesultat eacutequivalent agrave la transformation dune
composition
Classe1
a key b [0N] -b1 -b2
Graphique 15 Composition et attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
La transformation dune composition avec un seul attribut pour la classe composante donne un reacutesultat
eacutequivalent agrave la transformation dun attribut multivalueacute
Graphique 16 Composition et attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Ratptpel Voir aussi
Transformation des attributs
- Contrainte de cardinaliteacute minimale 1 dans les associations 1N
Ratptpel
Transformation des associations 1N
Meacutethode
a key
Classe1
0 N
( b1b2) local key
Contenus annexes
117
wwwsambaconsultantscom
Classe1
1 association 1N
Classe2
a key
b c key
d
Graphique 17 Association 1N
Si la cardinaliteacute est exactement 1 (11) cocircteacute 1 alors on ajoutera une contrainte de non nulliteacute sur la
cleacute eacutetrangegravere
si la cardinaliteacute est au moins 1 (1N) cocircteacute N on ajoutera une contrainte dexistence de tuples
reacutefeacuterenccedilant pour chaque tuple de la relation reacutefeacuterenceacutee
Classe1(ab)
Classe2(cda=gtClasse1)
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Graphique 18 Classe dassociation (1N)
Classe1(ab)
Classe2(cda=gtClasse1 e f) avec e KEY
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Comtpleacutement
Projection
- Contrainte de cardinaliteacute minimale 1 dans les associations NM
Ratptpel
Transformation des associations NM
Meacutethode
Si la cardinaliteacute est exactement au moins 1 (1N) dun cocircteacute etou de lautre alors des contraintes
dexistence simultaneacutee de tuple devront ecirctre ajouteacutee
Ce nest pas neacutecessaire si la cardinaliteacute est 0N
a key b
Classe1
c key d
Classe2
1 N 1
e loc al key f
Cl-A ssoc
Contenus annexes
118
Graphique 19 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Graphique 20 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Cl-Assoc(a=gtClasse1c=gtClasse2ef)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Comtpleacutement
Projection
- Transformation des associations 11 (approche geacuteneacuterale) Il existe deux solutions pour transformer une association 11
Avec deux relations on traite lassociation 11 comme une association 1N puis lon ajoute une
contrainte UNIQUE sur la cleacute eacutetrangegravere pour limiter la cardinaliteacute maximale agrave 1
Avec une seule relation on fusionne les deux classes en une seule relation
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 21 Association 11
Meacutethode Avec deux relations (cleacute eacutetrangegravere)
Une des deux relations est choisie pour porter la cleacute eacutetrangegravere
on ajoute les contraintes UNIQUE ou KEY (cleacute candidate) sur la cleacute eacutetrangegravere et si neacutecessaire une
contrainte imposant linstanciation simultaneacutee des deux relations
Classe1(abc=gtClasse2) avec c UNIQUE ou KEY
Classe2(cd)
a key b
Classe1
c key d
Classe2
1 N 1 N
e key f
ssoc Cl-A
Contenus annexes
119
wwwsambaconsultantscom
Contrainte (eacuteventuellement) PROJ(Classe1c)=PROJ(Classe2c) ou
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE ou KEY
Contrainte (eacuteventuellement) PROJ(Classe1a)=PROJ(Classe2a)
Meacutethode Avec une relation (fusion)
On creacuteeacute une seule relation contenant lensemble des attributs des deux classes on
choisit une cleacute parmi les cleacutes candidates
Classe12(abcd) avec c UNIQUE ou KEY ou
Classe21(cdab) avec a UNIQUE ou KEY
RemarqueFusion des relations dans le cas de la traduction de lassociation 11
Ce choix entre les deux meacutethodes sera conduit par une appreacuteciation du rapport entre
La complexiteacute introduite par le fait davoir deux relations lagrave ou une suffit
La pertinence de la seacuteparation des deux relations dun point de vue seacutemantique
Les pertes de performance dues agrave leacuteclatement des relations
Les pertes de performance dues au fait davoir une grande relation
Les questions de seacutecuriteacute et de sucircreteacute factoriseacutees ou non au niveau des deux relations
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 10
Fondamental SQL
SQL est le langage consacreacute aux SGBD relationnels et relationnels-objet
Il permet de
creacuteer des tables en deacutefinissant le domaine de chaque colonne
inseacuterer des lignes dans les tables
lire les donneacutees entreacutees dans la base de donneacutees
Exemtple Creacuteation de table en SQL (deacutefinition du scheacutema de donneacutees)
CREATE TABLE Etudiant ( NumEtu
integer PRIMARY KEY Nom varchar Ville varchar)
1 2 3 4
Cette instruction permet de creacuteer une relation Etudiant comportant les proprieacuteteacutes NumEtu Nom et Ville
de domaines respectivement entier texte et texte
Exemtple Insertion de ligne en SQL (creacuteation de donneacutees)
INSERT INTO Etudiant (NumEtu Nom Ville) VALUES (1 Holmes Londres) 1
Cette instruction permet de creacuteer leacutetudiant numeacutero 1 de nom Holmes qui habite la ville de Londres
Exemtple Manitpulation de donneacutees en SQL (extploitation des donneacutees)
SELECT Nom FROM Etudiant WHERE Ville = Compiegravegne
1 2 3
Cette instruction permet de rechercher les noms de tous les eacutetudiants habitant la ville de Compiegravegne
Comtpleacutement Autres langages de donneacutees
XQuery est un langage de donneacutees mobiliseacute dans les bases de donneacutees arborescentes XML
Les bases NoSQL proposent des langages de donneacutees speacutecifiques souvent inspireacutes du
SQL Par exemple le langage de MongoDB permet de manipuler une base de contenus JSON
2 Approche geacuteneacuterale pour la conception des bases de
donneacutees
a) Exercice Eacutetapes de la conception dune base de donneacutees
relationnelle Mettre dans lordre les eacutetapes de conception suivantes
1 Creacuteation du code SQL pour un SGBDR
2 Modeacutelisation conceptuelle en UML ou E-A
Introduction geacuteneacuterale aux bases de donneacutees
11
3 Eacutelaboration du modegravele logique en relationnel
4 Analyse de la situation existante et des besoins
Reacuteponse ___ ___ ___ ___
b) Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
Meacutethode Eacutetatpes de la concetption dune base de donneacutees
1 Analyse de la situation existante et des besoins (clarification) 2 Creacuteation dun modegravele conceptuel qui permet de repreacutesenter tous les aspects importants du problegraveme 3 Traduction du modegravele conceptuel en modegravele logique (et normalisation de ce modegravele logique) 4 Impleacutementation dune base de donneacutees dans un SGBD agrave partir du modegravele logique (et optimisation)
Graphique 1 Processus de conception dune base de donneacutees
On distingue quatre eacutetapes dans la conception dune base de donneacutees
Lanalyse
Elle consiste agrave eacutetudier le problegraveme et agrave consigner dans un document la note de clarification les
besoins les choix les contraintes
La modeacutelisation conceptuelle
Elle permet de deacutecrire le problegraveme poseacute de faccedilon non-formelle (en geacuteneacuterale graphique) en prenant
des hypothegraveses de simplification Ce nest pas une description du reacuteel mais une repreacutesentation
simplifieacutee dune reacutealiteacute
La modeacutelisation logique
Ele permet de deacutecrire une solution en prenant une orientation informatique geacuteneacuterale (type de SGBD
typiquement) formelle mais indeacutependamment de choix dimpleacutementation speacutecifiques
Limpleacutementation
Elle correspond aux choix techniques en terme de SGBD choisi et agrave leur mise en œuvre
(programmation optimisation)
Fondamental
Bien analyser le problegraveme poseacute en amont
BD solution proposeacutee
Domaine problegraveme poseacute
Modegravele Conceptuel
Modegravele Logique
Repreacutesenter
Impleacutementer
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 12
Bien modeacuteliser le problegraveme au niveau conceptuel avant de passer au niveau logique et agrave
limpleacutementation
Conseil Limtportance de leacutetatpe danalyse
La premiegravere eacutetape de la conception repose sur lanalyse de lexistant et des besoins De la qualiteacute de la
reacutealisation de cette premiegravere eacutetape deacutependra ensuite la pertinence de la base de donneacutees par rapports aux
usages Cette premiegravere eacutetape est donc essentielle et doit ecirctre meneacutee avec soins
Si la premiegravere eacutetape est fondamentale dans le processus de conception elle est aussi la plus deacutelicate En effet
tandis que des formalismes puissants existent pour la modeacutelisation conceptuelle puis pour la modeacutelisation
logique la perception de lexistant et des besoins reste une eacutetape qui repose essentiellement sur lexpertise
danalyse de lingeacutenieur
Conseil Limtportance de leacutetatpe de modeacutelisation concetptuelle
Eacutetant donneacutee une analyse des besoins correctement reacutealiseacutee la seconde eacutetape consiste agrave la traduire selon un
modegravele conceptuel Le modegravele conceptuel eacutetant formel il va permettre de passer dune speacutecification en
langage naturel et donc soumise agrave interpreacutetation agrave une speacutecification non ambiguumle Le recours aux
formalismes de modeacutelisation tels que E-A ou UML est donc une aide fondamentale pour parvenir agrave une
repreacutesentation qui ne sera plus lieacutee agrave linterpreacutetation du lecteur
La traduction dun cahier des charges speacutecifiant lexistant et les besoins en modegravele conceptuel reste neacuteanmoins
une eacutetape deacutelicate qui va conditionner ensuite lensemble de limpleacutementation informatique En effet les eacutetape
suivantes sont plus meacutecaniques dans la mesure ougrave un modegravele logique est deacuteduit de faccedilon systeacutematique du
modegravele conceptuel et que limpleacutementation logicielle est eacutegalement reacutealiseacutee par traduction directe du modegravele
logique
RemarqueLes eacutetatpes de traduction logique et dimtpleacutementation
Des logiciels speacutecialiseacutes (par exemple Objecteering [w_objecteering]) sont capables agrave partir dun modegravele
conceptuel dappliquer des algorithmes de traduction qui permettent dobtenir directement le modegravele logique
puis les instructions pour la creacuteation de la base de donneacutees dans un langage orienteacute donneacutees tel que SQL
Lexistence de tels algorithmes de traduction montre que les eacutetapes de traduction logique et dimpleacutementation
sont moins complexes que les preacuteceacutedentes car plus systeacutematiques
Neacuteanmoins ces eacutetapes exigent tout de mecircme des compeacutetences techniques pour optimiser les modegraveles logiques
(normalisation) puis les impleacutementations en fonction dun contexte de mise en œuvre mateacuteriel logiciel et
humain
c) Qatre eacutetapes pour reacuteduire la complexiteacute La reacutealisation dune base de donneacutees est une tacircche complexe le deacutecoupage en quatre eacutetapes permet de geacuterer
cette complexiteacute
Clarification ModeacutelisationConceptuelle ModeacutelisationLogique Im pleacutem entation
Conception en quatre eacutetapes
Introduction geacuteneacuterale aux bases de donneacutees
13
Lideacutee geacuteneacuterale est de ne pas meacutelanger la nature des tacircches typiquement on ne veut pas en mecircme temps
se poser des questions geacuteneacuterales relatives aux besoins (ce que je veux faire) et des questions techniques tregraves
speacutecifiques (comment repreacutesenter telle information)
Meacutethode
Lapproche est donc
de regarder agrave gauche on regarde le monde quand on clarifie on regarde la note de clarification
quand on fait le MCD on regarde le MCD quand on fait le MLD on regarde le MLD quand on
impleacutemente
et de ne pas regarder trop loin on anticipe deacutejagrave le MCD pendant la clarification mais on ne se
preacuteoccupe pas de questions dimpleacutementation quand on fait le MLD on ne se pose plus de question
sur le monde la clarification et le MCD ont ducirc deacutejagrave reacutepondre quand on impleacutemente on ne se pose
plus de question de modeacutelisation on soccupe des programmes de la machine
Fondamental
On peut toujours revenir sur une eacutetape la conception est iteacuterative mais on ne doit pas tout le
temps se poser tous les problegravemes en mecircme temps
d) Eacuteleacutements pour lanalyse de lexistant et des besoins La phase danalyse de lexistant et des besoins est une phase essentielle et complexe Elle doit aboutir agrave des
speacutecifications geacuteneacuterales qui deacutecrivent en langage naturel les donneacutees manipuleacutees et les traitements agrave
effectuer sur ces donneacutees
On se propose de donner une liste non exhaustive dactions agrave mener pour reacutediger de telles speacutecifications
Meacutethode Lanalyse de documents existants
La conception dune base de donneacutees sinscrit geacuteneacuteralement au sein dusages existants Ces usages sont
geacuteneacuteralement au moins en partie instrumenteacutes agrave travers des documents eacutelectroniques ou non (papier
typiquement) Il est fondamental danalyser ces documents et de recenser les donneacutees quils manipulent
Exemtple Exemtples de document existants agrave analyser
Fichiers papiers de stockage des donneacutees (personnel produits etc)
Formulaires papiers denregistrement des donneacutees (fiche didentification dun salarieacute fiche de
description dun produit bon de commande etc)
Documents eacutelectroniques de type traitement de texte (lettres mailing proceacutedures etc)
Documents eacutelectroniques de type tableurs (bilans statistiques calculs etc)
Bases de donneacutees existantes agrave remplacer ou avec lesquelles saccorder (gestion des salaires de la
production etc)
Intranet dentreprise (information teacuteleacutechargement de documents etc)
etc
Meacutethode Le recueil dextpertise meacutetier
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 14
Les donneacutees que la base va devoir manipuler sont toujours relatives aux meacutetiers de lentreprise et il existe
des experts qui pratiquent ces meacutetiers Le dialogue avec ces experts est une source importante dinformations
Il permet eacutegalement de fixer la terminologie du domaine
Exemtple Exemtples dextperts agrave consulter
Praticiens (secreacutetaires ouvrier controcircleurs etc)
Cadres (responsables de service contre-maicirctres etc)
Experts externes (clients fournisseurs etc)
etc
Meacutethode Le dialogue avec les usagers
La base de donneacutees concerne des utilisateurs cibles cest agrave dire ceux qui produiront et consommeront
effectivement les donneacutees de la base Il est neacutecessaire de dialoguer avec ces utilisateurs qui sont les
deacutetenteurs des connaissances relatives aux besoins reacuteels lieacutes agrave leur reacutealiteacute actuelle (aspects de lorganisation
fonctionnant correctement ou deacutefaillants) et agrave la reacutealiteacute souhaiteacutee (eacutevolutions lacunes etc)
Exemtple Exemtples dutilisateurs avec qui dialoguer
Personnes qui vont effectuer les saisies dinformation (agrave partir de quelles sources Quelle est leur
responsabiliteacute etc)
Personnes qui vont consulter les informations saisies (pour quel usage pour quel destinataire etc)
Personnes qui vont mettre agrave jour les informations (pour quelles raisons comment le processus est
enclencheacute etc)
etc
Meacutethode Leacutetude des autres systegravemes informatiques existants
la base de donneacutees va geacuteneacuteralement (et en fait quasi systeacutematiquement aujourdhui) sinseacuterer parmi un
ensemble dautres logiciels informatiques travaillant sur les donneacutees de lentreprise Il est important danalyser
ces systegravemes afin de mieux comprendre les meacutecanismes existants leurs forces et leurs lacunes et de preacuteparer
linteacutegration de la base avec ces autres systegravemes Une partie de ces systegravemes seront dailleurs souvent
eacutegalement des utilisateurs de la base de donneacutees tandis que la base de donneacutees sera elle mecircme utilisatrice
dautre systegravemes
Exemtple Exemtples dautres systegravemes coexistants agrave eacutetudier
Autres bases de donneacutees (les donneacutees sont elle disjointes ou partiellement communes avec celles de la
base agrave concevoir quelles sont les technologies logicielles sur lesquelles reposent ces BD etc)
Systegravemes de fichiers classiques (certains fichiers ont-ils vocations agrave ecirctre supplanteacutes par la base agrave ecirctre
geacuteneacutereacutes par la base agrave alimenter la base etc)
Applications (ces applications ont elles besoins de donneacutees de la base peuvent-elles lui en fournir
etc)
etc
Comtpleacutement Meacutethodes danalyse
Il existe des outils et meacutethodes danalyse en ingeacutenierie comme lanalyse fonctionnelle (AF) qui deacutepassent le
cadre de la conception des bases de donneacutees mais sont tout agrave fait compleacutementaires
Introduction geacuteneacuterale aux bases de donneacutees
15
e) Modeacutelisation conceptuelle de donneacutees Lobjection du modegravele conceptuel est de repreacutesenter le problegraveme agrave laide de repreacutesentations graphiques et
partiellement formelles
Les principales caracteacuteristiques du modegravele conceptuel sont
Une repreacutesentation graphique simple
Une puissance dexpression eacuteleveacutee pour un nombre de symboles raisonnables
Une lecture accessible agrave tous et donc un bon outil de dialogue entre les acteurs techniques et non
techniques
Une formalisation peu ambigueuml et donc un bon outil de speacutecification deacutetailleacutee
Remarque
Le modegravele nest pas encore formel donc certaines repreacutesentations peuvent ecirctre eacutequivoques mecircme si on a
leveacute de tregraves nombreuses ambiguiumlteacutes
E-A
La modeacutelisation conceptuelle en bases de donneacutees relationnelle eacutetait agrave lorigine faite avec le formalisme E-A
de la meacutethode MERISE
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 16
Modegravele E-A gestion de projets
UML
UML est un autre langage de modeacutelisation plus reacutecent que E-A et couvrant un spectre plus large que les
bases de donneacutees En tant que standard de lOMG et en tant que outil tregraves utiliseacute pour la programmation
orienteacutee objet il a supplanteacute la modeacutelisation E-A
Remarque
En BD on utilise uniquement le diagramme de classe dUML pour modeacuteliser conceptuellement les donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 17
Modegravele UML gestion de projets
f) Modeacutelisation logique de donneacutees
Deacutefinition Modegravele logique de donneacutees
Un modegravele logique de donneacutees est une description au moyen dun langage formel dun ensemble de donneacutees
Un scheacutema permet de deacutecrire la structure dune base de donneacutees en deacutecrivant lensemble des types de
donneacutees de la base Une instance de base de donneacutees est constitueacutee dun ensemble de donneacutees qui respectent
le scheacutema de la base
Synonyme scheacutema de donneacutees scheacutema
Exemtple Modegravele logique de donneacutees relationnel
Un modegravele logique de donneacutees relationnel permet de repreacutesenter une base de donneacutees relationnelles cest agrave
dire des tables des proprieacuteteacutes des domaines
Exemtple Scheacutema dune relation
Espece(nomchaicircne eucaryotebooleacuteen multicellulairebooleacuteen proprieacuteteacutechaicircne) 1
Exemtple Scheacutema dune base de donneacutees avec tplusieurs relations
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 18
Etudiant (numentier nomchaicircne villechaicircne) Module(numentier titrechaicircne) Inscription(numetuentier nummodentier anneacuteeentier(4))
1 2 3
Instance de base de donneacutees
Etudiant Module
172 Dupont Lille
173 Durand Paris
174 Martin Isabelle
1 SGBD
2 OS
Inscription 172 1 2016 172 2 2016 173 1 2015 174 2 2017
Comtpleacutement Exemtple de formalismes de modeacutelisation logique
Le modegravele CODASYL anteacuterieur au modegravele relationnel est un modegravele hieacuterarchique (Tardieu 1983
[Tardieu83])
Le modegravele relationnel (tabulaire) est le modegravele dominant agrave la base des SGBDR
Le modegravele relationnel-objet (adaptation des modegraveles relationnels et objets au cadre des SGBD) est
actuellement en croissance
Dautres modegraveles (document graphe ) se deacuteveloppent dans le cadre du mouvement NoSQL
Comtpleacutement Voir aussi
Bregraveve introduction aux bases de donneacutees NoSQL - p98
g) Synthegravese Les trois niveaux de conception Niveau Conceptuel
Modegravele conceptuel graphique -
Exemples E-A
UML
Niveau Logique
Scheacutema logique indeacutependant dun SGBD -
Exemples Relationnel
Objet
Relationnel-Objet
Graphe
Document
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 19
Niveau Informatique
Impleacutementation pour un SGBD particulier -
Exemples Oracle
MySQL
PostgreSQL
DB2
Access
SQLServer
MongoDB
Cassandra
Modeacutelisation Modeacutelisation Im pleacutem entation Clarification Conceptuelle
Logique
AF UML Relationnel SQL Conception en quatre eacutetapes exemple de
formalismes
B Exercices
1 Deacutecouverte dune base de donneacutees relationnelle
Cette seacuterie dexercices est destineacutee agrave faire expeacuterimenter un SGBDR afin de se familiariser avec les concepts
classiques des bases de donneacutees relationnelles
Pour la reacutealisation de cet exercice se connecter sur le site dbdiscocrztfr et conserver la fenecirctre du navigateur
ouverte
Db Discodbdiscocrztfr
Objectifs
Deacutecouvrir le modegravele relationnel Deacutecouvrir un SGBDR Deacutecouvrir le langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 20
a) Notion de table
Creacuteer sa premiegravere table Une base de donneacutees relationnelle est principalement constitueacutee de tables (ou laquo relations raquo dougrave le nom
de relationnel) Une table est basiquement un eacuteleacutement dorganisation de linformation constitueacute de colonnes
(ou attributs) et de lignes (ou enregistrements)
Nous allons dans un premier temps creacuteer le scheacutema dune table cest agrave dire deacutefinir ses colonnes Pour cela
nous utiliserons linstruction SQL LDD laquo CREATE raquo
Question 1
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
CREATE TABLE tEtu ( pk_numSecu CHAR(13) PRIMARY KEY k_numEtu
VARCHAR(20) UNIQUE NOT NULL nom
VARCHAR(50) prenom VARCHAR(50))
1 2 3 4 5
Introduction geacuteneacuterale aux bases de donneacutees
21
Alimenter la table Une fois les colonnes de la table deacutefinies nous pouvons en deacuteclarer les lignes Nous utilisons pour cela
linstruction SQL LMD laquo INSERT raquo
Question 2
Exeacutecuter les deux instructions suivantes et deacutecrire ce quelles font
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 AB3937098X Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2820475001124 XGB67668 Durand Anne)
1 2 3 4
Interroger la table Une fois une table creacuteeacutee il est possible agrave tout moment den inspecter le contenu Nous utilisons pour cela
linstruction SQL LMD laquo SELECT raquo
Question 3
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT pk_numSecu k_numEtu nom prenom FROM tEtu
1 2
Question 4
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT nom prenom FROM tEtu WHERE pk_numSecu=2820475001124
1 2 3
b) Notion de contraintes
Contrainte de domaine Lorsque lon deacutefinit une table on deacutefinit eacutegalement des contraintes sur cette table qui serviront agrave controcircler
son inteacutegriteacute par rapport agrave des regravegles que lon aura fixeacutees
Cest notamment le cas des contraintes de domaine qui permettent de veacuterifier quune colonne prend ses
valeurs parmi un ensemble deacutetermineacute (les chaicircnes de 10 caractegraveres au plus les entier de 1 agrave 1000 etc)
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi le systegraveme renvoie une erreur
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (XXXXXXXXXXXXXXX XXXXXX Dupont Pierre)
1 2
Question 2
Donner un exemple de contrainte qui nest pas formuleacutee dans la deacutefinition de la table tEtu et que lon aurait
pu souhaiter
Indice
Pour indiquer quun eacuteleacutement est obligatoire on ajoute la clause NOT NULL apregraves la deacutefinition de son domaine dans linstruction CREATE TABLE
Introduction geacuteneacuterale aux bases de donneacutees
22
Contraintes de cleacute Les contraintes de cleacute se composent de contraintes duniciteacute et de contraintes de non nulliteacute Elles
permettent dassurer que toutes les valeurs dune colonne seront diffeacuterentes pour chaque ligne
Question 3
Exeacutecuter les trois instructions suivantes (les unes apregraves les autres) et expliquer ce qui se passe
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 HGYT67655Y Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 XGB67668 Durand Anne) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 HGYT67655Y Duchemin Aline)
1 2 3 4 5 6
Question 4
Explorer le contenu de votre table en exeacutecutant linstruction suivante et veacuterifier vos explications preacuteceacutedentes
SELECT FROM tEtu
1 2
Question 5
Pourrait-on inseacuterer dans la table une seconde personne qui aurait le preacutenom Aline et le nom Duchemin
Pourquoi
c) Notion de reacutefeacuterences
Cleacute eacutetrangegravere Une base de donneacutees est en geacuteneacuteral constitueacutee de plusieurs tables Ces tables se reacutefeacuterencent entre elles en
utilisant une cleacute eacutetrangegravere cest agrave dire quune des colonnes de la table est utiliseacutee pour faire reacutefeacuterence agrave la
colonne dune autre table
On va agrave preacutesent creacuteer une seconde table qui permettra dassocier des Uniteacutes de Valeurs (UVs) aux eacutetudiants
puis inseacuterer des valeurs dans cette table
CREATE TABLE tUv ( pk_code
CHAR(4) NOT NULL fk_etu
CHAR(13) NOT NULL PRIMARY KEY (pk_code fk_etu) FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu))
1 2 3 4 5
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF26 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF29 1800675001066)
1 2 3 4 5 6
Question 1
Introduction geacuteneacuterale aux bases de donneacutees
23
Expliciter ce quexprime le contenu de la table tUv
Contraintes dinteacutegriteacute reacutefeacuterentielle Lorsque nous avons deacutefini la table tUv nous avons deacutefini une contrainte suppleacutementaire dite dinteacutegriteacute
reacutefeacuterentielle contrainte de type FOREIGN KEY
Question 2
En exeacutecutant les instructions suivantes expliquer quel est le rocircle dune contrainte dinteacutegriteacute reacutefeacuterentielle
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 2810592012232) INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1700792001278)
1 2 3 4
d) Projection restriction et jointure Linstruction SELECT du langage SQL LMD nous donne de larges possibiliteacutes pour interroger les tables dune
base de donneacutees Cette instruction se fonde notamment sur les opeacuterations matheacutematiques de lalgegravebre
relationnelle dont les principales sont la projection la restriction le produit et la jointure
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi cest une projection
SELECT nom prenom FROM tEtu
1 2
Question 2
Exeacutecuter linstruction suivante et expliquer pourquoi cest une restriction
SELECT FROM tEtu WHERE nom=Dupont
1 2 3
Question 3
Exeacutecuter linstruction suivante et expliquer pourquoi cest un produit (carteacutesien)
SELECT FROM tEtutUv
1 2
Question 4
Exeacutecuter linstruction suivante et expliquer pourquoi cest une jointure
SELECT FROM tEtu JOIN tUv ON pk_numSecu=fk_etu
1 2
Question 5
Exeacutecuter linstruction suivante et montrer quune jointure est la composition dun produit et dune restriction
SELECT FROM tEtutUv WHERE pk_numSecu=fk_etu
1 2 3
Introduction geacuteneacuterale aux bases de donneacutees
24
e) Fonctions et agreacutegats Linstruction SELECT permet eacutegalement deffectuer des calculs qui portent sur plusieurs lignes ce que lon
appelle des agreacutegats
Question 1
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT COUNT(pk_code) FROM tUv
1 2
WHERE fk_etu=1800675001066 3
Question 2
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT fk_etu COUNT(pk_code) FROM tUv GROUP BY fk_etu
1 2 3
Question 3
Compleacuteter la requecircte SQL suivante afin quelle renvoie pour chaque UV le nombre deacutetudiants inscrits
SELECT _______ COUNT(______) FROM tUv GROUP BY _______
1 2 3
Agrave lissue de cette seacuterie dexercices vous devez savoir deacutefinir les termes suivants
table ou relation
scheacutema relationnel
domaine
cleacute
cleacute eacutetrangegravere
opeacuterations de projection restriction jointure produit
Introduction geacuteneacuterale aux bases de donneacutees
25
2 Lab 0
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux meacutedicaments
avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi quune description
longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le nombre de pilules par boicircte
(qui est un nombre entier)
Ce problegraveme est un exemple tregraves simple que lon pourra modeacuteliser avec une base de donneacutees relationnelle agrave
une seule table
Vous pouvez tester vos instructions SQL ici Db Discodbdiscocrztfr
Question 1
Proposer une clarification du problegraveme (par exemple sous la forme dune liste des proprieacuteteacutes de la relation
viseacutee)
Question 2
Proposer un exemple de donneacutees
Question 3
Dessiner un modegravele conceptuel de donneacutees en UML Il ne contient quune seule classe
Indice Modeacutelisation conceptuelle de donneacutees
Question 4
Proposer un modegravele logique de donneacutees sous forme de scheacutema relationnel Il ne contient quune seule relation
Indice Modeacutelisation logique de donneacutees
Question 5
Proposer une impleacutementation en SQL standard de votre modegravele relationnel Il ne contient quune seule
instruction CREATE TABLE
Indice Langage de donneacutees lexemple du langage SQL
Question 6
Eacutecrivez les instructions SQL permettant dinseacuterer vos donneacutees de test dans votre base de donneacutees
Indice Langage de donneacutees lexemple du langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
26
27
II - Introduction agrave la
modeacutelisation
conceptuelle de donneacutees avec
UML
A Cours
La modeacutelisation conceptuelle est leacutetape fondatrice du processus de conception de BD Elle consiste agrave
abstraire le problegraveme reacuteel poseacute pour en faire une reformulation qui trouvera une solution dans le cadre
technologique dun
SGBD
Si le modegravele dominant en conception de bases de donneacutees a longtemps eacuteteacute le modegravele E-A le modegravele UML
se geacuteneacuteralise de plus en plus Nous proposons ici une introduction au diagramme de classes agrave travers la
repreacutesentation de classes et dassociations simples (il existe dautres diagrammes UML par exemple le
diagramme de cas et dautres primitives de repreacutesentation dans le diagramme de classe par exemple
lheacuteritage)
II
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
28
1 Notion de modegravele
a) Exercice Centre meacutedical [5 min]
Soit le modegravele conceptuel suivant repreacutesentant des visites dans un centre meacutedical Quelles sont les assertions vraies selon ce scheacutema
Image 1
Un patient peut effectuer plusieurs visites
Tous les patients ont effectueacute au moins une consultation
Un meacutedecin peut recevoir plusieurs patients pendant la mecircme consultation
Un meacutedecin peut prescrire plusieurs meacutedicaments lors dune mecircme consultation
Deux meacutedecins diffeacuterents peuvent prescrire le mecircme meacutedicament
b) Qest ce quun modegravele
Deacutefinition Modegravele
laquo Modeling in the broadest sense is the cost-effective use of something in place of something else for some
cognitive purpose It allows us to use something that is simpler safer or cheaper than reality instead of reality
for some purpose A model represents reality for the given purpose the model is an abstraction of reality in
the sense that it cannot represent all aspects of reality raquo (Rothenberg 1989 [Rothenberg et al 1989] citeacute
par Arribe 2014 [Arribe 2014])
laquo Systegraveme physique matheacutematique ou logique repreacutesentant les structures essentielles dune reacutealiteacute et capable
agrave son niveau den expliquer ou den reproduire dynamiquement le fonctionnement raquo (TLFi)
Fondamental Modegravele
Un modegravele est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser quelque chose
Objectifs
Savoir ce quest un modegravele
Savoir ce quest le langage UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
29
c) Qest ce quun modegravele en informatique
Deacutefinition Modegravele informatique
Un modegravele informatique est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser un traitement avec
un ordinateur
Comtpleacutement Numeacuterisation et abstraction Toute information numeacuterique a
eacuteteacute codeacutee selon un modegravele donneacute
laquo Tout numeacuterisation est une repreacutesentation de la reacutealiteacute sous la forme dune modeacutelisation numeacuterique Cette
modeacutelisation procegravede dune abstraction au sens ougrave cest une seacuteparation davec le reacuteel au sens ougrave cest une
construction destineacutee agrave la manipulation (algorithmique en loccurrence) et au sens ougrave cest une simplification
de la reacutealiteacute raquo
httpaswemayfrcotropism-preshtml1
d) Qest ce quun bon modegravele
Atention
Un modegravele est une abstraction une simplification de la reacutealiteacute ce nest pas la reacutealiteacute il nest
jamais complegravetement fidegravele par construction
Le seul modegravele complegravetement fidegravele agrave la reacutealiteacute est la reacutealiteacute elle-mecircme et ce nest donc pas un
modegravele
Exemtple La carte et le territoire
Une carte est un modegravele dun territoire Elle est une repreacutesentation simplifieacutee destineacute agrave un usage particulier
randonner agrave pied en veacutelo
se diriger en voiture sur des grands axes sur des axes secondaires
voler en avion de tourisme en avion de ligne
naviguer sur fleuve sur mer
eacutetudier les frontiegraveres dune reacutegion dun pays de la terre
eacutetudier la deacutemographie leacuteconomie
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
30
Fondamental
Agrave partir de cet exemple on notera que 1 Un modegravele est orienteacute par un usage
Chacune de ces cartes est tregraves diffeacuterente selon ce que lon veut faire 2 Un modegravele ne cherche pas agrave ecirctre proche de la reacutealiteacute
Chacune de ces cartes est tregraves diffeacuterente de la reacutealiteacute quelle repreacutesente 3 Un modegravele adresse un niveau dinformation qui existe mais qui nest pas accessible dans
la reacutealiteacute Chacune de ces cartes permet quelque chose que ne permet pas laccegraves direct agrave la reacutealiteacute
ndash wwwsambaconsultantscom
Meacutethode Le rasoir dOckham Entre deux modegraveles donneacutes le meilleur modegravele est-il
toujours le tplus fourni
La meacutethode de raisonnement connue sous le nom de rasoir dOckham (du nom du philosophe eacuteponyme)
consiste agrave preacutefeacuterer les solutions les plus simples aux plus complexes lorsquelles semblent permettre
eacutegalement de reacutesoudre un problegraveme donneacute entre deux theacuteories eacutequivalentes toujours preacutefeacuterer la plus simple
Ce principe sapplique tregraves bien agrave la modeacutelisation eacutetant donneacute un objectif et plusieurs modegraveles possibles il
ne faut pas choisir a priori celui qui repreacutesente le plus de choses mais preacutefeacuterer le plus simple degraves quil couvre
le besoin
Cest un principe deacuteconomie (il coucircte moins cher agrave produire) et defficaciteacute (car les eacuteleacutements inutiles du modegravele
plus fourni nuiront agrave lefficaciteacute de la tacircche)
Exemtple
Ainsi pour naviguer en voiture il est plus simple de ne pas avoir sur la carte les chemins de randonneacutees qui
ne sont pas praticables en voiture
2 Introduction au diagramme de classes UML classes et
associations
a) Lab I
Description du problegraveme [15 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
Objectifs
Savoir faire un modegravele conceptuel
Savoir interpreacuteter un modegravele conceptuel
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
31
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
b) Preacutesentation dUML UML est un langage de repreacutesentation destineacute en particulier agrave la modeacutelisation objet UML est devenu une
norme OMG en 1997
UML propose un formalisme qui impose de penser objet et permet de rester indeacutependant dun langage de
programmation donneacute Pour ce faire UML normalise les concepts de lobjet (eacutenumeacuteration et deacutefinition
exhaustive des concepts) ainsi que leur notation graphique Il peut donc ecirctre utiliseacute comme un moyen de
communication entre les eacutetapes de speacutecification conceptuelle et les eacutetapes de speacutecifications techniques
Fondamental Diagramme de classe
Le diagramme de classes est un sous ensemble dUML qui sattache agrave la description statique dun
modegravele de donneacutees repreacutesenteacutees par des classes dobjets
Remarque
Dans le domaine des bases de donneacutees UML peut ecirctre utiliseacute agrave la place du modegravele E-A pour modeacuteliser le
domaine De la mecircme faccedilon un scheacutema conceptuel UML peut alors ecirctre traduit en scheacutema logique (relationnel
ou relationnel-objet typiquement)
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
32
c) Classes
Deacutefinition Classe
Une classe est un type abstrait caracteacuteriseacute par des proprieacuteteacutes (attributs et meacutethodes) communes agrave un ensemble
dobjets et permettant de creacuteer des instances de ces objets ayant ces proprieacuteteacutes
Image 2 Repreacutesentation UML dune classe
Exemtple La classe Voiture
Lobjet V1 est une instance de la classe Voiture
V1 Voiture
Marque Citroeumln
Type ZX
Portes 5
Puissance 6
Kilomeacutetrage 300000
Comtpleacutement
La modeacutelisation sous forme de diagramme de classes est une modeacutelisation statique qui met en exergue la
structure dun modegravele mais ne rend pas compte de son eacutevolution temporelle UML propose dautres types de
diagrammes pour traiter notamment de ces aspects
d) Atributs
Deacutefinition Atribut
Un attribut est une information eacuteleacutementaire qui caracteacuterise une classe et dont la valeur deacutepend de lobjet
instancieacute
Syntaxe
Image 3 Exemple de classe repreacutesenteacutee en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
33
Un attribut est typeacute Le domaine des valeurs que peut prendre lattribut est fixeacute a priori
Un attribut peut ecirctre multivalueacute Il peut prendre plusieurs valeurs distinctes dans son domaine
Un attribut peut ecirctre deacuteriveacute Sa valeur alors est une fonction sur dautres attributs de la classe
Un attribut peut ecirctre composeacute (ou composite) Il joue alors le rocircle dun groupe dattributs (par
exemple une adresse peut ecirctre un attribut composeacute des attributs numeacutero type de voie nom de la
voie) Cette notion renvoie agrave la notion de variable de type Record dans les langages de programmation
classiques
Atention On utilise peu les atributs deacuteriveacutes et composeacutes en UML
En UML on preacutefegravere lusage de meacutethodes aux attributs deacuteriveacutes On utilisera toujours des
meacutethodes degraves que la valeur de lattribut deacuteriveacute deacutepend dautres attributs exteacuterieurs agrave sa
classe
En UML on preacutefegravere lusage de compositions aux attributs composeacutes On utilisera toujours
des compositions pour les attributs composeacutes et multivalueacutes
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
34
Syntaxe
attributtype attribut_multivalueacute[nbMinValeursnbMaxValeurs]type attribut_deacuteriveacutetype attribut_composeacute - sous-attribut1type - sous-attribut2type -
1 2 3 4 5 6 7
Image 4 Repreacutesentation dattributs en UML
Dans cet exemple les attributs Nom Preacutenom sont de type string lun de 20 caractegraveres et lautre de 10 tandis
que DateNaissance est de type date et Age de type integer Preacutenom est un attribut multivalueacute ici une personne
peut avoir de 1 agrave 3 preacutenoms Age est un attribut deacuteriveacute il est calculeacute par une fonction sur DateNaissance
Comtpleacutement Voir aussi
Meacutethodes
Composition - p99
e) Repeacuterage des cleacutes Un attribut ou un groupe dattributs peut ecirctre annoteacute comme eacutetant cleacute sil permet didentifier de faccedilon unique
un objet de la classe
On ajoute le symbole key agrave cocircteacute du ou des attributs concerneacutes
Cleacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
35
Cleacute composeacutee de deux attributs
Meacutethode
Le repeacuterage des cleacutes nest pas systeacutematique en UML (la deacutefinition des cleacutes se fera essentiellement au niveau
logique) On cherchera neacuteanmoins agrave repeacuterer les cleacutes rendues eacutevidentes par la phase de clarification
Atention
On najoutera jamais de cleacute artificielle au niveau du MCD Si aucune cleacute nest eacutevidente on laisse
la classe sans cleacute Atention Atribut souligneacute et
On trouvera dans ce cours des exemples dattributs souligneacutes ou preacuteceacutedeacutes de pour exprimer
luniciteacute Ce nest pas une pratique standard et la notation key devrait lui ecirctre substitueacutee
Un attribut souligneacute est normalement un attribut de classe ou static en UML Un
attribut preacuteceacutedeacute de est normalement un attribut proteacutegeacute en UML
Mais les concepts dattribut de classe et dattribut proteacutegeacute ne sont pas utiliseacutes dans le cadre des
bases de donneacutees
f) Meacutethodes
Deacutefinition Meacutethode
Une meacutethode (ou opeacuteration) est une fonction associeacutee agrave une classe dobjet qui permet dagir sur les objets de
la classe ou qui permet agrave ces objets de renvoyer des valeurs (calculeacutees en fonction de paramegravetres)
Syntaxe
methode(paramegravetres)type 1
Remarque Meacutethodes et modeacutelisation de BD
Pour la modeacutelisation des bases de donneacutees les meacutethodes sont surtout utiliseacutees pour repreacutesenter des donneacutees
calculeacutees (agrave linstar des attributs deacuteriveacutees) ou pour mettre en exergue des fonctions importantes du systegraveme
cible Seules les meacutethodes les plus importantes sont repreacutesenteacutees lapproche est moins systeacutematique quen
modeacutelisation objet par exemple
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
36
Remarque Meacutethodes relationnel relationnel-objet
Lors de la transformation du modegravele conceptuel UML en modegravele logique relationnel les meacutethodes ne seront
geacuteneacuteralement pas impleacutementeacutees Leur repeacuterage au niveau conceptuel sert donc surtout daide-meacutemoire
pour limpleacutementation au niveau applicatif
Au contraire un modegravele logique relationnel-objet permettra limpleacutementation de meacutethodes directement
associeacutees agrave des tables Leur repeacuterage au niveau conceptuel est donc encore plus important
Comtpleacutement Transformation des meacutethodes par des vues - p98
g) Associations
Deacutefinition Association
Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire)
qui deacutefinit un ensemble de liens entre les objets de ces classes
Une association est nommeacutee geacuteneacuteralement par un verbe Une association peut avoir des proprieacuteteacutes (agrave linstar
dune classe) Une association deacutefinit le nombre minimum et maximum dinstances autoriseacutee dans la relation
(on parle de cardinaliteacute)
Syntaxe
Image 5 Notation de lassociation en UML
Atention
Le nom de lassociation (verbe qui la deacutecrit) est obligatoire au mecircme titre que le nom dune
classe ou dun attribut
Remarque
Une association est geacuteneacuteralement bidirectionnelle (cest agrave dire quelle peut se lire dans les deux sens) Les
associations qui ne respectent pas cette proprieacuteteacute sont dites unidirectionnelles ou agrave navigation restreinte
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
37
Image 6 Repreacutesentation dassociation en UML
Lassociation Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des
voitures
Comtpleacutement Voir aussi
Cardinaliteacute
Explicitation des associations - p100
Associations ternaires - p101
Contraintes sur les associations - p101
h) Cardinaliteacute
Deacutefinition Cardinaliteacute dune association
La cardinaliteacute dune association permet de repreacutesenter le nombre minimum et maximum dinstances qui sont
autoriseacutees agrave participer agrave la relation La cardinaliteacute est deacutefinie pour les deux sens de la relation
Syntaxe
Si mina (resp maxa) est le nombre minimum (resp maximum) dinstances de la classe A autoriseacutees agrave participer
agrave lassociation on note sur la relation agrave cocircteacute de la classe A minamaxa
Si le nombre maximum est indeacutetermineacute on note n ou
Atention
La notation de la cardinaliteacute en UML est opposeacutee agrave celle adopteacutee en E-A En UML on note agrave gauche
(resp agrave droite) le nombre dinstances de la classe de gauche (resp de droite) autoriseacutees dans
lassociation En E-A on note agrave gauche (resp agrave droite) le nombre dinstances de la classe de
droite (resp de gauche) autoriseacutees dans lassociation
Remarque
Les cardinaliteacutes les plus courantes sont
01 (optionnel)
11 ou 1 (un)
Lassociation Conduit
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
38
0n ou 0 ou (plusieurs)
Ici un conducteur peut posseacuteder plusieurs voitures (y compris aucune) et une voiture nest posseacutedeacutee que par
un seul conducteur
i) Classe dassociation
Deacutefinition Classe dassociation
On utilise la notation des classes dassociation lorsque lon souhaite ajouter des proprieacuteteacutes agrave une association
Syntaxe Notation dune classe dassociation en UML
Image 8 Notation dune classe dassociation en UML
1 n ou 1 (obligatoire )
Image 7 Repreacutesentation de cardinaliteacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
39
Image 9 Emplois
B Exercices
1 Exercice Lire lUML [15 min]
Tennis Le scheacutema suivant repreacutesente les rencontres lors dun tournoi de tennis Quelles sont les assertions vraies selon ce scheacutema
Image 10
On peut jouer des matchs de double
Un joueur peut gagner un match sans y avoir participeacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
40
Il peut y avoir deux matchs sur le mecircme terrain agrave la mecircme heure
Connaissant un joueur on peut savoir sur quels terrains il a joueacute
Journal Voici le scheacutema conceptuel du systegraveme dinformation (tregraves simplifieacute) dun quotidien Quelles sont les assertions vraies selon ce scheacutema
Image 11
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
41
Un article peut ecirctre reacutedigeacute par plusieurs journalistes
Un article peut ecirctre publieacute plusieurs fois dans le mecircme journal
Un article peut ecirctre publieacute dans un journal par un journaliste qui ne travaille pas pour ce
journal
Il peut y avoir plusieurs articles sur le mecircme sujet
Un journaliste peut interviewer une personnaliteacute sans faire darticle agrave ce propos
Logistique Une socieacuteteacute de transport routier veut installer un systegraveme dinformation pour rendre plus efficace sa logistique Embaucheacute au service informatique de cette compagnie vous ecirctes donc chargeacute de reprendre le travail deacutejagrave effectueacute (cest agrave dire le scheacutema suivant)
Quelles sont les assertions vraies selon ce scheacutema
Image 12
Un conducteur peut conduire plusieurs camions
Un conducteur peut conduire un camion sans y ecirctre autoriseacute
Il peut y avoir plusieurs conducteurs pour le mecircme camion
Un conducteur peut livrer sa propre ville
2 Gestion dune coopeacuterative viticole
[20 minutes] Cet exercice a eacuteteacute inspireacute par Bases de donneacutees objet et relationnel [Gardarin99]
On considegravere une base Coopeacuterative qui possegravede les caracteacuteristiques suivantes
Un vin est caracteacuteriseacute par un numeacutero entier unique nv un cru une anneacutee de production et un degreacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
42
Un viticulteur est caracteacuteriseacute par un numeacutero entier unique nvt un nom et une ville Un viticulteur produit un ou plusieurs vins et reacuteciproquement un vin est produit par un ou plusieurs
producteurs (eacuteventuellement aucun)
Les buveurs sont caracteacuteriseacutes par un numeacutero de buveur nb un nom preacutenom et une adresse (limiteacutee agrave
la ville pour simplifier)
Un buveur consomme des vins et peut passer des commandes pour acheter des vins
Question 1
Lister tous les types dobjet agrave consideacuterer les attributs associeacutes et les domaines de valeurs de ces attributs
Repeacuterer les eacuteventuelles cleacutes
Question 2
Lister toutes les associations agrave consideacuterer et indiquer leurs cardinaliteacutes
Question 3
Donner le diagramme UML de cette situation
3 Cours et intervenants
[20 min] On souhaite reacutealiser une base de donneacutees pour geacuterer les cours dispenseacutes dans une eacutecole dingeacutenieur ainsi
que les personnes qui interviennent dans ces cours
Chaque cours est identifieacute par une anneacutee et un numeacutero Chaque cours a donc un numeacutero unique localement
agrave chaque anneacutee Un cours possegravede un titre et un type (C pour Cours TD ou TP) Un cours possegravede
eacutegalement une date de deacutebut et une date de fin qui est toujours de 5 jours apregraves la date de deacutebut
Chaque intervenant est identifieacute par son nom (deux intervenants ne peuvent pas avoir le mecircme nom) Il a un
preacutenom un bureau un ou plusieurs numeacuteros de teacuteleacutephones (jusquagrave trois numeacuteros) et des speacutecialiteacutes Un
bureau est deacutefini par un centre (R pour Royallieu BF pour Benjamin Franklin et PG pour Pierre Guillaumat)
un bacirctiment (une lettre de A agrave Z) et un numeacutero (infeacuterieur agrave 1000) Les speacutecialiteacutes sont des couples de chaicircnes
de caractegraveres deacutesignant un domaine (par exemple BD) et une speacutecialiteacute (par exemple SGBDRO)
Chaque cours est donneacute par un unique intervenant
Voici un exemple Le cours Machines universelles ndeg21 de lanneacutee 2014 est donneacute par Alan Turing entre le
05012014 et le 10012014 Cest un cours de type C Alan Turing a le bureau 666 au bacirctiment X de PG Il
a les numeacuteros de teacuteleacutephone 0666666666 et 0766666666 Il possegravede les speacutecialiteacutes suivantes
Domaine Matheacutematique Speacutecialiteacute Cryptographie
Domaine Informatique Speacutecialiteacute Algorithmie
Domaine Informatique Speacutecialiteacute Intelligence Artificielle
Question
Reacutealiser le modegravele UML de la base de donneacutees Preacuteciser les cleacutes et les types des attributs
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
43
4 Gestion du personnel
[30 minutes] Le service de gestion du personnel dune entreprise deacutesire seacutequiper dun outil lui permettant de geacuterer
informatiquement ses employeacutes leurs salaires et leurs congeacutes Les speacutecifications suivantes ont pu ecirctre mises
en exergue par une analyse des besoins reacutealiseacutee aupregraves des utilisateurs du service du personnel
Geacuteneacuteraliteacutes
tout employeacute est identifieacute par un nom un preacutenom et une date de naissance
tout employeacute remplit une fonction et appartient agrave un service
pour chaque employeacute on gegravere la date dembauche et la quotiteacute (cest agrave dire le pourcentage de temps
travailleacute par rapport au temps plein en cas de travail agrave temps partiel)
Gestion des salaires
pour chaque employeacute on gegravere lhistorique de ses salaires dans lentreprise chaque salaire eacutetant affecteacute
agrave une peacuteriode de temps
un salaire est composeacute dun salaire brut de charges patronales et de charges salariales
on cherchera agrave partir des ces donneacutees agrave obtenir eacutegalement le salaire chargeacute (brut + charges patronales)
et le salaire net (brut - charges salariales) et ce en particulier pour le salaire en cours (celui que
touche actuellement le salarieacute)
Gestion des congeacutes
pour chaque employeacute on meacutemorise chaque congeacute pris (posant quun congeacute concerne toujours une ou
plusieurs journeacutees entiegraveres)
chaque employeacute a le droit aux jours de congeacutes suivants
- 25 jours (pour une quotiteacute de 1) et 25 x quotiteacute sinon - chaque fonction ouvre les droits agrave un certain nombre de jours de RTT - chaque service ouvre les droits agrave un certain nombre de jours de RTT - chaque tranche de 5 ans passeacutes dans lentreprise donne droit agrave 1 jour suppleacutementaire - les employeacutes de plus de 40 ans ont un jour suppleacutementaire et ceux de plus de 50 ans deux
pour chaque employeacute on cherchera agrave connaicirctre le nombre total de jours de congeacutes autoriseacutes le nombre
de jours pris et le nombre de jours restants sur lanneacutee en cours
Question
Reacutealiser le diagramme de classes permettant de modeacuteliser ce problegraveme
44
III - La modeacutelisation logique
relationnelle
A Cours
Le modegravele relationnel est aux fondements des SGBDR Il a eacuteteacute et continue decirctre le modegravele theacuteorique
dominant pour la repreacutesentation logique des base de donneacutees mecircme si le mouvement NoSQL propose des
alternatives
Le modegravele relationnel permet de reformuler le modegravele conceptuel dans un formalisme - le tableau - beaucoup
plus proche de limpleacutementation informatique bien quencore indeacutependant dune solution technologique
particuliegravere
1 Introduction au modegravele relationnel
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
III
La modeacutelisation logique relationnelle
45
a) Niveau logique Le niveau logique est le lien entre le niveau conceptuel et limpleacutementation effective de lapplication Le modegravele
conceptuel eacutetant un modegravele formel le modegravele logique a pour vocation decirctre eacutegalement un modegravele formel
mais speacutecifiant non plus la reacutealiteacute existante ou rechercheacutee comme le modegravele conceptuel mais les donneacutees
telles quelles vont exister dans lapplication informatique
Pour assumer cette fonction le modegravele relationnel [Codd70] sest imposeacute en reacuteaction aux insuffisances des
modegraveles anteacuterieurs les modegraveles hieacuterarchique et reacuteseau et de part la puissance de ses fondements
matheacutematiques Encore aujourdhui dominant le modegravele relationnel est un fondement indispensable agrave la
conception de bases de donneacutees
Ratptpel
Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
b) Deacutefinition du modegravele relationnel
Introduction
Le modegravele relationnel a eacuteteacute introduit par Codd [Codd70] en 1970 au laboratoire de recherche dIBM de San
Joseacute Il sagit dun modegravele simple et puissant agrave la base de la majoriteacute des bases de donneacutees encore aujourdhui
Les objectifs du modegravele relationnel formuleacutes par Codd sont les suivants
Assurer lindeacutependance des applications et de la repreacutesentation interne des donneacutees
Geacuterer les problegravemes de coheacuterence et de redondance des donneacutees
Utiliser des langages de donneacutees baseacutes sur des theacuteories solides
Deacutefinition Modegravele relationnel
On appelle modegravele relationnel un ensemble de concepts permettant de formaliser logiquement la description
darticles de fichiers plats indeacutependamment de la faccedilon dont ils sont physiquement stockeacutes dans une meacutemoire
numeacuterique
Le modegravele relationnel inclut des concepts pour la description de donneacutees ainsi que des concepts pour la
manipulation de donneacutees
Fondamental Repreacutesenter le monde en tables
Le modegravele relationnel permet de repreacutesenter les donneacutees que lon va geacuterer agrave laide dun tregraves petit
nombre de concepts tregraves simples
Les relations ou tables des lignes et des colonnes
Les domaines de valeurs chaque case dune table prend une unique valeur dans un
domaine preacute-deacutefini
Les cleacutes il existe des cases dont les valeurs doivent ecirctre uniques et non nulles
Les cleacutes eacutetrangegraveres il existe des cases qui doivent prendre une valeur existante dans les
cases dune autre table
La modeacutelisation logique relationnelle
46
Comtpleacutement Extension du modegravele relationnel
Le modegravele relationnel est un standard normaliseacute par lISO agrave travers son langage le SQL Il se veut neacuteanmoins
degraves lorigine extensible pour permettre de geacuterer des donneacutees plus complexes que les donneacutees tabulaires Le
modegravele relationnel-objet est neacute de cette extension
2 Les concepts fondamentaux du modegravele relationnel
atributs enregistrement domaine
a) Domaine
Deacutefinition Domaine
Ensemble caracteacuteriseacute par un nom dans lequel des donneacutees peuvent prendre leurs valeurs
Remarque Un domaine peut-ecirctre deacutefini en intension (cest agrave dire en deacutefinissant les proprieacuteteacutes caracteacuteristiques des
valeurs du domaine on parle aussi de compreacutehension) ou en extension (cest agrave dire en eacutenumeacuterant toutes
les valeurs du domaine)
Exemtple Domaines deacutefinis en intension
Tous les entiers
Les reacuteels infeacuterieur agrave 5
Les booleacuteen (vrai ou faux)
Toutes les chaicircnes de 1 agrave 255 caractegraveres
Les valeurs moneacutetaires deacutefinie comme des deacutecimaux avec deux chiffres apregraves la virgule
Les dates deacutefinies comme des chaicircnes de 10 caractegraveres comprenant des chiffres et des tirets selon le
patron 00-00-0000
Les salaires deacutefinis comme des valeurs moneacutetaires compris entre 15000 et 100000
Exemtple Domaines deacutefinis en extension
Couleur Bleu Vert Rouge Jaune Blanc Noir
SGBD Hieacuterarchique Reacuteseau Relationnel Objet Relationnel-Objet
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
La modeacutelisation logique relationnelle
47
b) Exercice Indiquez quelle deacutefinition et quel exemple correspondent respectivement aux mots intension et extension
1 - Le domaine des couleurs
2 - Eacutenonciation exhaustive de lensemble des objets du domaine
3 - bleu rouge vert
4 - Explicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa compreacutehension
abstraite geacuteneacuterale)
Intension Extension
c) Atribut et enregistrement
Deacutefinition Atribut
On appelle attribut dune relation une colonne de cette relation Un attribut est caracteacuteriseacute par un nom et un
domaine dans lequel il prend ses valeurs
Synonymes Champs Proprieacuteteacute Colonne
Deacutefinition Enregistrement
On appelle enregistrement dune relation une ligne de cette relation Un enregistrement prend une valeur
pour chaque attribut de la relation
Synonymes Tuple N-uplet Vecteur Ligne
La modeacutelisation logique relationnelle
48
Exemtple
A B
1 1
1 2
2 2
Tableau 5 Relation R
La relation R comporte les deux attributs A et B et les trois enregistrements lt11gt lt12gt et lt22gt
Remarque Atribut domaine ordre
Un attribut se distingue dun domaine car il peut ne comporter que certaines valeurs de ce domaine
Les colonnes de la relation ne sont pas ordonneacutees et elles ne sont donc repeacutereacutees que par le nom de lattribut
Remarque Valeur nulle
Un enregistrement peut ne pas avoir de valeur pour certains attributs de la relation parce que cette valeur
est inconnue ou inapplicable sa valeur est alors null
d) Exemple La relation Vol
Exemtple
Numero Compagnie Avion Deacutepart Arriveacutee Date
AF3245 Air France 747 Paris Oulan Bator 01shy08shy2002
AF6767 Air France A320 Paris Toulouse 30shy07shy2002
KLM234 KML 727 Paris Amsterdam 31shy07shy2002
Tableau 6 Relation Vol
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel
Objectifs
Connaicirctre les notions de cleacutes candidates naturelles artificielles primaire eacutetrangegravere
Aborder le principe deacuteclatement des relations et de nonredondance
La modeacutelisation logique relationnelle
49
a) Cleacute
Deacutefinition Cleacute
Une cleacute est un groupe dattributs minimum qui permet didentifier de faccedilon univoque un tuple dans une
relation
Fondamental
Toute relation doit comporter au moins une cleacute ce qui implique quune relation ne peut pas
contenir deux tuples identiques
Atention Atributs de cleacutes unique et non null Afin decirctre deacuteterminants pour lidentification dun enregistrement tous les attributs dune cleacute
doivent ecirctre valueacutes cest-agrave-dire quaucun ne peut avoir de valeur null Dire quun groupe
dattribut est une cleacute eacutequivaut agrave dire quil est unique et non null
Exemtple Numeacutero deacutetudiant
Le numeacutero deacutetudiant dune relation Etudiant est une bonne cleacute car il y aura systeacutematiquement une
valeur non nulle
Le groupe dattributs (nom preacutenom) dune relation Etudiant est en geacuteneacuteral une mauvaise cleacute car les
homonymes existent
b) Deacuteterminer les cleacutes
Deacutetermination dune cleacute
Deacutefinir un groupe dattributs comme eacutetant une cleacute neacutecessite une reacuteflexion seacutemantique sur les donneacutees
composant ces attributs afin de sassurer de leur uniciteacute
Fondamental
La deacutefinition des cleacutes est un acte de modeacutelisation elle ne renvoie pas donc pas agrave une veacuteriteacute
intangible mais agrave la reacutealiteacute telle quelle est repreacutesenteacutee dans le modegravele que lon eacutelabore
Exemtple
Lattribut numeacutero de seacutecuriteacute sociale dune relation personne peut paraicirctre une bonne cleacute a priori car son
uniciteacute est assureacutee Mais tout le monde nen dispose pas forceacutement (les enfants des eacutetrangers) donc ce nest
une cleacute que si lon considegravere des personnes affilieacutees agrave la seacutecuriteacute sociale
c) Cleacute primaire et cleacutes candidates
Deacutefinition Cleacute tprimaire
Si plusieurs cleacutes existent dans une relation on en choisit une parmi celles-ci Cette cleacute est appeleacutee cleacute
primaire
La modeacutelisation logique relationnelle
50
La cleacute primaire est geacuteneacuteralement choisie de faccedilon agrave ce quelle soit la plus simple cest agrave dire portant sur le
moins dattributs et sur les attributs de domaine les plus basiques (entiers ou chaicircnes courtes typiquement)
Deacutefinition Cleacutes candidates
On appelle cleacutes candidates lensemble des cleacutes dune relation qui nont pas eacuteteacute choisies comme cleacute primaire
(elles eacutetaient candidates agrave cette fonction)
d) Cleacute artificielle
Deacutefinition Cleacute artificielle
Sil est impossible de trouver une cleacute primaire ou que les cleacutes candidates sont trop complexes il est possible
de faire appel agrave une cleacute artificielle Une cleacute artificielle est un attribut suppleacutementaire ajouteacute au scheacutema de
la relation qui nest lieacute agrave aucune signification et qui sert uniquement agrave identifier de faccedilon unique les
enregistrements etou agrave simplifier les reacutefeacuterences de cleacutes eacutetrangegraveres
Deacutefinition Cleacute signifiante
Une cleacute est signifiante si elle nest pas artificielle
Synonyme Cleacute naturelle
Atention Cleacute artificielle et niveau logique
Au niveau du modegravele logique il faut eacuteviter la simpliciteacute consistant agrave identifier toutes les relations
avec des cleacutes artificielles et ne reacuteserver cet usage quaux cas particuliers
Conseil
1 Si au moins une cleacute naturelle composeacutee dun seul attribut existe en choisir une parmi celles-ci comme
cleacute primaire 2 Sinon choisir une cleacute naturelle composeacutee de plusieurs attributs si elle ne pose pas de problegraveme identifieacute 3 Toujours justifier lemploi dune cleacute artificielle (au niveau logique uniquement pour des raisons de
complexiteacute du modegravele les questions de performance sont eacutetudieacutees au niveau physique)
RemarqueCleacute artificielle et niveau tphysique eacutevolutiviteacute maintenance et tperformance
Au niveau de limpleacutementation physique par contre il est courant que des cleacutes artificielles soient utiliseacutees de
faccedilon systeacutematique
Du point de vue de leacutevolutiviteacute de la BD il existe toujours un risque quune cleacute nonartificielle perde
sa proprieacuteteacute duniciteacute ou de non-nulliteacute
Du point de vue de la maintenance de la BD il existe toujours un risque quune cleacute non-artificielle
voit sa valeur modifieacutee et dans ce cas la reacutepercution de ce changement pour mettre agrave jour toutes les
reacutefeacuterences peut poser problegraveme
Du point de vue de la performance de la BD les cleacutes non-artificielles ne sont pas en geacuteneacuteral optimiseacutees
en terme de type et de taille et donc peuvent limiter les performances dans le cadre des jointures
Preacutecisons neacuteanmoins quinversement les cleacutes artificielles ont pour conseacutequence de systeacutematiser des
jointures qui auraient pu ecirctre eacuteviteacutees avec des cleacutes primaires signifiantes
La modeacutelisation logique relationnelle
51
Exemtple Problegraveme deacutevolutiviteacute tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD franccedilaise elle ne permettra pas dentrer
un individu non-franccedilais issu dun pays ne disposant pas dun tel numeacutero
Exemtple Problegraveme de maintenance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD centrale dont les donneacutees sont exploiteacutees
par dautres tables dautres BD qui viennent piocher dans cette BD pour leurs propres usages sans que la
BD centrale ne connaisse ses clients Soit une erreur dans la saisie dun numeacutero de seacutecuriteacute sociale dans la
BD centrale si ce numeacutero est corrigeacute il faudrait (ce qui nest pas possible dans notre cas) impeacuterativement en
avertir toutes les bases utilisatrices pour quelles mettent agrave jour leurs reacutefeacuterences
Exemtple Problegraveme de tperformance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table comptant un million denregistrements ce numeacutero
est geacuteneacuteralement un nombre agrave 13 chiffres ou une chaicircne agrave 13 caractegraveres ce qui dans les deux cas est supeacuterieur
au nombre agrave 7 chiffres suffisant pour identifier tous les individus de la BD Les performances seront donc
toujours moins bonnes lors des jointures si une cleacute prend deux fois plus de place en meacutemoire que son
optimum Mais ajoutons que cette perte de performance na pas toujours de conseacutequence sur la reacutealiteacute
perceptible par les utilisateurs de la BD
Inversement soit une cleacute artificielle la cleacute primaire dune table T1 par ailleurs reacutefeacuterenceacutee par une autre table
T2 Soit le numeacutero de seacutecuriteacute sociale un attribut cleacute de T1 Si lon veut par requecircte disposer des informations
de T2 ainsi que du numeacutero de seacutecuriteacute sociale de T1 alors il faudra faire une jointure tandis que si ce numeacutero
signifiant avait eacuteteacute choisi comme cleacute primaire cela naurait pas eacuteteacute neacutecessaire
La modeacutelisation logique relationnelle
52
e) Cleacute eacutetrangegravere
Deacutefinition Cleacute eacutetrangegravere
Une cleacute eacutetrangegravere est un attribut ou un groupe dattributs dune relation R1 devant apparaicirctre comme cleacute
primaire dans une relation R2 afin de mateacuterialiser une reacutefeacuterence entre les tuples de R1 et les tuples de R2
Une cleacute eacutetrangegravere dun tuple reacutefeacuterence une cleacute primaire dun autre tuple
Atention
Seule une cleacute primaire peut ecirctre reacutefeacuterenceacutee par une cleacute eacutetrangegravere cest mecircme le seule fonction
de la cleacute primaire ecirctre la cleacute qui peut ecirctre reacutefeacuterenceacutee par les cleacutes eacutetrangegraveres
Deacutefinition Contrainte dinteacutegriteacute reacutefeacuterentielle
Une cleacute eacutetrangegravere respecte la contrainte dinteacutegriteacute reacutefeacuterentielle si sa valeur est effectivement existante dans
la cleacute primaire dun tuple de la relation reacutefeacuterenceacutee ou si sa valeur est null
Une cleacute eacutetrangegravere qui ne respecte pas la contrainte dinteacutegriteacute reacutefeacuterentielle exprime un lien vers un tuple qui
nexiste pas et donc nest pas coheacuterente
f) Reacutefeacuterence entre relations Le modegravele relationnel a pour objectif la structuration de donneacutees selon des relations Lenjeu est de parvenir
agrave traduire un modegravele conceptuel en modegravele logique relationnel Or il ny a pas de notion dassociation en
relationnel donc il faudra pouvoir traduire les associations avec les concepts dont on dispose relation cleacute
cleacute eacutetrangegravere
Afin de repreacutesenter des reacutefeacuterences entre relations dans un modegravele relationnel la seule solution est de stocker
linformation dans une relation et donc que certains attributs dune relation servent agrave pointer sur dautres
relations
Atention
Il ny a pas vraiment de reacutefeacuterence ou de lien en relationnel puisque nous ne disposons que de
tables de cleacutes de cleacutes eacutetrangegravere et de valeurs
On va donc devoir se servir de ces outils pour mateacuterialiser une notion de reacutefeacuterence
Meacutethode Reacutefeacuterence
La reacutefeacuterence entre deux tuples T1 et T2 de deux relations diffeacuterentes est exprimable par une valeur identique
entre une cleacute eacutetrangegravere du tuple T1 et la cleacute primaire de lautre tuple T2 Synonyme Lien Exemtple
R1 R2 a1 a2=gtR2 b1 b2
La modeacutelisation logique relationnelle
53
F
Image 13
Lattribut a2 de la relation R1 reacutefeacuterence lattribut b1 de la relation R2 car a2 est une cleacute eacutetrangegravere de R1 vers
R2 (b1 est la cleacute primaire de R2)
Ici on a donc par exemple les tuples identifieacutes par B et C de R1 qui reacutefeacuterencent le tuple identifieacute par 1 dans
R2
g) Scheacutema relationnel
Deacutefinition Scheacutema dune relation
Le scheacutema dune relation deacutefinit cette relation en intension Il est composeacute
du nom de la relation
de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs
de la cleacute primaire
des cleacutes eacutetrangegraveres
des cleacutes candidates
Deacutefinition Scheacutema relationnel dune base de donneacutee
Le scheacutema relationnel dune BD est la deacutefinition en intension de cette BD (par opposition agrave linstance de la
BD qui est une extension de la BD) Il est composeacute de lensemble des scheacutemas de chaque relation de la BD
Syntaxe Relation
Relation (Attribut1Domaine1 Attribut2Domaine2 AttributNDomaineN) 1
La relation Relation contient N attributs chacun deacutefini sur son domaine
Syntaxe Cleacute tprimaire
Relation (Attribut1Domaine1 AttributMDomaineM AttributNDomaineN)
1
La cleacute de la relation Relation est composeacutee des attributs Attribut1 agrave AttributM (attribut preacuteceacutedeacutes de ou
bien souligneacutes)
En geacuteneacuteral on note la cleacute primaire en premier dans la relation
Syntaxe Cleacute eacutetrangegravere
Relation1 ( AttributM=gtRelation2 AttributN=gtRelation2) 1
La relation Relation1 comporte une cleacute eacutetrangegravere (composeacutee des attributs AttributM agrave AttributN)
reacutefeacuterenccedilant la cleacute primaire de Relation2 Bien sucircr il peut exister plusieurs cleacutes eacutetrangegraveres vers plusieurs
La modeacutelisation logique relationnelle
54
relations distinctes Une cleacute eacutetrangegravere et sa cleacute primaire reacutefeacuterenceacutee sont toujours composeacutees du mecircme nombre
dattributs Il nest pas neacutecessaire de preacuteciser les domaines des attributs appartenant agrave la cleacute eacutetrangegravere car ce
sont forceacutement les mecircmes que ceux de la cleacute primaire reacutefeacuterenceacutee Il nest pas non plus en geacuteneacuteral neacutecessaire
de preacuteciser dans le scheacutema relationnel quels attributs de la cleacute eacutetrangegravere reacutefeacuterencent quels attributs de la cleacute
primaire (cela est geacuteneacuteralement eacutevident) mais il est possible de la faire on notant Attribut=gtRelationAttribut
En geacuteneacuteral on note les cleacutes eacutetrangegraveres en dernier dans la relation sauf pour les cleacutes eacutetrangegraveres qui font partie
de la cleacute primaire (cleacutes identifiantes)
Syntaxe Cleacute candidates
Relation1 (AttributMDomaineM ) avec AttributM cleacute 1
Les cleacutes candidates doivent ecirctre noteacutees sur le scheacutema relationnel
Sil ny a quune ou deux cleacutes candidates les noter directement apregraves la deacutefinition de la relation
Sil y a beaucoup de cleacutes pour ne pas trop alourdir la notation renvoyer agrave un tableau agrave part
Atention Cleacutes candidates et cleacute primaire
La notation R(ab) signifie toujours que R a comme cleacute primaire (ab) et non que R aurait
deux cleacutes a et b (dont on ne saurait pas laquelle est primaire)
La notation R(ab) avec b cleacute signifie bien que a et b sont deux cleacutes de R et que a est primaire
Il ne faut pas confondre une cleacute composeacutee de deux attributs avec deux cleacutes
h) Exemple de scheacutema relationnel pour la geacuteographie
Exemtple
Personne (NumeroEntier NomChaicircne PreacutenomChaicircne LieuNaissance=gtVille) Pays (NomChaicircne PopulationEntier SuperficieReacuteel Dirigeant=gtPersonne) Reacutegion (Pays=gtPays NomChaicircne Superficie Dirigeant=gtPersonne) Ville (CodePostalCP NomChaicircne Pays=gtReacutegionPays Reacutegion=gtReacutegionNom Dirigeant=gtPersonne)
1 2 3 4
Exemtple Exemtple dinstance de la base de donneacutees
Personne Num ero Nom Prenom LieuNaissance
1 Durand Pierre 60200 2 Dupont Marie 60200
Pays
Nom Population Superficie Dirig eant
France 60 50000101 2 Allemagne 80 60000023564 2 Espagne 40 3500001 1
La modeacutelisation logique relationnelle
55
Reacutegion Pays Nom Superficie Dirig eant France Picardie 50 1 Espagne Picardie 40 1 France Normandie 30 2
Ville CodePostal Nom Pays Reacuteg ion Dirig eant F60200 Compiegravegne France Picardie 1
F60300 Senlis France Picardie 2 F60301 Senlis France Picardie 2 E8000 Senlis Espagne Picardie 2
Le scheacutema relationnel preacuteceacutedent deacutecrit
Des personnes
Elles sont identifieacutees par un numeacutero qui est en fait une cleacute artificielle En effet mecircme une cleacute composeacutee
de tous les attributs (Nom Preacutenom LieuNaissance) laisse une possibiliteacute de doublons (homonymes
neacutes dans la mecircme ville)
La cleacute eacutetrangegravere LieuNaissance fait reacutefeacuterence agrave la relation Ville et plus preacuteciseacutement agrave sa cleacute primaire
CodePostal ce qui est est laisseacute implicite car eacutevident
Des pays
Ils sont identifieacutes par leur nom puisque deux pays ne peuvent avoir le mecircme nom Les pays sont
dirigeacutes par des personnes et ce lien est mateacuterialiseacute par la cleacute eacutetrangegravere Dirigeant
Des reacutegions
Elles font partie dun pays et ont un nom Deux reacutegions de pays diffeacuterents pouvant avoir le mecircme
nom il faut utiliser une cleacute primaire composeacutee agrave la fois du nom de la reacutegion et du nom du pays qui
est une cleacute eacutetrangegravere (le nom est appeleacute cleacute locale car il nest pas suffisant pour identifier un tuple de
la relation Reacutegion et la cleacute eacutetrangegravere vers la relation Pays est appeleacutee cleacute identifiante)
Des villes
Elles sont identifieacute par un code postal qui est unique dans le monde (en utilisant le preacutefixe de pays de
type F-60200) Ce code postal a pour domaine CP qui est une chaicircne composeacutee dune ou deux
lettres dun tiret puis dune seacuterie de chiffres
Le lien dappartenance entre une ville et une reacutegion est mateacuterialiseacute par la cleacute eacutetrangegravere composeacutee des
deux attributs Pays et Reacutegion Cette cleacute reacutefeacuterence la cleacute primaire de la relation Reacutegion eacutegalement composeacutee
de deux attributs Pour clairement expliciter les reacutefeacuterences (bien que seacutemantiquement la deacutenomination des
attributs ne laisse pas de place au doute) on utilise la syntaxe ReacutegionPays et ReacutegionNom
4 Synthegravese
a) Synthegravese Scheacutema relationnel
Scheacutema relationnel
Un scheacutema relationnel permet une formalisation dun modegravele logique
Relation ou table
La modeacutelisation logique relationnelle
56
Sous-ensemble dun produit carteacutesien -
Attribut ou colonne Prend ses valeurs dans un domaine
- Enregistrement ou ligne Pose une valeur (y compris la valeur null) pour chaque attribut
Cleacute
Groupe dattributs ayant un rocircle didentification au sein dun enregistrement - Cleacute candidate
Identifie de faccedilon unique un enregistrement - Cleacute primaire
Cleacute candidate choisie pour repreacutesenter un enregistrement pour sa faciliteacute dusage - Cleacute eacutetrangegravere
Reacutefeacuterence la cleacute primaire dun tuple dune autre relation pour exprimer un lien
b) Bibliographie commenteacutee sur le modegravele relationnel
Comtpleacutement Synthegraveses
SQL2 SQL3 applications agrave Oracle [Delmal01]
Une deacutefinition syntheacutetique et efficace du domaine relationnel relation domaine attribut cleacute inteacutegriteacute
opeacuterateurs (Premier chapitre)
5 Deacutefinition formelle dune relation
a) Produit carteacutesien
Deacutefinition Produit carteacutesien
Le produit carteacutesien noteacute X des domaines D1 D2 Dn noteacute D1 X D2 X X Dn est lensemble des
tuples (ou n-uplets ou vecteurs) ltV1V2Vngt tel que Vi est une valeur de Di et tel que toutes les
combinaisons de valeurs possibles sont exprimeacutees
Exemtple
D1 = A B C D2 = 1 2 3 D1 X D2 = ltA1gt ltA2gt ltA3gt ltB1gt ltB2gt ltB3gt ltC1gt ltC2gt ltC3gt
1 2 3
b) Relation
Deacutefinition Relation
Une relation sur les domaines D1 D2 Dn est un sous-ensemble du produit carteacutesien D1 X D2 X X Dn
Une relation est caracteacuteriseacutee par un nom Synonymes Table tableau
Syntaxe
La modeacutelisation logique relationnelle
57
On peut repreacutesenter la relation R sur les domaine D1 Dn par une table comportant une colonne pour
chaque domaine et une ligne pour chaque tuple de la relation
D1 Dn
V1 Vn
V1 Vn
Tableau 7 Relation R
Remarque
Une relation est deacutefinie en extension par leacutenumeacuteration des tuples la composant
B Exercices
1 Lab I-
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Dessiner des relations instancieacutees (en extension donc) remplies avec les donneacutees fournies en exemple
La modeacutelisation logique relationnelle
58
Question 2
Eacutecrivez le scheacutema relationnel (deacutefinition en intension donc) permettant de repreacutesenter une base de donneacutees
relationnelle pour le laboratoire
59
IV - Introduction au
passage
UMLRelationnel classes et
associations
A Cours
Afin de pouvoir impleacutementer une base de donneacutees il faut pouvoir traduire le modegravele conceptuel en modegravele
logique Cela signifie quil faut pouvoir convertir un modegravele UML en modegravele relationnel Les modegraveles
conceptuels sont suffisamment formels pour que ce passage soit systeacutematiseacute dans la plupart des cas
1 Transformation des classes et atributs
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
IV
Introduction au passage UML-Relationnel classes et associations
60
a) Transformation des classes
Meacutethode Classe
Pour chaque classe non abstraite
on creacutee une relation dont le scheacutema est celui de la classe
la cleacute primaire de cette relation est une des cleacutes de la classe
Classe1
Graphique 2 Classe
Classe1()
Remarque
Les classes abstraites sont ignoreacutees agrave ce stade et neacutetant pas instanciables ne donnent geacuteneacuteralement pas
lieu agrave la creacuteation de relation
b) Transformation des atributs
Meacutethode Atributs simtples
Pour chaque attribut eacuteleacutementaire et monovalueacute dune
classe on creacutee un attribut correspondant
Classe1
a key
b
Graphique 3 Attribut
Classe1(ab)
Meacutethode Atributs comtposites
Pour chaque attribut composite comprenant N sous-attributs dune classe
on creacutee N attributs correspondants
dont les noms sont la concateacutenation du nom de lattribut composite avec celui du sous attribut
Classe1
a key b -b1 -b2
Introduction au passage UML-Relationnel classes et associations
61
Graphique 4 Attribut composeacute
Classe1(ab_b1b_b2)
Meacutethode Atributs multivalueacutes
Pour chaque attribut multivalueacute b dune classe C
on creacutee une nouvelle relation RB
qui comprend un attribut monovalueacute correspondant agrave b
plus la cleacute de la relation repreacutesentant C
la cleacute de RB est la concateacutenation des deux attributs
Classe1
a key
b[110]
Graphique 5 Attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Meacutethode Atributs multivalueacutes (meacutethode alternative)
Dans le cas ougrave le nombre maximum de b est fini et petit on peut eacutegalement adopter la transformation
suivante
Classe1(ab1b2b3b4b5b6b7b8b9b10)
Si le nombre dattributs est infini (b[1]) cest impossible sil est trop grand ce nest pas souhaitable
Meacutethode Atributs comtposeacutes multivalueacutes
On combine les regravegles eacutenonceacutees pour les attributs composeacutes et pour les attributs multivalueacutes
Classe1
a key b [0N] -b1 -b2
Graphique 6 Attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
Ratptpel Voir aussi
Transformation des compositions - p102
Introduction au passage UML-Relationnel classes et associations
62
c) Transformation des atributs deacuteriveacutes et meacutethodes
Meacutethode Atributs deacuteriveacutes et meacutethodes
On ne repreacutesente pas en geacuteneacuteral les attributs deacuteriveacutes ni les meacutethodes dans le modegravele relationnel ils seront
calculeacutes dynamiquement soit par des proceacutedures internes agrave la BD (proceacutedures stockeacutees) soit par des
proceacutedures au niveau applicatif
Classe1
a key
b
m()
Graphique 7 Attribut deacuteriveacute et meacutethodes
Classe1(a)
Comtpleacutement Atribut deacuteriveacute stockeacutes
On peut deacutecider (pour des raisons de performance essentiellement) de repreacutesenter lattribut deacuteriveacute ou la
meacutethode comme sil sagissait dun attribut simple mais il sera neacutecessaire dans ce cas dajouter des
meacutecanismes de validation de contraintes dynamiques (avec des triggers par exemple) pour assurer que la
valeur stockeacutee eacutevolue en mecircme temps que les attributs sur lesquels le calcul deacuteriveacute porte
Notons quintroduire un attribut deacuteriveacute ou un reacutesultat de meacutethode dans le modegravele relationnel eacutequivaut agrave
introduire de la redondance ce qui est en geacuteneacuteral deacuteconseilleacute et ce qui doit ecirctre dans tous les cas controcircleacute
2 Transformation des associations
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
a) Transformation des associations 1N
Meacutethode
Pour chaque association binaire de type 1N
on ajoute agrave la relation cocircteacute N une cleacute eacutetrangegravere vers la relation cocircteacute 1
Classe1
01 association 0N
Classe2
a key
b c key
d
Graphique 8 Association 1N
Classe1(ab)
Introduction au passage UML-Relationnel classes et associations
63
Classe2(cda=gtClasse1)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations 1N - p103
b) Transformation des associations NM
Meacutethode
Pour chaque association binaire de type MN
on creacutee une nouvelle relation
composeacutee de cleacutes eacutetrangegraveres vers chaque relation associeacutee
et dont la cleacute primaire est la concateacutenation de ces cleacutes eacutetrangegraveres
Graphique 9 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations NM - p104
c) Transformation des associations 11 (approche simplifieacutee)
Meacutethode
La solution la plus simple et la plus geacuteneacuterale pour transformer une association 11 consiste agrave traiter cette
association 11 comme une association 1N puis agrave ajouter une contrainte UNIQUE sur la cleacute eacutetrangegravere pour
limiter la cardinaliteacute maximale agrave 1
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 10 Association 11
Classe1(abc=gtClasse2) avec c UNIQUE
Classe2(cd) ou
Introduction au passage UML-Relationnel classes et associations
64
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE
Remarque
Il existe toujours deux solutions selon que lon choisit une ou lautre relation pour accueillir la cleacute eacutetrangegravere
Selon la cardinaliteacute minimale un des deux choix peut ecirctre plus pertinent
Comtpleacutement
Il est parfois possible de choisir de fusionner les deux classes au sein dune seule relation plutocirct que dopter
pour une cleacute eacutetrangegravere
Comtpleacutement
Transformation des associations 11 (approche geacuteneacuterale) - p105
d) Transformation des classes dassociation
Meacutethode Classe dassociation NM
Graphique 11 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2ef)
Comtpleacutement Classe dassociation 1N
Les attributs de la classe dassociation sont ajouteacutes agrave la relation issue de la classe cocircteacute N
Comtpleacutement Classe dassociation 11
Les attributs de la classe dassociation sont ajouteacutes agrave la relation qui a eacuteteacute choisie pour recevoir la cleacute eacutetrangegravere
Si les deux classes ont eacuteteacute fusionneacutees en une seule relation les attributs sont ajouteacutes agrave celle-ci
a key b
Classe1
c key d
Classe2
0 N 0 N
e f
Cl-A ssoc
Introduction au passage UML-Relationnel classes et associations
65
B Exercices
1 Lab I+
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
Question 3
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 4
Dessiner des tableaux remplis avec les donneacutees fournies en exemple afin de montrer que le modegravele fonctionne
selon le besoin exprimeacute initialement On pourra mettre le premier mot seulement des descriptions pour gagner
du temps
Introduction au passage UML-Relationnel classes et associations
66
2 Usine de production
[30 minutes] Une usine cherche agrave modeacuteliser sa production de veacutehicules et de moteurs
Les veacutehicules sont identifieacutes par un numeacutero dimmatriculation alphanumeacuterique et caracteacuteriseacutes par une
couleur dont la deacutenomination est une chaicircne de caractegraveres Chaque veacutehicule peut comporter un
unique moteur etou un nombre quelconque de pneus
Chaque moteur est monteacute sur un et un seul veacutehicule et est identifieacute par un numeacutero de seacuterie Un moteur
est caracteacuteriseacute par une puissance en chevaux
Tout pneu est monteacute sur un unique veacutehicule et est identifieacute par un numeacutero de seacuterie Sa position est
deacutefinie localement sur ce veacutehicule et par rapport agrave lessieu Dn pour les pneus situeacute sur la droite de
lessieu et Gn pour les pneus situeacutes agrave gauche n repreacutesentant le numeacutero de lessieu (1 pour celui situeacute
devant 2 pour la deuxiegraveme rangeacutee etc) Un pneu est caracteacuteriseacute par un diamegravetre et une largeur en
pouces
Les moteurs les pneus et les veacutehicules sont fabriqueacutes sous une marque Les mecircmes marques peuvent
fabriquer indiffeacuteremment des moteurs des pneus etou des veacutehicules et un veacutehicule dune certaine
marque peut comporter un moteur etou des pneus de marque diffeacuterente
Question 1
Reacutealiser le modegravele UML de ce problegraveme en faisant apparaicirctre les domaines et les cleacutes
Question 2
Reacutealiser le passage au modegravele relationnel en faisant apparaicirctre les cleacutes primaires candidates et eacutetrangegraveres
Question 3
Dessiner les tableaux correspondant aux relations du modegravele Instancier au minimum deux veacutehicules et quatre
marques
Question 4
Donner quatre exemples denregistrements qui seront refuseacutes - eacutetant donneacutees les donneacutees deacutejagrave inseacutereacutees -
pour quatre raisons diffeacuterentes
contrainte de cleacute sur une cleacute primaire
contrainte de cleacute sur une cleacute candidate
contrainte dinteacutegriteacute reacutefeacuterentielle
contrainte de non nulliteacute
67
V - Creacuteation et
alimentation de bases
de donneacutees SQL
A Cours
1 Le langage SQL
Deacutefinition SQL
SQL (pour langage de requecirctes structureacute) est un langage deacuteclaratif destineacute agrave la manipulation de bases de
donneacutees au sein des SGBD et plus particuliegraverement des SGBDR
SQL LDD LCD LMD LCT
SQL est un langage deacuteclaratif il nest donc pas a proprement parleacute un langage de programmation mais plutocirct
une interface standard pour acceacuteder aux bases de donneacutees
Il est composeacute de quatre sous ensembles
Le Langage de Deacutefinition de Donneacutees (LDD ou en anglais DDL Data Definition
Language) pour creacuteer et supprimer des objets dans la base de donneacutees (tables contraintes dinteacutegriteacute
vues etc)
Exemple de commandes CREATE DROP ALTER
Le Langage de Controcircle de Donneacutees (LCD ou en anglais DCL Data Control Language) pour geacuterer les
droits sur les objets de la base (creacuteation des utilisateurs et affectation de leurs droits)
Exemple de commandes GRANT REVOKE
V
Creacuteation et alimentation de bases de donneacutees SQL
68
Le Langage de Manipulation de Donneacutees (LMD ou en anglais DML Data Manipulation
Language) pour la recherche linsertion la mise agrave jour et la suppression de donneacutees Le LMD est baseacute
sur les opeacuterateurs relationnels auxquels sont ajouteacutes des fonctions de calcul dagreacutegats et des
instructions pour reacutealiser les opeacuterations dinsertion mise agrave jour et suppression
Exemple de commandes INSERT UPDATE DELETE SELECT
Le Langage de Controcircle de Transaction (LCT ou en anglais TCL Transaction Control Language) pour
la gestion des transactions (validation ou annulation de modifications de donneacutees dans la BD)
Exemple de commandes COMMIT ROLLBACK
Fondamental Reacutefeacuterence SQL SQL-99 complete really
Gulutzan and Pelzer 1999 [Gulutzan and Pelzer 1999] httpsmariadbcomkbensql-99)2
Comtpleacutement Origine du SQL
Le modegravele relationnel a eacuteteacute inventeacute par EF Codd (Directeur de recherche du centre IBM de San Joseacute) en
1970 suite agrave quoi de nombreux langages ont fait leur apparition
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel2
IBM SystemR
IBM DB2
Ce sont ces langages qui ont donneacute naissance au standard SQL normaliseacute en 1986 au Eacutetats-Unis par lANSI
pour donner SQL86 (puis au niveau international par lISO en 1987)
Comtpleacutement Versions de SQL
SQL-86 (ou SQL-87) Version dorigine
SQL-89 (ou SQL-1) Ameacuteliorations mineures
SQL-92 (ou SQL-2) Extensions fonctionnelles majeures (types de donneacutees opeacuterations relationnelles
instruction LDD transactions etc
SQL-99 (ou SQL-3) Introduction du PSM (couche proceacutedurale sous forme de proceacutedure stockeacutees)
et du RO
SQL-2003 Extensions XML
SQL-2006 Ameacuteliorations mineures (pour XML notamment)
SQL-2008 Ameacuteliorations mineures (pour le RO notamment)
Remarque Version SQL et imtpleacutementations SGBD
Selon leur niveau dimpleacutementation de SQL les SGBD acceptent ou non certaines fonctions
Certains SGBD ayant entameacute certaines impleacutementations avant leur standardisation deacutefinitive ces
impleacutementations peuvent diffeacuterer de la norme
Creacuteation et alimentation de bases de donneacutees SQL
69
2 Creacuteer des tables en SQL (Langage de Deacutefinition de
Donneacutees)
Le LDD est la partie du langage SQL qui permet de creacuteer de faccedilon deacuteclarative les objets composant une
BD Il permet notamment la deacutefinition des scheacutemas des relations des contraintes dinteacutegriteacute des vues
Rappel Le code SQL peut ecirctre testeacute avec Db Discodbdiscocrztfr
2 - httpsmariadbcomkbensql-99
a) Lab I++
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
70
Question 2
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 3
Creacuteer une base de donneacutees en SQL correspondant au modegravele relationnel
Question 4
Inseacuterer les donneacutees fournies en exemple dans la base de donneacutees
b) Creacuteation de tables
Ratptpel
Quest ce que le SQL
Introduction
La creacuteation de table est le fondement de la creacuteation dune base de donneacutees en SQL
Deacutefinition Creacuteation de table
La creacuteation de table est la deacutefinition dun scheacutema de relation en intension par la speacutecification de tous les
attributs le composant avec leurs domaines respectifs
Syntaxe
CREATE TABLE nom_table ( nom_colonne1 domaine1 nom_colonne2 domaine2 nom_colonneN domaineN )
1 2 3 4 5 6
Exemtple
CREATE TABLE Personne ( Nom VARCHAR(25) Prenom VARCHAR(25) Age NUMERIC(3) )
1 2 3 4 5
Atention Contrainte dinteacutegriteacute
La deacutefinition des types nest pas suffisante pour deacutefinir un scheacutema relationnel il faut lui adjoindre
la deacutefinition de contraintes dinteacutegriteacute qui permette de poser les notions de cleacute dinteacutegriteacute
reacutefeacuterentielle de restriction de domaines etc
Creacuteation et alimentation de bases de donneacutees SQL
71
c) Domaines de donneacutees
Introduction
Un attribut dune relation est deacutefini pour un certain domaine ou type Les types de donneacutees disponibles en
SQL varient dun SGBD agrave lautre on peut neacuteanmoins citer un certain nombre de types standards que lon
retrouve dans tous les SGBD
Fondamental Les types standard
INTEGER ou INT SMALLINT
NUMERIC(X)
DECIMAL(XY) ou NUMERIC(XY)
FLOAT(X) REAL
CHAR(X)
VARCHAR(X)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HHMMSS)
Les tytpes numeacuteriques standard
Les nombres entiers
INTEGER (ou INT) et SMALLINT permettent de coder des entiers sur 4 octets (2147483648 agrave
2147483647) ou 2 octets (-32768 agrave 32767)
Les nombres entiers
NUMERIC(X) deacutesigne un entier de X chiffres au maximum
Les nombres deacutecimaux
DECIMAL(XY) ougrave X et Y sont optionnels et deacutesignent respectivement le nombre de chiffres maximum
pouvant composer le nombre et le nombre de chiffres apregraves la virgule
NUMERIC(XY) est un synonyme standard
Les nombres agrave virgule flottante
FLOAT(X) avec X deacutefinissant la preacutecision (nombre de bits de codage de la mantisse)
REAL est un synonyme standard de FLOAT(24)
Conseil FLOAT versus DECIMAL
Il est conseilleacute dutiliser DECIMAL qui est un nombre exact plutocirct que FLOAT qui est un nombre approximatif
si la preacutecision requise est suffisante FLOAT sera reacuteserveacute typiquement agrave des calculs scientifiques neacutecessitant
un degreacute de preacutecision supeacuterieur
Les tytpes chaicircne de caractegraveres standard
On distingue principalement les types CHAR(X) et VARCHAR(X) ougrave X est obligatoire et deacutesigne la longueur de
la chaicircne
CHAR deacutefinit des chaicircnes de longueur fixe (compleacuteteacutee agrave droites par des espaces si la longueur est
infeacuterieure agrave X)
et VARCHAR des chaicircnes de longueurs variables
Creacuteation et alimentation de bases de donneacutees SQL
72
CHAR et VARCHAR sont geacuteneacuteralement limiteacutes agrave 255 caractegraveres La plupart des SGBD proposent des types tels
que TEXT ou CLOB (Character Long Object) pour repreacutesenter des chaicircnes de caractegraveres longues jusquagrave
65000 caractegraveres par exemple
Les tytpes date standard
Les types date dont introduits avec la norme SQL2 On distingue
DATE qui repreacutesente une date selon un format de type AAAA-MM-JJ
et DATETIME qui repreacutesente une date plus une heure dans un format tel que AAAAMM-JJ HHMMSS
Comtpleacutement Les autres tytpes
En fonction du SGBD il peut exister de nombreux autres types On peut citer par exemple
MONEY pour repreacutesenter des deacutecimaux associeacutes agrave une monnaie
BOOLEAN pour repreacutesenter des booleacuteens
BLOB (pour Binary Long Oject) pour repreacutesenter des donneacutees binaires tels que des documents
multimeacutedia (images bitmap videacuteo etc)
d) La valeur NULL Labsence de valeur repreacutesenteacutee par la valeur NULL est une information fondamentale en SQL quil ne faut
pas confondre avec la chaicircne espace de caractegravere ougrave bien la valeur 0 Il ne sagit pas dun type agrave proprement
parler mais dune valeur possible dans tous les types
Fondamental
Par deacutefaut en SQL NULL fait partie du domaine il faut lexclure explicitement par la clause NOT
NULL apregraves la deacutefinition de type si on ne le souhaite pas Syntaxe
CREATE TABLE nom de table ( 1
CREATE TABLE nom_table ( nom_colonne1 domaine1 NOT NULL
nom_colonne2 domaine2
nom_colonneN domaineN NOT NULL )
2 3 4 5 6 7
e) Contraintes dinteacutegriteacute
Fondamental
PRIMARY KEY (ltliste dattibutsgt)
UNIQUE (ltliste dattibutsgt)
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt)
CHECK (ltconditiongt)
Une contrainte dinteacutegriteacute est une regravegle qui deacutefinit la coheacuterence dune donneacutee ou dun ensemble de donneacutees
de la
Creacuteation et alimentation de bases de donneacutees SQL
73
BD
Il existe deux types de contraintes
sur une colonne unique
ou sur une table lorsque la contrainte porte sur une ou plusieurs colonnes
Les contraintes sont deacutefinies au moment de la creacuteation des tables
Deacutefinition Contraintes dinteacutegriteacute sur une colonne
Les contraintes dinteacutegriteacute sur une colonne sont
PRIMARY KEY deacutefinit lattribut comme la cleacute primaire
UNIQUE interdit que deux tuples de la relation aient la mecircme valeur pour lattribut
REFERENCES ltnom tablegt (ltnom colonnesgt) controcircle linteacutegriteacute reacutefeacuterentielle entre lattribut et la
table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur de lattribut speacutecifieacute dans la condition dans le
cadre dune restriction de domaine
Deacutefinition Contraintes dinteacutegriteacute sur une table
Les contraintes dinteacutegriteacute sur une table sont
PRIMARY KEY (ltliste dattibutsgt) deacutefinit les attributs de la liste comme la cleacute primaire
UNIQUE (ltliste dattibutsgt) interdit que deux tuples de la relation aient les mecircmes valeurs pour
lensemble des attributs de la liste
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt) controcircle linteacutegriteacute
reacutefeacuterentielle entre les attributs de la liste et la table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur des attributs speacutecifieacutes dans la condition dans le
cadre dune restriction de domaine Syntaxe
CREATE TABLE nom de table ( CREATE TABLE nom_table ( nom_colonne1 domaine1 ltcontraintes colonne1gt nom_colonne2 domaine2 ltcontraintes colonne2gt nom_colonneN domaineN ltcontraintes colonneNgt
1 2 3 4 5 6
ltcontraintes de tablegt )
7 8
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) UNIQUE
(Nom Prenom) )
1 2 3 4 5 6 7 8
Remarque Cleacute candidate
La clause UNIQUE NOT NULL sur un attribut ou un groupe dattributs deacutefinit une cleacute candidate non primaire
Creacuteation et alimentation de bases de donneacutees SQL
74
Remarque
Les contraintes sur une colonne et sur une table peuvent ecirctre combineacutees dans la deacutefinition dun mecircme scheacutema
de relation
Remarque
Une contrainte sur une colonne peut toujours ecirctre remplaceacutee par une contrainte sur une table
f) Exemple de contraintes dinteacutegriteacute
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) Codepostal INTEGER(5) Pays VARCHAR(50) UNIQUE (Nom Prenom) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) CHECK (Initiale = LEFT(Pays 1)) PRIMARY KEY (CP Pays) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
Dans la deacutefinition de scheacutema preacuteceacutedente on a poseacute les contraintes suivantes
La cleacute primaire de Personne est NdegSS et la cleacute primaire de Adresse est (CP Pays)
Nom Preacutenom ne peuvent pas ecirctre null et (Nom Preacutenom) est une cleacute
Age doit ecirctre compris entre 18 et 65 et Initiale doit ecirctre la premiegravere lettre de Pays (avec la fonction
LEFT qui renvoie la sous chaicircne agrave gauche de la chaicircne passeacutee en premier argument sur le nombre de
caractegraveres passeacutes en second argument)
Mariage est cleacute eacutetrangegravere vers Personne et (Codepostal Pays) est une cleacute eacutetrangegravere vers Adresse
Exemtple Reacuteeacutecriture avec uniquement des contraintes de table
Creacuteation et alimentation de bases de donneacutees SQL
75
CREATE TABLE Personne ( NdegSS CHAR(13) Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) Mariage CHAR(13) Codepostal INTEGER(5) Pays VARCHAR(50) PRIMARY KEY (NdegSS) UNIQUE (Nom Prenom) CHECK (Age BETWEEN 18 AND 65) FOREIGN KEY (Mariage) REFERENCES Personne(NdegSS) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) PRIMARY KEY (CP Pays) CHECK
(Initiale = LEFT(Pays 1)) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22
Ce scheacutema est strictement le mecircme que le preacuteceacutedent simplement les contraintes ont toutes eacuteteacute reacuteeacutecrites
comme des contraintes de table
g) Exercice Les instructions SQL ci-apregraves ont-elles pu permettre de creacuteer le scheacutema des trois relations instancieacutees ci-dessous
CREATE TABLE A ( A1 CHAR(255) A2 CHAR(255) A3 CHAR(255) A4 CHAR(255) ) CREATE TABLE B ( B1 CHAR(255) B2 CHAR(255) B3 CHAR(255) B4 CHAR(255) B5 CHAR(255) B6 CHAR(255) B7 CHAR(255) ) CREATE TABLE C ( C1 CHAR(255) C2 CHAR(255) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Oui
Non
Creacuteation et alimentation de bases de donneacutees SQL
76
3 Inseacuterer modifier et supprimer des donneacutees en SQL
(Langage de Manipulation de Donneacutees)
Objectifs
Maicirctriser les bases du SQL pour entrer modifier et effacer des donneacutees dans les
tables
a) Exercice Quelle valeur renvoie la derniegravere instruction SQL de la liste ci-dessous
CREATE TABLE t ( a integer b integer c integer)
INSERT INTO t VALUES (0 0 0)
INSERT INTO t VALUES (1 0 0)
INSERT INTO t SELECT FROM t
SELECT sum(a) + count(b) FROM t
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
b) Insertion de donneacutees Le langage SQL fournit des instructions pour ajouter des nouveaux tuples agrave une relation Il offre ainsi une
interface standard pour ajouter des information dans une base de donneacutees
Il existe deux moyens dajouter des donneacutees soit par fourniture directe des valeurs des proprieacuteteacutes du tuple agrave
ajouter soit par seacutelection des tuples agrave ajouter dans une autre relation
Syntaxe Insertion directe de valeurs
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) VALUES (ltListe ordonneacutee
des valeurs agrave affecter aux proprieacuteteacutes speacutecifieacutees cidessusgt) 1 2
Exemtple Insertion directe de valeurs
INSERT INTO Virement (Date Montant Objet) VALUES (14-07-1975 1000 Prime de naissance)
1 2
Syntaxe Insertion de valeurs tpar lintermeacutediaire dune seacutelection
Creacuteation et alimentation de bases de donneacutees SQL
77
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) SELECT 1 2
Linstruction SELECT projetant un nombre de proprieacuteteacutes identiques aux proprieacuteteacutes agrave valoriser
Exemtple Insertion de valeurs tpar lintermeacutediaire dune seacutelection
INSERT INTO Credit (Date Montant Objet) SELECT Date Montant Annulation de deacutebit FROM Debit WHERE DebitDate = 25-12-2001
1 2 3 4
Dans cet exemple tous les deacutebits effectueacutes le 25 deacutecembre 2001 sont re-creacutediteacutes pour le mecircme montant (et
agrave la mecircme date) avec la mention annulation dans lobjet du creacutedit Ceci pourrait typiquement reacutealiseacute en cas
de deacutebits erroneacutes ce jour lagrave
Remarque
Les proprieacuteteacutes non valoriseacutees sont affecteacutees agrave la valeur NULL
Il est possible de ne pas speacutecifier les proprieacuteteacutes agrave valoriser dans ce cas toutes les proprieacuteteacutes de la
relation seront consideacutereacutees dans leur ordre de deacutefinition dans la relation (agrave nutiliser que dans les cas
les plus simples)
c) Mise agrave jour de donneacutees Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation
Syntaxe Mise agrave jour directe de valeurs
1 UPDATE ltNom de la relationgt
2 SET ltListe daffectations Proprieacuteteacute=Valeur Proprieacuteteacute=Valeurgt 3 WHERE ltCondition pour filtrer les tuples agrave mettre agrave jourgt
1 UPDATE r
2 SET a=1 b=x 3 WHERE c=0
Exemtple Mise agrave jour directe de valeurs
UPDATE Compte SET Monnaie=Euro WHERE Monnaie=Franc
1 2 3
Exemtple Mise agrave jour tpar calcul sur lancienne valeur
UPDATE Compte SET Total=Total 655957 WHERE Monnaie=Euro
1 2 3
Creacuteation et alimentation de bases de donneacutees SQL
78
d) Suppression de donneacutees Le langage SQL fournit une instruction pour supprimer des tuples existants dans une relation
Syntaxe
DELETE FROM ltNom de la relationgt WHERE ltCondition pour filtrer les tuples agrave supprimergt
1 2
Exemtple Sutptpression de tous les tutples dune relation
DELETE FROM FaussesFactures 1
Exemtple Sutptpression seacutelective
DELETE FROM FaussesFactures WHERE Auteur=Moi
1 2
4 Supprimer et modifier des tables en SQL (Langage de
Deacutefinition de Donneacutees)
Le LDD permet de creacuteer les objets composant une BD de faccedilon deacuteclarative Il permet notamment la
deacutefinition des scheacutemas des relations la deacutefinition des contraintes dinteacutegriteacute la deacutefinition de vues
relationnelles
a) Suppression dobjets Il est possible de supprimer des objets de la BD tels que les tables ou les vues
Syntaxe
DROP lttype objetgt ltnom objetgt 1
Exemtple
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
79
DROP TABLE Personne DROP VIEW Employe
1 2
b) Modification de tables
Introduction
Linstruction ALTER TABLE permet de modifier la deacutefinition dune table (colonnes ou contraintes) preacutealablement
creacuteeacutee
Cette commande absente de SQL-89 est normaliseacutee dans SQL-92
Syntaxe Ajout de colonne
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de colonnegt
1 2
Syntaxe Sutptpression de colonne
ALTER TABLE ltnom de tablegt DROP ltnom de colonnegt
1 2
Syntaxe Ajout de contrainte
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de contrainte de tablegt
1 2
RemarqueModification de table sans donneacutee sans la commande ALTER
Pour modifier une table ne contenant pas encore de donneacutee la commande ALTER nest pas indispensable
lon peut supprimer la table agrave modifier (DROP) et la recreacuteer telle quon la souhaite Notons neacuteanmoins que si
la table est reacutefeacuterenceacutee par des clauses FOREIGN KEY cette suppression sera plus compliqueacutee car il faudra
eacutegalement supprimer et recreacuteer les tables reacutefeacuterenccedilantes (ce qui ce complique encore si ces derniegraveres
contiennent des donneacutees)
RemarqueModification de table avec donneacutees sans la commande ALTER
Pour modifier une table contenant des donneacutees la commande ALTER nest pas indispensable On peut en effet
1 Copier les donneacutees dans une table temporaire de mecircme scheacutema que la table agrave modifier
2 Supprimer et recreacuteer la table agrave modifier avec le nouveau scheacutema 3 Copier les donneacutees depuis la table temporaire vers la table modifieacutee
c) Exemple de modifications de tables
Table initiale
Soit une table initiale telle que deacutefinie ci-apregraves
Creacuteation et alimentation de bases de donneacutees SQL
80
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) prenom
VARCHAR(50) PRIMARY KEY
(pk_n) )
1 2 3 4 5 6
Modifications
On deacutecide dapporter les ameacutenagements suivants agrave la table on deacutefinit nom comme UNIQUE et on supprime
le champ prenom
ALTER TABLE Personne ADD UNIQUE (nom)
ALTER TABLE Personne DROP prenom
1 2 3 4 5
Table finale
La table obtenue apregraves modification est identique agrave la table qui aurait eacuteteacute deacutefinie directement telle que ci-
apregraves
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) PRIMARY KEY (pk_n) UNIQUE
(nom) )
1 2 3 4 5 6
B Exercices
1 The show
[30 minutes] Soit le scheacutema relationnel suivant deacutecrivant un systegraveme de reacuteservations de places de spectacles
SPECTACLE (nospectacleint nomstr dureacuteeint typetheacuteacirctre|danse|concert) SALLE (nosalleint nbplacesint) REPRESENTATION (datedate nospectacle=gtSPECTACLE nosalle=gtSALLE prixdecimal)
1 2 3
En faisant les suppositions suivantes
On gegravere un espace de spectacles ayant un ensemble de salles (deacutecrit par la relation SALLE)
On suppose que pour un jour donneacute et une salle donneacutee il ny a quun seul spectacle repreacutesenteacute
Question 1
Retro-concevoir le MCD en UML
Question 2
Proposer des contraintes dinteacutegriteacute reacutealistes pour ce scheacutema (en franccedilais)
Question 3
Creacuteation et alimentation de bases de donneacutees SQL
81
Proposer une deacutefinition du scheacutema en SQL qui prenne en compte certaines de ces contraintes
Question 4
Inseacuterer des donneacutees reacutealistes dans votre scheacutema afin de veacuterifier son bon fonctionnement
2 Du producteur au consommateur
[30 min] Soit le modegravele relationnel suivant
Producteur(raison_socialechaicircne(25) villechaicircne(255)) Consommateur(loginchaicircne(10)
emailchaicircne(50) nomchaicircne(50)prenomchaicircne(50) villechaicircne(255)) Produit(identier descriptionchaicircne(100) produit-par=gtProducteur consommepar-
login=gtConsommateur consomme-par-email=gtConsommateur)
1 2
3
On ajoute que
(nomprenomville) est une cleacute candidate de Consommateur
Tous les produits sont produits
Tous les produits ne sont pas consommeacutes
Question 1
Reacutetro-concevez le modegravele conceptuel sous-jacent agrave ce modegravele relationnel
Question 2
Eacutetablissez le code LDD standard permettant dimpleacutementer ce modegravele en SQL
Question 3
Inseacuterez les donneacutees dans votre base de donneacutees correspondant aux assertions suivantes
Lentreprise de Compiegravegne Pommes Picardes SARL a produit 4 lots de pommes et 2 lots de cidre
Il existe trois utilisateurs consommateurs dans la base donc les adresses mails sont
AlUncompiegnefr - BobDeuxcompiegnefr - CharlieTroiscompiegnefr
Ce sont des employeacutes de la ville de Compiegravegne qui habitent cette ville Leur mail est construit sur le
modegravele PrenomNomcompiegnefr Leur login est leur preacutenom
Question 4
Modifiez les donneacutees de votre base de donneacutees pour inteacutegrer les assertions suivantes
1 lots de pommes a eacuteteacute consommeacutes par Al Un
2 lots de pomme ont eacuteteacute consommeacute par Bob Deux
Tous les lots de cidre ont eacuteteacute consommeacutes par Al Un
Question 5
Charlie Trois nayant rien consommeacute modifiez votre base de donneacutees afin de le supprimer de la base
82
VI - Algegravebre relationnelle
A Cours
1 Opeacuterateurs fondamentaux projection restriction et
jointure
Objectifs
Connaicirctre et savoir utiliser les opeacuterateurs relationnels de projection restriction
produit et jointure
a) Introduction La repreacutesentation dinformation sous forme relationnelle est inteacuteressante car les fondements matheacutematiques
du relationnel outre quils permettent une modeacutelisation logique simple et puissante fournissent eacutegalement
un ensemble de concepts pour manipuler formellement linformation ainsi modeacuteliseacutee
Ainsi une algegravebre relationnelle sous forme dun ensemble dopeacuterations formelles permet dexprimer des
questions ou requecirctes poseacutees agrave une repreacutesentation relationnelle sous forme dexpressions algeacutebriques
Lalgegravebre relationnelle est composeacutee par les cinq opeacuterateurs de base et les trois opeacuterateurs additionnels
suivants
Opeacuterateurs de base
- Union - Diffeacuterence - Projection - Restriction
VI
Algegravebre relationnelle
83
- Produit carteacutesien
Opeacuterateurs additionels
- Intersection - Jointure - Division
Fondamental Algegravebre relationnelle et SQL
Les questions formuleacutees en algegravebre relationnelle sont la base des questions formuleacutees en SQL
pour interroger une base de donneacutees relationnelle
b) Employeacutes et deacutepartements
[30 minutes] Soit les deux relations EMP et DEPT ci-apregraves
EMP (ENO ENOM PROF SAL COMM DNO=gtDEPT(DNO)) DEPT (DNO DNOM DIR=gtEMP(ENO) VILLE)
1 2
ENO numeacutero demployeacute cleacute
ENOM nom de lemployeacute
PROF profession (directeur nest pas une profession)
SAL salaire
COMM commission (un employeacute peut ne pas avoir de commission)
DNO numeacutero de deacutepartement auquel appartient lemployeacute
DNO numeacutero de deacutepartement cleacute
DNOM nom du deacutepartement
DIR numeacutero demployeacute du directeur du deacutepartement
VILLE lieu du deacutepartement (ville)
Eacutecrire en algegravebre relationnelle les requecirctes permettant dobtenir les informations suivantes
Question 1
Lister les employeacutes ayant des revenus supeacuterieurs agrave 10000 euros
Question 2
Trouver le nom et la profession de lemployeacute numeacutero 10
Question 3
Lister les noms des employeacutes qui travaillent agrave Paris
Question 4
Trouver le nom du directeur du deacutepartement Commercial
Question 5
Trouver les professions des directeurs des deacutepartements
Question 6
Algegravebre relationnelle
84
Trouver le nom des directeurs de deacutepartement ayant comme profession Ingeacutenieur
c) Projection
Deacutefinition Projection
La projection est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La projection de R1 sur
une partie de ses attributs A1 A2 produit une relation R2 dont le scheacutema est restreint aux attributs
mentionneacutes en opeacuterande comportant les mecircmes tuples que R1 et dont les doublons sont eacutelimineacutes
Remarque Eacutelimination des doublons
Apregraves suppression dune partie des attributs du scheacutema la relation peut comporter des doublons Eacutetant donneacute
que lon ne pourrait plus identifier ces doublons les uns par rapport aux autres la seule solution senseacutee est
donc de consideacuterer que deux doublons sont eacutequivalents et donc de nen garder quun seul dans la relation
reacutesultante
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Dupont Pierre 20
Durand Jean 30
Tableau 8 Personne
Soit lopeacuteration suivante
R = Projection (Personne Nom Age) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont 20
Durand 30
Tableau 9 R
d) Restriction
Deacutefinition Restriction
La restriction est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La restriction de R1 eacutetant
donneacutee une condition C produit une relation R2 de mecircme scheacutema que R1 et dont les tuples sont les tuples
de R1 veacuterifiant la condition C
Algegravebre relationnelle
85
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Soit les tuples suivants
Dupont Pierre 20
Durand Jean 30
Tableau 10 Personne
Soit lopeacuteration suivante
R = Restriction (Personne Agegt25) 1
On obtient alors la relation R composeacutee de lunique tuple restant suivant
Durand Jean 30
Tableau 11 R
e) Produit
Deacutefinition Produit carteacutesien
Le produit carteacutesien est une opeacuteration binaire (cest agrave dire portant sur deux relations) Le produit de R1 par
R2 (eacutequivalent au produit de R2 par R1) produit une relation R3 ayant pour scheacutema la juxtaposition de ceux
des relations R1 et R2 et pour tuples lensemble des combinaisons possibles entre les tuples de R1 et ceux de
R2 Synonymes Produit
Remarque
Le nombre de tuples reacutesultant du produit de R1 par R2 est eacutegal au nombre de tuples de R1 fois le nombre de
tuples de R2
Remarque
Le nombre de colonne du produit de R1 par R2 est eacutegal au nombre de colonne de R1 plus le nombre de
colonnes de R2
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Algegravebre relationnelle
86
Durand Jean 30
Tableau 12 Homme
Tesla Model X
Citroeumln 2 CV
Tableau 13 Voiture
Soit lopeacuteration suivante
R = Produit (Homme Voiture) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X
Dupont Pierre 20 Citroeumln 2 CV
Durand Jean 30 Tesla Model X
Durand Jean 30 Citroeumln 2 CV
Tableau 14 R
Remarque
Le produit carteacutesien est rarement utiliseacute seul mais il est agrave la base de la jointure
f) Jointure
Deacutefinition Jointure
La jointure est une opeacuteration binaire (cest agrave dire portant sur deux relations) La jointure de R1 et R2 eacutetant
donneacute une condition C portant sur des attributs de R1 et de R2 de mecircme domaine produit une relation R3
ayant pour scheacutema la juxtaposition de ceux des relations R1 et R2 et pour tuples lensemble de ceux obtenus
par concateacutenation des tuples de R1 et de R2 et qui veacuterifient la condition C
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 15 Homme
Algegravebre relationnelle
87
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV Dupont
Tableau 16 Voiture
Soit lopeacuteration suivante
R = Jointure (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Dupont Pierre 20 Citroeumln 3 CV Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Tableau 17 R
(Dupont Pierre 20 Dupont Georges 1) (Dupont Pierre 20 Dupont Jacques 3)
1 2
Fondamental
La jointure est lopeacuteration qui permet de rassembler les informations seacutepareacutees entre plusieurs
tables et reacutefeacuterenceacutees par des cleacutes eacutetrangegraveres
Remarque Otpeacuteration additionnelle
La jointure nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit et la restriction
g) Exercice Quelles sont les expressions relationnelles eacutequivalentes agrave
Projection ( Jointure (R1 R2 R1A1=R2A1) R1A1 R2A2) 1
Jointure ( Projection(R1 A1) Projection(R2 A2) R1A1=R2A1)
Projection ( Jointure (R2 R1 R2A1=R1A1) R1A1 R2A2)
Projection ( Restriction ( Produit(R1 R2) R1A1=R2A1) R1A1 R2A2)
Produit (R1 R2 R1A1=R2A1 R1A1 R2A2)
Algegravebre relationnelle
88
2 Opeacuterateurs compleacutementaires
a) Jointure naturelle
Deacutefinition Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition est leacutegaliteacute entre les attributs
de mecircme nom de R1 et de R2 Il est donc inutile de speacutecifier la condition dans une jointure naturelle elle
reste toujours implicite
Exemtple
Soit deux relations R1 (A B C) et R2 (A D) lopeacuteration Jointure(R1R2R1A=R2A) est eacutequivalente agrave
lopeacuteration JointureNaturelle(R1R2)
Remarque
Pour appliquer une jointure naturelle il faut que les deux relations opeacuterandes aient au moins un attribut ayant
le mecircme nom en commun
b) Jointure externe
Introduction
La jointure est une opeacuteration qui entraicircne la perte de certains tuples ceux qui appartiennent agrave une des deux
relations opeacuterandes et qui nont pas de correspondance dans lautre relation Il est neacutecessaire dans certains
cas de palier cette lacune et lon introduit pour cela la notion de jointure externe
Deacutefinition Jointure externe
La jointure externe entre R1 et R2 est une jointure qui produit une relation R3 agrave laquelle on ajoute les tuples
de R1 et de R2 exclus par la jointure en compleacutetant avec des valeurs nulles pour les attributs de lautre
relation
Deacutefinition Jointure externe gauche
La jointure externe gauche entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les
tuples de R1 (cest agrave dire la relation de gauche) ayant eacuteteacute exclus
Synonymes Jointure gauche
Deacutefinition Jointure externe droite
Objectifs
Maicirctriser lalgegravebre relationnelle
Algegravebre relationnelle
89
La jointure externe droite entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les tuples
de R2 (cest agrave dire la relation de droite) ayant eacuteteacute exclus
Bien entendu une jointure externe droite peut ecirctre reacuteeacutecrite par une jointure externe gauche (et
reacuteciproquement) en substituant les relations opeacuterandes R1 et R2
Synonymes Jointure droite
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Martin Georges 40
Tableau 18 Homme
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV NULL
Tableau 19 Voiture
Soit lopeacuteration suivante
R = JointureExterne (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Martin Georges 40 NULL NULL NULL
NULL NULL NULL Citroeumln 3 CV NULL
Tableau 20 R
Une jointure externe gauche naurait renvoyeacute que les trois premiers tuples et une jointure externe droite
naurait renvoyeacutee que les deux premiers et le dernier tuple
Algegravebre relationnelle
90
c) Opeacuterateurs ensemblistes
Atention Les opeacuterateurs ensemblistes sont des relations binaires (cest agrave dire entre deux relations) portant
sur des relations de mecircme scheacutema
Deacutefinition Union
Lunion de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee de
lensemble des tuples appartenant agrave R1 etou agrave R2
Deacutefinition Difeacuterence
La diffeacuterence entre deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema
constitueacutee de lensemble des tuples de R1 nappartenant pas agrave R2 Notons que la diffeacuterence entre R1 et R2
nest pas eacutegale agrave la diffeacuterence entre R2 et R1
Deacutefinition Intersection
Lintersection de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee
de lensemble des tuples appartenant agrave la fois agrave R1 et agrave R2 Notons que lintersection nest pas une opeacuteration
de base car elle est eacutequivalent agrave deux opeacuterations de diffeacuterence successives
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Femme (Nom Preacutenom Age)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 21 Homme
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 22 Femme
Soit lopeacuteration suivante
R = Union (Homme Femme) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20
Durand Jean 30
Algegravebre relationnelle
91
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 23 R
La diffeacuterence entre Homme et Femme (respectivement entre Femme et Homme) renvoie la relation Homme
(respectivement Femme) car aucun tuple nest commun aux deux relations Lintersection entre Homme est
Femme est vide pour la mecircme raison
Remarque Union externe
Il est possible de deacutefinir une opeacuteration dunion externe qui permet de reacutealiser lunion de deux relations de
scheacutema diffeacuterent en ramenant les relations aux mecircmes scheacutemas et en les compleacutetant avec des valeurs nulles
d) Division
Deacutefinition Division
La division est une opeacuteration binaire (cest agrave dire portant sur deux relations) La division de R1 par R2 sachant
que R1 et R2 ont au moins un attribut commun (cest agrave dire de mecircme nom et de mecircme domaine) produit
une relation R3 qui comporte les attributs appartenant agrave R1 mais nappartenant pas agrave R2 et lensemble des
tuples qui concateacuteneacutes agrave ceux de R2 donnent toujours un tuple de R1
Exemtple
Soit les deux relations suivantes
Pratique (Homme Meacutetier Salaire) Meacutetier (Metier)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Ingeacutenieur 35
Durand Professeur 40
Dupont Ingeacutenieur 45
Martin Ingeacutenieur 50
Tableau 24 Pratique
Ingeacutenieur
Professeur
Tableau 25 Meacutetier
Soit lopeacuteration suivante
R = Division (Homme Meacutetier) 1
Algegravebre relationnelle
92
On obtient alors la relation R composeacutee des tuples suivants
Dupont 35
Tableau 26 R
Meacutethode Reacutetponse aux questions Pour tous les
La division permet de reacutepondre aux questions du type Donnez toutes les personnes qui pratiquent tous les
meacutetiers de la relation meacutetier
Remarque Otpeacuteration additionnelle
La division nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit la restriction et la
diffeacuterence
e) Proposition de notations Introduction Il existe plusieurs syntaxes pour eacutecrire des opeacuterations dalgegravebre relationnelle certaines inspireacutees de lalgegravebre
classiques dautres reposant sur des notations graphiques Nous proposons une notation fonctionnelle qui a
le meacuterite decirctre facile agrave eacutecrire et decirctre lisible Si cette notation peut parfois perdre en simpliciteacute lorsquelle
concerne un nombre eacuteleveacute dopeacuterateurs il est possible de deacutecomposer une opeacuteration compliqueacutee afin de
lalleacuteger
Syntaxe
R = Union (R1 R2) R = Diffeacuterence (R1 R2) R = Intersection (R1 R2) R = Projection (R1 A1 A2 ) R = Restriction (R1 condition) R = Produit (R1 R2) R = Jointure (R1 R2 condition) R = JointureNaturelle (R1 R2) R = JointureExterne (R1 R2 condition) R = JointureGauche (R1 R2 condition) R = JointureDroite (R1 R2 condition) R = Division (R1 R2)
1 2 3 4 5 6 7 8 9
10 11 12
Exemtple Notation syntheacutetique
R = Projection(Restriction(R1 A1=1 AND A2=2) A3) 1
Exemtple Notation deacutecomtposeacutee
R = Restriction(R1 A1=1 AND A2=2) R = Projection (R A3)
1 2
Algegravebre relationnelle
93
f) Exercice Soit les deux relations R1 et R2 suivantes deacutefinies en extension
A B
1 A
2 B
3 C
Tableau 27 R1
A
1
2
Tableau 28 R2
Combien de tuples renvoie lopeacuteration relationnelle suivante
R3 = JointureNaturelle (Intersection (Projection(R1A) R2) R2) 1
g) Opeacuterateurs de base et additionnels Reacuteeacutecrivez les opeacuterateurs additionnels suivants agrave partir dopeacuterateurs de base
Question 1
Reacuteeacutecrivez Intersection agrave partir de Diffeacuterence
Question 2
Reacuteeacutecrivez Jointure agrave partir de Produit et Restriction
Algegravebre relationnelle
94
B Exercices
1 Faire du Cineacutema
[30 minutes] On considegravere les deux relations suivantes
FILMS (titre pays anneacutee reacutealisateur dureacutee) ACTEURS (titre acteur)
1 2
ougrave les attributs ont les significations et les types suivants
titre titre dun film (chaicircne 50 caractegraveres)
pays pays dougrave un film est originaire (chaicircne 10 caractegraveres)
annee anneacutee de sortie du film (entier 4 chiffres)
realisateur nom du reacutealisateur du film (chaicircne 20 caractegraveres)
duree dureacutee du film en minutes (entier 3 chiffres)
acteur nom dacteur (chaicircne 20 caractegraveres)
La relation FILMS donne pour chaque film identifieacute par son titre le pays lanneacutee de sortie reacutealisateur et la
dureacutee
La relation ACTEURS donne pour chaque film lensemble des principaux acteurs
Agrave laide de lalgegravebre relationnelle exprimer les requecirctes suivantes
Question 1
Lister les films franccedilais (titre anneacutee reacutealisateur)
Question 2
Donnez les anneacutees de sortie des films dans lesquels lacteur Jean GABIN a joueacute
Question 3
Trouver les acteurs qui ont tourneacute avec Franccedilois Truffaut comme reacutealisateur
Question 4
Trouver tous les acteurs qui ont eacuteteacute partenaires de lactrice Catherine Deneuve
Question 5
Lister les films dans lesquels le reacutealisateur est aussi acteur
Question 6
Lister les reacutealisateurs nayant joueacute comme acteurs que dans des films quils ne reacutealisaient pas eux-mecircmes
Question 7
Lister les reacutealisateurs ayant joueacute comme acteurs dans des films quils ne reacutealisaient pas eux-mecircmes
Question 8
Donnez les acteurs qui jouent dans tous les films de Franccedilois TRUFFAUT
Algegravebre relationnelle
95
2 Qiz Algegravebre relationnelle
Exercice 1 Quelles sont les opeacuterations relationnelles qui appliqueacutees sur les relations instancieacutees cidessous renvoient un ensemble non nul de tuples
Num Nom Famille
1 Ours Mammifegravere
2 Truite Poisson
3 Homme Mammifegravere
4 Martinshypecirccheur Oiseau
Tableau 29 Animal
Num Nom
1 Forecirct
2 Montagne
3 Ciel
4 Riviegravere
5 Mer
Tableau 30 Environnement
Animal Environnement
1 1
1 2
1 4
2 4
4 3
Tableau 31 Habiter
Mangeur Mangeacute Freacutequence
1 2 Souvent
1 3 Rarement
1 4 Rarement
4 2 Souvent
3 1 Rarement
Algegravebre relationnelle
96
3 2 Souvent
Tableau 32 Manger
Restriction( Projection (Animal Nom Famille) Famille=Mammifegravere)
Restriction( Jointure( Jointure (Animal Habiter AnimalNum=HabiterAnimal) Environnement
EnvironnementNum=HabiterEnvironnement) AnimalNum=3)
Restriction( JointureExterneGauche( Animal Habiter
AnimalNum=HabiterAnimal) AnimalNom=Homme)
Jointure( Animal Manger AnimalNum=MangerMangeur AND AnimalNum=MangerMangeacute)
Exercice 2 Soit le scheacutema relationnel
R1(X Y) R2(X Y)
1 2
Quelles sont les opeacuterations relationnelles eacutequivalentes agrave lopeacuteration
Projection( JointureNaturelle(R1R2) R1X) 1
JointureNaturelle(Projection(R1 X) Projection(R2 X))
Projection( Selection (Produit(R1 R2) R1X=R2X AND R1Y=R2Y) R1X)
Projection( Union( R1 R2) R1X)
Projection( JointureExterne ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Projection( Jointure ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Algegravebre relationnelle
97
Exercice 3 Soit la relation instancieacutee suivante
A B C
1 1 0
1 0 1
0 1 1
Tableau 33 Relation R1
Quelles relations sont retourneacutees par lopeacuteration relationnelle suivante
R2 = JointureNaturelle(R1 R1) 1
1 1 0
1 0 1
0 1 1
Tableau 34 R2a
1 1 0
1 0 1
0 1 1
1 1 0
1 0 1
0 1 1
Tableau 35 R2b
1 1 1
0 0 0
Tableau 36 R2c
1 1 0 1 1 0
1 0 1 1 0 1
0 1 1 0 1 1
Algegravebre relationnelle
98
Tableau 37 R2d
R2a
R2b
R2c
R2d
Une relation vide (aucun tuple)
3 Le retour des eacutecoliers
[45 minutes] Soit le scheacutema relationnel suivant
IMMEUBLE (ADI NBETAGES DATEC PROP) APPIM (ADI NAPR OCCUP TYPE SUPER ETAGE) PERSONNE (NOM AGE PROF ADR NAPR) EacuteCOLE (NOMEC ADEC DIR) CLASSE (NOMEC NCL MAITRE) ENFANT (NOMP PRENOM AN NOMEC NCL)
1 2 3 4 5 6
Avec la signification suivante
Relation IMMEUBLE
ADI adresse dimmeuble cleacute on fait lhypothegravese pour simplifier que ladresse identifie de maniegravere
unique un immeuble NBETAGES nombre deacutetages dun immeuble
DATEC date de construction (anneacutee)
PROP nom du proprieacutetaire de limmeuble qui est une personne
Relation APPIM (Appartement) ADI
adresse dimmeuble
NAPR numeacutero dappartement
OCCUP occupant de lappartement (nom de la personne ayant signeacute le contrat de location
eacuteventuellement aucun)
TYPE type de lappartement (Studio F2 )
SUPER superficie de lappartement
ETAGE eacutetage ougrave se situe lappartement
Relation PERSONNE
NOM nom de personne cleacute on fait lhypothegravese pour simplifier que ce nom est unique sur lensemble
des personnes que lon considegravere dans la base
AGE acircge de la personne
PROF profession de la personne
ADR adresse de la reacutesidence dune personne il sagit dun immeuble NAPR numeacutero
dappartement
Relation EacuteCOLE
NOMEC nom dune eacutecole cleacute
ADEC adresse dune eacutecole
DIR nom du directeur
Algegravebre relationnelle
99
Relation CLASSE
NOMEC nom dune eacutecole
NCL nom de la classe eg CP1 CE2 CE3 etc MAITRE nom
de linstituteur
Relation ENFANT
NOMP nom de la personne responsable de lenfant cleacute eg pegravere megravere etc
PRENOM preacutenom de lenfant
AN anneacutee de naissance
NOMEC nom dune eacutecole
NCL nom de la classe
La relation IMMEUBLE deacutecrit un ensemble dimmeubles Chaque immeuble a un proprieacutetaire La relation APPIM
deacutecrit pour chaque immeuble lensemble des appartements qui le compose (il y a au mimimum un appartement
par immeuble) Chaque appartement peut heacuteberger plusieurs personnes mais il y en a une qui est responsable
(par exemple la personne qui a signeacute le contrat de location) et qui est deacutesigneacutee par lattribut OCCUP Si
lappartement est inoccupeacute il prend la valeur NULL La relation PERSONNE deacutecrit un ensemble de personnes
ADR et NAPR repreacutesentent ladresse ougrave reacuteside une personne Une personne peut avoir plusieurs enfants deacutecrits
par la relation ENFANT Pour simplifier on ne considegravere que les enfants allant agrave leacutecole primaire Les eacutecoles et
les classes sont deacutecrites dans les relations EacuteCOLE et CLASSE chaque eacutecole est composeacutee au minimum dune
classe et chaque classe est au moins freacutequenteacutee par un enfant
Question 1
Donner ladresse des immeubles ayant plus de 10 eacutetages et construits avant 1970
Question 2
Donner les noms des personnes qui habitent dans un immeuble dont ils sont proprieacutetaires
Question 3
Donner les noms des personnes qui ne sont pas proprieacutetaires
Question 4
Donner les adresses des immeubles posseacutedeacutes par des informaticiens dont lacircge est infeacuterieur agrave 40 ans
Question 5
Donner la liste des occupants (nom acircge profession) des immeubles posseacutedeacutes par DUPONT
Question 6
Donner le nom et la profession des proprieacutetaires dimmeubles dans lesquels il y a des appartements vides
Question 7
Donner les noms des maicirctres qui habitent dans le mecircme immeuble (agrave la mecircme adresse) quau moins un de
leurs eacutelegraveves (on suppose que les enfants vivent sous le mecircme toit que leur parents)
Question 8
Donner ladresse de limmeuble la date de construction le type dappartement et leacutetage ougrave habitent chacun
des maicirctres des enfants de DUPONT
Algegravebre relationnelle
100
101
Qestions de synthegravese
Pourquoi est-il fondamental mais difficile de parvenir agrave un MCD correct
Eacutenoncer quelques actions agrave mener pour reacutealiser une speacutecification geacuteneacuterale de lexistant et des besoins
Quest ce qui diffeacuterencie fondamentalement un MCD dun MLD
Questions de synthegravese
102
Quels sont les principaux eacuteleacutements du diagramme de classes UML
Quelles sont les diffeacuterences et points communs entre la diagramme de classe UML et le modegravele E-A
eacutetendu
Questions de synthegravese
103
Quest ce quun domaine
Comment identifie-t-on un attribut dune relation
Comment identifie-t-on un enregistrement dune relation
Questions de synthegravese
104
Quand doit-on ajouter des cleacutes artificielles
Quelle problegraveme pose la redondance et comment le reacutesoudre
A quoi sert le LDD
Questions de synthegravese
105
Quel rapport y-a-t il entre le LDD et le concept de relation
Pourquoi la jointure est-elle un opeacuterateur essentiel
Questions de synthegravese
106
Quels sont les opeacuterateurs algeacutebriques de base Quels sont les autres opeacuterateurs Quest ce qui les diffeacuterencie
Quels sont les opeacuterateurs ensemblistes Quest ce qui les caracteacuterise
Pourquoi la jointure est-elle un opeacuterateur essentiel
Quest ce qui diffeacuterencie une jointure externe dune jointure classique
107
Glossaire
Cleacute artificielle
Une cleacute artificielle est un attribut ajouteacute agrave une relation afin didentifier ses enregistrements On fait appel agrave
une cleacute artificielle lorsque la relation ne comporte aucune cleacute naturelle ou que ses cleacutes naturelles sont jugeacutees
inadapteacutees agrave lidentification au sein de la base de donneacutees
Extension
Lextension est lexplicitation dun domaine par leacutenonciation exhaustive de lensemble des objets du domaine
Elle soppose agrave linstension qui est une description abstraite des caracteacuteristiques du domaine
Exemple bleu rouge vert
Contre-exemple Le domaine des couleurs
Intension
Lintension est lexplicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa
compreacutehension abstraite geacuteneacuterale)
Elle soppose agrave lextension qui est leacutenonciation exhaustive de lensemble des objets du domaine
Exemple Le domaine des couleurs
Contre-exemple bleu rouge vert
108
Signification des abreacuteviations
- ANSI American National Standards Institute
- BD Base de Donneacutees
- E-A Entiteacute-Association
- ISO International Standardization Organization
- LCD Langage de Controcircle de Donneacutees
- LDD Langage de Deacutefinition de Donneacutees
- LMD Langage de Manipulation de Donneacutees
- OMG Object Management Group
- PSM Persistent Stored Modules
- RO Relationnel-Objet
- SGBD Systegraveme de Gestion de Bases de Donneacutees
- SGBDR Systegraveme de Gestion de Bases de Donneacutees Relationnelles
- SQL Structured Query Language
- UML Unified Modeling Language
- XML eXtensible Markup Language
Reacutefeacuterences
[dbdiscocrztfr] httpdbdiscocrztfr3
109
3 - httpdbdiscocrztfr
Bibliographie
[Arribe 2014] ARRIBE THIBAUT 2014 Conception des chaicircnes eacuteditoriales documentariser lactiviteacute et structurer le graphe documentaire pour ameacuteliorer la maicirctrise de la reacuteeacuteditorialisation Universiteacute de Technologie de
Compiegravegne Meacutemoire de Doctorat httpicsutcfr~tha
[Codd70] CODD EF A relational model for large shared data banks Communications de lACM juin 1970
[Delmal01] DELMAL PIERRE SQL2 SQL3 applications agrave Oracle De Boeck Universiteacute 2001
[Gardarin99] GARDARIN GEORGES Bases de donneacutees objet et relationnel Eyrolles 1999
[Gulutzan and Pelzer 1999] GULUTZAN PETER PELZER TRUDY 1999 SQL-99 complete really CMP books
[Muller98] MULLER PA Modeacutelisation objet avec UML Eyrolles 1998
[Roques04] ROQUES PASCAL VALLEacuteE FRANCK UML 2 en action De lanalyse des besoins agrave la conception J2EE
ISBN 2212-11462-1 (3egraveme eacutedition) Paris Eyrolles 2004 385 p architecte logiciel
[Rothenberg et al 1989] ROTHENBERG JEFF WIDMAN LAWRENCE E LOPARO KENNETH A NIELSEN NORMAN R 1989 The nature of modeling Rand vol3027
[Soutou02] SOUTOU CHRISTIAN De UML agrave SQL Conception de bases de donneacutees Eyrolles 2002
[Tardieu83] TARDIEU H ROCHFELD A COLLETI R Meacutethode MERISE Tome 1 Principes et outils Les Editions dOrganisation 1983
Webographie
[w_journaldunetcom(1)] MORLON JEacuteROcircME UML en 5 eacutetapes httpdeveloppeurjournaldunetcomdossiersalg_umlshtml 2004
[w_journaldunetcom(2)] BORDERIE XAVIER Cinq petits conseils pour un scheacutema UML efficace
httpdeveloppeurjournaldunetcomtutorielcpt031013cpt_uml5conseilsshtml 2004
[w_objecteering] Objecteering software httpwwwobjecteeringcom [2002-septembre]
[w_umlfreefr] UML en Franccedilais httpumlfreefr consulteacute en 2002
Questions de synthegravese
110
Index
11 p54 Error Reference source
not found 1N p53 Error Reference source
not found Algegravebre p48 71 71 72 73 74 75
76 76 76 78 79 80 ALTER TABLE p67 68 Analyse p9 11 12 13 Application p6 Association pError Reference
source not found 31 Error
Reference source not found 32 44
Error Reference source not found
53 Error Reference source not
found 53 Error Reference source
not found 54 Error Reference
source not found 54 Attribut p28 32 40 41 41 42 44
51 52 54 Base de donneacutees p17 BD p4
Cardinaliteacute p32 Error
Reference source not found Error
Reference source not found Carteacutesien p74 CHECK p62 63 Classe p27 50 54 Cleacute p41 42 42 44 Cleacute artificielle p42 Cleacute candidate p42 Cleacute primaire p42 42 Cleacute signifiante p42 Codd p39 Composition pError Reference
source not found Error Reference
source not found Conception p9 11
Conceptuel p9 11 13 15 26 27
50 53
CREATE TABLE p59
Creacuteation p58 Deacuteclaratif p58 DELETE p65 66 Diagramme p26 Diffeacuterence p78 Division p79 Domaine p39 48 48 60 61 DROP p67 E-A p32 Enregistrement p40 41 Externe p15 76 FOREIGN KEY p62 63 INSERT p65 65 Instance p15 Interne p15 Intersection p78 Jointure p75 76 76 Langage p8 65 LDD p8 58 67 Lien p44 LMD p8 65 Logique p38 38 39 39 41 50
53 Manipulation p71 Meacutethode p30 Modegravele p13 23 38 39 39 41 45
46 Modeacutelisation p42 Modification p67 NM p53 N M pError Reference source not
found Naturelle p76 NOT NULL p62 63 Null p61 OMG p27 Opeacuteration p30 48 Passage p50 53 PostgreSQL p17
PRIMARY KEY p62 63 Produit p48 48 74
Projection p72 Proprieacuteteacute p28 32 Reacutefeacuterence p44 REFERENCES p62 63 Relation p40 41 41 42 44 44 45
48 Relationnel p5 Error
Reference source not found 38 38
39 39 41 45 46 48 48 50 50
51 Error Reference source not
found 52 53 53 Error Reference
source not found 53 Error Reference source not found 54
Error Reference source not found 54 71
71 76 80 Relationnel-objet p38 39 Requecircte p65 Restriction p73 Scheacutema p15 45 46 SGBD p5 Speacutecifications p12 SQL p8 58 65 67 Suppression p67 Table p58 67 Tuple p40 Type p60 61 UML p13 26 27 27 28
Error Reference source not found
30 31 Error Reference source not found 32 50
50 51 Error Reference source not
found 52 53 53 Error Reference source not
found 53 Error Reference source not
found 54 Error Reference source not found
54 Union p78 UNIQUE p62 63 UPDATE p65 66
wwwsambaconsultantscom 111
Contenus annexes
- Deacutefinition du mouvement NoSQL
Deacutefinition
Le NoSQL regroupe de nombreuses bases de donneacutees reacutecentes pour la plupart qui se caracteacuterisent par une logique de repreacutesentation de donneacutees non relationnelle et qui noffrent donc pas une interface de requecirctes en SQL
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-dedonnees-nosql4
NoSQL signifie Not Only SQL et non pas No SQL il sagit de compleacutements aux SGBDR pour des
besoins speacutecifiques et non de solutions de remplacement Exemtple
BD orienteacutee cleacute-valeur
BD orienteacutee graphe
BD orienteacutee colonne
BD orienteacutee document
Comtpleacutement
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql5
- Transformation des meacutethodes par des vues
Meacutethode
Lorsquune meacutethode est speacutecifieacutee sur un diagramme UML pour une classe C si cette meacutethode est une fonction
relationnelle (elle renvoie une unique valeur et elle peut ecirctre reacutesolue par une requecircte SQL) alors on creacutee une
vue qui reprend les attributs de la classe C et ajoute des colonnes calculeacutees pour les meacutethodes
Remarque Atributs deacuteriveacutes
Les attributs deacuteriveacutes eacutetant apparenteacutes agrave des meacutethodes ils peuvent eacutegalement ecirctre geacutereacutes par des vues
Contenus annexes
112
- Composition
Deacutefinition Association de comtposition
On appelle composition une association particuliegravere qui possegravede les proprieacuteteacutes suivantes
La composition associe une classe composite et des classes parties tel que tout objet partie appartient
agrave un et un seul objet composite Cest donc une association 1N (voire 11)
La composition nest pas partageable donc un objet partie ne peut appartenir quagrave un seul objet
composite agrave la fois
Le cycle de vie des objets parties est lieacute agrave celui de lobjet composite donc un objet partie disparaicirct
quand lobjet composite auquel il est associeacute disparaicirct
Remarque
La composition est une association particuliegravere (binaire de cardinaliteacute contrainte)
La composition nest pas symeacutetrique une classe joue le rocircle de conteneur pour les classes lieacutees elle
prend donc un rocircle particulier a priori
La composition est une agreacutegation avec des contraintes suppleacutementaires (non partageabiliteacute et cycle
de vie lieacute)
Image 14 Notation de la composition en UML
Atention Composition et cardinaliteacute
La cardinaliteacute cocircteacute composite est toujours de exactement 1
Cocircteacute partie la cardinaliteacute est libre elle peut ecirctre 01 1 ou bien 1
Image 15 Un livre
On voit bien ici quun chapitre na de sens que faisant partie dun livre quil ne peut exister dans deux livres
diffeacuterents et que si le livre nexiste plus les chapitres le composant non plus
Remarque Comtposition et entiteacutes faibles
Syntaxe
Contenus annexes
113
wwwsambaconsultantscom
La composition permet dexprimer une association analogue agrave celle qui relie une entiteacute faible agrave une entiteacute
identifiante en modeacutelisation E-A Lentiteacute de type faible correspond agrave un objet partie et lentiteacute identifiante
agrave un objet composite
Conseil Comtposition et atribut multivalueacute
Une composition avec une classe partie doteacutee dun seul attribut peut seacutecrire avec un attribut multivalueacute
Un attribut composeacute et multivalueacute peut seacutecrire avec une composition
Ratptpel Voir aussi
Attributs
Agreacutegation - p100
- Agreacutegation
Deacutefinition Association dagreacutegation
Lagreacutegation est une association particuliegravere utiliseacutee pour preacuteciser une relation toutpartie (ou
ensembleeacuteleacutement) on parle dassociation meacutereacuteologique
Elle possegravede la proprieacuteteacute suivante Lagreacutegation associe une classe agreacutegat et des classes parties tel que tout
objet partie appartient agrave au moins un objet agreacutegat
Remarque
Lagreacutegation est une association particuliegravere (binaire de cardinaliteacute libre)
Lagreacutegation nest pas symeacutetrique Syntaxe
Image 16 Notation de lagreacutegation en UML
La cardinaliteacute peut ecirctre exprimeacutee librement en particulier les instances de la classe Eacuteleacutement peuvent ecirctre
associeacutees agrave plusieurs instances de la classe Ensemble et mecircme de plusieurs classes
Atention
Lagreacutegation garde toutes les proprieacuteteacutes dune association classique (cardinaliteacute cycle de vie
etc) elle ajoute simplement une terminologie un plus preacutecise via la notion de toutpartie
- Explicitation des associations
Syntaxe Sens de lecture
Il est possible dajouter le sens de lecture du verbe caracteacuterisant lassociation sur un diagramme de classe
UML afin den faciliter la lecture On ajoute pour cela un signe lt ou gt (ou un triangle noir) agrave cocircteacute du nom
de lassociation
Contenus annexes
114
Syntaxe Rocircle
Il est possible de preacuteciser le rocircle joueacute par une ou plusieurs des classes composant une association afin den
faciliter la compreacutehension On ajoute pour cela ce rocircle agrave cocircteacute de la classe concerneacutee (parfois dans un petit
encadreacute colleacute au trait de lassociation
Exemtple
Image 17 Rocircle et sens de lecture sur une association
Deacutefinition Association reacuteflexive
Une association reacuteflexive est une association qui associe une classe avec elle-mecircme
Lexplicitation des associations est particuliegraverement utile dans le cas des associations reacuteflexives
- Associations ternaires
Image 18 Notation dune association ternaire
Conseil Ne tpas abuser des associations ternaires
Il est toujours possible de reacuteeacutecrire une association ternaire avec trois associations binaires en transformant
lassociation en classe
Conseil Pas de degreacute sutpeacuterieur agrave 3
En pratique on nutilise jamais en UML dassociation de degreacute supeacuterieur agrave 3
- Transformation des agreacutegations
Ratptpel Agreacutegation
Les associations de type agreacutegation se traitent de la mecircme faccedilon que les associations classiques
Syntaxe
Contenus annexes
115
wwwsambaconsultantscom
Graphique 12 Agreacutegation 1N
Classe1(ab)
Classe2(cda=gtClasse1)
Graphique 13 Agreacutegation NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
- Transformation des compositions
Meacutethode
Une composition
est transformeacutee comme une association 1N
puis on ajoute agrave la cleacute de la classe partie (dite cleacute locale) la cleacute eacutetrangegravere vers la classe composite pour
construire une cleacute primaire composeacutee
Graphique 14 Composition
Classe1(ab)
Classe2(ca=gtClasse1d)
Remarque Cleacute locale
Pour identifier une classe partie dans une composition on utilise une cleacute locale concateacuteneacutee agrave la cleacute eacutetrangegravere
vers la classe composite afin dexprimer la deacutependance entre les deux classes
Si une cleacute naturelle globale permet didentifier de faccedilon unique une partie indeacutependamment du tout on
preacutefeacuterera la conserver comme cleacute candidate plutocirct que de la prendre pour cleacute primaire
Contenus annexes
116
Si on la choisit comme cleacute primaire cela revient agrave avoir transformeacute la composition en agreacutegation en redonnant
une vie propre aux objets composants
Comtpleacutement Comtposition et entiteacutes faibles en E-A
Une composition est transformeacutee selon les mecircmes principes quune entiteacute faible en E-A
Comtpleacutement Atributs multivalueacutes et comtposeacutes
La transformation dun attribut composeacute multivalueacute donne un reacutesultat eacutequivalent agrave la transformation dune
composition
Classe1
a key b [0N] -b1 -b2
Graphique 15 Composition et attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
La transformation dune composition avec un seul attribut pour la classe composante donne un reacutesultat
eacutequivalent agrave la transformation dun attribut multivalueacute
Graphique 16 Composition et attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Ratptpel Voir aussi
Transformation des attributs
- Contrainte de cardinaliteacute minimale 1 dans les associations 1N
Ratptpel
Transformation des associations 1N
Meacutethode
a key
Classe1
0 N
( b1b2) local key
Contenus annexes
117
wwwsambaconsultantscom
Classe1
1 association 1N
Classe2
a key
b c key
d
Graphique 17 Association 1N
Si la cardinaliteacute est exactement 1 (11) cocircteacute 1 alors on ajoutera une contrainte de non nulliteacute sur la
cleacute eacutetrangegravere
si la cardinaliteacute est au moins 1 (1N) cocircteacute N on ajoutera une contrainte dexistence de tuples
reacutefeacuterenccedilant pour chaque tuple de la relation reacutefeacuterenceacutee
Classe1(ab)
Classe2(cda=gtClasse1)
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Graphique 18 Classe dassociation (1N)
Classe1(ab)
Classe2(cda=gtClasse1 e f) avec e KEY
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Comtpleacutement
Projection
- Contrainte de cardinaliteacute minimale 1 dans les associations NM
Ratptpel
Transformation des associations NM
Meacutethode
Si la cardinaliteacute est exactement au moins 1 (1N) dun cocircteacute etou de lautre alors des contraintes
dexistence simultaneacutee de tuple devront ecirctre ajouteacutee
Ce nest pas neacutecessaire si la cardinaliteacute est 0N
a key b
Classe1
c key d
Classe2
1 N 1
e loc al key f
Cl-A ssoc
Contenus annexes
118
Graphique 19 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Graphique 20 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Cl-Assoc(a=gtClasse1c=gtClasse2ef)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Comtpleacutement
Projection
- Transformation des associations 11 (approche geacuteneacuterale) Il existe deux solutions pour transformer une association 11
Avec deux relations on traite lassociation 11 comme une association 1N puis lon ajoute une
contrainte UNIQUE sur la cleacute eacutetrangegravere pour limiter la cardinaliteacute maximale agrave 1
Avec une seule relation on fusionne les deux classes en une seule relation
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 21 Association 11
Meacutethode Avec deux relations (cleacute eacutetrangegravere)
Une des deux relations est choisie pour porter la cleacute eacutetrangegravere
on ajoute les contraintes UNIQUE ou KEY (cleacute candidate) sur la cleacute eacutetrangegravere et si neacutecessaire une
contrainte imposant linstanciation simultaneacutee des deux relations
Classe1(abc=gtClasse2) avec c UNIQUE ou KEY
Classe2(cd)
a key b
Classe1
c key d
Classe2
1 N 1 N
e key f
ssoc Cl-A
Contenus annexes
119
wwwsambaconsultantscom
Contrainte (eacuteventuellement) PROJ(Classe1c)=PROJ(Classe2c) ou
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE ou KEY
Contrainte (eacuteventuellement) PROJ(Classe1a)=PROJ(Classe2a)
Meacutethode Avec une relation (fusion)
On creacuteeacute une seule relation contenant lensemble des attributs des deux classes on
choisit une cleacute parmi les cleacutes candidates
Classe12(abcd) avec c UNIQUE ou KEY ou
Classe21(cdab) avec a UNIQUE ou KEY
RemarqueFusion des relations dans le cas de la traduction de lassociation 11
Ce choix entre les deux meacutethodes sera conduit par une appreacuteciation du rapport entre
La complexiteacute introduite par le fait davoir deux relations lagrave ou une suffit
La pertinence de la seacuteparation des deux relations dun point de vue seacutemantique
Les pertes de performance dues agrave leacuteclatement des relations
Les pertes de performance dues au fait davoir une grande relation
Les questions de seacutecuriteacute et de sucircreteacute factoriseacutees ou non au niveau des deux relations
Introduction geacuteneacuterale aux bases de donneacutees
11
3 Eacutelaboration du modegravele logique en relationnel
4 Analyse de la situation existante et des besoins
Reacuteponse ___ ___ ___ ___
b) Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
Meacutethode Eacutetatpes de la concetption dune base de donneacutees
1 Analyse de la situation existante et des besoins (clarification) 2 Creacuteation dun modegravele conceptuel qui permet de repreacutesenter tous les aspects importants du problegraveme 3 Traduction du modegravele conceptuel en modegravele logique (et normalisation de ce modegravele logique) 4 Impleacutementation dune base de donneacutees dans un SGBD agrave partir du modegravele logique (et optimisation)
Graphique 1 Processus de conception dune base de donneacutees
On distingue quatre eacutetapes dans la conception dune base de donneacutees
Lanalyse
Elle consiste agrave eacutetudier le problegraveme et agrave consigner dans un document la note de clarification les
besoins les choix les contraintes
La modeacutelisation conceptuelle
Elle permet de deacutecrire le problegraveme poseacute de faccedilon non-formelle (en geacuteneacuterale graphique) en prenant
des hypothegraveses de simplification Ce nest pas une description du reacuteel mais une repreacutesentation
simplifieacutee dune reacutealiteacute
La modeacutelisation logique
Ele permet de deacutecrire une solution en prenant une orientation informatique geacuteneacuterale (type de SGBD
typiquement) formelle mais indeacutependamment de choix dimpleacutementation speacutecifiques
Limpleacutementation
Elle correspond aux choix techniques en terme de SGBD choisi et agrave leur mise en œuvre
(programmation optimisation)
Fondamental
Bien analyser le problegraveme poseacute en amont
BD solution proposeacutee
Domaine problegraveme poseacute
Modegravele Conceptuel
Modegravele Logique
Repreacutesenter
Impleacutementer
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 12
Bien modeacuteliser le problegraveme au niveau conceptuel avant de passer au niveau logique et agrave
limpleacutementation
Conseil Limtportance de leacutetatpe danalyse
La premiegravere eacutetape de la conception repose sur lanalyse de lexistant et des besoins De la qualiteacute de la
reacutealisation de cette premiegravere eacutetape deacutependra ensuite la pertinence de la base de donneacutees par rapports aux
usages Cette premiegravere eacutetape est donc essentielle et doit ecirctre meneacutee avec soins
Si la premiegravere eacutetape est fondamentale dans le processus de conception elle est aussi la plus deacutelicate En effet
tandis que des formalismes puissants existent pour la modeacutelisation conceptuelle puis pour la modeacutelisation
logique la perception de lexistant et des besoins reste une eacutetape qui repose essentiellement sur lexpertise
danalyse de lingeacutenieur
Conseil Limtportance de leacutetatpe de modeacutelisation concetptuelle
Eacutetant donneacutee une analyse des besoins correctement reacutealiseacutee la seconde eacutetape consiste agrave la traduire selon un
modegravele conceptuel Le modegravele conceptuel eacutetant formel il va permettre de passer dune speacutecification en
langage naturel et donc soumise agrave interpreacutetation agrave une speacutecification non ambiguumle Le recours aux
formalismes de modeacutelisation tels que E-A ou UML est donc une aide fondamentale pour parvenir agrave une
repreacutesentation qui ne sera plus lieacutee agrave linterpreacutetation du lecteur
La traduction dun cahier des charges speacutecifiant lexistant et les besoins en modegravele conceptuel reste neacuteanmoins
une eacutetape deacutelicate qui va conditionner ensuite lensemble de limpleacutementation informatique En effet les eacutetape
suivantes sont plus meacutecaniques dans la mesure ougrave un modegravele logique est deacuteduit de faccedilon systeacutematique du
modegravele conceptuel et que limpleacutementation logicielle est eacutegalement reacutealiseacutee par traduction directe du modegravele
logique
RemarqueLes eacutetatpes de traduction logique et dimtpleacutementation
Des logiciels speacutecialiseacutes (par exemple Objecteering [w_objecteering]) sont capables agrave partir dun modegravele
conceptuel dappliquer des algorithmes de traduction qui permettent dobtenir directement le modegravele logique
puis les instructions pour la creacuteation de la base de donneacutees dans un langage orienteacute donneacutees tel que SQL
Lexistence de tels algorithmes de traduction montre que les eacutetapes de traduction logique et dimpleacutementation
sont moins complexes que les preacuteceacutedentes car plus systeacutematiques
Neacuteanmoins ces eacutetapes exigent tout de mecircme des compeacutetences techniques pour optimiser les modegraveles logiques
(normalisation) puis les impleacutementations en fonction dun contexte de mise en œuvre mateacuteriel logiciel et
humain
c) Qatre eacutetapes pour reacuteduire la complexiteacute La reacutealisation dune base de donneacutees est une tacircche complexe le deacutecoupage en quatre eacutetapes permet de geacuterer
cette complexiteacute
Clarification ModeacutelisationConceptuelle ModeacutelisationLogique Im pleacutem entation
Conception en quatre eacutetapes
Introduction geacuteneacuterale aux bases de donneacutees
13
Lideacutee geacuteneacuterale est de ne pas meacutelanger la nature des tacircches typiquement on ne veut pas en mecircme temps
se poser des questions geacuteneacuterales relatives aux besoins (ce que je veux faire) et des questions techniques tregraves
speacutecifiques (comment repreacutesenter telle information)
Meacutethode
Lapproche est donc
de regarder agrave gauche on regarde le monde quand on clarifie on regarde la note de clarification
quand on fait le MCD on regarde le MCD quand on fait le MLD on regarde le MLD quand on
impleacutemente
et de ne pas regarder trop loin on anticipe deacutejagrave le MCD pendant la clarification mais on ne se
preacuteoccupe pas de questions dimpleacutementation quand on fait le MLD on ne se pose plus de question
sur le monde la clarification et le MCD ont ducirc deacutejagrave reacutepondre quand on impleacutemente on ne se pose
plus de question de modeacutelisation on soccupe des programmes de la machine
Fondamental
On peut toujours revenir sur une eacutetape la conception est iteacuterative mais on ne doit pas tout le
temps se poser tous les problegravemes en mecircme temps
d) Eacuteleacutements pour lanalyse de lexistant et des besoins La phase danalyse de lexistant et des besoins est une phase essentielle et complexe Elle doit aboutir agrave des
speacutecifications geacuteneacuterales qui deacutecrivent en langage naturel les donneacutees manipuleacutees et les traitements agrave
effectuer sur ces donneacutees
On se propose de donner une liste non exhaustive dactions agrave mener pour reacutediger de telles speacutecifications
Meacutethode Lanalyse de documents existants
La conception dune base de donneacutees sinscrit geacuteneacuteralement au sein dusages existants Ces usages sont
geacuteneacuteralement au moins en partie instrumenteacutes agrave travers des documents eacutelectroniques ou non (papier
typiquement) Il est fondamental danalyser ces documents et de recenser les donneacutees quils manipulent
Exemtple Exemtples de document existants agrave analyser
Fichiers papiers de stockage des donneacutees (personnel produits etc)
Formulaires papiers denregistrement des donneacutees (fiche didentification dun salarieacute fiche de
description dun produit bon de commande etc)
Documents eacutelectroniques de type traitement de texte (lettres mailing proceacutedures etc)
Documents eacutelectroniques de type tableurs (bilans statistiques calculs etc)
Bases de donneacutees existantes agrave remplacer ou avec lesquelles saccorder (gestion des salaires de la
production etc)
Intranet dentreprise (information teacuteleacutechargement de documents etc)
etc
Meacutethode Le recueil dextpertise meacutetier
Introduction geacuteneacuterale aux bases de donneacutees
wwwsambaconsultantscom 14
Les donneacutees que la base va devoir manipuler sont toujours relatives aux meacutetiers de lentreprise et il existe
des experts qui pratiquent ces meacutetiers Le dialogue avec ces experts est une source importante dinformations
Il permet eacutegalement de fixer la terminologie du domaine
Exemtple Exemtples dextperts agrave consulter
Praticiens (secreacutetaires ouvrier controcircleurs etc)
Cadres (responsables de service contre-maicirctres etc)
Experts externes (clients fournisseurs etc)
etc
Meacutethode Le dialogue avec les usagers
La base de donneacutees concerne des utilisateurs cibles cest agrave dire ceux qui produiront et consommeront
effectivement les donneacutees de la base Il est neacutecessaire de dialoguer avec ces utilisateurs qui sont les
deacutetenteurs des connaissances relatives aux besoins reacuteels lieacutes agrave leur reacutealiteacute actuelle (aspects de lorganisation
fonctionnant correctement ou deacutefaillants) et agrave la reacutealiteacute souhaiteacutee (eacutevolutions lacunes etc)
Exemtple Exemtples dutilisateurs avec qui dialoguer
Personnes qui vont effectuer les saisies dinformation (agrave partir de quelles sources Quelle est leur
responsabiliteacute etc)
Personnes qui vont consulter les informations saisies (pour quel usage pour quel destinataire etc)
Personnes qui vont mettre agrave jour les informations (pour quelles raisons comment le processus est
enclencheacute etc)
etc
Meacutethode Leacutetude des autres systegravemes informatiques existants
la base de donneacutees va geacuteneacuteralement (et en fait quasi systeacutematiquement aujourdhui) sinseacuterer parmi un
ensemble dautres logiciels informatiques travaillant sur les donneacutees de lentreprise Il est important danalyser
ces systegravemes afin de mieux comprendre les meacutecanismes existants leurs forces et leurs lacunes et de preacuteparer
linteacutegration de la base avec ces autres systegravemes Une partie de ces systegravemes seront dailleurs souvent
eacutegalement des utilisateurs de la base de donneacutees tandis que la base de donneacutees sera elle mecircme utilisatrice
dautre systegravemes
Exemtple Exemtples dautres systegravemes coexistants agrave eacutetudier
Autres bases de donneacutees (les donneacutees sont elle disjointes ou partiellement communes avec celles de la
base agrave concevoir quelles sont les technologies logicielles sur lesquelles reposent ces BD etc)
Systegravemes de fichiers classiques (certains fichiers ont-ils vocations agrave ecirctre supplanteacutes par la base agrave ecirctre
geacuteneacutereacutes par la base agrave alimenter la base etc)
Applications (ces applications ont elles besoins de donneacutees de la base peuvent-elles lui en fournir
etc)
etc
Comtpleacutement Meacutethodes danalyse
Il existe des outils et meacutethodes danalyse en ingeacutenierie comme lanalyse fonctionnelle (AF) qui deacutepassent le
cadre de la conception des bases de donneacutees mais sont tout agrave fait compleacutementaires
Introduction geacuteneacuterale aux bases de donneacutees
15
e) Modeacutelisation conceptuelle de donneacutees Lobjection du modegravele conceptuel est de repreacutesenter le problegraveme agrave laide de repreacutesentations graphiques et
partiellement formelles
Les principales caracteacuteristiques du modegravele conceptuel sont
Une repreacutesentation graphique simple
Une puissance dexpression eacuteleveacutee pour un nombre de symboles raisonnables
Une lecture accessible agrave tous et donc un bon outil de dialogue entre les acteurs techniques et non
techniques
Une formalisation peu ambigueuml et donc un bon outil de speacutecification deacutetailleacutee
Remarque
Le modegravele nest pas encore formel donc certaines repreacutesentations peuvent ecirctre eacutequivoques mecircme si on a
leveacute de tregraves nombreuses ambiguiumlteacutes
E-A
La modeacutelisation conceptuelle en bases de donneacutees relationnelle eacutetait agrave lorigine faite avec le formalisme E-A
de la meacutethode MERISE
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 16
Modegravele E-A gestion de projets
UML
UML est un autre langage de modeacutelisation plus reacutecent que E-A et couvrant un spectre plus large que les
bases de donneacutees En tant que standard de lOMG et en tant que outil tregraves utiliseacute pour la programmation
orienteacutee objet il a supplanteacute la modeacutelisation E-A
Remarque
En BD on utilise uniquement le diagramme de classe dUML pour modeacuteliser conceptuellement les donneacutees
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 17
Modegravele UML gestion de projets
f) Modeacutelisation logique de donneacutees
Deacutefinition Modegravele logique de donneacutees
Un modegravele logique de donneacutees est une description au moyen dun langage formel dun ensemble de donneacutees
Un scheacutema permet de deacutecrire la structure dune base de donneacutees en deacutecrivant lensemble des types de
donneacutees de la base Une instance de base de donneacutees est constitueacutee dun ensemble de donneacutees qui respectent
le scheacutema de la base
Synonyme scheacutema de donneacutees scheacutema
Exemtple Modegravele logique de donneacutees relationnel
Un modegravele logique de donneacutees relationnel permet de repreacutesenter une base de donneacutees relationnelles cest agrave
dire des tables des proprieacuteteacutes des domaines
Exemtple Scheacutema dune relation
Espece(nomchaicircne eucaryotebooleacuteen multicellulairebooleacuteen proprieacuteteacutechaicircne) 1
Exemtple Scheacutema dune base de donneacutees avec tplusieurs relations
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 18
Etudiant (numentier nomchaicircne villechaicircne) Module(numentier titrechaicircne) Inscription(numetuentier nummodentier anneacuteeentier(4))
1 2 3
Instance de base de donneacutees
Etudiant Module
172 Dupont Lille
173 Durand Paris
174 Martin Isabelle
1 SGBD
2 OS
Inscription 172 1 2016 172 2 2016 173 1 2015 174 2 2017
Comtpleacutement Exemtple de formalismes de modeacutelisation logique
Le modegravele CODASYL anteacuterieur au modegravele relationnel est un modegravele hieacuterarchique (Tardieu 1983
[Tardieu83])
Le modegravele relationnel (tabulaire) est le modegravele dominant agrave la base des SGBDR
Le modegravele relationnel-objet (adaptation des modegraveles relationnels et objets au cadre des SGBD) est
actuellement en croissance
Dautres modegraveles (document graphe ) se deacuteveloppent dans le cadre du mouvement NoSQL
Comtpleacutement Voir aussi
Bregraveve introduction aux bases de donneacutees NoSQL - p98
g) Synthegravese Les trois niveaux de conception Niveau Conceptuel
Modegravele conceptuel graphique -
Exemples E-A
UML
Niveau Logique
Scheacutema logique indeacutependant dun SGBD -
Exemples Relationnel
Objet
Relationnel-Objet
Graphe
Document
Introduction geacuteneacuterale aux bases de donneacutees
Exemple
wwwsambaconsultantscom 19
Niveau Informatique
Impleacutementation pour un SGBD particulier -
Exemples Oracle
MySQL
PostgreSQL
DB2
Access
SQLServer
MongoDB
Cassandra
Modeacutelisation Modeacutelisation Im pleacutem entation Clarification Conceptuelle
Logique
AF UML Relationnel SQL Conception en quatre eacutetapes exemple de
formalismes
B Exercices
1 Deacutecouverte dune base de donneacutees relationnelle
Cette seacuterie dexercices est destineacutee agrave faire expeacuterimenter un SGBDR afin de se familiariser avec les concepts
classiques des bases de donneacutees relationnelles
Pour la reacutealisation de cet exercice se connecter sur le site dbdiscocrztfr et conserver la fenecirctre du navigateur
ouverte
Db Discodbdiscocrztfr
Objectifs
Deacutecouvrir le modegravele relationnel Deacutecouvrir un SGBDR Deacutecouvrir le langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
Exemtple
wwwsambaconsultantscom 20
a) Notion de table
Creacuteer sa premiegravere table Une base de donneacutees relationnelle est principalement constitueacutee de tables (ou laquo relations raquo dougrave le nom
de relationnel) Une table est basiquement un eacuteleacutement dorganisation de linformation constitueacute de colonnes
(ou attributs) et de lignes (ou enregistrements)
Nous allons dans un premier temps creacuteer le scheacutema dune table cest agrave dire deacutefinir ses colonnes Pour cela
nous utiliserons linstruction SQL LDD laquo CREATE raquo
Question 1
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
CREATE TABLE tEtu ( pk_numSecu CHAR(13) PRIMARY KEY k_numEtu
VARCHAR(20) UNIQUE NOT NULL nom
VARCHAR(50) prenom VARCHAR(50))
1 2 3 4 5
Introduction geacuteneacuterale aux bases de donneacutees
21
Alimenter la table Une fois les colonnes de la table deacutefinies nous pouvons en deacuteclarer les lignes Nous utilisons pour cela
linstruction SQL LMD laquo INSERT raquo
Question 2
Exeacutecuter les deux instructions suivantes et deacutecrire ce quelles font
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 AB3937098X Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2820475001124 XGB67668 Durand Anne)
1 2 3 4
Interroger la table Une fois une table creacuteeacutee il est possible agrave tout moment den inspecter le contenu Nous utilisons pour cela
linstruction SQL LMD laquo SELECT raquo
Question 3
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT pk_numSecu k_numEtu nom prenom FROM tEtu
1 2
Question 4
Exeacutecuter linstruction suivante et deacutecrire ce quelle fait
SELECT nom prenom FROM tEtu WHERE pk_numSecu=2820475001124
1 2 3
b) Notion de contraintes
Contrainte de domaine Lorsque lon deacutefinit une table on deacutefinit eacutegalement des contraintes sur cette table qui serviront agrave controcircler
son inteacutegriteacute par rapport agrave des regravegles que lon aura fixeacutees
Cest notamment le cas des contraintes de domaine qui permettent de veacuterifier quune colonne prend ses
valeurs parmi un ensemble deacutetermineacute (les chaicircnes de 10 caractegraveres au plus les entier de 1 agrave 1000 etc)
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi le systegraveme renvoie une erreur
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (XXXXXXXXXXXXXXX XXXXXX Dupont Pierre)
1 2
Question 2
Donner un exemple de contrainte qui nest pas formuleacutee dans la deacutefinition de la table tEtu et que lon aurait
pu souhaiter
Indice
Pour indiquer quun eacuteleacutement est obligatoire on ajoute la clause NOT NULL apregraves la deacutefinition de son domaine dans linstruction CREATE TABLE
Introduction geacuteneacuterale aux bases de donneacutees
22
Contraintes de cleacute Les contraintes de cleacute se composent de contraintes duniciteacute et de contraintes de non nulliteacute Elles
permettent dassurer que toutes les valeurs dune colonne seront diffeacuterentes pour chaque ligne
Question 3
Exeacutecuter les trois instructions suivantes (les unes apregraves les autres) et expliquer ce qui se passe
INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (1800675001066 HGYT67655Y Dupont Pierre) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 XGB67668 Durand Anne) INSERT INTO tEtu (pk_numSecu k_numEtu nom prenom) VALUES (2810592012232 HGYT67655Y Duchemin Aline)
1 2 3 4 5 6
Question 4
Explorer le contenu de votre table en exeacutecutant linstruction suivante et veacuterifier vos explications preacuteceacutedentes
SELECT FROM tEtu
1 2
Question 5
Pourrait-on inseacuterer dans la table une seconde personne qui aurait le preacutenom Aline et le nom Duchemin
Pourquoi
c) Notion de reacutefeacuterences
Cleacute eacutetrangegravere Une base de donneacutees est en geacuteneacuteral constitueacutee de plusieurs tables Ces tables se reacutefeacuterencent entre elles en
utilisant une cleacute eacutetrangegravere cest agrave dire quune des colonnes de la table est utiliseacutee pour faire reacutefeacuterence agrave la
colonne dune autre table
On va agrave preacutesent creacuteer une seconde table qui permettra dassocier des Uniteacutes de Valeurs (UVs) aux eacutetudiants
puis inseacuterer des valeurs dans cette table
CREATE TABLE tUv ( pk_code
CHAR(4) NOT NULL fk_etu
CHAR(13) NOT NULL PRIMARY KEY (pk_code fk_etu) FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu))
1 2 3 4 5
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF26 1800675001066) INSERT INTO tUV (pk_code fk_etu) VALUES (NF29 1800675001066)
1 2 3 4 5 6
Question 1
Introduction geacuteneacuterale aux bases de donneacutees
23
Expliciter ce quexprime le contenu de la table tUv
Contraintes dinteacutegriteacute reacutefeacuterentielle Lorsque nous avons deacutefini la table tUv nous avons deacutefini une contrainte suppleacutementaire dite dinteacutegriteacute
reacutefeacuterentielle contrainte de type FOREIGN KEY
Question 2
En exeacutecutant les instructions suivantes expliquer quel est le rocircle dune contrainte dinteacutegriteacute reacutefeacuterentielle
INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 2810592012232) INSERT INTO tUV (pk_code fk_etu) VALUES (NF17 1700792001278)
1 2 3 4
d) Projection restriction et jointure Linstruction SELECT du langage SQL LMD nous donne de larges possibiliteacutes pour interroger les tables dune
base de donneacutees Cette instruction se fonde notamment sur les opeacuterations matheacutematiques de lalgegravebre
relationnelle dont les principales sont la projection la restriction le produit et la jointure
Question 1
Exeacutecuter linstruction suivante et expliquer pourquoi cest une projection
SELECT nom prenom FROM tEtu
1 2
Question 2
Exeacutecuter linstruction suivante et expliquer pourquoi cest une restriction
SELECT FROM tEtu WHERE nom=Dupont
1 2 3
Question 3
Exeacutecuter linstruction suivante et expliquer pourquoi cest un produit (carteacutesien)
SELECT FROM tEtutUv
1 2
Question 4
Exeacutecuter linstruction suivante et expliquer pourquoi cest une jointure
SELECT FROM tEtu JOIN tUv ON pk_numSecu=fk_etu
1 2
Question 5
Exeacutecuter linstruction suivante et montrer quune jointure est la composition dun produit et dune restriction
SELECT FROM tEtutUv WHERE pk_numSecu=fk_etu
1 2 3
Introduction geacuteneacuterale aux bases de donneacutees
24
e) Fonctions et agreacutegats Linstruction SELECT permet eacutegalement deffectuer des calculs qui portent sur plusieurs lignes ce que lon
appelle des agreacutegats
Question 1
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT COUNT(pk_code) FROM tUv
1 2
WHERE fk_etu=1800675001066 3
Question 2
Exeacutecuter la requecircte SQL suivante et expliquer le reacutesultat obtenu
SELECT fk_etu COUNT(pk_code) FROM tUv GROUP BY fk_etu
1 2 3
Question 3
Compleacuteter la requecircte SQL suivante afin quelle renvoie pour chaque UV le nombre deacutetudiants inscrits
SELECT _______ COUNT(______) FROM tUv GROUP BY _______
1 2 3
Agrave lissue de cette seacuterie dexercices vous devez savoir deacutefinir les termes suivants
table ou relation
scheacutema relationnel
domaine
cleacute
cleacute eacutetrangegravere
opeacuterations de projection restriction jointure produit
Introduction geacuteneacuterale aux bases de donneacutees
25
2 Lab 0
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux meacutedicaments
avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi quune description
longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le nombre de pilules par boicircte
(qui est un nombre entier)
Ce problegraveme est un exemple tregraves simple que lon pourra modeacuteliser avec une base de donneacutees relationnelle agrave
une seule table
Vous pouvez tester vos instructions SQL ici Db Discodbdiscocrztfr
Question 1
Proposer une clarification du problegraveme (par exemple sous la forme dune liste des proprieacuteteacutes de la relation
viseacutee)
Question 2
Proposer un exemple de donneacutees
Question 3
Dessiner un modegravele conceptuel de donneacutees en UML Il ne contient quune seule classe
Indice Modeacutelisation conceptuelle de donneacutees
Question 4
Proposer un modegravele logique de donneacutees sous forme de scheacutema relationnel Il ne contient quune seule relation
Indice Modeacutelisation logique de donneacutees
Question 5
Proposer une impleacutementation en SQL standard de votre modegravele relationnel Il ne contient quune seule
instruction CREATE TABLE
Indice Langage de donneacutees lexemple du langage SQL
Question 6
Eacutecrivez les instructions SQL permettant dinseacuterer vos donneacutees de test dans votre base de donneacutees
Indice Langage de donneacutees lexemple du langage SQL
Introduction geacuteneacuterale aux bases de donneacutees
26
27
II - Introduction agrave la
modeacutelisation
conceptuelle de donneacutees avec
UML
A Cours
La modeacutelisation conceptuelle est leacutetape fondatrice du processus de conception de BD Elle consiste agrave
abstraire le problegraveme reacuteel poseacute pour en faire une reformulation qui trouvera une solution dans le cadre
technologique dun
SGBD
Si le modegravele dominant en conception de bases de donneacutees a longtemps eacuteteacute le modegravele E-A le modegravele UML
se geacuteneacuteralise de plus en plus Nous proposons ici une introduction au diagramme de classes agrave travers la
repreacutesentation de classes et dassociations simples (il existe dautres diagrammes UML par exemple le
diagramme de cas et dautres primitives de repreacutesentation dans le diagramme de classe par exemple
lheacuteritage)
II
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
28
1 Notion de modegravele
a) Exercice Centre meacutedical [5 min]
Soit le modegravele conceptuel suivant repreacutesentant des visites dans un centre meacutedical Quelles sont les assertions vraies selon ce scheacutema
Image 1
Un patient peut effectuer plusieurs visites
Tous les patients ont effectueacute au moins une consultation
Un meacutedecin peut recevoir plusieurs patients pendant la mecircme consultation
Un meacutedecin peut prescrire plusieurs meacutedicaments lors dune mecircme consultation
Deux meacutedecins diffeacuterents peuvent prescrire le mecircme meacutedicament
b) Qest ce quun modegravele
Deacutefinition Modegravele
laquo Modeling in the broadest sense is the cost-effective use of something in place of something else for some
cognitive purpose It allows us to use something that is simpler safer or cheaper than reality instead of reality
for some purpose A model represents reality for the given purpose the model is an abstraction of reality in
the sense that it cannot represent all aspects of reality raquo (Rothenberg 1989 [Rothenberg et al 1989] citeacute
par Arribe 2014 [Arribe 2014])
laquo Systegraveme physique matheacutematique ou logique repreacutesentant les structures essentielles dune reacutealiteacute et capable
agrave son niveau den expliquer ou den reproduire dynamiquement le fonctionnement raquo (TLFi)
Fondamental Modegravele
Un modegravele est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser quelque chose
Objectifs
Savoir ce quest un modegravele
Savoir ce quest le langage UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
29
c) Qest ce quun modegravele en informatique
Deacutefinition Modegravele informatique
Un modegravele informatique est une repreacutesentation simplifieacutee de la reacutealiteacute en vue de reacutealiser un traitement avec
un ordinateur
Comtpleacutement Numeacuterisation et abstraction Toute information numeacuterique a
eacuteteacute codeacutee selon un modegravele donneacute
laquo Tout numeacuterisation est une repreacutesentation de la reacutealiteacute sous la forme dune modeacutelisation numeacuterique Cette
modeacutelisation procegravede dune abstraction au sens ougrave cest une seacuteparation davec le reacuteel au sens ougrave cest une
construction destineacutee agrave la manipulation (algorithmique en loccurrence) et au sens ougrave cest une simplification
de la reacutealiteacute raquo
httpaswemayfrcotropism-preshtml1
d) Qest ce quun bon modegravele
Atention
Un modegravele est une abstraction une simplification de la reacutealiteacute ce nest pas la reacutealiteacute il nest
jamais complegravetement fidegravele par construction
Le seul modegravele complegravetement fidegravele agrave la reacutealiteacute est la reacutealiteacute elle-mecircme et ce nest donc pas un
modegravele
Exemtple La carte et le territoire
Une carte est un modegravele dun territoire Elle est une repreacutesentation simplifieacutee destineacute agrave un usage particulier
randonner agrave pied en veacutelo
se diriger en voiture sur des grands axes sur des axes secondaires
voler en avion de tourisme en avion de ligne
naviguer sur fleuve sur mer
eacutetudier les frontiegraveres dune reacutegion dun pays de la terre
eacutetudier la deacutemographie leacuteconomie
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
30
Fondamental
Agrave partir de cet exemple on notera que 1 Un modegravele est orienteacute par un usage
Chacune de ces cartes est tregraves diffeacuterente selon ce que lon veut faire 2 Un modegravele ne cherche pas agrave ecirctre proche de la reacutealiteacute
Chacune de ces cartes est tregraves diffeacuterente de la reacutealiteacute quelle repreacutesente 3 Un modegravele adresse un niveau dinformation qui existe mais qui nest pas accessible dans
la reacutealiteacute Chacune de ces cartes permet quelque chose que ne permet pas laccegraves direct agrave la reacutealiteacute
ndash wwwsambaconsultantscom
Meacutethode Le rasoir dOckham Entre deux modegraveles donneacutes le meilleur modegravele est-il
toujours le tplus fourni
La meacutethode de raisonnement connue sous le nom de rasoir dOckham (du nom du philosophe eacuteponyme)
consiste agrave preacutefeacuterer les solutions les plus simples aux plus complexes lorsquelles semblent permettre
eacutegalement de reacutesoudre un problegraveme donneacute entre deux theacuteories eacutequivalentes toujours preacutefeacuterer la plus simple
Ce principe sapplique tregraves bien agrave la modeacutelisation eacutetant donneacute un objectif et plusieurs modegraveles possibles il
ne faut pas choisir a priori celui qui repreacutesente le plus de choses mais preacutefeacuterer le plus simple degraves quil couvre
le besoin
Cest un principe deacuteconomie (il coucircte moins cher agrave produire) et defficaciteacute (car les eacuteleacutements inutiles du modegravele
plus fourni nuiront agrave lefficaciteacute de la tacircche)
Exemtple
Ainsi pour naviguer en voiture il est plus simple de ne pas avoir sur la carte les chemins de randonneacutees qui
ne sont pas praticables en voiture
2 Introduction au diagramme de classes UML classes et
associations
a) Lab I
Description du problegraveme [15 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
Objectifs
Savoir faire un modegravele conceptuel
Savoir interpreacuteter un modegravele conceptuel
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
31
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
b) Preacutesentation dUML UML est un langage de repreacutesentation destineacute en particulier agrave la modeacutelisation objet UML est devenu une
norme OMG en 1997
UML propose un formalisme qui impose de penser objet et permet de rester indeacutependant dun langage de
programmation donneacute Pour ce faire UML normalise les concepts de lobjet (eacutenumeacuteration et deacutefinition
exhaustive des concepts) ainsi que leur notation graphique Il peut donc ecirctre utiliseacute comme un moyen de
communication entre les eacutetapes de speacutecification conceptuelle et les eacutetapes de speacutecifications techniques
Fondamental Diagramme de classe
Le diagramme de classes est un sous ensemble dUML qui sattache agrave la description statique dun
modegravele de donneacutees repreacutesenteacutees par des classes dobjets
Remarque
Dans le domaine des bases de donneacutees UML peut ecirctre utiliseacute agrave la place du modegravele E-A pour modeacuteliser le
domaine De la mecircme faccedilon un scheacutema conceptuel UML peut alors ecirctre traduit en scheacutema logique (relationnel
ou relationnel-objet typiquement)
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
32
c) Classes
Deacutefinition Classe
Une classe est un type abstrait caracteacuteriseacute par des proprieacuteteacutes (attributs et meacutethodes) communes agrave un ensemble
dobjets et permettant de creacuteer des instances de ces objets ayant ces proprieacuteteacutes
Image 2 Repreacutesentation UML dune classe
Exemtple La classe Voiture
Lobjet V1 est une instance de la classe Voiture
V1 Voiture
Marque Citroeumln
Type ZX
Portes 5
Puissance 6
Kilomeacutetrage 300000
Comtpleacutement
La modeacutelisation sous forme de diagramme de classes est une modeacutelisation statique qui met en exergue la
structure dun modegravele mais ne rend pas compte de son eacutevolution temporelle UML propose dautres types de
diagrammes pour traiter notamment de ces aspects
d) Atributs
Deacutefinition Atribut
Un attribut est une information eacuteleacutementaire qui caracteacuterise une classe et dont la valeur deacutepend de lobjet
instancieacute
Syntaxe
Image 3 Exemple de classe repreacutesenteacutee en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
33
Un attribut est typeacute Le domaine des valeurs que peut prendre lattribut est fixeacute a priori
Un attribut peut ecirctre multivalueacute Il peut prendre plusieurs valeurs distinctes dans son domaine
Un attribut peut ecirctre deacuteriveacute Sa valeur alors est une fonction sur dautres attributs de la classe
Un attribut peut ecirctre composeacute (ou composite) Il joue alors le rocircle dun groupe dattributs (par
exemple une adresse peut ecirctre un attribut composeacute des attributs numeacutero type de voie nom de la
voie) Cette notion renvoie agrave la notion de variable de type Record dans les langages de programmation
classiques
Atention On utilise peu les atributs deacuteriveacutes et composeacutes en UML
En UML on preacutefegravere lusage de meacutethodes aux attributs deacuteriveacutes On utilisera toujours des
meacutethodes degraves que la valeur de lattribut deacuteriveacute deacutepend dautres attributs exteacuterieurs agrave sa
classe
En UML on preacutefegravere lusage de compositions aux attributs composeacutes On utilisera toujours
des compositions pour les attributs composeacutes et multivalueacutes
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
34
Syntaxe
attributtype attribut_multivalueacute[nbMinValeursnbMaxValeurs]type attribut_deacuteriveacutetype attribut_composeacute - sous-attribut1type - sous-attribut2type -
1 2 3 4 5 6 7
Image 4 Repreacutesentation dattributs en UML
Dans cet exemple les attributs Nom Preacutenom sont de type string lun de 20 caractegraveres et lautre de 10 tandis
que DateNaissance est de type date et Age de type integer Preacutenom est un attribut multivalueacute ici une personne
peut avoir de 1 agrave 3 preacutenoms Age est un attribut deacuteriveacute il est calculeacute par une fonction sur DateNaissance
Comtpleacutement Voir aussi
Meacutethodes
Composition - p99
e) Repeacuterage des cleacutes Un attribut ou un groupe dattributs peut ecirctre annoteacute comme eacutetant cleacute sil permet didentifier de faccedilon unique
un objet de la classe
On ajoute le symbole key agrave cocircteacute du ou des attributs concerneacutes
Cleacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
35
Cleacute composeacutee de deux attributs
Meacutethode
Le repeacuterage des cleacutes nest pas systeacutematique en UML (la deacutefinition des cleacutes se fera essentiellement au niveau
logique) On cherchera neacuteanmoins agrave repeacuterer les cleacutes rendues eacutevidentes par la phase de clarification
Atention
On najoutera jamais de cleacute artificielle au niveau du MCD Si aucune cleacute nest eacutevidente on laisse
la classe sans cleacute Atention Atribut souligneacute et
On trouvera dans ce cours des exemples dattributs souligneacutes ou preacuteceacutedeacutes de pour exprimer
luniciteacute Ce nest pas une pratique standard et la notation key devrait lui ecirctre substitueacutee
Un attribut souligneacute est normalement un attribut de classe ou static en UML Un
attribut preacuteceacutedeacute de est normalement un attribut proteacutegeacute en UML
Mais les concepts dattribut de classe et dattribut proteacutegeacute ne sont pas utiliseacutes dans le cadre des
bases de donneacutees
f) Meacutethodes
Deacutefinition Meacutethode
Une meacutethode (ou opeacuteration) est une fonction associeacutee agrave une classe dobjet qui permet dagir sur les objets de
la classe ou qui permet agrave ces objets de renvoyer des valeurs (calculeacutees en fonction de paramegravetres)
Syntaxe
methode(paramegravetres)type 1
Remarque Meacutethodes et modeacutelisation de BD
Pour la modeacutelisation des bases de donneacutees les meacutethodes sont surtout utiliseacutees pour repreacutesenter des donneacutees
calculeacutees (agrave linstar des attributs deacuteriveacutees) ou pour mettre en exergue des fonctions importantes du systegraveme
cible Seules les meacutethodes les plus importantes sont repreacutesenteacutees lapproche est moins systeacutematique quen
modeacutelisation objet par exemple
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
36
Remarque Meacutethodes relationnel relationnel-objet
Lors de la transformation du modegravele conceptuel UML en modegravele logique relationnel les meacutethodes ne seront
geacuteneacuteralement pas impleacutementeacutees Leur repeacuterage au niveau conceptuel sert donc surtout daide-meacutemoire
pour limpleacutementation au niveau applicatif
Au contraire un modegravele logique relationnel-objet permettra limpleacutementation de meacutethodes directement
associeacutees agrave des tables Leur repeacuterage au niveau conceptuel est donc encore plus important
Comtpleacutement Transformation des meacutethodes par des vues - p98
g) Associations
Deacutefinition Association
Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire)
qui deacutefinit un ensemble de liens entre les objets de ces classes
Une association est nommeacutee geacuteneacuteralement par un verbe Une association peut avoir des proprieacuteteacutes (agrave linstar
dune classe) Une association deacutefinit le nombre minimum et maximum dinstances autoriseacutee dans la relation
(on parle de cardinaliteacute)
Syntaxe
Image 5 Notation de lassociation en UML
Atention
Le nom de lassociation (verbe qui la deacutecrit) est obligatoire au mecircme titre que le nom dune
classe ou dun attribut
Remarque
Une association est geacuteneacuteralement bidirectionnelle (cest agrave dire quelle peut se lire dans les deux sens) Les
associations qui ne respectent pas cette proprieacuteteacute sont dites unidirectionnelles ou agrave navigation restreinte
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
37
Image 6 Repreacutesentation dassociation en UML
Lassociation Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des
voitures
Comtpleacutement Voir aussi
Cardinaliteacute
Explicitation des associations - p100
Associations ternaires - p101
Contraintes sur les associations - p101
h) Cardinaliteacute
Deacutefinition Cardinaliteacute dune association
La cardinaliteacute dune association permet de repreacutesenter le nombre minimum et maximum dinstances qui sont
autoriseacutees agrave participer agrave la relation La cardinaliteacute est deacutefinie pour les deux sens de la relation
Syntaxe
Si mina (resp maxa) est le nombre minimum (resp maximum) dinstances de la classe A autoriseacutees agrave participer
agrave lassociation on note sur la relation agrave cocircteacute de la classe A minamaxa
Si le nombre maximum est indeacutetermineacute on note n ou
Atention
La notation de la cardinaliteacute en UML est opposeacutee agrave celle adopteacutee en E-A En UML on note agrave gauche
(resp agrave droite) le nombre dinstances de la classe de gauche (resp de droite) autoriseacutees dans
lassociation En E-A on note agrave gauche (resp agrave droite) le nombre dinstances de la classe de
droite (resp de gauche) autoriseacutees dans lassociation
Remarque
Les cardinaliteacutes les plus courantes sont
01 (optionnel)
11 ou 1 (un)
Lassociation Conduit
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
38
0n ou 0 ou (plusieurs)
Ici un conducteur peut posseacuteder plusieurs voitures (y compris aucune) et une voiture nest posseacutedeacutee que par
un seul conducteur
i) Classe dassociation
Deacutefinition Classe dassociation
On utilise la notation des classes dassociation lorsque lon souhaite ajouter des proprieacuteteacutes agrave une association
Syntaxe Notation dune classe dassociation en UML
Image 8 Notation dune classe dassociation en UML
1 n ou 1 (obligatoire )
Image 7 Repreacutesentation de cardinaliteacute en UML
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
39
Image 9 Emplois
B Exercices
1 Exercice Lire lUML [15 min]
Tennis Le scheacutema suivant repreacutesente les rencontres lors dun tournoi de tennis Quelles sont les assertions vraies selon ce scheacutema
Image 10
On peut jouer des matchs de double
Un joueur peut gagner un match sans y avoir participeacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
40
Il peut y avoir deux matchs sur le mecircme terrain agrave la mecircme heure
Connaissant un joueur on peut savoir sur quels terrains il a joueacute
Journal Voici le scheacutema conceptuel du systegraveme dinformation (tregraves simplifieacute) dun quotidien Quelles sont les assertions vraies selon ce scheacutema
Image 11
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
41
Un article peut ecirctre reacutedigeacute par plusieurs journalistes
Un article peut ecirctre publieacute plusieurs fois dans le mecircme journal
Un article peut ecirctre publieacute dans un journal par un journaliste qui ne travaille pas pour ce
journal
Il peut y avoir plusieurs articles sur le mecircme sujet
Un journaliste peut interviewer une personnaliteacute sans faire darticle agrave ce propos
Logistique Une socieacuteteacute de transport routier veut installer un systegraveme dinformation pour rendre plus efficace sa logistique Embaucheacute au service informatique de cette compagnie vous ecirctes donc chargeacute de reprendre le travail deacutejagrave effectueacute (cest agrave dire le scheacutema suivant)
Quelles sont les assertions vraies selon ce scheacutema
Image 12
Un conducteur peut conduire plusieurs camions
Un conducteur peut conduire un camion sans y ecirctre autoriseacute
Il peut y avoir plusieurs conducteurs pour le mecircme camion
Un conducteur peut livrer sa propre ville
2 Gestion dune coopeacuterative viticole
[20 minutes] Cet exercice a eacuteteacute inspireacute par Bases de donneacutees objet et relationnel [Gardarin99]
On considegravere une base Coopeacuterative qui possegravede les caracteacuteristiques suivantes
Un vin est caracteacuteriseacute par un numeacutero entier unique nv un cru une anneacutee de production et un degreacute
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
42
Un viticulteur est caracteacuteriseacute par un numeacutero entier unique nvt un nom et une ville Un viticulteur produit un ou plusieurs vins et reacuteciproquement un vin est produit par un ou plusieurs
producteurs (eacuteventuellement aucun)
Les buveurs sont caracteacuteriseacutes par un numeacutero de buveur nb un nom preacutenom et une adresse (limiteacutee agrave
la ville pour simplifier)
Un buveur consomme des vins et peut passer des commandes pour acheter des vins
Question 1
Lister tous les types dobjet agrave consideacuterer les attributs associeacutes et les domaines de valeurs de ces attributs
Repeacuterer les eacuteventuelles cleacutes
Question 2
Lister toutes les associations agrave consideacuterer et indiquer leurs cardinaliteacutes
Question 3
Donner le diagramme UML de cette situation
3 Cours et intervenants
[20 min] On souhaite reacutealiser une base de donneacutees pour geacuterer les cours dispenseacutes dans une eacutecole dingeacutenieur ainsi
que les personnes qui interviennent dans ces cours
Chaque cours est identifieacute par une anneacutee et un numeacutero Chaque cours a donc un numeacutero unique localement
agrave chaque anneacutee Un cours possegravede un titre et un type (C pour Cours TD ou TP) Un cours possegravede
eacutegalement une date de deacutebut et une date de fin qui est toujours de 5 jours apregraves la date de deacutebut
Chaque intervenant est identifieacute par son nom (deux intervenants ne peuvent pas avoir le mecircme nom) Il a un
preacutenom un bureau un ou plusieurs numeacuteros de teacuteleacutephones (jusquagrave trois numeacuteros) et des speacutecialiteacutes Un
bureau est deacutefini par un centre (R pour Royallieu BF pour Benjamin Franklin et PG pour Pierre Guillaumat)
un bacirctiment (une lettre de A agrave Z) et un numeacutero (infeacuterieur agrave 1000) Les speacutecialiteacutes sont des couples de chaicircnes
de caractegraveres deacutesignant un domaine (par exemple BD) et une speacutecialiteacute (par exemple SGBDRO)
Chaque cours est donneacute par un unique intervenant
Voici un exemple Le cours Machines universelles ndeg21 de lanneacutee 2014 est donneacute par Alan Turing entre le
05012014 et le 10012014 Cest un cours de type C Alan Turing a le bureau 666 au bacirctiment X de PG Il
a les numeacuteros de teacuteleacutephone 0666666666 et 0766666666 Il possegravede les speacutecialiteacutes suivantes
Domaine Matheacutematique Speacutecialiteacute Cryptographie
Domaine Informatique Speacutecialiteacute Algorithmie
Domaine Informatique Speacutecialiteacute Intelligence Artificielle
Question
Reacutealiser le modegravele UML de la base de donneacutees Preacuteciser les cleacutes et les types des attributs
Introduction agrave la modeacutelisation conceptuelle de donneacutees avec UML
43
4 Gestion du personnel
[30 minutes] Le service de gestion du personnel dune entreprise deacutesire seacutequiper dun outil lui permettant de geacuterer
informatiquement ses employeacutes leurs salaires et leurs congeacutes Les speacutecifications suivantes ont pu ecirctre mises
en exergue par une analyse des besoins reacutealiseacutee aupregraves des utilisateurs du service du personnel
Geacuteneacuteraliteacutes
tout employeacute est identifieacute par un nom un preacutenom et une date de naissance
tout employeacute remplit une fonction et appartient agrave un service
pour chaque employeacute on gegravere la date dembauche et la quotiteacute (cest agrave dire le pourcentage de temps
travailleacute par rapport au temps plein en cas de travail agrave temps partiel)
Gestion des salaires
pour chaque employeacute on gegravere lhistorique de ses salaires dans lentreprise chaque salaire eacutetant affecteacute
agrave une peacuteriode de temps
un salaire est composeacute dun salaire brut de charges patronales et de charges salariales
on cherchera agrave partir des ces donneacutees agrave obtenir eacutegalement le salaire chargeacute (brut + charges patronales)
et le salaire net (brut - charges salariales) et ce en particulier pour le salaire en cours (celui que
touche actuellement le salarieacute)
Gestion des congeacutes
pour chaque employeacute on meacutemorise chaque congeacute pris (posant quun congeacute concerne toujours une ou
plusieurs journeacutees entiegraveres)
chaque employeacute a le droit aux jours de congeacutes suivants
- 25 jours (pour une quotiteacute de 1) et 25 x quotiteacute sinon - chaque fonction ouvre les droits agrave un certain nombre de jours de RTT - chaque service ouvre les droits agrave un certain nombre de jours de RTT - chaque tranche de 5 ans passeacutes dans lentreprise donne droit agrave 1 jour suppleacutementaire - les employeacutes de plus de 40 ans ont un jour suppleacutementaire et ceux de plus de 50 ans deux
pour chaque employeacute on cherchera agrave connaicirctre le nombre total de jours de congeacutes autoriseacutes le nombre
de jours pris et le nombre de jours restants sur lanneacutee en cours
Question
Reacutealiser le diagramme de classes permettant de modeacuteliser ce problegraveme
44
III - La modeacutelisation logique
relationnelle
A Cours
Le modegravele relationnel est aux fondements des SGBDR Il a eacuteteacute et continue decirctre le modegravele theacuteorique
dominant pour la repreacutesentation logique des base de donneacutees mecircme si le mouvement NoSQL propose des
alternatives
Le modegravele relationnel permet de reformuler le modegravele conceptuel dans un formalisme - le tableau - beaucoup
plus proche de limpleacutementation informatique bien quencore indeacutependant dune solution technologique
particuliegravere
1 Introduction au modegravele relationnel
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
III
La modeacutelisation logique relationnelle
45
a) Niveau logique Le niveau logique est le lien entre le niveau conceptuel et limpleacutementation effective de lapplication Le modegravele
conceptuel eacutetant un modegravele formel le modegravele logique a pour vocation decirctre eacutegalement un modegravele formel
mais speacutecifiant non plus la reacutealiteacute existante ou rechercheacutee comme le modegravele conceptuel mais les donneacutees
telles quelles vont exister dans lapplication informatique
Pour assumer cette fonction le modegravele relationnel [Codd70] sest imposeacute en reacuteaction aux insuffisances des
modegraveles anteacuterieurs les modegraveles hieacuterarchique et reacuteseau et de part la puissance de ses fondements
matheacutematiques Encore aujourdhui dominant le modegravele relationnel est un fondement indispensable agrave la
conception de bases de donneacutees
Ratptpel
Meacutethodologie geacuteneacuterale de conception dune base de donneacutees
b) Deacutefinition du modegravele relationnel
Introduction
Le modegravele relationnel a eacuteteacute introduit par Codd [Codd70] en 1970 au laboratoire de recherche dIBM de San
Joseacute Il sagit dun modegravele simple et puissant agrave la base de la majoriteacute des bases de donneacutees encore aujourdhui
Les objectifs du modegravele relationnel formuleacutes par Codd sont les suivants
Assurer lindeacutependance des applications et de la repreacutesentation interne des donneacutees
Geacuterer les problegravemes de coheacuterence et de redondance des donneacutees
Utiliser des langages de donneacutees baseacutes sur des theacuteories solides
Deacutefinition Modegravele relationnel
On appelle modegravele relationnel un ensemble de concepts permettant de formaliser logiquement la description
darticles de fichiers plats indeacutependamment de la faccedilon dont ils sont physiquement stockeacutes dans une meacutemoire
numeacuterique
Le modegravele relationnel inclut des concepts pour la description de donneacutees ainsi que des concepts pour la
manipulation de donneacutees
Fondamental Repreacutesenter le monde en tables
Le modegravele relationnel permet de repreacutesenter les donneacutees que lon va geacuterer agrave laide dun tregraves petit
nombre de concepts tregraves simples
Les relations ou tables des lignes et des colonnes
Les domaines de valeurs chaque case dune table prend une unique valeur dans un
domaine preacute-deacutefini
Les cleacutes il existe des cases dont les valeurs doivent ecirctre uniques et non nulles
Les cleacutes eacutetrangegraveres il existe des cases qui doivent prendre une valeur existante dans les
cases dune autre table
La modeacutelisation logique relationnelle
46
Comtpleacutement Extension du modegravele relationnel
Le modegravele relationnel est un standard normaliseacute par lISO agrave travers son langage le SQL Il se veut neacuteanmoins
degraves lorigine extensible pour permettre de geacuterer des donneacutees plus complexes que les donneacutees tabulaires Le
modegravele relationnel-objet est neacute de cette extension
2 Les concepts fondamentaux du modegravele relationnel
atributs enregistrement domaine
a) Domaine
Deacutefinition Domaine
Ensemble caracteacuteriseacute par un nom dans lequel des donneacutees peuvent prendre leurs valeurs
Remarque Un domaine peut-ecirctre deacutefini en intension (cest agrave dire en deacutefinissant les proprieacuteteacutes caracteacuteristiques des
valeurs du domaine on parle aussi de compreacutehension) ou en extension (cest agrave dire en eacutenumeacuterant toutes
les valeurs du domaine)
Exemtple Domaines deacutefinis en intension
Tous les entiers
Les reacuteels infeacuterieur agrave 5
Les booleacuteen (vrai ou faux)
Toutes les chaicircnes de 1 agrave 255 caractegraveres
Les valeurs moneacutetaires deacutefinie comme des deacutecimaux avec deux chiffres apregraves la virgule
Les dates deacutefinies comme des chaicircnes de 10 caractegraveres comprenant des chiffres et des tirets selon le
patron 00-00-0000
Les salaires deacutefinis comme des valeurs moneacutetaires compris entre 15000 et 100000
Exemtple Domaines deacutefinis en extension
Couleur Bleu Vert Rouge Jaune Blanc Noir
SGBD Hieacuterarchique Reacuteseau Relationnel Objet Relationnel-Objet
Objectifs
Connaicirctre les fondements theacuteoriques du modegravele relationnel
La modeacutelisation logique relationnelle
47
b) Exercice Indiquez quelle deacutefinition et quel exemple correspondent respectivement aux mots intension et extension
1 - Le domaine des couleurs
2 - Eacutenonciation exhaustive de lensemble des objets du domaine
3 - bleu rouge vert
4 - Explicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa compreacutehension
abstraite geacuteneacuterale)
Intension Extension
c) Atribut et enregistrement
Deacutefinition Atribut
On appelle attribut dune relation une colonne de cette relation Un attribut est caracteacuteriseacute par un nom et un
domaine dans lequel il prend ses valeurs
Synonymes Champs Proprieacuteteacute Colonne
Deacutefinition Enregistrement
On appelle enregistrement dune relation une ligne de cette relation Un enregistrement prend une valeur
pour chaque attribut de la relation
Synonymes Tuple N-uplet Vecteur Ligne
La modeacutelisation logique relationnelle
48
Exemtple
A B
1 1
1 2
2 2
Tableau 5 Relation R
La relation R comporte les deux attributs A et B et les trois enregistrements lt11gt lt12gt et lt22gt
Remarque Atribut domaine ordre
Un attribut se distingue dun domaine car il peut ne comporter que certaines valeurs de ce domaine
Les colonnes de la relation ne sont pas ordonneacutees et elles ne sont donc repeacutereacutees que par le nom de lattribut
Remarque Valeur nulle
Un enregistrement peut ne pas avoir de valeur pour certains attributs de la relation parce que cette valeur
est inconnue ou inapplicable sa valeur est alors null
d) Exemple La relation Vol
Exemtple
Numero Compagnie Avion Deacutepart Arriveacutee Date
AF3245 Air France 747 Paris Oulan Bator 01shy08shy2002
AF6767 Air France A320 Paris Toulouse 30shy07shy2002
KLM234 KML 727 Paris Amsterdam 31shy07shy2002
Tableau 6 Relation Vol
3 Cleacutes et cleacutes eacutetrangegraveres dans le modegravele relationnel
Objectifs
Connaicirctre les notions de cleacutes candidates naturelles artificielles primaire eacutetrangegravere
Aborder le principe deacuteclatement des relations et de nonredondance
La modeacutelisation logique relationnelle
49
a) Cleacute
Deacutefinition Cleacute
Une cleacute est un groupe dattributs minimum qui permet didentifier de faccedilon univoque un tuple dans une
relation
Fondamental
Toute relation doit comporter au moins une cleacute ce qui implique quune relation ne peut pas
contenir deux tuples identiques
Atention Atributs de cleacutes unique et non null Afin decirctre deacuteterminants pour lidentification dun enregistrement tous les attributs dune cleacute
doivent ecirctre valueacutes cest-agrave-dire quaucun ne peut avoir de valeur null Dire quun groupe
dattribut est une cleacute eacutequivaut agrave dire quil est unique et non null
Exemtple Numeacutero deacutetudiant
Le numeacutero deacutetudiant dune relation Etudiant est une bonne cleacute car il y aura systeacutematiquement une
valeur non nulle
Le groupe dattributs (nom preacutenom) dune relation Etudiant est en geacuteneacuteral une mauvaise cleacute car les
homonymes existent
b) Deacuteterminer les cleacutes
Deacutetermination dune cleacute
Deacutefinir un groupe dattributs comme eacutetant une cleacute neacutecessite une reacuteflexion seacutemantique sur les donneacutees
composant ces attributs afin de sassurer de leur uniciteacute
Fondamental
La deacutefinition des cleacutes est un acte de modeacutelisation elle ne renvoie pas donc pas agrave une veacuteriteacute
intangible mais agrave la reacutealiteacute telle quelle est repreacutesenteacutee dans le modegravele que lon eacutelabore
Exemtple
Lattribut numeacutero de seacutecuriteacute sociale dune relation personne peut paraicirctre une bonne cleacute a priori car son
uniciteacute est assureacutee Mais tout le monde nen dispose pas forceacutement (les enfants des eacutetrangers) donc ce nest
une cleacute que si lon considegravere des personnes affilieacutees agrave la seacutecuriteacute sociale
c) Cleacute primaire et cleacutes candidates
Deacutefinition Cleacute tprimaire
Si plusieurs cleacutes existent dans une relation on en choisit une parmi celles-ci Cette cleacute est appeleacutee cleacute
primaire
La modeacutelisation logique relationnelle
50
La cleacute primaire est geacuteneacuteralement choisie de faccedilon agrave ce quelle soit la plus simple cest agrave dire portant sur le
moins dattributs et sur les attributs de domaine les plus basiques (entiers ou chaicircnes courtes typiquement)
Deacutefinition Cleacutes candidates
On appelle cleacutes candidates lensemble des cleacutes dune relation qui nont pas eacuteteacute choisies comme cleacute primaire
(elles eacutetaient candidates agrave cette fonction)
d) Cleacute artificielle
Deacutefinition Cleacute artificielle
Sil est impossible de trouver une cleacute primaire ou que les cleacutes candidates sont trop complexes il est possible
de faire appel agrave une cleacute artificielle Une cleacute artificielle est un attribut suppleacutementaire ajouteacute au scheacutema de
la relation qui nest lieacute agrave aucune signification et qui sert uniquement agrave identifier de faccedilon unique les
enregistrements etou agrave simplifier les reacutefeacuterences de cleacutes eacutetrangegraveres
Deacutefinition Cleacute signifiante
Une cleacute est signifiante si elle nest pas artificielle
Synonyme Cleacute naturelle
Atention Cleacute artificielle et niveau logique
Au niveau du modegravele logique il faut eacuteviter la simpliciteacute consistant agrave identifier toutes les relations
avec des cleacutes artificielles et ne reacuteserver cet usage quaux cas particuliers
Conseil
1 Si au moins une cleacute naturelle composeacutee dun seul attribut existe en choisir une parmi celles-ci comme
cleacute primaire 2 Sinon choisir une cleacute naturelle composeacutee de plusieurs attributs si elle ne pose pas de problegraveme identifieacute 3 Toujours justifier lemploi dune cleacute artificielle (au niveau logique uniquement pour des raisons de
complexiteacute du modegravele les questions de performance sont eacutetudieacutees au niveau physique)
RemarqueCleacute artificielle et niveau tphysique eacutevolutiviteacute maintenance et tperformance
Au niveau de limpleacutementation physique par contre il est courant que des cleacutes artificielles soient utiliseacutees de
faccedilon systeacutematique
Du point de vue de leacutevolutiviteacute de la BD il existe toujours un risque quune cleacute nonartificielle perde
sa proprieacuteteacute duniciteacute ou de non-nulliteacute
Du point de vue de la maintenance de la BD il existe toujours un risque quune cleacute non-artificielle
voit sa valeur modifieacutee et dans ce cas la reacutepercution de ce changement pour mettre agrave jour toutes les
reacutefeacuterences peut poser problegraveme
Du point de vue de la performance de la BD les cleacutes non-artificielles ne sont pas en geacuteneacuteral optimiseacutees
en terme de type et de taille et donc peuvent limiter les performances dans le cadre des jointures
Preacutecisons neacuteanmoins quinversement les cleacutes artificielles ont pour conseacutequence de systeacutematiser des
jointures qui auraient pu ecirctre eacuteviteacutees avec des cleacutes primaires signifiantes
La modeacutelisation logique relationnelle
51
Exemtple Problegraveme deacutevolutiviteacute tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD franccedilaise elle ne permettra pas dentrer
un individu non-franccedilais issu dun pays ne disposant pas dun tel numeacutero
Exemtple Problegraveme de maintenance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table dune BD centrale dont les donneacutees sont exploiteacutees
par dautres tables dautres BD qui viennent piocher dans cette BD pour leurs propres usages sans que la
BD centrale ne connaisse ses clients Soit une erreur dans la saisie dun numeacutero de seacutecuriteacute sociale dans la
BD centrale si ce numeacutero est corrigeacute il faudrait (ce qui nest pas possible dans notre cas) impeacuterativement en
avertir toutes les bases utilisatrices pour quelles mettent agrave jour leurs reacutefeacuterences
Exemtple Problegraveme de tperformance tposeacute tpar une cleacute signifiante
Soit le numeacutero de seacutecuriteacute sociale la cleacute primaire dune table comptant un million denregistrements ce numeacutero
est geacuteneacuteralement un nombre agrave 13 chiffres ou une chaicircne agrave 13 caractegraveres ce qui dans les deux cas est supeacuterieur
au nombre agrave 7 chiffres suffisant pour identifier tous les individus de la BD Les performances seront donc
toujours moins bonnes lors des jointures si une cleacute prend deux fois plus de place en meacutemoire que son
optimum Mais ajoutons que cette perte de performance na pas toujours de conseacutequence sur la reacutealiteacute
perceptible par les utilisateurs de la BD
Inversement soit une cleacute artificielle la cleacute primaire dune table T1 par ailleurs reacutefeacuterenceacutee par une autre table
T2 Soit le numeacutero de seacutecuriteacute sociale un attribut cleacute de T1 Si lon veut par requecircte disposer des informations
de T2 ainsi que du numeacutero de seacutecuriteacute sociale de T1 alors il faudra faire une jointure tandis que si ce numeacutero
signifiant avait eacuteteacute choisi comme cleacute primaire cela naurait pas eacuteteacute neacutecessaire
La modeacutelisation logique relationnelle
52
e) Cleacute eacutetrangegravere
Deacutefinition Cleacute eacutetrangegravere
Une cleacute eacutetrangegravere est un attribut ou un groupe dattributs dune relation R1 devant apparaicirctre comme cleacute
primaire dans une relation R2 afin de mateacuterialiser une reacutefeacuterence entre les tuples de R1 et les tuples de R2
Une cleacute eacutetrangegravere dun tuple reacutefeacuterence une cleacute primaire dun autre tuple
Atention
Seule une cleacute primaire peut ecirctre reacutefeacuterenceacutee par une cleacute eacutetrangegravere cest mecircme le seule fonction
de la cleacute primaire ecirctre la cleacute qui peut ecirctre reacutefeacuterenceacutee par les cleacutes eacutetrangegraveres
Deacutefinition Contrainte dinteacutegriteacute reacutefeacuterentielle
Une cleacute eacutetrangegravere respecte la contrainte dinteacutegriteacute reacutefeacuterentielle si sa valeur est effectivement existante dans
la cleacute primaire dun tuple de la relation reacutefeacuterenceacutee ou si sa valeur est null
Une cleacute eacutetrangegravere qui ne respecte pas la contrainte dinteacutegriteacute reacutefeacuterentielle exprime un lien vers un tuple qui
nexiste pas et donc nest pas coheacuterente
f) Reacutefeacuterence entre relations Le modegravele relationnel a pour objectif la structuration de donneacutees selon des relations Lenjeu est de parvenir
agrave traduire un modegravele conceptuel en modegravele logique relationnel Or il ny a pas de notion dassociation en
relationnel donc il faudra pouvoir traduire les associations avec les concepts dont on dispose relation cleacute
cleacute eacutetrangegravere
Afin de repreacutesenter des reacutefeacuterences entre relations dans un modegravele relationnel la seule solution est de stocker
linformation dans une relation et donc que certains attributs dune relation servent agrave pointer sur dautres
relations
Atention
Il ny a pas vraiment de reacutefeacuterence ou de lien en relationnel puisque nous ne disposons que de
tables de cleacutes de cleacutes eacutetrangegravere et de valeurs
On va donc devoir se servir de ces outils pour mateacuterialiser une notion de reacutefeacuterence
Meacutethode Reacutefeacuterence
La reacutefeacuterence entre deux tuples T1 et T2 de deux relations diffeacuterentes est exprimable par une valeur identique
entre une cleacute eacutetrangegravere du tuple T1 et la cleacute primaire de lautre tuple T2 Synonyme Lien Exemtple
R1 R2 a1 a2=gtR2 b1 b2
La modeacutelisation logique relationnelle
53
F
Image 13
Lattribut a2 de la relation R1 reacutefeacuterence lattribut b1 de la relation R2 car a2 est une cleacute eacutetrangegravere de R1 vers
R2 (b1 est la cleacute primaire de R2)
Ici on a donc par exemple les tuples identifieacutes par B et C de R1 qui reacutefeacuterencent le tuple identifieacute par 1 dans
R2
g) Scheacutema relationnel
Deacutefinition Scheacutema dune relation
Le scheacutema dune relation deacutefinit cette relation en intension Il est composeacute
du nom de la relation
de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs
de la cleacute primaire
des cleacutes eacutetrangegraveres
des cleacutes candidates
Deacutefinition Scheacutema relationnel dune base de donneacutee
Le scheacutema relationnel dune BD est la deacutefinition en intension de cette BD (par opposition agrave linstance de la
BD qui est une extension de la BD) Il est composeacute de lensemble des scheacutemas de chaque relation de la BD
Syntaxe Relation
Relation (Attribut1Domaine1 Attribut2Domaine2 AttributNDomaineN) 1
La relation Relation contient N attributs chacun deacutefini sur son domaine
Syntaxe Cleacute tprimaire
Relation (Attribut1Domaine1 AttributMDomaineM AttributNDomaineN)
1
La cleacute de la relation Relation est composeacutee des attributs Attribut1 agrave AttributM (attribut preacuteceacutedeacutes de ou
bien souligneacutes)
En geacuteneacuteral on note la cleacute primaire en premier dans la relation
Syntaxe Cleacute eacutetrangegravere
Relation1 ( AttributM=gtRelation2 AttributN=gtRelation2) 1
La relation Relation1 comporte une cleacute eacutetrangegravere (composeacutee des attributs AttributM agrave AttributN)
reacutefeacuterenccedilant la cleacute primaire de Relation2 Bien sucircr il peut exister plusieurs cleacutes eacutetrangegraveres vers plusieurs
La modeacutelisation logique relationnelle
54
relations distinctes Une cleacute eacutetrangegravere et sa cleacute primaire reacutefeacuterenceacutee sont toujours composeacutees du mecircme nombre
dattributs Il nest pas neacutecessaire de preacuteciser les domaines des attributs appartenant agrave la cleacute eacutetrangegravere car ce
sont forceacutement les mecircmes que ceux de la cleacute primaire reacutefeacuterenceacutee Il nest pas non plus en geacuteneacuteral neacutecessaire
de preacuteciser dans le scheacutema relationnel quels attributs de la cleacute eacutetrangegravere reacutefeacuterencent quels attributs de la cleacute
primaire (cela est geacuteneacuteralement eacutevident) mais il est possible de la faire on notant Attribut=gtRelationAttribut
En geacuteneacuteral on note les cleacutes eacutetrangegraveres en dernier dans la relation sauf pour les cleacutes eacutetrangegraveres qui font partie
de la cleacute primaire (cleacutes identifiantes)
Syntaxe Cleacute candidates
Relation1 (AttributMDomaineM ) avec AttributM cleacute 1
Les cleacutes candidates doivent ecirctre noteacutees sur le scheacutema relationnel
Sil ny a quune ou deux cleacutes candidates les noter directement apregraves la deacutefinition de la relation
Sil y a beaucoup de cleacutes pour ne pas trop alourdir la notation renvoyer agrave un tableau agrave part
Atention Cleacutes candidates et cleacute primaire
La notation R(ab) signifie toujours que R a comme cleacute primaire (ab) et non que R aurait
deux cleacutes a et b (dont on ne saurait pas laquelle est primaire)
La notation R(ab) avec b cleacute signifie bien que a et b sont deux cleacutes de R et que a est primaire
Il ne faut pas confondre une cleacute composeacutee de deux attributs avec deux cleacutes
h) Exemple de scheacutema relationnel pour la geacuteographie
Exemtple
Personne (NumeroEntier NomChaicircne PreacutenomChaicircne LieuNaissance=gtVille) Pays (NomChaicircne PopulationEntier SuperficieReacuteel Dirigeant=gtPersonne) Reacutegion (Pays=gtPays NomChaicircne Superficie Dirigeant=gtPersonne) Ville (CodePostalCP NomChaicircne Pays=gtReacutegionPays Reacutegion=gtReacutegionNom Dirigeant=gtPersonne)
1 2 3 4
Exemtple Exemtple dinstance de la base de donneacutees
Personne Num ero Nom Prenom LieuNaissance
1 Durand Pierre 60200 2 Dupont Marie 60200
Pays
Nom Population Superficie Dirig eant
France 60 50000101 2 Allemagne 80 60000023564 2 Espagne 40 3500001 1
La modeacutelisation logique relationnelle
55
Reacutegion Pays Nom Superficie Dirig eant France Picardie 50 1 Espagne Picardie 40 1 France Normandie 30 2
Ville CodePostal Nom Pays Reacuteg ion Dirig eant F60200 Compiegravegne France Picardie 1
F60300 Senlis France Picardie 2 F60301 Senlis France Picardie 2 E8000 Senlis Espagne Picardie 2
Le scheacutema relationnel preacuteceacutedent deacutecrit
Des personnes
Elles sont identifieacutees par un numeacutero qui est en fait une cleacute artificielle En effet mecircme une cleacute composeacutee
de tous les attributs (Nom Preacutenom LieuNaissance) laisse une possibiliteacute de doublons (homonymes
neacutes dans la mecircme ville)
La cleacute eacutetrangegravere LieuNaissance fait reacutefeacuterence agrave la relation Ville et plus preacuteciseacutement agrave sa cleacute primaire
CodePostal ce qui est est laisseacute implicite car eacutevident
Des pays
Ils sont identifieacutes par leur nom puisque deux pays ne peuvent avoir le mecircme nom Les pays sont
dirigeacutes par des personnes et ce lien est mateacuterialiseacute par la cleacute eacutetrangegravere Dirigeant
Des reacutegions
Elles font partie dun pays et ont un nom Deux reacutegions de pays diffeacuterents pouvant avoir le mecircme
nom il faut utiliser une cleacute primaire composeacutee agrave la fois du nom de la reacutegion et du nom du pays qui
est une cleacute eacutetrangegravere (le nom est appeleacute cleacute locale car il nest pas suffisant pour identifier un tuple de
la relation Reacutegion et la cleacute eacutetrangegravere vers la relation Pays est appeleacutee cleacute identifiante)
Des villes
Elles sont identifieacute par un code postal qui est unique dans le monde (en utilisant le preacutefixe de pays de
type F-60200) Ce code postal a pour domaine CP qui est une chaicircne composeacutee dune ou deux
lettres dun tiret puis dune seacuterie de chiffres
Le lien dappartenance entre une ville et une reacutegion est mateacuterialiseacute par la cleacute eacutetrangegravere composeacutee des
deux attributs Pays et Reacutegion Cette cleacute reacutefeacuterence la cleacute primaire de la relation Reacutegion eacutegalement composeacutee
de deux attributs Pour clairement expliciter les reacutefeacuterences (bien que seacutemantiquement la deacutenomination des
attributs ne laisse pas de place au doute) on utilise la syntaxe ReacutegionPays et ReacutegionNom
4 Synthegravese
a) Synthegravese Scheacutema relationnel
Scheacutema relationnel
Un scheacutema relationnel permet une formalisation dun modegravele logique
Relation ou table
La modeacutelisation logique relationnelle
56
Sous-ensemble dun produit carteacutesien -
Attribut ou colonne Prend ses valeurs dans un domaine
- Enregistrement ou ligne Pose une valeur (y compris la valeur null) pour chaque attribut
Cleacute
Groupe dattributs ayant un rocircle didentification au sein dun enregistrement - Cleacute candidate
Identifie de faccedilon unique un enregistrement - Cleacute primaire
Cleacute candidate choisie pour repreacutesenter un enregistrement pour sa faciliteacute dusage - Cleacute eacutetrangegravere
Reacutefeacuterence la cleacute primaire dun tuple dune autre relation pour exprimer un lien
b) Bibliographie commenteacutee sur le modegravele relationnel
Comtpleacutement Synthegraveses
SQL2 SQL3 applications agrave Oracle [Delmal01]
Une deacutefinition syntheacutetique et efficace du domaine relationnel relation domaine attribut cleacute inteacutegriteacute
opeacuterateurs (Premier chapitre)
5 Deacutefinition formelle dune relation
a) Produit carteacutesien
Deacutefinition Produit carteacutesien
Le produit carteacutesien noteacute X des domaines D1 D2 Dn noteacute D1 X D2 X X Dn est lensemble des
tuples (ou n-uplets ou vecteurs) ltV1V2Vngt tel que Vi est une valeur de Di et tel que toutes les
combinaisons de valeurs possibles sont exprimeacutees
Exemtple
D1 = A B C D2 = 1 2 3 D1 X D2 = ltA1gt ltA2gt ltA3gt ltB1gt ltB2gt ltB3gt ltC1gt ltC2gt ltC3gt
1 2 3
b) Relation
Deacutefinition Relation
Une relation sur les domaines D1 D2 Dn est un sous-ensemble du produit carteacutesien D1 X D2 X X Dn
Une relation est caracteacuteriseacutee par un nom Synonymes Table tableau
Syntaxe
La modeacutelisation logique relationnelle
57
On peut repreacutesenter la relation R sur les domaine D1 Dn par une table comportant une colonne pour
chaque domaine et une ligne pour chaque tuple de la relation
D1 Dn
V1 Vn
V1 Vn
Tableau 7 Relation R
Remarque
Une relation est deacutefinie en extension par leacutenumeacuteration des tuples la composant
B Exercices
1 Lab I-
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Dessiner des relations instancieacutees (en extension donc) remplies avec les donneacutees fournies en exemple
La modeacutelisation logique relationnelle
58
Question 2
Eacutecrivez le scheacutema relationnel (deacutefinition en intension donc) permettant de repreacutesenter une base de donneacutees
relationnelle pour le laboratoire
59
IV - Introduction au
passage
UMLRelationnel classes et
associations
A Cours
Afin de pouvoir impleacutementer une base de donneacutees il faut pouvoir traduire le modegravele conceptuel en modegravele
logique Cela signifie quil faut pouvoir convertir un modegravele UML en modegravele relationnel Les modegraveles
conceptuels sont suffisamment formels pour que ce passage soit systeacutematiseacute dans la plupart des cas
1 Transformation des classes et atributs
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
IV
Introduction au passage UML-Relationnel classes et associations
60
a) Transformation des classes
Meacutethode Classe
Pour chaque classe non abstraite
on creacutee une relation dont le scheacutema est celui de la classe
la cleacute primaire de cette relation est une des cleacutes de la classe
Classe1
Graphique 2 Classe
Classe1()
Remarque
Les classes abstraites sont ignoreacutees agrave ce stade et neacutetant pas instanciables ne donnent geacuteneacuteralement pas
lieu agrave la creacuteation de relation
b) Transformation des atributs
Meacutethode Atributs simtples
Pour chaque attribut eacuteleacutementaire et monovalueacute dune
classe on creacutee un attribut correspondant
Classe1
a key
b
Graphique 3 Attribut
Classe1(ab)
Meacutethode Atributs comtposites
Pour chaque attribut composite comprenant N sous-attributs dune classe
on creacutee N attributs correspondants
dont les noms sont la concateacutenation du nom de lattribut composite avec celui du sous attribut
Classe1
a key b -b1 -b2
Introduction au passage UML-Relationnel classes et associations
61
Graphique 4 Attribut composeacute
Classe1(ab_b1b_b2)
Meacutethode Atributs multivalueacutes
Pour chaque attribut multivalueacute b dune classe C
on creacutee une nouvelle relation RB
qui comprend un attribut monovalueacute correspondant agrave b
plus la cleacute de la relation repreacutesentant C
la cleacute de RB est la concateacutenation des deux attributs
Classe1
a key
b[110]
Graphique 5 Attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Meacutethode Atributs multivalueacutes (meacutethode alternative)
Dans le cas ougrave le nombre maximum de b est fini et petit on peut eacutegalement adopter la transformation
suivante
Classe1(ab1b2b3b4b5b6b7b8b9b10)
Si le nombre dattributs est infini (b[1]) cest impossible sil est trop grand ce nest pas souhaitable
Meacutethode Atributs comtposeacutes multivalueacutes
On combine les regravegles eacutenonceacutees pour les attributs composeacutes et pour les attributs multivalueacutes
Classe1
a key b [0N] -b1 -b2
Graphique 6 Attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
Ratptpel Voir aussi
Transformation des compositions - p102
Introduction au passage UML-Relationnel classes et associations
62
c) Transformation des atributs deacuteriveacutes et meacutethodes
Meacutethode Atributs deacuteriveacutes et meacutethodes
On ne repreacutesente pas en geacuteneacuteral les attributs deacuteriveacutes ni les meacutethodes dans le modegravele relationnel ils seront
calculeacutes dynamiquement soit par des proceacutedures internes agrave la BD (proceacutedures stockeacutees) soit par des
proceacutedures au niveau applicatif
Classe1
a key
b
m()
Graphique 7 Attribut deacuteriveacute et meacutethodes
Classe1(a)
Comtpleacutement Atribut deacuteriveacute stockeacutes
On peut deacutecider (pour des raisons de performance essentiellement) de repreacutesenter lattribut deacuteriveacute ou la
meacutethode comme sil sagissait dun attribut simple mais il sera neacutecessaire dans ce cas dajouter des
meacutecanismes de validation de contraintes dynamiques (avec des triggers par exemple) pour assurer que la
valeur stockeacutee eacutevolue en mecircme temps que les attributs sur lesquels le calcul deacuteriveacute porte
Notons quintroduire un attribut deacuteriveacute ou un reacutesultat de meacutethode dans le modegravele relationnel eacutequivaut agrave
introduire de la redondance ce qui est en geacuteneacuteral deacuteconseilleacute et ce qui doit ecirctre dans tous les cas controcircleacute
2 Transformation des associations
Objectifs
Savoir faire le passage dun scheacutema conceptuel UML agrave un scheacutema relationnel pour les
cas simples
a) Transformation des associations 1N
Meacutethode
Pour chaque association binaire de type 1N
on ajoute agrave la relation cocircteacute N une cleacute eacutetrangegravere vers la relation cocircteacute 1
Classe1
01 association 0N
Classe2
a key
b c key
d
Graphique 8 Association 1N
Classe1(ab)
Introduction au passage UML-Relationnel classes et associations
63
Classe2(cda=gtClasse1)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations 1N - p103
b) Transformation des associations NM
Meacutethode
Pour chaque association binaire de type MN
on creacutee une nouvelle relation
composeacutee de cleacutes eacutetrangegraveres vers chaque relation associeacutee
et dont la cleacute primaire est la concateacutenation de ces cleacutes eacutetrangegraveres
Graphique 9 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Comtpleacutement
Contrainte de cardinaliteacute minimale 1 dans les associations NM - p104
c) Transformation des associations 11 (approche simplifieacutee)
Meacutethode
La solution la plus simple et la plus geacuteneacuterale pour transformer une association 11 consiste agrave traiter cette
association 11 comme une association 1N puis agrave ajouter une contrainte UNIQUE sur la cleacute eacutetrangegravere pour
limiter la cardinaliteacute maximale agrave 1
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 10 Association 11
Classe1(abc=gtClasse2) avec c UNIQUE
Classe2(cd) ou
Introduction au passage UML-Relationnel classes et associations
64
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE
Remarque
Il existe toujours deux solutions selon que lon choisit une ou lautre relation pour accueillir la cleacute eacutetrangegravere
Selon la cardinaliteacute minimale un des deux choix peut ecirctre plus pertinent
Comtpleacutement
Il est parfois possible de choisir de fusionner les deux classes au sein dune seule relation plutocirct que dopter
pour une cleacute eacutetrangegravere
Comtpleacutement
Transformation des associations 11 (approche geacuteneacuterale) - p105
d) Transformation des classes dassociation
Meacutethode Classe dassociation NM
Graphique 11 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2ef)
Comtpleacutement Classe dassociation 1N
Les attributs de la classe dassociation sont ajouteacutes agrave la relation issue de la classe cocircteacute N
Comtpleacutement Classe dassociation 11
Les attributs de la classe dassociation sont ajouteacutes agrave la relation qui a eacuteteacute choisie pour recevoir la cleacute eacutetrangegravere
Si les deux classes ont eacuteteacute fusionneacutees en une seule relation les attributs sont ajouteacutes agrave celle-ci
a key b
Classe1
c key d
Classe2
0 N 0 N
e f
Cl-A ssoc
Introduction au passage UML-Relationnel classes et associations
65
B Exercices
1 Lab I+
Description du problegraveme [30 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Question 2
Eacutetendre le modegravele conceptuel UML afin dajouter la gestion des composants Un composant est identifieacute par
un code unique et possegravede un intituleacute Tout meacutedicament possegravede au moins un composant souvent plusieurs
Tout composant peut intervenir dans la fabrication de plusieurs meacutedicaments Il existe des composants qui ne
sont pas utiliseacutes pour fabriquer des meacutedicaments et que lon veut quand mecircme geacuterer
Question 3
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 4
Dessiner des tableaux remplis avec les donneacutees fournies en exemple afin de montrer que le modegravele fonctionne
selon le besoin exprimeacute initialement On pourra mettre le premier mot seulement des descriptions pour gagner
du temps
Introduction au passage UML-Relationnel classes et associations
66
2 Usine de production
[30 minutes] Une usine cherche agrave modeacuteliser sa production de veacutehicules et de moteurs
Les veacutehicules sont identifieacutes par un numeacutero dimmatriculation alphanumeacuterique et caracteacuteriseacutes par une
couleur dont la deacutenomination est une chaicircne de caractegraveres Chaque veacutehicule peut comporter un
unique moteur etou un nombre quelconque de pneus
Chaque moteur est monteacute sur un et un seul veacutehicule et est identifieacute par un numeacutero de seacuterie Un moteur
est caracteacuteriseacute par une puissance en chevaux
Tout pneu est monteacute sur un unique veacutehicule et est identifieacute par un numeacutero de seacuterie Sa position est
deacutefinie localement sur ce veacutehicule et par rapport agrave lessieu Dn pour les pneus situeacute sur la droite de
lessieu et Gn pour les pneus situeacutes agrave gauche n repreacutesentant le numeacutero de lessieu (1 pour celui situeacute
devant 2 pour la deuxiegraveme rangeacutee etc) Un pneu est caracteacuteriseacute par un diamegravetre et une largeur en
pouces
Les moteurs les pneus et les veacutehicules sont fabriqueacutes sous une marque Les mecircmes marques peuvent
fabriquer indiffeacuteremment des moteurs des pneus etou des veacutehicules et un veacutehicule dune certaine
marque peut comporter un moteur etou des pneus de marque diffeacuterente
Question 1
Reacutealiser le modegravele UML de ce problegraveme en faisant apparaicirctre les domaines et les cleacutes
Question 2
Reacutealiser le passage au modegravele relationnel en faisant apparaicirctre les cleacutes primaires candidates et eacutetrangegraveres
Question 3
Dessiner les tableaux correspondant aux relations du modegravele Instancier au minimum deux veacutehicules et quatre
marques
Question 4
Donner quatre exemples denregistrements qui seront refuseacutes - eacutetant donneacutees les donneacutees deacutejagrave inseacutereacutees -
pour quatre raisons diffeacuterentes
contrainte de cleacute sur une cleacute primaire
contrainte de cleacute sur une cleacute candidate
contrainte dinteacutegriteacute reacutefeacuterentielle
contrainte de non nulliteacute
67
V - Creacuteation et
alimentation de bases
de donneacutees SQL
A Cours
1 Le langage SQL
Deacutefinition SQL
SQL (pour langage de requecirctes structureacute) est un langage deacuteclaratif destineacute agrave la manipulation de bases de
donneacutees au sein des SGBD et plus particuliegraverement des SGBDR
SQL LDD LCD LMD LCT
SQL est un langage deacuteclaratif il nest donc pas a proprement parleacute un langage de programmation mais plutocirct
une interface standard pour acceacuteder aux bases de donneacutees
Il est composeacute de quatre sous ensembles
Le Langage de Deacutefinition de Donneacutees (LDD ou en anglais DDL Data Definition
Language) pour creacuteer et supprimer des objets dans la base de donneacutees (tables contraintes dinteacutegriteacute
vues etc)
Exemple de commandes CREATE DROP ALTER
Le Langage de Controcircle de Donneacutees (LCD ou en anglais DCL Data Control Language) pour geacuterer les
droits sur les objets de la base (creacuteation des utilisateurs et affectation de leurs droits)
Exemple de commandes GRANT REVOKE
V
Creacuteation et alimentation de bases de donneacutees SQL
68
Le Langage de Manipulation de Donneacutees (LMD ou en anglais DML Data Manipulation
Language) pour la recherche linsertion la mise agrave jour et la suppression de donneacutees Le LMD est baseacute
sur les opeacuterateurs relationnels auxquels sont ajouteacutes des fonctions de calcul dagreacutegats et des
instructions pour reacutealiser les opeacuterations dinsertion mise agrave jour et suppression
Exemple de commandes INSERT UPDATE DELETE SELECT
Le Langage de Controcircle de Transaction (LCT ou en anglais TCL Transaction Control Language) pour
la gestion des transactions (validation ou annulation de modifications de donneacutees dans la BD)
Exemple de commandes COMMIT ROLLBACK
Fondamental Reacutefeacuterence SQL SQL-99 complete really
Gulutzan and Pelzer 1999 [Gulutzan and Pelzer 1999] httpsmariadbcomkbensql-99)2
Comtpleacutement Origine du SQL
Le modegravele relationnel a eacuteteacute inventeacute par EF Codd (Directeur de recherche du centre IBM de San Joseacute) en
1970 suite agrave quoi de nombreux langages ont fait leur apparition
IBM Sequel (Structured English Query Language) en 1977
IBM Sequel2
IBM SystemR
IBM DB2
Ce sont ces langages qui ont donneacute naissance au standard SQL normaliseacute en 1986 au Eacutetats-Unis par lANSI
pour donner SQL86 (puis au niveau international par lISO en 1987)
Comtpleacutement Versions de SQL
SQL-86 (ou SQL-87) Version dorigine
SQL-89 (ou SQL-1) Ameacuteliorations mineures
SQL-92 (ou SQL-2) Extensions fonctionnelles majeures (types de donneacutees opeacuterations relationnelles
instruction LDD transactions etc
SQL-99 (ou SQL-3) Introduction du PSM (couche proceacutedurale sous forme de proceacutedure stockeacutees)
et du RO
SQL-2003 Extensions XML
SQL-2006 Ameacuteliorations mineures (pour XML notamment)
SQL-2008 Ameacuteliorations mineures (pour le RO notamment)
Remarque Version SQL et imtpleacutementations SGBD
Selon leur niveau dimpleacutementation de SQL les SGBD acceptent ou non certaines fonctions
Certains SGBD ayant entameacute certaines impleacutementations avant leur standardisation deacutefinitive ces
impleacutementations peuvent diffeacuterer de la norme
Creacuteation et alimentation de bases de donneacutees SQL
69
2 Creacuteer des tables en SQL (Langage de Deacutefinition de
Donneacutees)
Le LDD est la partie du langage SQL qui permet de creacuteer de faccedilon deacuteclarative les objets composant une
BD Il permet notamment la deacutefinition des scheacutemas des relations des contraintes dinteacutegriteacute des vues
Rappel Le code SQL peut ecirctre testeacute avec Db Discodbdiscocrztfr
2 - httpsmariadbcomkbensql-99
a) Lab I++
Description du problegraveme [20 min]
Un laboratoire souhaite geacuterer les meacutedicaments quil conccediloit
Un meacutedicament est deacutecrit par un nom qui permet de lidentifier En effet il nexiste pas deux
meacutedicaments avec le mecircme nom Un meacutedicament comporte une description courte en franccedilais ainsi
quune description longue en latin On gegravere aussi le conditionnement du meacutedicament cest agrave dire le
nombre de pilules par boicircte (qui est un nombre entier)
Agrave chaque meacutedicament on associe une liste de contre-indications geacuteneacuteralement plusieurs parfois
aucune Une contre-indication comporte un code unique qui lrsquoidentifie ainsi quune description Une contre-
indication est toujours associeacutee agrave un et un seul meacutedicament Exemple de donneacutees
Afin de mateacuterialiser notre base de donneacutees nous obtenons les descriptions suivantes
Le Chourix a pour description courte laquo Meacutedicament contre la chute des choux raquo et pour description
longue laquo Vivamus fermentum semper porta Nunc diam velit adipiscing ut tristique vitae sagittis vel odio Maecenas convallis ullamcorper ultricies Curabitur ornare raquo Il est conditionneacute en boicircte de 13
Ses contre-indications sont - CI1 Ne jamais prendre apregraves minuit - CI2 Ne jamais mettre en contact avec de leau
Le Tropas a pour description courte laquo Meacutedicament contre les dysfonctionnements intellectuels raquo et
pour description longue laquo Suspendisse lectus leo consectetur in tempor sit amet placerat quis neque Etiam luctus porttitor lorem sed suscipit est rutrum non raquo Il est conditionneacute en boicircte de 42 Ses
contre-indications sont - CI3 Garder agrave labri de la lumiegravere du soleil
Question 1
Reacutealiser le modegravele conceptuel de donneacutees en UML du problegraveme
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
70
Question 2
En mobilisant les regravegles adeacutequates proposer un modegravele logique de donneacutees correspondant en relationnel Le
repeacuterage des domaines et des cleacutes est obligatoire
Question 3
Creacuteer une base de donneacutees en SQL correspondant au modegravele relationnel
Question 4
Inseacuterer les donneacutees fournies en exemple dans la base de donneacutees
b) Creacuteation de tables
Ratptpel
Quest ce que le SQL
Introduction
La creacuteation de table est le fondement de la creacuteation dune base de donneacutees en SQL
Deacutefinition Creacuteation de table
La creacuteation de table est la deacutefinition dun scheacutema de relation en intension par la speacutecification de tous les
attributs le composant avec leurs domaines respectifs
Syntaxe
CREATE TABLE nom_table ( nom_colonne1 domaine1 nom_colonne2 domaine2 nom_colonneN domaineN )
1 2 3 4 5 6
Exemtple
CREATE TABLE Personne ( Nom VARCHAR(25) Prenom VARCHAR(25) Age NUMERIC(3) )
1 2 3 4 5
Atention Contrainte dinteacutegriteacute
La deacutefinition des types nest pas suffisante pour deacutefinir un scheacutema relationnel il faut lui adjoindre
la deacutefinition de contraintes dinteacutegriteacute qui permette de poser les notions de cleacute dinteacutegriteacute
reacutefeacuterentielle de restriction de domaines etc
Creacuteation et alimentation de bases de donneacutees SQL
71
c) Domaines de donneacutees
Introduction
Un attribut dune relation est deacutefini pour un certain domaine ou type Les types de donneacutees disponibles en
SQL varient dun SGBD agrave lautre on peut neacuteanmoins citer un certain nombre de types standards que lon
retrouve dans tous les SGBD
Fondamental Les types standard
INTEGER ou INT SMALLINT
NUMERIC(X)
DECIMAL(XY) ou NUMERIC(XY)
FLOAT(X) REAL
CHAR(X)
VARCHAR(X)
DATE (AAAA-MM-JJ)
DATETIME (AAAA-MM-JJ HHMMSS)
Les tytpes numeacuteriques standard
Les nombres entiers
INTEGER (ou INT) et SMALLINT permettent de coder des entiers sur 4 octets (2147483648 agrave
2147483647) ou 2 octets (-32768 agrave 32767)
Les nombres entiers
NUMERIC(X) deacutesigne un entier de X chiffres au maximum
Les nombres deacutecimaux
DECIMAL(XY) ougrave X et Y sont optionnels et deacutesignent respectivement le nombre de chiffres maximum
pouvant composer le nombre et le nombre de chiffres apregraves la virgule
NUMERIC(XY) est un synonyme standard
Les nombres agrave virgule flottante
FLOAT(X) avec X deacutefinissant la preacutecision (nombre de bits de codage de la mantisse)
REAL est un synonyme standard de FLOAT(24)
Conseil FLOAT versus DECIMAL
Il est conseilleacute dutiliser DECIMAL qui est un nombre exact plutocirct que FLOAT qui est un nombre approximatif
si la preacutecision requise est suffisante FLOAT sera reacuteserveacute typiquement agrave des calculs scientifiques neacutecessitant
un degreacute de preacutecision supeacuterieur
Les tytpes chaicircne de caractegraveres standard
On distingue principalement les types CHAR(X) et VARCHAR(X) ougrave X est obligatoire et deacutesigne la longueur de
la chaicircne
CHAR deacutefinit des chaicircnes de longueur fixe (compleacuteteacutee agrave droites par des espaces si la longueur est
infeacuterieure agrave X)
et VARCHAR des chaicircnes de longueurs variables
Creacuteation et alimentation de bases de donneacutees SQL
72
CHAR et VARCHAR sont geacuteneacuteralement limiteacutes agrave 255 caractegraveres La plupart des SGBD proposent des types tels
que TEXT ou CLOB (Character Long Object) pour repreacutesenter des chaicircnes de caractegraveres longues jusquagrave
65000 caractegraveres par exemple
Les tytpes date standard
Les types date dont introduits avec la norme SQL2 On distingue
DATE qui repreacutesente une date selon un format de type AAAA-MM-JJ
et DATETIME qui repreacutesente une date plus une heure dans un format tel que AAAAMM-JJ HHMMSS
Comtpleacutement Les autres tytpes
En fonction du SGBD il peut exister de nombreux autres types On peut citer par exemple
MONEY pour repreacutesenter des deacutecimaux associeacutes agrave une monnaie
BOOLEAN pour repreacutesenter des booleacuteens
BLOB (pour Binary Long Oject) pour repreacutesenter des donneacutees binaires tels que des documents
multimeacutedia (images bitmap videacuteo etc)
d) La valeur NULL Labsence de valeur repreacutesenteacutee par la valeur NULL est une information fondamentale en SQL quil ne faut
pas confondre avec la chaicircne espace de caractegravere ougrave bien la valeur 0 Il ne sagit pas dun type agrave proprement
parler mais dune valeur possible dans tous les types
Fondamental
Par deacutefaut en SQL NULL fait partie du domaine il faut lexclure explicitement par la clause NOT
NULL apregraves la deacutefinition de type si on ne le souhaite pas Syntaxe
CREATE TABLE nom de table ( 1
CREATE TABLE nom_table ( nom_colonne1 domaine1 NOT NULL
nom_colonne2 domaine2
nom_colonneN domaineN NOT NULL )
2 3 4 5 6 7
e) Contraintes dinteacutegriteacute
Fondamental
PRIMARY KEY (ltliste dattibutsgt)
UNIQUE (ltliste dattibutsgt)
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt)
CHECK (ltconditiongt)
Une contrainte dinteacutegriteacute est une regravegle qui deacutefinit la coheacuterence dune donneacutee ou dun ensemble de donneacutees
de la
Creacuteation et alimentation de bases de donneacutees SQL
73
BD
Il existe deux types de contraintes
sur une colonne unique
ou sur une table lorsque la contrainte porte sur une ou plusieurs colonnes
Les contraintes sont deacutefinies au moment de la creacuteation des tables
Deacutefinition Contraintes dinteacutegriteacute sur une colonne
Les contraintes dinteacutegriteacute sur une colonne sont
PRIMARY KEY deacutefinit lattribut comme la cleacute primaire
UNIQUE interdit que deux tuples de la relation aient la mecircme valeur pour lattribut
REFERENCES ltnom tablegt (ltnom colonnesgt) controcircle linteacutegriteacute reacutefeacuterentielle entre lattribut et la
table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur de lattribut speacutecifieacute dans la condition dans le
cadre dune restriction de domaine
Deacutefinition Contraintes dinteacutegriteacute sur une table
Les contraintes dinteacutegriteacute sur une table sont
PRIMARY KEY (ltliste dattibutsgt) deacutefinit les attributs de la liste comme la cleacute primaire
UNIQUE (ltliste dattibutsgt) interdit que deux tuples de la relation aient les mecircmes valeurs pour
lensemble des attributs de la liste
FOREIGN KEY (ltliste dattibutsgt) REFERENCES ltnom tablegt(ltnom colonnesgt) controcircle linteacutegriteacute
reacutefeacuterentielle entre les attributs de la liste et la table et ses colonnes speacutecifieacutees
CHECK (ltconditiongt) controcircle la validiteacute de la valeur des attributs speacutecifieacutes dans la condition dans le
cadre dune restriction de domaine Syntaxe
CREATE TABLE nom de table ( CREATE TABLE nom_table ( nom_colonne1 domaine1 ltcontraintes colonne1gt nom_colonne2 domaine2 ltcontraintes colonne2gt nom_colonneN domaineN ltcontraintes colonneNgt
1 2 3 4 5 6
ltcontraintes de tablegt )
7 8
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) UNIQUE
(Nom Prenom) )
1 2 3 4 5 6 7 8
Remarque Cleacute candidate
La clause UNIQUE NOT NULL sur un attribut ou un groupe dattributs deacutefinit une cleacute candidate non primaire
Creacuteation et alimentation de bases de donneacutees SQL
74
Remarque
Les contraintes sur une colonne et sur une table peuvent ecirctre combineacutees dans la deacutefinition dun mecircme scheacutema
de relation
Remarque
Une contrainte sur une colonne peut toujours ecirctre remplaceacutee par une contrainte sur une table
f) Exemple de contraintes dinteacutegriteacute
Exemtple
CREATE TABLE Personne ( NdegSS CHAR(13) PRIMARY KEY Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65) Mariage CHAR(13) REFERENCES Personne(NdegSS) Codepostal INTEGER(5) Pays VARCHAR(50) UNIQUE (Nom Prenom) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) CHECK (Initiale = LEFT(Pays 1)) PRIMARY KEY (CP Pays) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
Dans la deacutefinition de scheacutema preacuteceacutedente on a poseacute les contraintes suivantes
La cleacute primaire de Personne est NdegSS et la cleacute primaire de Adresse est (CP Pays)
Nom Preacutenom ne peuvent pas ecirctre null et (Nom Preacutenom) est une cleacute
Age doit ecirctre compris entre 18 et 65 et Initiale doit ecirctre la premiegravere lettre de Pays (avec la fonction
LEFT qui renvoie la sous chaicircne agrave gauche de la chaicircne passeacutee en premier argument sur le nombre de
caractegraveres passeacutes en second argument)
Mariage est cleacute eacutetrangegravere vers Personne et (Codepostal Pays) est une cleacute eacutetrangegravere vers Adresse
Exemtple Reacuteeacutecriture avec uniquement des contraintes de table
Creacuteation et alimentation de bases de donneacutees SQL
75
CREATE TABLE Personne ( NdegSS CHAR(13) Nom VARCHAR(25) NOT NULL Prenom VARCHAR(25) NOT NULL Age INTEGER(3) Mariage CHAR(13) Codepostal INTEGER(5) Pays VARCHAR(50) PRIMARY KEY (NdegSS) UNIQUE (Nom Prenom) CHECK (Age BETWEEN 18 AND 65) FOREIGN KEY (Mariage) REFERENCES Personne(NdegSS) FOREIGN KEY (Codepostal Pays) REFERENCES Adresse (CP Pays) )
CREATE TABLE Adresse ( CP INTEGER(5) NOT NULL Pays VARCHAR(50) NOT NULL Initiale CHAR(1) PRIMARY KEY (CP Pays) CHECK
(Initiale = LEFT(Pays 1)) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22
Ce scheacutema est strictement le mecircme que le preacuteceacutedent simplement les contraintes ont toutes eacuteteacute reacuteeacutecrites
comme des contraintes de table
g) Exercice Les instructions SQL ci-apregraves ont-elles pu permettre de creacuteer le scheacutema des trois relations instancieacutees ci-dessous
CREATE TABLE A ( A1 CHAR(255) A2 CHAR(255) A3 CHAR(255) A4 CHAR(255) ) CREATE TABLE B ( B1 CHAR(255) B2 CHAR(255) B3 CHAR(255) B4 CHAR(255) B5 CHAR(255) B6 CHAR(255) B7 CHAR(255) ) CREATE TABLE C ( C1 CHAR(255) C2 CHAR(255) )
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
Oui
Non
Creacuteation et alimentation de bases de donneacutees SQL
76
3 Inseacuterer modifier et supprimer des donneacutees en SQL
(Langage de Manipulation de Donneacutees)
Objectifs
Maicirctriser les bases du SQL pour entrer modifier et effacer des donneacutees dans les
tables
a) Exercice Quelle valeur renvoie la derniegravere instruction SQL de la liste ci-dessous
CREATE TABLE t ( a integer b integer c integer)
INSERT INTO t VALUES (0 0 0)
INSERT INTO t VALUES (1 0 0)
INSERT INTO t SELECT FROM t
SELECT sum(a) + count(b) FROM t
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
b) Insertion de donneacutees Le langage SQL fournit des instructions pour ajouter des nouveaux tuples agrave une relation Il offre ainsi une
interface standard pour ajouter des information dans une base de donneacutees
Il existe deux moyens dajouter des donneacutees soit par fourniture directe des valeurs des proprieacuteteacutes du tuple agrave
ajouter soit par seacutelection des tuples agrave ajouter dans une autre relation
Syntaxe Insertion directe de valeurs
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) VALUES (ltListe ordonneacutee
des valeurs agrave affecter aux proprieacuteteacutes speacutecifieacutees cidessusgt) 1 2
Exemtple Insertion directe de valeurs
INSERT INTO Virement (Date Montant Objet) VALUES (14-07-1975 1000 Prime de naissance)
1 2
Syntaxe Insertion de valeurs tpar lintermeacutediaire dune seacutelection
Creacuteation et alimentation de bases de donneacutees SQL
77
INSERT INTO ltNom de la relationgt (ltListe ordonneacutee des proprieacuteteacutes agrave valorisergt) SELECT 1 2
Linstruction SELECT projetant un nombre de proprieacuteteacutes identiques aux proprieacuteteacutes agrave valoriser
Exemtple Insertion de valeurs tpar lintermeacutediaire dune seacutelection
INSERT INTO Credit (Date Montant Objet) SELECT Date Montant Annulation de deacutebit FROM Debit WHERE DebitDate = 25-12-2001
1 2 3 4
Dans cet exemple tous les deacutebits effectueacutes le 25 deacutecembre 2001 sont re-creacutediteacutes pour le mecircme montant (et
agrave la mecircme date) avec la mention annulation dans lobjet du creacutedit Ceci pourrait typiquement reacutealiseacute en cas
de deacutebits erroneacutes ce jour lagrave
Remarque
Les proprieacuteteacutes non valoriseacutees sont affecteacutees agrave la valeur NULL
Il est possible de ne pas speacutecifier les proprieacuteteacutes agrave valoriser dans ce cas toutes les proprieacuteteacutes de la
relation seront consideacutereacutees dans leur ordre de deacutefinition dans la relation (agrave nutiliser que dans les cas
les plus simples)
c) Mise agrave jour de donneacutees Le langage SQL fournit une instruction pour modifier des tuples existants dans une relation
Syntaxe Mise agrave jour directe de valeurs
1 UPDATE ltNom de la relationgt
2 SET ltListe daffectations Proprieacuteteacute=Valeur Proprieacuteteacute=Valeurgt 3 WHERE ltCondition pour filtrer les tuples agrave mettre agrave jourgt
1 UPDATE r
2 SET a=1 b=x 3 WHERE c=0
Exemtple Mise agrave jour directe de valeurs
UPDATE Compte SET Monnaie=Euro WHERE Monnaie=Franc
1 2 3
Exemtple Mise agrave jour tpar calcul sur lancienne valeur
UPDATE Compte SET Total=Total 655957 WHERE Monnaie=Euro
1 2 3
Creacuteation et alimentation de bases de donneacutees SQL
78
d) Suppression de donneacutees Le langage SQL fournit une instruction pour supprimer des tuples existants dans une relation
Syntaxe
DELETE FROM ltNom de la relationgt WHERE ltCondition pour filtrer les tuples agrave supprimergt
1 2
Exemtple Sutptpression de tous les tutples dune relation
DELETE FROM FaussesFactures 1
Exemtple Sutptpression seacutelective
DELETE FROM FaussesFactures WHERE Auteur=Moi
1 2
4 Supprimer et modifier des tables en SQL (Langage de
Deacutefinition de Donneacutees)
Le LDD permet de creacuteer les objets composant une BD de faccedilon deacuteclarative Il permet notamment la
deacutefinition des scheacutemas des relations la deacutefinition des contraintes dinteacutegriteacute la deacutefinition de vues
relationnelles
a) Suppression dobjets Il est possible de supprimer des objets de la BD tels que les tables ou les vues
Syntaxe
DROP lttype objetgt ltnom objetgt 1
Exemtple
Objectifs
Maicirctriser les bases du SQL pour creacuteer et modifier des tables et des vues
Creacuteation et alimentation de bases de donneacutees SQL
79
DROP TABLE Personne DROP VIEW Employe
1 2
b) Modification de tables
Introduction
Linstruction ALTER TABLE permet de modifier la deacutefinition dune table (colonnes ou contraintes) preacutealablement
creacuteeacutee
Cette commande absente de SQL-89 est normaliseacutee dans SQL-92
Syntaxe Ajout de colonne
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de colonnegt
1 2
Syntaxe Sutptpression de colonne
ALTER TABLE ltnom de tablegt DROP ltnom de colonnegt
1 2
Syntaxe Ajout de contrainte
ALTER TABLE ltnom de tablegt ADD ltdeacutefinition de contrainte de tablegt
1 2
RemarqueModification de table sans donneacutee sans la commande ALTER
Pour modifier une table ne contenant pas encore de donneacutee la commande ALTER nest pas indispensable
lon peut supprimer la table agrave modifier (DROP) et la recreacuteer telle quon la souhaite Notons neacuteanmoins que si
la table est reacutefeacuterenceacutee par des clauses FOREIGN KEY cette suppression sera plus compliqueacutee car il faudra
eacutegalement supprimer et recreacuteer les tables reacutefeacuterenccedilantes (ce qui ce complique encore si ces derniegraveres
contiennent des donneacutees)
RemarqueModification de table avec donneacutees sans la commande ALTER
Pour modifier une table contenant des donneacutees la commande ALTER nest pas indispensable On peut en effet
1 Copier les donneacutees dans une table temporaire de mecircme scheacutema que la table agrave modifier
2 Supprimer et recreacuteer la table agrave modifier avec le nouveau scheacutema 3 Copier les donneacutees depuis la table temporaire vers la table modifieacutee
c) Exemple de modifications de tables
Table initiale
Soit une table initiale telle que deacutefinie ci-apregraves
Creacuteation et alimentation de bases de donneacutees SQL
80
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) prenom
VARCHAR(50) PRIMARY KEY
(pk_n) )
1 2 3 4 5 6
Modifications
On deacutecide dapporter les ameacutenagements suivants agrave la table on deacutefinit nom comme UNIQUE et on supprime
le champ prenom
ALTER TABLE Personne ADD UNIQUE (nom)
ALTER TABLE Personne DROP prenom
1 2 3 4 5
Table finale
La table obtenue apregraves modification est identique agrave la table qui aurait eacuteteacute deacutefinie directement telle que ci-
apregraves
CREATE TABLE Personne (
pk_n NUMERIC(4) nom
VARCHAR(50) PRIMARY KEY (pk_n) UNIQUE
(nom) )
1 2 3 4 5 6
B Exercices
1 The show
[30 minutes] Soit le scheacutema relationnel suivant deacutecrivant un systegraveme de reacuteservations de places de spectacles
SPECTACLE (nospectacleint nomstr dureacuteeint typetheacuteacirctre|danse|concert) SALLE (nosalleint nbplacesint) REPRESENTATION (datedate nospectacle=gtSPECTACLE nosalle=gtSALLE prixdecimal)
1 2 3
En faisant les suppositions suivantes
On gegravere un espace de spectacles ayant un ensemble de salles (deacutecrit par la relation SALLE)
On suppose que pour un jour donneacute et une salle donneacutee il ny a quun seul spectacle repreacutesenteacute
Question 1
Retro-concevoir le MCD en UML
Question 2
Proposer des contraintes dinteacutegriteacute reacutealistes pour ce scheacutema (en franccedilais)
Question 3
Creacuteation et alimentation de bases de donneacutees SQL
81
Proposer une deacutefinition du scheacutema en SQL qui prenne en compte certaines de ces contraintes
Question 4
Inseacuterer des donneacutees reacutealistes dans votre scheacutema afin de veacuterifier son bon fonctionnement
2 Du producteur au consommateur
[30 min] Soit le modegravele relationnel suivant
Producteur(raison_socialechaicircne(25) villechaicircne(255)) Consommateur(loginchaicircne(10)
emailchaicircne(50) nomchaicircne(50)prenomchaicircne(50) villechaicircne(255)) Produit(identier descriptionchaicircne(100) produit-par=gtProducteur consommepar-
login=gtConsommateur consomme-par-email=gtConsommateur)
1 2
3
On ajoute que
(nomprenomville) est une cleacute candidate de Consommateur
Tous les produits sont produits
Tous les produits ne sont pas consommeacutes
Question 1
Reacutetro-concevez le modegravele conceptuel sous-jacent agrave ce modegravele relationnel
Question 2
Eacutetablissez le code LDD standard permettant dimpleacutementer ce modegravele en SQL
Question 3
Inseacuterez les donneacutees dans votre base de donneacutees correspondant aux assertions suivantes
Lentreprise de Compiegravegne Pommes Picardes SARL a produit 4 lots de pommes et 2 lots de cidre
Il existe trois utilisateurs consommateurs dans la base donc les adresses mails sont
AlUncompiegnefr - BobDeuxcompiegnefr - CharlieTroiscompiegnefr
Ce sont des employeacutes de la ville de Compiegravegne qui habitent cette ville Leur mail est construit sur le
modegravele PrenomNomcompiegnefr Leur login est leur preacutenom
Question 4
Modifiez les donneacutees de votre base de donneacutees pour inteacutegrer les assertions suivantes
1 lots de pommes a eacuteteacute consommeacutes par Al Un
2 lots de pomme ont eacuteteacute consommeacute par Bob Deux
Tous les lots de cidre ont eacuteteacute consommeacutes par Al Un
Question 5
Charlie Trois nayant rien consommeacute modifiez votre base de donneacutees afin de le supprimer de la base
82
VI - Algegravebre relationnelle
A Cours
1 Opeacuterateurs fondamentaux projection restriction et
jointure
Objectifs
Connaicirctre et savoir utiliser les opeacuterateurs relationnels de projection restriction
produit et jointure
a) Introduction La repreacutesentation dinformation sous forme relationnelle est inteacuteressante car les fondements matheacutematiques
du relationnel outre quils permettent une modeacutelisation logique simple et puissante fournissent eacutegalement
un ensemble de concepts pour manipuler formellement linformation ainsi modeacuteliseacutee
Ainsi une algegravebre relationnelle sous forme dun ensemble dopeacuterations formelles permet dexprimer des
questions ou requecirctes poseacutees agrave une repreacutesentation relationnelle sous forme dexpressions algeacutebriques
Lalgegravebre relationnelle est composeacutee par les cinq opeacuterateurs de base et les trois opeacuterateurs additionnels
suivants
Opeacuterateurs de base
- Union - Diffeacuterence - Projection - Restriction
VI
Algegravebre relationnelle
83
- Produit carteacutesien
Opeacuterateurs additionels
- Intersection - Jointure - Division
Fondamental Algegravebre relationnelle et SQL
Les questions formuleacutees en algegravebre relationnelle sont la base des questions formuleacutees en SQL
pour interroger une base de donneacutees relationnelle
b) Employeacutes et deacutepartements
[30 minutes] Soit les deux relations EMP et DEPT ci-apregraves
EMP (ENO ENOM PROF SAL COMM DNO=gtDEPT(DNO)) DEPT (DNO DNOM DIR=gtEMP(ENO) VILLE)
1 2
ENO numeacutero demployeacute cleacute
ENOM nom de lemployeacute
PROF profession (directeur nest pas une profession)
SAL salaire
COMM commission (un employeacute peut ne pas avoir de commission)
DNO numeacutero de deacutepartement auquel appartient lemployeacute
DNO numeacutero de deacutepartement cleacute
DNOM nom du deacutepartement
DIR numeacutero demployeacute du directeur du deacutepartement
VILLE lieu du deacutepartement (ville)
Eacutecrire en algegravebre relationnelle les requecirctes permettant dobtenir les informations suivantes
Question 1
Lister les employeacutes ayant des revenus supeacuterieurs agrave 10000 euros
Question 2
Trouver le nom et la profession de lemployeacute numeacutero 10
Question 3
Lister les noms des employeacutes qui travaillent agrave Paris
Question 4
Trouver le nom du directeur du deacutepartement Commercial
Question 5
Trouver les professions des directeurs des deacutepartements
Question 6
Algegravebre relationnelle
84
Trouver le nom des directeurs de deacutepartement ayant comme profession Ingeacutenieur
c) Projection
Deacutefinition Projection
La projection est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La projection de R1 sur
une partie de ses attributs A1 A2 produit une relation R2 dont le scheacutema est restreint aux attributs
mentionneacutes en opeacuterande comportant les mecircmes tuples que R1 et dont les doublons sont eacutelimineacutes
Remarque Eacutelimination des doublons
Apregraves suppression dune partie des attributs du scheacutema la relation peut comporter des doublons Eacutetant donneacute
que lon ne pourrait plus identifier ces doublons les uns par rapport aux autres la seule solution senseacutee est
donc de consideacuterer que deux doublons sont eacutequivalents et donc de nen garder quun seul dans la relation
reacutesultante
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Dupont Pierre 20
Durand Jean 30
Tableau 8 Personne
Soit lopeacuteration suivante
R = Projection (Personne Nom Age) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont 20
Durand 30
Tableau 9 R
d) Restriction
Deacutefinition Restriction
La restriction est une opeacuteration unaire (cest agrave dire portant sur une seule relation) La restriction de R1 eacutetant
donneacutee une condition C produit une relation R2 de mecircme scheacutema que R1 et dont les tuples sont les tuples
de R1 veacuterifiant la condition C
Algegravebre relationnelle
85
Exemtple
Soit la relation suivante
Personne (Nom Preacutenom Age) 1
Soit les tuples suivants
Dupont Pierre 20
Durand Jean 30
Tableau 10 Personne
Soit lopeacuteration suivante
R = Restriction (Personne Agegt25) 1
On obtient alors la relation R composeacutee de lunique tuple restant suivant
Durand Jean 30
Tableau 11 R
e) Produit
Deacutefinition Produit carteacutesien
Le produit carteacutesien est une opeacuteration binaire (cest agrave dire portant sur deux relations) Le produit de R1 par
R2 (eacutequivalent au produit de R2 par R1) produit une relation R3 ayant pour scheacutema la juxtaposition de ceux
des relations R1 et R2 et pour tuples lensemble des combinaisons possibles entre les tuples de R1 et ceux de
R2 Synonymes Produit
Remarque
Le nombre de tuples reacutesultant du produit de R1 par R2 est eacutegal au nombre de tuples de R1 fois le nombre de
tuples de R2
Remarque
Le nombre de colonne du produit de R1 par R2 est eacutegal au nombre de colonne de R1 plus le nombre de
colonnes de R2
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Algegravebre relationnelle
86
Durand Jean 30
Tableau 12 Homme
Tesla Model X
Citroeumln 2 CV
Tableau 13 Voiture
Soit lopeacuteration suivante
R = Produit (Homme Voiture) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X
Dupont Pierre 20 Citroeumln 2 CV
Durand Jean 30 Tesla Model X
Durand Jean 30 Citroeumln 2 CV
Tableau 14 R
Remarque
Le produit carteacutesien est rarement utiliseacute seul mais il est agrave la base de la jointure
f) Jointure
Deacutefinition Jointure
La jointure est une opeacuteration binaire (cest agrave dire portant sur deux relations) La jointure de R1 et R2 eacutetant
donneacute une condition C portant sur des attributs de R1 et de R2 de mecircme domaine produit une relation R3
ayant pour scheacutema la juxtaposition de ceux des relations R1 et R2 et pour tuples lensemble de ceux obtenus
par concateacutenation des tuples de R1 et de R2 et qui veacuterifient la condition C
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 15 Homme
Algegravebre relationnelle
87
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV Dupont
Tableau 16 Voiture
Soit lopeacuteration suivante
R = Jointure (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Dupont Pierre 20 Citroeumln 3 CV Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Tableau 17 R
(Dupont Pierre 20 Dupont Georges 1) (Dupont Pierre 20 Dupont Jacques 3)
1 2
Fondamental
La jointure est lopeacuteration qui permet de rassembler les informations seacutepareacutees entre plusieurs
tables et reacutefeacuterenceacutees par des cleacutes eacutetrangegraveres
Remarque Otpeacuteration additionnelle
La jointure nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit et la restriction
g) Exercice Quelles sont les expressions relationnelles eacutequivalentes agrave
Projection ( Jointure (R1 R2 R1A1=R2A1) R1A1 R2A2) 1
Jointure ( Projection(R1 A1) Projection(R2 A2) R1A1=R2A1)
Projection ( Jointure (R2 R1 R2A1=R1A1) R1A1 R2A2)
Projection ( Restriction ( Produit(R1 R2) R1A1=R2A1) R1A1 R2A2)
Produit (R1 R2 R1A1=R2A1 R1A1 R2A2)
Algegravebre relationnelle
88
2 Opeacuterateurs compleacutementaires
a) Jointure naturelle
Deacutefinition Jointure naturelle
La jointure naturelle entre R1 et R2 est une jointure pour laquelle la condition est leacutegaliteacute entre les attributs
de mecircme nom de R1 et de R2 Il est donc inutile de speacutecifier la condition dans une jointure naturelle elle
reste toujours implicite
Exemtple
Soit deux relations R1 (A B C) et R2 (A D) lopeacuteration Jointure(R1R2R1A=R2A) est eacutequivalente agrave
lopeacuteration JointureNaturelle(R1R2)
Remarque
Pour appliquer une jointure naturelle il faut que les deux relations opeacuterandes aient au moins un attribut ayant
le mecircme nom en commun
b) Jointure externe
Introduction
La jointure est une opeacuteration qui entraicircne la perte de certains tuples ceux qui appartiennent agrave une des deux
relations opeacuterandes et qui nont pas de correspondance dans lautre relation Il est neacutecessaire dans certains
cas de palier cette lacune et lon introduit pour cela la notion de jointure externe
Deacutefinition Jointure externe
La jointure externe entre R1 et R2 est une jointure qui produit une relation R3 agrave laquelle on ajoute les tuples
de R1 et de R2 exclus par la jointure en compleacutetant avec des valeurs nulles pour les attributs de lautre
relation
Deacutefinition Jointure externe gauche
La jointure externe gauche entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les
tuples de R1 (cest agrave dire la relation de gauche) ayant eacuteteacute exclus
Synonymes Jointure gauche
Deacutefinition Jointure externe droite
Objectifs
Maicirctriser lalgegravebre relationnelle
Algegravebre relationnelle
89
La jointure externe droite entre R1 et R2 est une jointure externe pour laquelle on ajoute seulement les tuples
de R2 (cest agrave dire la relation de droite) ayant eacuteteacute exclus
Bien entendu une jointure externe droite peut ecirctre reacuteeacutecrite par une jointure externe gauche (et
reacuteciproquement) en substituant les relations opeacuterandes R1 et R2
Synonymes Jointure droite
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Voiture (Type Marque Proprieacutetaire)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Martin Georges 40
Tableau 18 Homme
Tesla Model X Dupont
Citroeumln 2 CV Durand
Citroeumln 3 CV NULL
Tableau 19 Voiture
Soit lopeacuteration suivante
R = JointureExterne (Homme Voiture HommeNom=VoitureProprieacutetaire) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20 Tesla Model X Dupont
Durand Jean 30 Citroeumln 2 CV Durand
Martin Georges 40 NULL NULL NULL
NULL NULL NULL Citroeumln 3 CV NULL
Tableau 20 R
Une jointure externe gauche naurait renvoyeacute que les trois premiers tuples et une jointure externe droite
naurait renvoyeacutee que les deux premiers et le dernier tuple
Algegravebre relationnelle
90
c) Opeacuterateurs ensemblistes
Atention Les opeacuterateurs ensemblistes sont des relations binaires (cest agrave dire entre deux relations) portant
sur des relations de mecircme scheacutema
Deacutefinition Union
Lunion de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee de
lensemble des tuples appartenant agrave R1 etou agrave R2
Deacutefinition Difeacuterence
La diffeacuterence entre deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema
constitueacutee de lensemble des tuples de R1 nappartenant pas agrave R2 Notons que la diffeacuterence entre R1 et R2
nest pas eacutegale agrave la diffeacuterence entre R2 et R1
Deacutefinition Intersection
Lintersection de deux relations R1 et R2 de mecircme scheacutema produit une relation R3 de mecircme scheacutema constitueacutee
de lensemble des tuples appartenant agrave la fois agrave R1 et agrave R2 Notons que lintersection nest pas une opeacuteration
de base car elle est eacutequivalent agrave deux opeacuterations de diffeacuterence successives
Exemtple
Soit les deux relations suivantes
Homme (Nom Preacutenom Age) Femme (Nom Preacutenom Age)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Pierre 20
Durand Jean 30
Tableau 21 Homme
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 22 Femme
Soit lopeacuteration suivante
R = Union (Homme Femme) 1
On obtient alors la relation R composeacutee des tuples suivants
Dupont Pierre 20
Durand Jean 30
Algegravebre relationnelle
91
Martin Isabelle 24
Blanc Heacutelegravene 25
Tableau 23 R
La diffeacuterence entre Homme et Femme (respectivement entre Femme et Homme) renvoie la relation Homme
(respectivement Femme) car aucun tuple nest commun aux deux relations Lintersection entre Homme est
Femme est vide pour la mecircme raison
Remarque Union externe
Il est possible de deacutefinir une opeacuteration dunion externe qui permet de reacutealiser lunion de deux relations de
scheacutema diffeacuterent en ramenant les relations aux mecircmes scheacutemas et en les compleacutetant avec des valeurs nulles
d) Division
Deacutefinition Division
La division est une opeacuteration binaire (cest agrave dire portant sur deux relations) La division de R1 par R2 sachant
que R1 et R2 ont au moins un attribut commun (cest agrave dire de mecircme nom et de mecircme domaine) produit
une relation R3 qui comporte les attributs appartenant agrave R1 mais nappartenant pas agrave R2 et lensemble des
tuples qui concateacuteneacutes agrave ceux de R2 donnent toujours un tuple de R1
Exemtple
Soit les deux relations suivantes
Pratique (Homme Meacutetier Salaire) Meacutetier (Metier)
1 2
Soit les tuples suivants pour ces deux relations respectivement
Dupont Ingeacutenieur 35
Durand Professeur 40
Dupont Ingeacutenieur 45
Martin Ingeacutenieur 50
Tableau 24 Pratique
Ingeacutenieur
Professeur
Tableau 25 Meacutetier
Soit lopeacuteration suivante
R = Division (Homme Meacutetier) 1
Algegravebre relationnelle
92
On obtient alors la relation R composeacutee des tuples suivants
Dupont 35
Tableau 26 R
Meacutethode Reacutetponse aux questions Pour tous les
La division permet de reacutepondre aux questions du type Donnez toutes les personnes qui pratiquent tous les
meacutetiers de la relation meacutetier
Remarque Otpeacuteration additionnelle
La division nest pas une opeacuteration de base elle peut ecirctre reacuteeacutecrite en combinant le produit la restriction et la
diffeacuterence
e) Proposition de notations Introduction Il existe plusieurs syntaxes pour eacutecrire des opeacuterations dalgegravebre relationnelle certaines inspireacutees de lalgegravebre
classiques dautres reposant sur des notations graphiques Nous proposons une notation fonctionnelle qui a
le meacuterite decirctre facile agrave eacutecrire et decirctre lisible Si cette notation peut parfois perdre en simpliciteacute lorsquelle
concerne un nombre eacuteleveacute dopeacuterateurs il est possible de deacutecomposer une opeacuteration compliqueacutee afin de
lalleacuteger
Syntaxe
R = Union (R1 R2) R = Diffeacuterence (R1 R2) R = Intersection (R1 R2) R = Projection (R1 A1 A2 ) R = Restriction (R1 condition) R = Produit (R1 R2) R = Jointure (R1 R2 condition) R = JointureNaturelle (R1 R2) R = JointureExterne (R1 R2 condition) R = JointureGauche (R1 R2 condition) R = JointureDroite (R1 R2 condition) R = Division (R1 R2)
1 2 3 4 5 6 7 8 9
10 11 12
Exemtple Notation syntheacutetique
R = Projection(Restriction(R1 A1=1 AND A2=2) A3) 1
Exemtple Notation deacutecomtposeacutee
R = Restriction(R1 A1=1 AND A2=2) R = Projection (R A3)
1 2
Algegravebre relationnelle
93
f) Exercice Soit les deux relations R1 et R2 suivantes deacutefinies en extension
A B
1 A
2 B
3 C
Tableau 27 R1
A
1
2
Tableau 28 R2
Combien de tuples renvoie lopeacuteration relationnelle suivante
R3 = JointureNaturelle (Intersection (Projection(R1A) R2) R2) 1
g) Opeacuterateurs de base et additionnels Reacuteeacutecrivez les opeacuterateurs additionnels suivants agrave partir dopeacuterateurs de base
Question 1
Reacuteeacutecrivez Intersection agrave partir de Diffeacuterence
Question 2
Reacuteeacutecrivez Jointure agrave partir de Produit et Restriction
Algegravebre relationnelle
94
B Exercices
1 Faire du Cineacutema
[30 minutes] On considegravere les deux relations suivantes
FILMS (titre pays anneacutee reacutealisateur dureacutee) ACTEURS (titre acteur)
1 2
ougrave les attributs ont les significations et les types suivants
titre titre dun film (chaicircne 50 caractegraveres)
pays pays dougrave un film est originaire (chaicircne 10 caractegraveres)
annee anneacutee de sortie du film (entier 4 chiffres)
realisateur nom du reacutealisateur du film (chaicircne 20 caractegraveres)
duree dureacutee du film en minutes (entier 3 chiffres)
acteur nom dacteur (chaicircne 20 caractegraveres)
La relation FILMS donne pour chaque film identifieacute par son titre le pays lanneacutee de sortie reacutealisateur et la
dureacutee
La relation ACTEURS donne pour chaque film lensemble des principaux acteurs
Agrave laide de lalgegravebre relationnelle exprimer les requecirctes suivantes
Question 1
Lister les films franccedilais (titre anneacutee reacutealisateur)
Question 2
Donnez les anneacutees de sortie des films dans lesquels lacteur Jean GABIN a joueacute
Question 3
Trouver les acteurs qui ont tourneacute avec Franccedilois Truffaut comme reacutealisateur
Question 4
Trouver tous les acteurs qui ont eacuteteacute partenaires de lactrice Catherine Deneuve
Question 5
Lister les films dans lesquels le reacutealisateur est aussi acteur
Question 6
Lister les reacutealisateurs nayant joueacute comme acteurs que dans des films quils ne reacutealisaient pas eux-mecircmes
Question 7
Lister les reacutealisateurs ayant joueacute comme acteurs dans des films quils ne reacutealisaient pas eux-mecircmes
Question 8
Donnez les acteurs qui jouent dans tous les films de Franccedilois TRUFFAUT
Algegravebre relationnelle
95
2 Qiz Algegravebre relationnelle
Exercice 1 Quelles sont les opeacuterations relationnelles qui appliqueacutees sur les relations instancieacutees cidessous renvoient un ensemble non nul de tuples
Num Nom Famille
1 Ours Mammifegravere
2 Truite Poisson
3 Homme Mammifegravere
4 Martinshypecirccheur Oiseau
Tableau 29 Animal
Num Nom
1 Forecirct
2 Montagne
3 Ciel
4 Riviegravere
5 Mer
Tableau 30 Environnement
Animal Environnement
1 1
1 2
1 4
2 4
4 3
Tableau 31 Habiter
Mangeur Mangeacute Freacutequence
1 2 Souvent
1 3 Rarement
1 4 Rarement
4 2 Souvent
3 1 Rarement
Algegravebre relationnelle
96
3 2 Souvent
Tableau 32 Manger
Restriction( Projection (Animal Nom Famille) Famille=Mammifegravere)
Restriction( Jointure( Jointure (Animal Habiter AnimalNum=HabiterAnimal) Environnement
EnvironnementNum=HabiterEnvironnement) AnimalNum=3)
Restriction( JointureExterneGauche( Animal Habiter
AnimalNum=HabiterAnimal) AnimalNom=Homme)
Jointure( Animal Manger AnimalNum=MangerMangeur AND AnimalNum=MangerMangeacute)
Exercice 2 Soit le scheacutema relationnel
R1(X Y) R2(X Y)
1 2
Quelles sont les opeacuterations relationnelles eacutequivalentes agrave lopeacuteration
Projection( JointureNaturelle(R1R2) R1X) 1
JointureNaturelle(Projection(R1 X) Projection(R2 X))
Projection( Selection (Produit(R1 R2) R1X=R2X AND R1Y=R2Y) R1X)
Projection( Union( R1 R2) R1X)
Projection( JointureExterne ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Projection( Jointure ( R1 R2 R1X=R2X AND R1Y=R2Y) R1X)
Algegravebre relationnelle
97
Exercice 3 Soit la relation instancieacutee suivante
A B C
1 1 0
1 0 1
0 1 1
Tableau 33 Relation R1
Quelles relations sont retourneacutees par lopeacuteration relationnelle suivante
R2 = JointureNaturelle(R1 R1) 1
1 1 0
1 0 1
0 1 1
Tableau 34 R2a
1 1 0
1 0 1
0 1 1
1 1 0
1 0 1
0 1 1
Tableau 35 R2b
1 1 1
0 0 0
Tableau 36 R2c
1 1 0 1 1 0
1 0 1 1 0 1
0 1 1 0 1 1
Algegravebre relationnelle
98
Tableau 37 R2d
R2a
R2b
R2c
R2d
Une relation vide (aucun tuple)
3 Le retour des eacutecoliers
[45 minutes] Soit le scheacutema relationnel suivant
IMMEUBLE (ADI NBETAGES DATEC PROP) APPIM (ADI NAPR OCCUP TYPE SUPER ETAGE) PERSONNE (NOM AGE PROF ADR NAPR) EacuteCOLE (NOMEC ADEC DIR) CLASSE (NOMEC NCL MAITRE) ENFANT (NOMP PRENOM AN NOMEC NCL)
1 2 3 4 5 6
Avec la signification suivante
Relation IMMEUBLE
ADI adresse dimmeuble cleacute on fait lhypothegravese pour simplifier que ladresse identifie de maniegravere
unique un immeuble NBETAGES nombre deacutetages dun immeuble
DATEC date de construction (anneacutee)
PROP nom du proprieacutetaire de limmeuble qui est une personne
Relation APPIM (Appartement) ADI
adresse dimmeuble
NAPR numeacutero dappartement
OCCUP occupant de lappartement (nom de la personne ayant signeacute le contrat de location
eacuteventuellement aucun)
TYPE type de lappartement (Studio F2 )
SUPER superficie de lappartement
ETAGE eacutetage ougrave se situe lappartement
Relation PERSONNE
NOM nom de personne cleacute on fait lhypothegravese pour simplifier que ce nom est unique sur lensemble
des personnes que lon considegravere dans la base
AGE acircge de la personne
PROF profession de la personne
ADR adresse de la reacutesidence dune personne il sagit dun immeuble NAPR numeacutero
dappartement
Relation EacuteCOLE
NOMEC nom dune eacutecole cleacute
ADEC adresse dune eacutecole
DIR nom du directeur
Algegravebre relationnelle
99
Relation CLASSE
NOMEC nom dune eacutecole
NCL nom de la classe eg CP1 CE2 CE3 etc MAITRE nom
de linstituteur
Relation ENFANT
NOMP nom de la personne responsable de lenfant cleacute eg pegravere megravere etc
PRENOM preacutenom de lenfant
AN anneacutee de naissance
NOMEC nom dune eacutecole
NCL nom de la classe
La relation IMMEUBLE deacutecrit un ensemble dimmeubles Chaque immeuble a un proprieacutetaire La relation APPIM
deacutecrit pour chaque immeuble lensemble des appartements qui le compose (il y a au mimimum un appartement
par immeuble) Chaque appartement peut heacuteberger plusieurs personnes mais il y en a une qui est responsable
(par exemple la personne qui a signeacute le contrat de location) et qui est deacutesigneacutee par lattribut OCCUP Si
lappartement est inoccupeacute il prend la valeur NULL La relation PERSONNE deacutecrit un ensemble de personnes
ADR et NAPR repreacutesentent ladresse ougrave reacuteside une personne Une personne peut avoir plusieurs enfants deacutecrits
par la relation ENFANT Pour simplifier on ne considegravere que les enfants allant agrave leacutecole primaire Les eacutecoles et
les classes sont deacutecrites dans les relations EacuteCOLE et CLASSE chaque eacutecole est composeacutee au minimum dune
classe et chaque classe est au moins freacutequenteacutee par un enfant
Question 1
Donner ladresse des immeubles ayant plus de 10 eacutetages et construits avant 1970
Question 2
Donner les noms des personnes qui habitent dans un immeuble dont ils sont proprieacutetaires
Question 3
Donner les noms des personnes qui ne sont pas proprieacutetaires
Question 4
Donner les adresses des immeubles posseacutedeacutes par des informaticiens dont lacircge est infeacuterieur agrave 40 ans
Question 5
Donner la liste des occupants (nom acircge profession) des immeubles posseacutedeacutes par DUPONT
Question 6
Donner le nom et la profession des proprieacutetaires dimmeubles dans lesquels il y a des appartements vides
Question 7
Donner les noms des maicirctres qui habitent dans le mecircme immeuble (agrave la mecircme adresse) quau moins un de
leurs eacutelegraveves (on suppose que les enfants vivent sous le mecircme toit que leur parents)
Question 8
Donner ladresse de limmeuble la date de construction le type dappartement et leacutetage ougrave habitent chacun
des maicirctres des enfants de DUPONT
Algegravebre relationnelle
100
101
Qestions de synthegravese
Pourquoi est-il fondamental mais difficile de parvenir agrave un MCD correct
Eacutenoncer quelques actions agrave mener pour reacutealiser une speacutecification geacuteneacuterale de lexistant et des besoins
Quest ce qui diffeacuterencie fondamentalement un MCD dun MLD
Questions de synthegravese
102
Quels sont les principaux eacuteleacutements du diagramme de classes UML
Quelles sont les diffeacuterences et points communs entre la diagramme de classe UML et le modegravele E-A
eacutetendu
Questions de synthegravese
103
Quest ce quun domaine
Comment identifie-t-on un attribut dune relation
Comment identifie-t-on un enregistrement dune relation
Questions de synthegravese
104
Quand doit-on ajouter des cleacutes artificielles
Quelle problegraveme pose la redondance et comment le reacutesoudre
A quoi sert le LDD
Questions de synthegravese
105
Quel rapport y-a-t il entre le LDD et le concept de relation
Pourquoi la jointure est-elle un opeacuterateur essentiel
Questions de synthegravese
106
Quels sont les opeacuterateurs algeacutebriques de base Quels sont les autres opeacuterateurs Quest ce qui les diffeacuterencie
Quels sont les opeacuterateurs ensemblistes Quest ce qui les caracteacuterise
Pourquoi la jointure est-elle un opeacuterateur essentiel
Quest ce qui diffeacuterencie une jointure externe dune jointure classique
107
Glossaire
Cleacute artificielle
Une cleacute artificielle est un attribut ajouteacute agrave une relation afin didentifier ses enregistrements On fait appel agrave
une cleacute artificielle lorsque la relation ne comporte aucune cleacute naturelle ou que ses cleacutes naturelles sont jugeacutees
inadapteacutees agrave lidentification au sein de la base de donneacutees
Extension
Lextension est lexplicitation dun domaine par leacutenonciation exhaustive de lensemble des objets du domaine
Elle soppose agrave linstension qui est une description abstraite des caracteacuteristiques du domaine
Exemple bleu rouge vert
Contre-exemple Le domaine des couleurs
Intension
Lintension est lexplicitation dun domaine par la description de ses caracteacuteristiques (en vue de sa
compreacutehension abstraite geacuteneacuterale)
Elle soppose agrave lextension qui est leacutenonciation exhaustive de lensemble des objets du domaine
Exemple Le domaine des couleurs
Contre-exemple bleu rouge vert
108
Signification des abreacuteviations
- ANSI American National Standards Institute
- BD Base de Donneacutees
- E-A Entiteacute-Association
- ISO International Standardization Organization
- LCD Langage de Controcircle de Donneacutees
- LDD Langage de Deacutefinition de Donneacutees
- LMD Langage de Manipulation de Donneacutees
- OMG Object Management Group
- PSM Persistent Stored Modules
- RO Relationnel-Objet
- SGBD Systegraveme de Gestion de Bases de Donneacutees
- SGBDR Systegraveme de Gestion de Bases de Donneacutees Relationnelles
- SQL Structured Query Language
- UML Unified Modeling Language
- XML eXtensible Markup Language
Reacutefeacuterences
[dbdiscocrztfr] httpdbdiscocrztfr3
109
3 - httpdbdiscocrztfr
Bibliographie
[Arribe 2014] ARRIBE THIBAUT 2014 Conception des chaicircnes eacuteditoriales documentariser lactiviteacute et structurer le graphe documentaire pour ameacuteliorer la maicirctrise de la reacuteeacuteditorialisation Universiteacute de Technologie de
Compiegravegne Meacutemoire de Doctorat httpicsutcfr~tha
[Codd70] CODD EF A relational model for large shared data banks Communications de lACM juin 1970
[Delmal01] DELMAL PIERRE SQL2 SQL3 applications agrave Oracle De Boeck Universiteacute 2001
[Gardarin99] GARDARIN GEORGES Bases de donneacutees objet et relationnel Eyrolles 1999
[Gulutzan and Pelzer 1999] GULUTZAN PETER PELZER TRUDY 1999 SQL-99 complete really CMP books
[Muller98] MULLER PA Modeacutelisation objet avec UML Eyrolles 1998
[Roques04] ROQUES PASCAL VALLEacuteE FRANCK UML 2 en action De lanalyse des besoins agrave la conception J2EE
ISBN 2212-11462-1 (3egraveme eacutedition) Paris Eyrolles 2004 385 p architecte logiciel
[Rothenberg et al 1989] ROTHENBERG JEFF WIDMAN LAWRENCE E LOPARO KENNETH A NIELSEN NORMAN R 1989 The nature of modeling Rand vol3027
[Soutou02] SOUTOU CHRISTIAN De UML agrave SQL Conception de bases de donneacutees Eyrolles 2002
[Tardieu83] TARDIEU H ROCHFELD A COLLETI R Meacutethode MERISE Tome 1 Principes et outils Les Editions dOrganisation 1983
Webographie
[w_journaldunetcom(1)] MORLON JEacuteROcircME UML en 5 eacutetapes httpdeveloppeurjournaldunetcomdossiersalg_umlshtml 2004
[w_journaldunetcom(2)] BORDERIE XAVIER Cinq petits conseils pour un scheacutema UML efficace
httpdeveloppeurjournaldunetcomtutorielcpt031013cpt_uml5conseilsshtml 2004
[w_objecteering] Objecteering software httpwwwobjecteeringcom [2002-septembre]
[w_umlfreefr] UML en Franccedilais httpumlfreefr consulteacute en 2002
Questions de synthegravese
110
Index
11 p54 Error Reference source
not found 1N p53 Error Reference source
not found Algegravebre p48 71 71 72 73 74 75
76 76 76 78 79 80 ALTER TABLE p67 68 Analyse p9 11 12 13 Application p6 Association pError Reference
source not found 31 Error
Reference source not found 32 44
Error Reference source not found
53 Error Reference source not
found 53 Error Reference source
not found 54 Error Reference
source not found 54 Attribut p28 32 40 41 41 42 44
51 52 54 Base de donneacutees p17 BD p4
Cardinaliteacute p32 Error
Reference source not found Error
Reference source not found Carteacutesien p74 CHECK p62 63 Classe p27 50 54 Cleacute p41 42 42 44 Cleacute artificielle p42 Cleacute candidate p42 Cleacute primaire p42 42 Cleacute signifiante p42 Codd p39 Composition pError Reference
source not found Error Reference
source not found Conception p9 11
Conceptuel p9 11 13 15 26 27
50 53
CREATE TABLE p59
Creacuteation p58 Deacuteclaratif p58 DELETE p65 66 Diagramme p26 Diffeacuterence p78 Division p79 Domaine p39 48 48 60 61 DROP p67 E-A p32 Enregistrement p40 41 Externe p15 76 FOREIGN KEY p62 63 INSERT p65 65 Instance p15 Interne p15 Intersection p78 Jointure p75 76 76 Langage p8 65 LDD p8 58 67 Lien p44 LMD p8 65 Logique p38 38 39 39 41 50
53 Manipulation p71 Meacutethode p30 Modegravele p13 23 38 39 39 41 45
46 Modeacutelisation p42 Modification p67 NM p53 N M pError Reference source not
found Naturelle p76 NOT NULL p62 63 Null p61 OMG p27 Opeacuteration p30 48 Passage p50 53 PostgreSQL p17
PRIMARY KEY p62 63 Produit p48 48 74
Projection p72 Proprieacuteteacute p28 32 Reacutefeacuterence p44 REFERENCES p62 63 Relation p40 41 41 42 44 44 45
48 Relationnel p5 Error
Reference source not found 38 38
39 39 41 45 46 48 48 50 50
51 Error Reference source not
found 52 53 53 Error Reference
source not found 53 Error Reference source not found 54
Error Reference source not found 54 71
71 76 80 Relationnel-objet p38 39 Requecircte p65 Restriction p73 Scheacutema p15 45 46 SGBD p5 Speacutecifications p12 SQL p8 58 65 67 Suppression p67 Table p58 67 Tuple p40 Type p60 61 UML p13 26 27 27 28
Error Reference source not found
30 31 Error Reference source not found 32 50
50 51 Error Reference source not
found 52 53 53 Error Reference source not
found 53 Error Reference source not
found 54 Error Reference source not found
54 Union p78 UNIQUE p62 63 UPDATE p65 66
wwwsambaconsultantscom 111
Contenus annexes
- Deacutefinition du mouvement NoSQL
Deacutefinition
Le NoSQL regroupe de nombreuses bases de donneacutees reacutecentes pour la plupart qui se caracteacuterisent par une logique de repreacutesentation de donneacutees non relationnelle et qui noffrent donc pas une interface de requecirctes en SQL
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-dedonnees-nosql4
NoSQL signifie Not Only SQL et non pas No SQL il sagit de compleacutements aux SGBDR pour des
besoins speacutecifiques et non de solutions de remplacement Exemtple
BD orienteacutee cleacute-valeur
BD orienteacutee graphe
BD orienteacutee colonne
BD orienteacutee document
Comtpleacutement
httpblogxebiafr20100421nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql5
- Transformation des meacutethodes par des vues
Meacutethode
Lorsquune meacutethode est speacutecifieacutee sur un diagramme UML pour une classe C si cette meacutethode est une fonction
relationnelle (elle renvoie une unique valeur et elle peut ecirctre reacutesolue par une requecircte SQL) alors on creacutee une
vue qui reprend les attributs de la classe C et ajoute des colonnes calculeacutees pour les meacutethodes
Remarque Atributs deacuteriveacutes
Les attributs deacuteriveacutes eacutetant apparenteacutes agrave des meacutethodes ils peuvent eacutegalement ecirctre geacutereacutes par des vues
Contenus annexes
112
- Composition
Deacutefinition Association de comtposition
On appelle composition une association particuliegravere qui possegravede les proprieacuteteacutes suivantes
La composition associe une classe composite et des classes parties tel que tout objet partie appartient
agrave un et un seul objet composite Cest donc une association 1N (voire 11)
La composition nest pas partageable donc un objet partie ne peut appartenir quagrave un seul objet
composite agrave la fois
Le cycle de vie des objets parties est lieacute agrave celui de lobjet composite donc un objet partie disparaicirct
quand lobjet composite auquel il est associeacute disparaicirct
Remarque
La composition est une association particuliegravere (binaire de cardinaliteacute contrainte)
La composition nest pas symeacutetrique une classe joue le rocircle de conteneur pour les classes lieacutees elle
prend donc un rocircle particulier a priori
La composition est une agreacutegation avec des contraintes suppleacutementaires (non partageabiliteacute et cycle
de vie lieacute)
Image 14 Notation de la composition en UML
Atention Composition et cardinaliteacute
La cardinaliteacute cocircteacute composite est toujours de exactement 1
Cocircteacute partie la cardinaliteacute est libre elle peut ecirctre 01 1 ou bien 1
Image 15 Un livre
On voit bien ici quun chapitre na de sens que faisant partie dun livre quil ne peut exister dans deux livres
diffeacuterents et que si le livre nexiste plus les chapitres le composant non plus
Remarque Comtposition et entiteacutes faibles
Syntaxe
Contenus annexes
113
wwwsambaconsultantscom
La composition permet dexprimer une association analogue agrave celle qui relie une entiteacute faible agrave une entiteacute
identifiante en modeacutelisation E-A Lentiteacute de type faible correspond agrave un objet partie et lentiteacute identifiante
agrave un objet composite
Conseil Comtposition et atribut multivalueacute
Une composition avec une classe partie doteacutee dun seul attribut peut seacutecrire avec un attribut multivalueacute
Un attribut composeacute et multivalueacute peut seacutecrire avec une composition
Ratptpel Voir aussi
Attributs
Agreacutegation - p100
- Agreacutegation
Deacutefinition Association dagreacutegation
Lagreacutegation est une association particuliegravere utiliseacutee pour preacuteciser une relation toutpartie (ou
ensembleeacuteleacutement) on parle dassociation meacutereacuteologique
Elle possegravede la proprieacuteteacute suivante Lagreacutegation associe une classe agreacutegat et des classes parties tel que tout
objet partie appartient agrave au moins un objet agreacutegat
Remarque
Lagreacutegation est une association particuliegravere (binaire de cardinaliteacute libre)
Lagreacutegation nest pas symeacutetrique Syntaxe
Image 16 Notation de lagreacutegation en UML
La cardinaliteacute peut ecirctre exprimeacutee librement en particulier les instances de la classe Eacuteleacutement peuvent ecirctre
associeacutees agrave plusieurs instances de la classe Ensemble et mecircme de plusieurs classes
Atention
Lagreacutegation garde toutes les proprieacuteteacutes dune association classique (cardinaliteacute cycle de vie
etc) elle ajoute simplement une terminologie un plus preacutecise via la notion de toutpartie
- Explicitation des associations
Syntaxe Sens de lecture
Il est possible dajouter le sens de lecture du verbe caracteacuterisant lassociation sur un diagramme de classe
UML afin den faciliter la lecture On ajoute pour cela un signe lt ou gt (ou un triangle noir) agrave cocircteacute du nom
de lassociation
Contenus annexes
114
Syntaxe Rocircle
Il est possible de preacuteciser le rocircle joueacute par une ou plusieurs des classes composant une association afin den
faciliter la compreacutehension On ajoute pour cela ce rocircle agrave cocircteacute de la classe concerneacutee (parfois dans un petit
encadreacute colleacute au trait de lassociation
Exemtple
Image 17 Rocircle et sens de lecture sur une association
Deacutefinition Association reacuteflexive
Une association reacuteflexive est une association qui associe une classe avec elle-mecircme
Lexplicitation des associations est particuliegraverement utile dans le cas des associations reacuteflexives
- Associations ternaires
Image 18 Notation dune association ternaire
Conseil Ne tpas abuser des associations ternaires
Il est toujours possible de reacuteeacutecrire une association ternaire avec trois associations binaires en transformant
lassociation en classe
Conseil Pas de degreacute sutpeacuterieur agrave 3
En pratique on nutilise jamais en UML dassociation de degreacute supeacuterieur agrave 3
- Transformation des agreacutegations
Ratptpel Agreacutegation
Les associations de type agreacutegation se traitent de la mecircme faccedilon que les associations classiques
Syntaxe
Contenus annexes
115
wwwsambaconsultantscom
Graphique 12 Agreacutegation 1N
Classe1(ab)
Classe2(cda=gtClasse1)
Graphique 13 Agreacutegation NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
- Transformation des compositions
Meacutethode
Une composition
est transformeacutee comme une association 1N
puis on ajoute agrave la cleacute de la classe partie (dite cleacute locale) la cleacute eacutetrangegravere vers la classe composite pour
construire une cleacute primaire composeacutee
Graphique 14 Composition
Classe1(ab)
Classe2(ca=gtClasse1d)
Remarque Cleacute locale
Pour identifier une classe partie dans une composition on utilise une cleacute locale concateacuteneacutee agrave la cleacute eacutetrangegravere
vers la classe composite afin dexprimer la deacutependance entre les deux classes
Si une cleacute naturelle globale permet didentifier de faccedilon unique une partie indeacutependamment du tout on
preacutefeacuterera la conserver comme cleacute candidate plutocirct que de la prendre pour cleacute primaire
Contenus annexes
116
Si on la choisit comme cleacute primaire cela revient agrave avoir transformeacute la composition en agreacutegation en redonnant
une vie propre aux objets composants
Comtpleacutement Comtposition et entiteacutes faibles en E-A
Une composition est transformeacutee selon les mecircmes principes quune entiteacute faible en E-A
Comtpleacutement Atributs multivalueacutes et comtposeacutes
La transformation dun attribut composeacute multivalueacute donne un reacutesultat eacutequivalent agrave la transformation dune
composition
Classe1
a key b [0N] -b1 -b2
Graphique 15 Composition et attribut composeacute multivalueacute
Classe1(a)
RB(b_b1b_b2a=gtClasse1)
La transformation dune composition avec un seul attribut pour la classe composante donne un reacutesultat
eacutequivalent agrave la transformation dun attribut multivalueacute
Graphique 16 Composition et attribut multivalueacute
Classe1(a)
RB(ba=gtClasse1)
Ratptpel Voir aussi
Transformation des attributs
- Contrainte de cardinaliteacute minimale 1 dans les associations 1N
Ratptpel
Transformation des associations 1N
Meacutethode
a key
Classe1
0 N
( b1b2) local key
Contenus annexes
117
wwwsambaconsultantscom
Classe1
1 association 1N
Classe2
a key
b c key
d
Graphique 17 Association 1N
Si la cardinaliteacute est exactement 1 (11) cocircteacute 1 alors on ajoutera une contrainte de non nulliteacute sur la
cleacute eacutetrangegravere
si la cardinaliteacute est au moins 1 (1N) cocircteacute N on ajoutera une contrainte dexistence de tuples
reacutefeacuterenccedilant pour chaque tuple de la relation reacutefeacuterenceacutee
Classe1(ab)
Classe2(cda=gtClasse1)
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Graphique 18 Classe dassociation (1N)
Classe1(ab)
Classe2(cda=gtClasse1 e f) avec e KEY
Contraintes a NOT NULL et PROJECTION(Classe1a) PROJECTION(Classe2a)sube
Comtpleacutement
Projection
- Contrainte de cardinaliteacute minimale 1 dans les associations NM
Ratptpel
Transformation des associations NM
Meacutethode
Si la cardinaliteacute est exactement au moins 1 (1N) dun cocircteacute etou de lautre alors des contraintes
dexistence simultaneacutee de tuple devront ecirctre ajouteacutee
Ce nest pas neacutecessaire si la cardinaliteacute est 0N
a key b
Classe1
c key d
Classe2
1 N 1
e loc al key f
Cl-A ssoc
Contenus annexes
118
Graphique 19 Association NM
Classe1(ab)
Classe2(cd)
Assoc(a=gtClasse1c=gtClasse2)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Graphique 20 Classe assocation (NM)
Classe1(ab)
Classe2(cd)
Cl-Assoc(a=gtClasse1c=gtClasse2ef)
Contraintes PROJ(Classe1a) PROJ(Assoca) et PROJ(Classe2c) PROJ(Assocc)subesube
Comtpleacutement
Projection
- Transformation des associations 11 (approche geacuteneacuterale) Il existe deux solutions pour transformer une association 11
Avec deux relations on traite lassociation 11 comme une association 1N puis lon ajoute une
contrainte UNIQUE sur la cleacute eacutetrangegravere pour limiter la cardinaliteacute maximale agrave 1
Avec une seule relation on fusionne les deux classes en une seule relation
Classe1
11 association 11
Classe2
a key
b c key
d
Graphique 21 Association 11
Meacutethode Avec deux relations (cleacute eacutetrangegravere)
Une des deux relations est choisie pour porter la cleacute eacutetrangegravere
on ajoute les contraintes UNIQUE ou KEY (cleacute candidate) sur la cleacute eacutetrangegravere et si neacutecessaire une
contrainte imposant linstanciation simultaneacutee des deux relations
Classe1(abc=gtClasse2) avec c UNIQUE ou KEY
Classe2(cd)
a key b
Classe1
c key d
Classe2
1 N 1 N
e key f
ssoc Cl-A
Contenus annexes
119
wwwsambaconsultantscom
Contrainte (eacuteventuellement) PROJ(Classe1c)=PROJ(Classe2c) ou
Classe1(ab)
Classe2(cda=gtClasse1) avec a UNIQUE ou KEY
Contrainte (eacuteventuellement) PROJ(Classe1a)=PROJ(Classe2a)
Meacutethode Avec une relation (fusion)
On creacuteeacute une seule relation contenant lensemble des attributs des deux classes on
choisit une cleacute parmi les cleacutes candidates
Classe12(abcd) avec c UNIQUE ou KEY ou
Classe21(cdab) avec a UNIQUE ou KEY
RemarqueFusion des relations dans le cas de la traduction de lassociation 11
Ce choix entre les deux meacutethodes sera conduit par une appreacuteciation du rapport entre
La complexiteacute introduite par le fait davoir deux relations lagrave ou une suffit
La pertinence de la seacuteparation des deux relations dun point de vue seacutemantique
Les pertes de performance dues agrave leacuteclatement des relations
Les pertes de performance dues au fait davoir une grande relation
Les questions de seacutecuriteacute et de sucircreteacute factoriseacutees ou non au niveau des deux relations