modélisation des bd modèle conceptuel : entité association modèle logique : relationnel...

66
Modélisation des BD Modèle conceptuel : Entité Association Modèle logique : Relationnel Conversion Normalisation

Upload: louie-carpentier

Post on 04-Apr-2015

122 views

Category:

Documents


2 download

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é

Modèle Conceptuel des Données

Entité - Association

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 15

Exem

ple

Le modèle Logique

Le modèle Relationnel

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 :

Contraintes et clés

Les contraintes d’intégritéles clés primaires

Les clés étrangères

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 ?

Conversion du modèle conceptuel

en modèle logique

ER Relationnel

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

Les principes de normalisation

Les 3 formes normales et les Dépendances Fonctionnelles

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)