Introduction aux bases de données relationnelles

119
Bases de données relationnelles Télécharger Gratuitement d’autres documentations sur votre site internet à l’adresse : http://www.sambaconsultants.com Publiée le 16 novembre 2016

Transcript of Introduction aux bases de données relationnelles

Page 1: Introduction aux bases de données relationnelles

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

Page 2: Introduction aux bases de données relationnelles

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

Page 3: Introduction aux bases de données relationnelles

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

Page 4: Introduction aux bases de données relationnelles

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

Page 5: Introduction aux bases de données relationnelles

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

Page 6: Introduction aux bases de données relationnelles

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

Page 7: Introduction aux bases de données relationnelles

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

Page 8: Introduction aux bases de données relationnelles

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

Page 9: Introduction aux bases de données relationnelles

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

Page 10: Introduction aux bases de données relationnelles

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

Page 11: Introduction aux bases de données relationnelles

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

Page 12: Introduction aux bases de données relationnelles
Page 13: Introduction aux bases de données relationnelles
Page 14: Introduction aux bases de données relationnelles
Page 15: Introduction aux bases de données relationnelles
Page 16: Introduction aux bases de données relationnelles
Page 17: Introduction aux bases de données relationnelles
Page 18: Introduction aux bases de données relationnelles
Page 19: Introduction aux bases de données relationnelles
Page 20: Introduction aux bases de données relationnelles
Page 21: Introduction aux bases de données relationnelles
Page 22: Introduction aux bases de données relationnelles
Page 23: Introduction aux bases de données relationnelles
Page 24: Introduction aux bases de données relationnelles
Page 25: Introduction aux bases de données relationnelles
Page 26: Introduction aux bases de données relationnelles
Page 27: Introduction aux bases de données relationnelles
Page 28: Introduction aux bases de données relationnelles
Page 29: Introduction aux bases de données relationnelles
Page 30: Introduction aux bases de données relationnelles
Page 31: Introduction aux bases de données relationnelles
Page 32: Introduction aux bases de données relationnelles
Page 33: Introduction aux bases de données relationnelles
Page 34: Introduction aux bases de données relationnelles
Page 35: Introduction aux bases de données relationnelles
Page 36: Introduction aux bases de données relationnelles
Page 37: Introduction aux bases de données relationnelles
Page 38: Introduction aux bases de données relationnelles
Page 39: Introduction aux bases de données relationnelles
Page 40: Introduction aux bases de données relationnelles
Page 41: Introduction aux bases de données relationnelles
Page 42: Introduction aux bases de données relationnelles
Page 43: Introduction aux bases de données relationnelles
Page 44: Introduction aux bases de données relationnelles
Page 45: Introduction aux bases de données relationnelles
Page 46: Introduction aux bases de données relationnelles
Page 47: Introduction aux bases de données relationnelles
Page 48: Introduction aux bases de données relationnelles
Page 49: Introduction aux bases de données relationnelles
Page 50: Introduction aux bases de données relationnelles
Page 51: Introduction aux bases de données relationnelles
Page 52: Introduction aux bases de données relationnelles
Page 53: Introduction aux bases de données relationnelles
Page 54: Introduction aux bases de données relationnelles
Page 55: Introduction aux bases de données relationnelles
Page 56: Introduction aux bases de données relationnelles
Page 57: Introduction aux bases de données relationnelles
Page 58: Introduction aux bases de données relationnelles
Page 59: Introduction aux bases de données relationnelles
Page 60: Introduction aux bases de données relationnelles
Page 61: Introduction aux bases de données relationnelles
Page 62: Introduction aux bases de données relationnelles
Page 63: Introduction aux bases de données relationnelles
Page 64: Introduction aux bases de données relationnelles
Page 65: Introduction aux bases de données relationnelles
Page 66: Introduction aux bases de données relationnelles
Page 67: Introduction aux bases de données relationnelles
Page 68: Introduction aux bases de données relationnelles
Page 69: Introduction aux bases de données relationnelles
Page 70: Introduction aux bases de données relationnelles
Page 71: Introduction aux bases de données relationnelles
Page 72: Introduction aux bases de données relationnelles
Page 73: Introduction aux bases de données relationnelles
Page 74: Introduction aux bases de données relationnelles
Page 75: Introduction aux bases de données relationnelles
Page 76: Introduction aux bases de données relationnelles
Page 77: Introduction aux bases de données relationnelles
Page 78: Introduction aux bases de données relationnelles
Page 79: Introduction aux bases de données relationnelles
Page 80: Introduction aux bases de données relationnelles
Page 81: Introduction aux bases de données relationnelles
Page 82: Introduction aux bases de données relationnelles
Page 83: Introduction aux bases de données relationnelles
Page 84: Introduction aux bases de données relationnelles
Page 85: Introduction aux bases de données relationnelles
Page 86: Introduction aux bases de données relationnelles
Page 87: Introduction aux bases de données relationnelles
Page 88: Introduction aux bases de données relationnelles
Page 89: Introduction aux bases de données relationnelles
Page 90: Introduction aux bases de données relationnelles
Page 91: Introduction aux bases de données relationnelles
Page 92: Introduction aux bases de données relationnelles
Page 93: Introduction aux bases de données relationnelles
Page 94: Introduction aux bases de données relationnelles
Page 95: Introduction aux bases de données relationnelles
Page 96: Introduction aux bases de données relationnelles
Page 97: Introduction aux bases de données relationnelles
Page 98: Introduction aux bases de données relationnelles
Page 99: Introduction aux bases de données relationnelles
Page 100: Introduction aux bases de données relationnelles
Page 101: Introduction aux bases de données relationnelles
Page 102: Introduction aux bases de données relationnelles
Page 103: Introduction aux bases de données relationnelles
Page 104: Introduction aux bases de données relationnelles
Page 105: Introduction aux bases de données relationnelles
Page 106: Introduction aux bases de données relationnelles
Page 107: Introduction aux bases de données relationnelles
Page 108: Introduction aux bases de données relationnelles
Page 109: Introduction aux bases de données relationnelles
Page 110: Introduction aux bases de données relationnelles
Page 111: Introduction aux bases de données relationnelles
Page 112: Introduction aux bases de données relationnelles
Page 113: Introduction aux bases de données relationnelles
Page 114: Introduction aux bases de données relationnelles
Page 115: Introduction aux bases de données relationnelles
Page 116: Introduction aux bases de données relationnelles
Page 117: Introduction aux bases de données relationnelles
Page 118: Introduction aux bases de données relationnelles
Page 119: Introduction aux bases de données relationnelles