Le passage du niveau conceptuel au niveau logique suppose d'avoir fait un choix organisationnel pour la structuration des données.
On parle en effet de niveau logique relationnel si on choisit une implémentation relationnelle, basée sur l'algèbre relationnel et la théorie des ensembles. (CODD).
Bien que le choix relationnel soit toujours prédominant (même si on fait du NO SQL-Not Only SQL), il existe d'autres choix d'organisation :
Le terme Relation doit être pris au sens de l'algèbre relationnel:
Une relation regroupe un ensemble d'éléments (des tuples) ayant des caractéristiques communes (des attributs).
Attributs de la relation Clients :
Soient une relation R(A1,A2,…,An) et K un sous-ensemble de A1,A2,… ,An.
K est une clé de R si et seulement si :
K⇒A1,A2,…,An
il n'existe pas K’ inclus dans K tel que K’⇒A1,A2,…,An
On qualifie de clé candidate tout attribut de la relation permettant d'identifier de façon unique un tuple.
Parmi les clé(s) candidate(s) éventuelles, seule l'une d'entre elles sera choisie comme clé primaire.
Cette clé primaire doit logiquement disposer de certaines qualités pour jouer son rôle :
Une clé primaire composite est composée de plusieurs attributs. Il n'y a jamais plusieurs clés primaires, mais éventuellement une clé primaire composite composée de plusieurs attributs.
Les clés primaires issues des CIM sont par exemple composites.
Une clé étrangère est une référence à une clé primaire d'une autre relation.
Nous évoquons ici les règles de passage simples, qui ne requièrent aucun choix.
MCD | MLDR |
---|---|
Entité, identifiants, propriétés | Relation, clé primaire, attributs |
Association CIF | Migration de la clé du père vers le fils ⇒ clé étrangère |
Association CIM | Nouvelle relation dont la clé primaire est composée des clés étrangères des relations associées |
Il est évidemment possible de renommer la clé étrangère faisant référence à une clé primaire :
Cette version textuelle permet de spécifier explicitement les références des clés étrangères (ce qui peut s'avérer utile en cas de renommage), d'une façon assez proche du script SQL qui sera généré.
Souvenez-vous, les clés étrangères migrent :
Pour être valide, un MLDR doit respecter les 4 premières formes normales, afin d'éviter la redondance et les anomalies de mise à jour :
Une relation respecte la 1ère forme normale si :
Une relation respecte la 2ème forme normale si :
Cette forme normale ne concerne donc que les clés composites
Une relation respecte la 3ème forme normale si :