Please enable JavaScript.
Coggle requires JavaScript to display documents.
Merise
(PowerAMC) (MLD (Formes normales (2FN
Toute propriété de la…
Merise
(PowerAMC)
MLD
Nouvelle entitéDans le cas où la cardinalité maximale est n de chaque côté de la relation, celle-ci se transforme en entité et absorbe les identifiants de chaque entité reliée.
Les identifiants ainsi absorbés forment la nouvelle clé primaire :warning: (doublon impossible) de l'entité. Cette nouvelle clé est donc formée par la concaténation des clés étrangères des entités reliées.
Un article peut être commandé par zéro ou plusieurs clients (0,n)
Un client peut commander un ou plusieurs articles (1,n)
Cas d’absorptionL'entité ayant la cardinalité de type 1,1 ou 0,1 absorbe l'identifiant de l'entité la plus forte (0, n ou 1, n). Cet identifiant est alors appelé la clé étrangère :warning: (doublon possible) .Une mère peut élever un ou plusieurs (1,n) enfants Un enfant est élevé par une seule mère (1,1)
Formes normales
2FN
Toute propriété de la relation doit dépendre intégralement de toute la clé.
Commande ([Numcli, CodeArticle, Date], Qté commandée, Désignation)
ne respecte pas 2FN car 'Désignation' ne dépend pas de la clé primaire
3FN
Toutes les dépendances fonctionnelles par rapport à la clé sont directes (il n'y a pas de DF transitives entre les attributs non clé)
La relation
Commande(NuméroCommande, #CodeClient, Nom client, #RefArticle)
est-elle en troisième forme normale ?
NON car 'Nom client' dépend d'une propriété non clé : CodeClient
1FN
Une seule valeur atomique non répétitives par attribut !
- Contre exemple : 1 attribut -> adresse (avec ville et code postal)
- Bonne exemple : 3 attributs -> adresse - code postal - ville
BCNF (facultative)
Afin d'éliminer les redondances, Boyce et Codd ont introduit une forme normale qui porte leur nom (Boyce Codd Normal Form/BCNF) :
Considérons la relation
Vaches(Race, Pays, Région)
avec les dépendances fonctionnelles supposées :
Région --> Pays
(Race, Pays) --> Région
Mais redondance de 'pays' et 'régions' -> La relation Vaches pourra être décomposée en deux relations :
- Races (Race, Région)
- Régions (Région, Pays)
et on recréé la relation (Race, Pays) --> Région avec une JOINTURE
MCD
Bases
Notion de
classe
-
-
-
-
Règles d'usage
Toutes les propriétés de l'entité dépendent fonctionnellement de l'identifiant. C'est-à-dire que connaissant la valeur de l'identifiant, nous connaissons de façon sûre et unique la valeur des propriétés associées. Si nous recherchons le client numéro 5, nous devons récupérer le nom et le prénom du client numéro 5 et pas ceux d'une autre personne.
Le nom d'une propriété ne doit apparaître qu'une seule fois dans le modèle conceptuel des données. Si nous établissons une entité Clients et une nommée Prospects, nous ne devons pas retrouver la propriété Nom dans les deux entités. Il faut préférer la dénomination suivante Nom_client et Nom_prospect.
-
Les propriétés résultantes d'un calcul ne doivent pas apparaître dans le modèle conceptuel des données.
Notion de
propriété
-
-
Atomique ou simple (propriété non décomposable - ex : adresse, code postale et ville )
-
Calculée : déductible des information atomique, exemple (le total d'une ligne de commande)
-
Les relations
Cardinalité : lien qui existe entre une entité et la relation => borne minimale et borne maximum (ex : 1,n)
- 0,1 = aucun ou 1 seul
- 0,n = aucun ou plusieurs
- 1,1 = un et un seul
- 1,n = un ou plusieurs
- cardinalité partielle => cardinalité minimale à zéro sur l'un des segments (ex : 0,n <-> 1,1)
- cardinalité totale=> cardinalité minimale à 1 sur les deux segments (ex : 1,n <-> 1,1)
Type :
- binaire = deux classes
- ternaire = trois classes
- n aire = n entités
- récursive ou réflexive = même classe
-
Relation porteuse : ici commander -> elle contient des propriétés (ci-dessous la quantité de roduits)
Nous pouvons interpréter ce schéma de la façon suivante : Le client X a commandé la quantité Y d'articles z. Si nous
désirons connaître la date d'achat, il nous suffit de créer une entité Date à la relation Commander.
Contrainte d'intégralité fonctionnel (CIF) = une contrainte d'intégrité fonctionnelle existe à partir du moment ou une cardinalité de type 1,1 existe.
Ex : une salle peut contenir zéro ou plusieurs ordinateurs et un ordinateur existe dans une et une seule salle.
Identifiant relatif = certaines entités ont une existence totalement dépendante d'autres entités.
Par exemple, la clé d'identification d'un exemplaire sera la concaténation du Num Ouvrage et du Num Exemplaire. L'identification d'un identifiant relatif se traduit par le symbole (R) à côté de la cardinalité.