Transformation des associations 1:N
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectif
Savoir intégrer des associations de type 1:N dans des relations.
Mise en situation
Vous venez de créer un modèle conceptuel qui modélise un système de réservation de chambre d'hôtel. En particulier, votre modèle comporte deux classes : les hôtels, et les chambres.
Chaque chambre ne peut appartenir qu'à un seul hôtel, c'est donc tout naturellement que vous modélisez ce lien par une association 1:N.
Mais pour passer au modèle relationnel, vous ne disposez que du concept de relations : à quel endroit indiquer qu'une chambre est située dans un hôtel en particulier ? Plus généralement, comment transformer les associations 1:N en modèle relationnel ? C'est ce que vous allez découvrir dans ce module.
Méthode :
Pour chaque association de type 1:N :
on ajoute à la table côté N une clé étrangère vers la table côté 1.
Table1 (#a:type, b:type)
Table2 (#c:type, d:type, a=>Table1)
Exemple :
@startuml
skinparam defaultFontName Inconsolata
skinparam classFontStyle bold
skinparam linetype polyline
skinparam nodesep 100
hide circle
class Hotel {
nom : string {unique}
adresse : string
codePostal : string
ville : string
étoiles : integer
}
class Restaurant {
nom : string {unique}
étoiles : integer
}
Hotel "1..1" - "*" Restaurant : est-situé <
@enduml
Hotel(#nom:string, adresse:string, codePostal:string, ville:string, étoiles:integer)
Restaurant (#nom:string, étoiles:integer, hotel=>Hotel) avec hotel non null
Complément : Expressions des contraintes de cardinalité minimale
Si la cardinalité est exactement 1 côté 1 (
1..1
), alors on ajoutera une contrainte de non nullité sur la clé étrangère.Si la cardinalité est au moins 1 côté N (
1..N
), on ajoutera une contrainte d'existence d'enregistrements référençant pour chaque enregistrement de la table référencée :PROJECTION(Table1,a) = PROJECTION(Table2,a)
.La projection d'une table est une opération qui sélectionne un sous-ensemble des attributs de cette table et supprime les doublons.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.