modélisation des bd modèle conceptuel : entité association modèle logique : relationnel...
TRANSCRIPT
Modélisation des BD
Modèle conceptuel : Entité AssociationModèle logique : Relationnel
ConversionNormalisation
Thomas Devogele ISI 204 2
Démarche de construction d’une BD relationnelle
InterviewDocuments
ModélisationEntité association
Schéma logique enEntité-Association
Transformation en relationnel
Schéma conceptuelen relationnel
Thomas Devogele ISI 204 3
Démarche Analyse du problème et modélisation
conceptuelle de la BD représentation informationnelle de l’organisation
étudiée à l ’aide de méthodes :
AXIAL, OMT, MERISE UML (étudié en VA) ...
Implantation logique de la BD transformation du modèle conceptuel des données
en objets propres au type de SGBD utilisé Implantation physique de la BD :
phase totalement prise en charge par le SGBD adopté
Thomas Devogele ISI 204 5
Modèle ER
entité-relation ou entité-association Modèle Conceptuel des Données (MCD)
description statique du système d’information visé à l’aide :
D’entité : D’association : D’attributs:
Pas de modélisation des traitements Langage Graphique
Thomas Devogele ISI 204 6
Entité
permet de modéliser un ensemble d'objets concrets ou abstraits de même nature.
représentent des phénomènes du monde réel (élèves, écoles). l'entité élèves représente tous les élèves de
notre système d'information. Représentation graphique (rectangle)
élèves écoles
Thomas Devogele ISI 204 7
Association ou relation
représentent les liens entre deux ou plusieurs entités.. Généralement 2 : associations binaires
Exemple a pour école
Représentation graphique (rectangle arrondi, ellipse, hexagone)
élèves écolesa pour école
Thomas Devogele ISI 204 8
Attributs Décrit les entités et les associations
Exemple L’entité élèves a pour attributs : nom, prénom, pays,
… L’entité école a des attributs : adresse, ville, … l ’association « a pour école » a des attributs : date
d’embarquement, date de débarquement
Représentation graphique
Élèvesnomprénompays
Écolesadresseville
a pour écoledate embarquementdate débarquement
Thomas Devogele ISI 204 9
Types des attributs
Les attributs sont de types simples entier flottant chaîne de caractères date
Thomas Devogele ISI 204 10
Clé
un ou plusieurs attributs permettant d’identifier, de façon unique, chaque occurrence d’une entité exemple
num élève pour Elèves chaque élève doit avoir un numéro unique
Représentation graphique (attribut(s) souligné(s))
Élèvesnum élèvenomprénompays
Écolesnum écoleadresseville
a pour écoledate embarquementdate débarquement
Thomas Devogele ISI 204 11
Cardinalité
Les entités participant aux associations ont des cardinalités minimales et maximales. cardinalité minimale : nombre minimum de fois qu’une
occurrence d’une entité participe aux occurrences de l ’association (O, 1, ...)
cardinalité maximale : nombre maximum de fois qu’une occurrence d ’une entité participe aux occurrences de l ’association (1, n, ...)
Exemple Une école à un ou plusieurs élèves Un élève à une et une seule école
Thomas Devogele ISI 204 12
Cardinalité
Représentation graphique Le nombre de gauche indique la cardinalité
minimale, le nombre de droite indique la cardinalité
maximale.
Élèvesnum élèvenomprénompays
Écolesnum écoleadresseville
a pour écoledate embarquementdate débarquement
1,1 1,n
Thomas Devogele ISI 204 13
Cardinalité : exemples l’association « a pour époux »
BD pays monogame
BD pays polygame (homme)
BD de la mairie (service mariage)
BD historique
homme femmea pour époux1,1 1,1
homme femmea pour époux0,1 0,1
homme femmea pour époux0,N 0,1
homme femme
a pour épouxdate débutdate fin
cause fin
0,N 0,N
Thomas Devogele ISI 204 14
Associations spécifiques
Associations réflexives Représentation graphique (ajout obligatoire de rôles)
Associations n-aires Représentation graphique (exemple de d’association
ternaire)
professeur classeenseigne1,N 1,N
matière1,N
humain a pour enfants0,2parents
enfants0,N
Thomas Devogele ISI 204 17
Le modèle relationnel
Inventé par CODD en 1970 (IBM) fondement mathématique
Basé sur les relation n-aire. algèbre relationnel
langage d’interrogation simple déclaratif SQL
Organisation des données en Tables (relations): des lignes (enregistrements ou n-uplets) des colonnes (champs ou attributs)
Thomas Devogele ISI 204 18
Le modèle relationnel (2)
Une BD relationnels Composés de plusieurs tables
Les associations sont matérialisées par les valeurs d’attributs, non par des références physiques (pointeurs)
Les tables Sont une représentation naturelle
Thomas Devogele ISI 204 19
Exemple de BD relationnelle
Intuitivement, il est possible de passer d’une
table à une autre
Thomas Devogele ISI 204 20
Concepts fondamentaux (1)
Relation (table relationnelle, table) : caractérisé par:
un nom des champs (attributs) qui correspondent aux noms de
chacun des domaines mis en jeu (les colonnes) des n-uplets (tuples, enregistrements) qui correspondent
à une ligne de la relation. chaque attribut, a une unique valeurs
Nom Prénom
TRICHET Francky
GILBERT Jacques
ANDRE Pascal
Personne
Thomas Devogele ISI 204 21
Concepts fondamentaux (2) Exemple la relation Client
noClient nomClient noTéléphone10 Luc Sansom (999)999-999920 Dollard Tremblay (888)888-888830 Lin Bô (777)777-777740 Jean Leconte (666)666-666650 Hafedh Alaoui (555)555-555560 Marie Leconte (666)666-666670 Simon Lecoq (444)444-441980 Dollard Tremblay (333)333-3333
ligne /tuple
colonne /attribut
table /relation
Thomas Devogele ISI 204 22
Concepts fondamentaux (3)
Valeurs scalaires Une valeur scalaire représente la plus petite unité
sémantique de données. Atomiques Nom d ’une ville
‘St Denis’ possède une sémantique ‘S’, ‘t’, ‘ ’, ‘D’, ‘e’ , ‘n’, ‘i’, ‘s’ n ’en possèdent pas
Thomas Devogele ISI 204 23
Concepts fondamentaux (4)
Domaine Ensemble nommé de valeurs scalaires toutes du même type Groupe de valeurs d’où sont extraites les valeurs effectives Exemple
D1={rouge,vert, NULL}, D2={3,2, NULL} jours = {lundi, mardi, mercredi, jeudi, vendredi, samedi,
dimanche, NULL} couleurs = {rouge, vert, bleu, jaune, ... , pourpre, NULL} âges = [0, 125] NULL salaires = R+ NULL
Tous les domaines ont une valeur NULL qui représente soit Valeur inconnue Pas de valeur la valeur NULL est différente de la valeur zéro.
Thomas Devogele ISI 204 24
Concepts fondamentaux (5)
Produit Cartésien d’un ensemble de domaines D1, D2 ... Dn l’ensemble des n-uplets {<v1,v2,…,vn>} tels que
vi Di
D1 × D2 = {<rouge,3>,<rouge,2>,<vert,3>,<vert,2>, <rouge,NULL}, <vert, NULL>, <NULL,3>, <NULL,2>, <NULL,NULL> }
Thomas Devogele ISI 204 25
Concepts fondamentaux (5)
Relation Une relation R sur un ensemble de domaines D1,
D2, …, Dn est constituée de deux parties L ’en-tête : ensemble fixé d ’attributs (<nom-attribut : nom-domaine>) {<A1 : D1>, <A2 : D2>, …, <An : Dn>}Chaque attribut Aj prend ses valeurs dans Dj etles noms des attributs sont distincts
Thomas Devogele ISI 204 26
Concepts fondamentaux (6)
Relation Le corps : ensemble de n-uplets(<nom-attribut : valeur-attribut>) {<A1 : vi1>, <A2 : vi2>, …, <An : vin>} pour le n-uplet i Tout couple attribut - valeur doit correspondre à
un couple attribut - domaine de l’en-tête et toute valeur vij Dj
Le corps est un sous-ensemble du produit cartésien
Le corps est un ensemble non ordonnée Chaque n-uplet est unique (Impossible d’avoir 2 n-
uplets qui ont exactement les mêmes valeurs)
Thomas Devogele ISI 204 27
Concepts fondamentaux (7) Attribut
Colonne d’une relation caractérisée par un nom Pas d ’ordonnancement des attributs
référence par nom Les valeurs des attributs sont homogènes :Elles appartiennent au même domaine atomiques : Une unique valeur pour chaque attribut de chaque n-
uplet)
NF PRODUIT NF NP QTE
NP QTE
NP QTE
F1
F2
P1 100 P2 350
P3 175
F1 P1 100
F1 P2 350
F2 P3 175
Thomas Devogele ISI 204 28
Concepts fondamentaux (8)
Degré d’une relation nombre d’attributs
Cardinalité d’une relation nombre de n-uplets
Thomas Devogele ISI 204 29
Exemple rouge, vert, gris, jaunebleu, blanc, noir Domaine
Attribut
n-uplet
Cardinalité 8
Degré 5
Concepts fondamentaux (9)
Thomas Devogele ISI 204 30
Concepts fondamentaux (10)
Deux facettes du concept de table relationnel Schéma d’une table (intention)
Définition de son type (sa structure) Décrit par le nom de la table puis entre parenthèse les
noms des attributs Ex. Client(n°Client, nom, prénom)
Instance d’une table (extension) État de la table à un instant donné Ensemble de n lignes (enregistrements)
Schéma d’une BD relationnel Ensemble de schémas des tables
Thomas Devogele ISI 204 31
Exemple de BD relationnelle
produits(pno,design,prix,poids,couleur)fournisseurs(fno,nom,adresse,ville)commandes(cno,fno,pno,qute)
Le schéma :
Thomas Devogele ISI 204 33
Contraintes d’intégrité (1)
A tout instant la base représente une partie du monde réel à travers une configuration particulière des valeurs des données
Mais il faut restreindre l’ensemble des états possibles de la BD
par exemple éviter les erreurs Certaines configurations des valeurs n’ont pas de
sens exemple age d ’une personne = -35
Thomas Devogele ISI 204 34
Contraintes d’intégrité (2)
Comment ? Lors de la programmation, vérifier les données
entrées Exemple : la balance des paiements doit être équilibré
Ajouter des contraintes : règles d’intégrité au niveau du SGBD pour obliger que la contrainte soit
vraie.
Thomas Devogele ISI 204 35
Contraintes d’intégrité (3)
Exemple de contraintes d’intégrité Le numéro de produit (pno) doit être sous la forme
de 3 chiffres La valeur de l’attribut couleur doit appartenir à
l’ensemble {rouge, vert, gris, jaune, bleu, blanc, noir } La quantité commandé (qute) doit être positive La valeur de pno de la table commandes, doit être
une valeur d’un pno de la table produits
Thomas Devogele ISI 204 36
Intégrité et clés
Propriétés d’intégrité générale clés uniques clés candidates et clés primaires clés étrangères
Clé unique Un ensemble de colonnes de la table est dite clé unique si
deux lignes de la table ne peuvent pas avoir les mêmes valeurs.
Identifie de manière unique une ligne de la table Une clé composée est un ensemble contenant plusieurs
colonnes
Thomas Devogele ISI 204 37
Clés candidates (1)
Définition une clé unique minimale est dite clé candidate Ensemble minimal d’attributs dont la connaissance
des valeurs permet d’identifier un n-uplet unique de la relation considérée
Chaque relation contient au moins une clé candidate
Remarque : Une clé candidate ne peut pas avoir de valeur
NULL
Thomas Devogele ISI 204 38
Clés candidates (2)
Clés candidates Propriétés
Soit R et une relation et soit K un ensemble d’attributs (clé candidate)
Unicité : t1 et t2 R, K(t1) ≠ K(t2 )
Irréductibilité : il n ’existe pas d’ensemble L tel que L K et L clé candidate
Thomas Devogele ISI 204 39
Clés candidates (3)
Clés candidates Utilité
mécanisme d’adressage au niveau des n-uplets d’une table
Exemples Professeur WHERE MAT = 34560, produit un seul n-
uplet en résultat Professeur WHERE AN_ENT = 1994, va produire un
nombre imprévisible de n-uplets en résultat
Thomas Devogele ISI 204 40
Clés primaire (1)
Définition Parmi les clés candidates, il y en a une qui est
choisie comme la clé primaire. La clé primaire est utilisée pour faire référence aux lignes d’une table.
Propriétés Une clé choisie parmi l’ensemble des clés
candidates Le choix est arbitraire Peux se faire selon des heuristiques
Plus simple par exemple Les attributs formant la clé primaire d’une table
relationnelle sont soulignés dans le schéma
Thomas Devogele ISI 204 41
Clés primaire (2)
Exemple ETUDIANT(matricule, nom, prénom, adresse, num-inseenum-insee)
Etudiant (Code_per, Nom, Prenom, Adresse, Date_nais, Lieu_nais, NASS)
Quelles sont les clés candidates ? Quelle clé primaire choisir ?
Clé primaire Clé candidate
Thomas Devogele ISI 204 42
Clé étrangère (1)
Définition Une clé étrangère est un ensemble d’une ou de
plusieurs colonnes d’une table qui fait référence à une clé primaire d’une autre table.”
Soir R2 une relation, un sous-ensemble d’attributs FK dans R2 est dit clé étrangère dans le cas où :
il existe une relation R1 avec une clé candidate CK (R1 peut être R2)
à tout instant, chaque valeur de FK dans R2 est identique à une valeur de CK dans R1
Thomas Devogele ISI 204 43
Clé étrangère (2)
Propriétés Il n’est pas nécessaire d’avoir pour toute valeur de
CK dans R1 une valeur identique de FK dans R2 Une clé étrangère est composée ou simple Chaque attribut d’une clé étrangère doit être défini
sur le même domaine que son équivalent dans la clé candidate correspondante
Une clé étrangère peut avoir pour valeur NULL
Thomas Devogele ISI 204 44
Clé étrangère (3)
Un attribut d’une clé étrangère peut faire partie d’une clé primaire de sa relation
Employe (Mat, Nom, …)Projet (Num, Designation, …)Role (Mat, Num, role)
Pour Role l’attribut Mat fait partie de la clé primaire et est une clé étrangère (vers Employe)
Pour Role l’attribut Num fait partie de la clé primaire et est une clé étrangère (vers Projet)
Thomas Devogele ISI 204 45
Employe
Role
Projet
Dept
Clé étrangère (4)
Diagramme référentiel représentation graphique des références
Thomas Devogele ISI 204 46
Clé étrangère (5)
Exemple Employe (mat, nom, adresse, dept, superieur)Projet (num, designation)Departement (dept, directeur, nom)Role (mat, num, role_emp)
Remarques : directeur et superieur ont pour valeur des valeurs prisent par
mat Le couple mat, num est la clé primaire de Role Mat est la clé primaire de la table Employe et est une clé
étrangère de la table Role
Thomas Devogele ISI 204 47
Clé étrangère (6)
Intégrité référentielle La base de données ne doit pas contenir une
valeurs de clé étrangère non « unifiable » C’est-à-dire : une clé étrangère non nulle doit faire
référence à une valeur existante de la clé primaire correspondante
Cette contrainte est dite référentielle Conséquence : Il faut créer et détruire les n-uplets
dans un ordre particulier
Thomas Devogele ISI 204 48
Exemple de BD relationnelle
produits(pno,design,prix,poids,couleur)fournisseurs(fno,nom,adresse,ville)commandes(cno,fno,pno,qute)
Le schéma :
Question : peut on supprimer cno ?
Thomas Devogele ISI 204 50
Conversion des entités
chaque entité devient une table attributs colonnes clé clé primaire occurrences n-uplets
Exemple
Élèvesnum élèvenomprénompays
eleves (numeleve, nom, prenom, pays)
Thomas Devogele ISI 204 51
Association ...,1 ...,N exemple
recopie de la clé de Écoles en tant que colonne de Élèves (clé étrangère)
migration des attributs de l’association en tant que colonne de Élèves
ecole(num_ecole, nom, adresse, ville)eleve( num_eleves, nom, prénom, pays,num_école,
date_embarquement, date débarquement)
conversion des associations binaires (1)
Élèvesnum élèvenomprénompays
Écolesnum écolenomadresseville
a pour écoledate embarquementdate débarquement
1,1 1,n
Thomas Devogele ISI 204 52
conversion des associations binaires (2)
Association ...,N ...,N création d’une nouvelle table avec comme colonnes, les
clés de homme et de femme création de colonnes pour les attributs de l’association
tables relationnelles correspondanteshomme (numhomme…), femme (numfemme…),a_pour_epoux (numhomme, numfemme, date_debut, date_fin, cause_fin…),
homme femme
a pour épouxdate débutdate fin
cause fin
0,N 0,N
Clé de a_pour_epoux ???
Thomas Devogele ISI 204 53
conversion des associations binaires (3)
Clés primaires de tables relationnelles représentant des associations Association ...,N ...,N
Remarques : Il faut une clé primaire unique Les attributs clés primaires des entités associées font partie de la clé Pas toujours suffisant Exemple
Si impossible de se remarier avec son ancien conjoint a_pour_epoux (numhomme, numfemme, date_debut,
date_fin, cause_fin…) Si possible de se remarier avec son ancien conjoint
a_pour_epoux (numhomme, numfemme, date_debut, date_fin, cause_fin…)
Thomas Devogele ISI 204 54
homme femmea pour époux0,1 0,1
Exemple de conversion des associations binaires
Association ...,1 ...,1
tables relationnelles correspondantes
homme ( numhomme… numfemme), femme (numfemme…)
ou
homme ( numhomme…), femme (numfemme… numhomme)
Thomas Devogele ISI 204 55
Exemple de conversion des associations binaires
Les tables relationnelles correspondantes :
Produits(pno,design,prix,poids,couleur)Fournisseurs(fno,nom,adresse,ville)Commandes(cno, qute fno,pno)
Produitspnodesignprixpoidscouleur
Commandescno
Fournisseurfnonomadresseville
Concernequte
Est passé à 1,N 1,1 1,1 1,N
Thomas Devogele ISI 204 56
conversion des associations binaires
Fonction des cardinalités max min des entités E1 et E2 (0,1) et (0,1)
recopie de la clé de E1 en tant que colonne de E2 (ou inverse) migration des attributs de l’association en tant que colonne de E2
(0,1) et (1,1) (ou inverse) recopie de la clé de E1 en tant que colonne de E2 migration des attributs de l’association en tant que colonne de E2
(1,1) et (1,1) recopie de la clé de E1 en tant que colonne de E2 (ou inverse) migration des attributs de l’association en tant que colonne de E2
(-,N) et (-,1) (ou inverse) recopie de la clé de E1 en tant que colonne de E2 migration des attributs de l’association en tant que colonne de E2
(-,N) et (-,N) création d’une table avec comme colonnes, les clés de E1et E2 création de colonnes pour les attributs de l’association
Thomas Devogele ISI 204 57
conversion des associations N-aires (N >2)
création d’une nouvelle table avec comme colonnes, les clés Professeur (numprof…) Classe (numcla…) Matiere (nummat…) Enseigne (numprof,numcla, nummat)
professeur classeenseigne1,N 1,N
matière1,N
Thomas Devogele ISI 204 58
Conversion des associations réflexives
Humain(num, nom, prénom) A_pour_enfants(num_parent,num_enfant)
humain a pour enfants0,2parents
enfants0,N
Thomas Devogele ISI 204 59
Conversion des associations réflexives
Humain(num, nom, prénom, num_père)
humain a pour père0,1
père
enfants0,N
Thomas Devogele ISI 204 61
La normalisation objectif de la normalisation
définir un schéma de relations permettant d’éviter : la redondance de données les incohérences lors des mises à jour les anomalies lors d’insertion et/ou suppression
Repose sur l’analyse des dépendances entre attributs moyen :
décomposer les relations sujettes à redondance conserver la possibilité de reconstituer les relations originelles en
combinant les n-uplets des tables (jointure)
Thomas Devogele ISI 204 62
La normalisation : exemple Une entreprise de vente de bateaux qui souhaite constituer un
système d ’information relatif à leur activité Achats(IdClient, NomClient, PrénomClient,
AdresseClient, ImmatriculationBateau, ModèleBateau, LongueurBateau, DateAchat, MontantAchat)
Problèmes potentiels redondance de données :
une personne qui achète plusieurs bateaux incohérence suite à une Mise à jour :
une personne qui change d’adresse anomalies lors d’insertion/suppression :
un client potentiel ne peut être enregistré dans la BD s’il n’a pas encore acheté de bateau
lorsqu’un client vend son bateau, il est supprimé du système d’information
Thomas Devogele ISI 204 63
Comment normaliser ?
Décomposition des relations jusqu’à ce que toutes respectent les 3 Formes Normales suivantes : Première Forme Normale
Une relation est dite en Première Forme Normale si tous ses attributs sont atomiques ;
aucun des attributs ne doit être une relation entre « sous-attributs »
pas de colonnes dans une colonne
Thomas Devogele ISI 204 64
Dépendance Fonctionnelle
Définition Deux groupes d’attributs X et Y de la relation R sont en
Dépendance Fonctionnelle si dans R, chaque valeur de X détermine une et une seule valeur de Y
si je connais la valeur de X alors je connais la valeur de Y une DF est une assertion sur toutes les extensions possibles d’une
relation et pas uniquement sur ses n-uplets actuels Exemple : ensemble de DF pour une table
Thomas Devogele ISI 204 65
Seconde Forme Normale Condition
Première Forme Normale tous les attributs n’appartenant pas à la clé sont en dépendance
fonctionnelle élémentaire avec la clé dès qu’un attribut non-clé dépend d’une partie de la clé, la relation n’est
pas en 2FN. Exemple
pretK7 (numcli, numk7,nomcli,adrcli,titrek7,dateprêt) DF
numcli nomcli, adrcli numk7 titrek7 numcli, numk7 dateprêt
pretK7 n ’est pas en 2 FN car nomcli dépend uniquement de numcli et pas de numcli et de numk7 …
décomposition à l’aide des DF client (numcli, nomcli,adrcli) K7 (numk7,titrek7) prêt (numcli, numk7,dateprêt)
Thomas Devogele ISI 204 66
Troisième Forme Normale
Condition Seconde Forme Normale (2FN) Aucun de ses attributs non-clés dépend d’un autre attribut non-clé ;
il n ’existe pas de DF entre 2 attributs non-clés
Exemple ville(num_ville, nom_ville, num_dept, nom_dept) DF
num_ville nom_ville, num_dept, nom_dept num_dept nom_dept
ville n’est pas en 3 FN car nom_dept dépend de num_dept
décomposition à l’aide des DF ville(num_ville, nom_ville, num_dept) dept(num_dept, nom_dept)