Le modèle logique des données

publicité
Le modèle logique des données
Le modèle logique des données consiste à décrire la structure de données utilisée sans faire référence à un langage de programmation. Il s'agit
donc de préciser le type de données utilisées lors des traitements.
Ainsi, le modèle logique est dépendant du type de base de données utilisé.
Le modèle relationnel
Traduction d'une classe d'entité
Chaque classe d'entité du modèle conceptuel devient une table dans le modèle logique. Les identifiants de la classe d'entité sont appelé clés de la
table, tandis que les attributs standards deviennent des attributs de la table, c'est-à-dire des colonnes.
Traduction d'une classe de relation
Le passage du modèle conceptuel au modèle logique au niveau des classes de relation se fait selon les cardinalités des classes d'entité participant
à la relation :

si une des classes d'entités possède une cardinalité faible :
la table aura comme attributs, les attributs de la classe ayant une cardinalité faible, puis le (ou les) attribut(s) de relation et enfin les attributs de
la seconde classe précédé du nom de la classe

si les deux classes d'entités possèdent une cardinalité forte :
la table aura comme attributs, les attributs des deux classes de relation précédés des noms des classes respectives, puis le (ou les) attribut(s) de
relation
Traduction d'une classe d'agrégation
Dans le cas de la présence d'une classe d'agrégation, la classe d'entité agrégée a comme attributs supplémentaires les attributs de la classe
d'entité agrégeante
Le modèle physique
Cette étape consiste à implémenter le modèle dans le SGBD, c'est-à-dire le traduire dans un langage de définition de données.
Le langage généralement utilisé pour ce type d'opération est le SQL, et plus spécialement le langage de définition de données du SQL.






Rappel sur le modèle relationnel
Passage du MCD au MR
Normalisation du modèle relationnel
Dépendance fonctionnelle
Intérêt de la normalisation
Les diagrammes de flux
Rappel sur le modèle relationnel
C'est un modèle LOGIQUE de donnée, celui qui correspond à l'organisation des données dans
les bases de données relationnelles (il existe d'autres organisations de bases de données :
hiérarchique,réseau, objet,… ).
Les SGBD actuels les plus courants sont relationnels (Oracle, SQL Server, Access, MySQL,
…)
Un modèle relationnel est composé de relations, encore appelée tables. Ces tables sont
décrites par des attributs ou champs (noms de colonnes). Pour décrire une relation, on
indique tout simplement son nom en majuscule, suivi du nom de ses attributs entre
parenthèses.
L'identifiant d'une relation est composé d'un ou plusieurs attributs qui forment la clé primaire.
Une relation peut faire référence à une autre en utilisant une clé étrangère, qui correspond à
la clé primaire de la relation référencée.
Il n'y a pas de notation officielle pour repérer les clés primaires et étrangères. C'est à vous
d'en adopter une et de l'expliquer en légende. Toutefois, une notation s'est peu à peu
répandue :


on souligne la clé primaire d'un seul trait
on fait précéder (ou suivre) les clés étrangères du symbole #
Chaque ligne (tuple ou enregistrement) d'une table représente une occurrence de l'entité ou
de l'association correspondante.
Passage du MCD au MR





1 Règle 1
2 Règle 2
3 Exception à la règle 1
4 Cas particulier des associations réflexives
o 4.1 Réflexive hiérarchique
o 4.2 Réflexive non hiérarchique
5 Voir aussi
Règle 1
Toute entité devient une relation ayant pour clé primaire son identifiant. Chaque
propriété se transforme en attribut.
adresse, code_postal, ville, téléphone)
CLIENT (code_client, nom, prénom,
Remarque : contrairement aux propriétés, les attributs ne doivent pas comporter d'espaces.
Règle 2
Toute association non hiérarchique (de type [n, n] ou de dimension > 2) devient une
relation. La clé primaire est formée par la concaténation (juxtaposition) l'ensemble des
identifiants des entités reliées. Toutes les propriétés éventuelles deviennent des attributs qui
ne peuvent pas faire partie de la clé.
CONCERNER(#numéro_commande, #référence_article, quantité)
Cette règle est valable pour toutes les associations ternaires (ou quaternaires) qui sont
forcément non hiérarchiques (|cardinalités maximales toutes égales à n).
Exception à la règle 1
Les entités n'ayant que leur identifiant comme attribut ne deviennent pas des relations, mais
des attributs dans les autres relations liées.
Avec ce modèle, on mémorise chaque jour pour chaque ouvrier les pièces qu'il a fabriqué et
en quelle quantité. Quand on passe au modèle relationnel, l'entité DATE FABRICATION ne
devient pas une relation, mais un attribut clé dans la relation FABRIQUE issue de
l'association.
FABRIQUE(#code_ouvrier, #référence_pièce, date, quantité). date ici fait partie de la clé
primaire,mais n'est pas clé étrangère
Cas particulier des associations réflexives
Les associations réflexives suivent les règles 2 ou 3 selon les |cardinalités mais posent un
problème particulier : une même propriété va se retrouver deux fois en attribut dans la même
relation. Il faut alors donner un nom différent et significatif aux deux attributs correspondants.
Dans les réflexives, il est conseillé de nommer les branches par des rôles pour pouvoir lire
dans le bon sens l'association. Les rôles aident à nommer les attributs correspondant à
l'association.
Réflexive hiérarchique
(une branche à la cardinalité maxi à 1 et l'autre à n)
règle n° 2
Lecture de l'association :
Règle n°1: l'identifiant de SALARIE va devenir clé primaire et les autres propriétés des
attributs
Règle n°2 : pour traduire l'association [1, n] encadrer, l'identifiant de l'entité SALARIE
devient clé étrangère
l'identifiant de SALARIE matricule se retrouve deux fois dans la relation : comme clé
primaire et comme clé étrangère
On va donc donner un nom différent et significatif à ces deux matricules, par exemple Un
salarié a pour chef 0 ou un seul autre salarié. Un salarié est chef de 0 à n autre(s) salarié.
Traduction en modèle relationnel :
SALARIE(matricule, nom, prénom, fonction,… , #matricule_chef)
[modifier]
Réflexive non hiérarchique
règle n°3

Lecture de l'association
Une pièce entre dans la composition de 0 à plusieurs autres pièces. Une pièce peut être
composée de plusieurs autres pièces. Une pièce entre dans la composition d'une autre un
certain nombre de fois.
ex : La pièce "voiture" est composée de 4 pièces "roue". La pièce "roue" est elle-même
composée d'une pièce "pneu" et d'une pièce "jante".
Une pièce entrant dans la composition d'une autre est appelée composant. Une pièce
composée d'autres pièces est appelée composé. Une roue est à la fois un composant (de
voiture) et un composé (de pneu et jante)

Traduction en modèle relationnel
PIECE(référence, libellé)
COMPOSITION(#référence_composé, #référence_composant, nombre)
Normalisation du modèle relationnel



1 Introduction
2 Rappels sur la notion de dépendance fonctionnelle
o 2.1 Définition
o 2.2 Terminologie
o 2.3 DF à partir de propriétés concaténées
o 2.4 Propriétés des dépendances fonctionnelles
 2.4.1 Union
 2.4.2 Transitivité
3 Voir aussi
L'objectif de la normalisation est de construire un schéma de base de données cohérent.
Un mauvais schéma logique peut conduire à un certain nombre d'anomalies pendant la phase
d'exploitation de la base de donnée. Nous allons voir ces anomalies dans une première partie.
Pour qu’un modèle relationnel soit normalisé, il faut qu’il respecte certaines contraintes
appelées les formes normales. Les formes normales s’appuient sur les dépendances
fonctionnelles entre attributs.
Rappels sur la notion de dépendance fonctionnelle
La construction du MCD mais également du modèle relationnel correspondant, repose
presque entièrement sur le concept de dépendance fonctionnelle. C’est ce concept qui permet
de passer d’un ensemble de propriétés non structuré à un modèle conceptuel des données
formé d’entités et d’associations et au modèle relationnel correspondant.
I - Définition
On dit que b est en dépendance fonctionnelle (DF) de a si à une valeur quelconque de la
propriété a, on ne peut faire correspondre qu’une seule valeur au plus de la propriété b.
On note a
b
(source)->(but)
Autrement dit, si on connaît la valeur de a, on peut en déduire une seule valeur de b.
Mais la réciproque n’est pas vrai (si on connaît b, on ne peut pas en déduire a).

Exemple :
Num client
Nom client
Il existe une DF entre num client et Nom client, car si on connaît une valeur de la propriété
num client (ex : 4553), il ne peut lui correspondre qu’une seule valeur de la propriété nom
(ex : Duval).
La réciproque est fausse :
Nom client
n’est pas une DF
Num client
Si l’on connaît la valeur de la propriété Nom client, on ne peut pas en déduire la propriété
Num client, car il peut y avoir des homonymes.
II - Terminologie
Si on a une dépendance fonctionnelle a
b, on peut employer les expressions suivantes
de façon équivalente :
-Il y a une dépendance fonctionnelle de a vers b
- b est en dépendance fonctionnelle de a
- b dépend fonctionnellement de a
- a est la source et b est le but (ou la cible) de la dépendance fonctionnelle
III - DF à partir de propriétés concaténées
(partie gauche composée de plusieurs attributs)
Il peut exister des dépendances fonctionnelles à partir de propriétés concaténées, c'est-à-dire
qui forment un tout indissociable, comme si elles étaient soudées.
On note par un + cette concaténation.
Exemple : Considérons une commande qui comporte plusieurs produits Num_Commande +
Ref_Produit
quantité commandée
Si on n’a seulement le numéro de la commande, on ne peut pas en déduire la quantité
commandée, car il faut aussi savoir de quel produit. De même, on ne peut pas savoir la
quantité commandée d’un produit si on ne sait pas de quelle commande. Il faut bien connaître
à la fois la commande et le produit (leurs identifiants respectifs) pour en déduire la quantité
commandée.
Les dépendances fonctionnelles dont la source est formée de plusieurs propriétés doivent être
élémentaires, c'est-à-dire ne pas être créées artificiellement.
Ex : Num Commande + Num Client date commande
n’est pas une DF élémentaire car on n’a pas besoin du numéro de client pour connaître la date
de commande, il suffit de connaître le numéro de la commande. La propriété Num Client ne
sert à rien dans cette DF.
IV - Propriétés des dépendances fonctionnelles
Les dépendances fonctionnelles ont les propriétés suivantes :
a) Union
Si on a deux DF ayant la même source, on peut les rassembler en une seule, en séparant les
cibles par une virgule. Si a
Ex : Référence
b et a
c
Désignation et Référence
Alors par union on a : Référence
Prix de vente unitaire
Désignation, Prix de vente unitaire
Lors du tracé du graphe des dépendances fonctionnelles, l’union permet de regrouper sur une
seule ligne toutes les dépendances fonctionnelles ayant la même source.
b) Transitivité
Si a
b et b
c alors on a a
Ex : Num Médecin
c
Code Service et Code Service
Alors on a Num Médecin
Num Hopital
Num Hopital
Les DF qui peuvent être déduites par transitivité de deux autres DF (qui ne sont pas directes)
doivent être éliminées car elles sont alors redondantes.
Il ne reste alors que les DF directes, c'est-à-dire celles qui ne peuvent pas être retrouvées par
transitivité.
Attention toutefois à la signification des dépendances. Une dépendance fonctionnelle
qu'on peut retrouver par transitivité ne doit pas être supprimée si elle n'a pas le même sens que
la transitivité des deux autres, car il y aurait perte d'information.
Intérêt de la normalisation
Pour vous montrer l’intérêt de la normalisation d’une base de donnée relationnelle, voyons les
problèmes que peuvent poser l’utilisation d’une base de donnée basée sur un modèle
relationnel non normalisé.
Soit le schéma de relation :
FOURNISSEUR (NomFournisseur, AdresseFournisseur, Produits, Prix)
NomFournisseur
Lebras
Dupont
Lajoie
Dupont

AdresseFournisseur
Produit
Prix
Chaise
20
10, Rue des Gras - Clermont
table
35
86, Rue de la République - Moulins Bureau
60
26, Rue des Dômes - Vichy
Lit
50
Lampe
18
39, Rue des Buttes - Moulins
Table de chevet 25
1°problème :
Il n’y a pas de clé primaire : on ne sait pas si les deux Dupont sont différents ou pas (si c’est
le même Dupont, il y a une des deux adresses qui est fausse.

2°problème :
L’adresse n’est pas décomposée. Si on veut par exemple rechercher tous les fournisseurs qui
habitent la même ville, ça ne va pas être possible

3°problème :
Une relation (table) correspondant à ce schéma pourra éventuellement contenir plusieurs
produits pour un même fournisseur.
Dans ce cas, il faudra faire face à un certain nombre de problèmes :





l'adresse du fournisseur sera dupliquée dans chaque n-uplet (redondance),
si on souhaite modifier l'adresse d'un fournisseur, il faudra rechercher et mettre à jour
tous les n-uplets correspondant à ce fournisseur,
si on insère un nouveau produit pour un fournisseur déjà référencé, il faudra vérifier
que l'adresse est identique,
si on veut supprimer un fournisseur, il faudra retrouver et supprimer tous les n-uplets
correspondant à ce fournisseur (pour différents produits) dans la table.
La normalisation élimine les redondances, ce qui permet :
- une diminution de la taille de la base de donnée sur le disque
- une diminution des risques d’incohérence
- d’éviter une mise à jour multiple des mêmes données
3 formes normales du modèle relationnel
I - 1ere forme normale
Une relation est normalisée en première forme normale si :
1. elle possède une clé identifiant de manière unique et stable chaque ligne
2. chaque attribut est monovalué (ne peut avoir qu’une seule valeur par ligne)
3. aucun attribut n’est décomposable en plusieurs attributs significatifs

Contre-exemple :
EMPLOYE ( Nom, Prénom, Enfants, Diplômes)
Cette relation n’est pas en première forme normale
Un employé peut avoir plusieurs enfants et plusieurs diplômes. En outre, ces attributs sont
décomposables : diplôme est décomposable en Nature et Année, et Enfants est décomposable
en Prénom et Année de Naissance.
II - 2ème forme normale
Une relation R est en deuxième forme normale si et seulement si :
1. elle est en 1FN
2. et tout attribut non clé est totalement dépendant de toute la clé.
Autrement dit, aucun des attributs ne dépend que d’une partie de la clé.
La 2FN n'est à vérifier que pour les relations ayant une clé composée. Une relation en 1FN
n'ayant qu'un seul attribut clé est toujours en 2FN

Contre-exemple :
Cette relation est en première forme normale (existence d’une clé valide et aucun attribut
n’est décomposable)
MAIS elle n’est pas en 2° forme normale car on a DésignationProd ne dépend pas de toute la
clé mais seulement de référenceProd:
RéférenceProd
DésignationProd
pour connaître l’attribut désignationProd, on n’a pas besoin de connaître le numéro de
commande.
III - 3ème forme normale
Une relation est en 3° forme normale si et seulement si :
1. elle est en 2° forme normale
2. et tout attribut doit dépendre directement de la clé, c'est-à-dire qu’aucun attribut ne
doit dépendre de la clé par transitivité.
Autrement dit, aucun attribut ne doit dépendre d’un autre attribut non clé.

Contre-exemple :
CLIENT(Num_client, Nom_client, code_categ, nom_categ) Cette relation n’est pas en 3FN
car num_client
nom_categ n’est pas une dépendance directe.
En effet, on a aussi num_client
num_categ
nom_categ
IV - Application des règles
Si l’une des 3 règles n’est pas vérifiée, cela indique une erreur dans le modèle relationnel et il
faut alors modifier pour que les 3 règles soient vérifiées pour toutes les relations.
On vérifie les règles dans l’ordre. Si la première forme normale n’est pas respectée, pas la
peine de vérifier la 2FN. Et si la 2FN n’est pas vérifiée, inutile de vérifier la 3FN.
V - Résumé
Modèle normalisé = relations avec:




une clé, qui permet de distinguer chaque occurrence
des attributs élémentaires (1FN)
en dépendance de TOUTE la clé (2FN),
et RIEN QUE de la clé (3FN)
On parle aussi de normalisation pour un MCD. Un MCD qui donne un MR normalisé est
qualifié aussi de normalisé.
Les différents modèles de bases de données
Les bases de données sont apparues à la fin des années 60, à une époque où la nécessité d'un système de gestion de l'information souple se
faisait ressentir. Il existe cinq modèles de SGBD, différenciés selon la représentation des données qu'elle contient :

le modèle hiérarchique : les données sont classées hiérarchiquement, selon une arborescence descendante. Ce modèle utilise des
pointeurs entre les différents enregistrements. Il s'agit du premier modèle de SGBD

le modèle réseau : comme le modèle hiérarchique ce modèle utilise des pointeurs vers des enregistrements. Toutefois la structure
n'est plus forcément arborescente dans le sens descendant

le modèle relationnel (SGBDR, Système de gestion de bases de données relationnelles ) : les données sont enregistrées dans des
tableaux à deux dimensions (lignes et colonnes). La manipulation de ces données se fait selon la théorie mathématique des relations

le modèle déductif : les données sont représentées sous forme de table, mais leur manipulation se fait par calcul de prédicats

le modèle objet (SGBDO, Système de gestion de bases de données objet) : les données sont stockées sous forme d'objets, c'est-àdire de structures appelées classes présentant des données membres. Les champs sont des instances de ces classes
A la fin des années 90 les bases relationnelles sont les bases de données les plus répandues (environ trois quarts des bases de données).
Définition de l'organisation
La première étape de ce modèle est d'arriver à isoler le système en le délimitant. Il s'agit donc de définir le système et les éléments externes avec
lesquels il échange des flux d'information. Ces éléments extérieurs sont appelés acteurs externes (ou partenaires).
La seconde étape consiste à découper l'organisation en entités appelées acteurs internes (ou domaines). Lorsque les domaines d'une organisation
sont trop importants, ils peuvent être décomposés eux-mêmes en sous-domaines.
La dernière étape est l'analyse des flux d'information, c'est-à-dire la définition des processus.
Diagramme de contexte
Le diagramme de contexte a pour but de représenter les flux d'informations entre l'organisation et les acteurs externes selon une représentation
standard dans laquelle chaque objet porte un nom :

l'organisation est représentée par un rectangle

les acteurs externes sont représentés par des ellipses en pointillés

les flux d'information sont représentés par des flèches dont l'orientation désigne le sens du flux d'information
Diagramme conceptuel de flux
Ce diagramme (appelé aussi modèle conceptuel de la communication) permet de compléter le diagramme de contexte en décomposant
l'organisation en une série d'acteurs internes. Dans ce diagramme la représentation standard est la suivante :

Les acteurs internes sont représentés par des ellipses

les messages internes sont représentés par des flèches
Téléchargement