Modèle entité-association

Spécialisation et généralisation

Il n'est pas rare que des entités d'une même catégorie partagent des attributs communs et des attributs distincts. Il faut alors subdiviser l'entité principale en sous-entités de catégories différentes afin de décrire leurs attributs spécifiques. On parle alors de spécialisation. Ainsi, par exemple, l'ensemble des moyens de transports peut se subdiviser en plusieurs ensembles de sous-entités: les bus, les trains, les bateaux ou les téléphériques. Ces entités ont des attributs communs en tant que véhicule (vitesse maximale, nombre maximal de passagers,...) mais possèdent également leurs propres attributs spécialisés (tirant d'eau pour les bateaux, nombre de câbles porteurs pour les téléphériques,...).

Dans le modèle EA, il faut plusieurs ensembles pour décrire les attributs communs et spécifiques aux entités. Un ensemble principal d'entités contiendra tous les attributs communs de chaque entité, alors que différents sous-ensembles d'entités spécifiques contiendront les attributs particuliers des différentes entités. L'ensemble des entités générales est alors relié aux ensembles d'entités spécialisées à l'aide d'un triangle accompagné de différentes mentions selon le cas de spécialisation représenté. En effet, le processus de spécialisation peut donner lieu à plusieurs cas possibles:

La figure reprend le cas disjoint et complet décrit ci-dessus en y ajoutant les attributs communs et spécifiques à chaque ensemble de (sous-)entités. Comme chaque cadre supérieur, chaque spécialiste et chaque apprenti est un employé, cette spécialisation est une association de type 1. L'association dans la direction inverse est également de type 1 dans le cas disjoint et complet dans la mesure où chaque employé appartient à un et un seul sous-ensemble d'entités.

Spécialisation dans l'exemple EMPLOYE

Remarquons dans l'exemple ci-dessus que l'entité principale EMPLOYE se caractérise par des attributs communs à tous les employés tels que le nom, la rue et la ville alors que d'autres attributs sont spécifiques à tel ou tel type d'employé: la position d'un cadre, la compétence d'un spécialiste ou l'année d'apprentissage d'un apprenti.

A vous de jouer !

Une entreprise aimerait mettre en place un système informatique pour gérer efficacement l'un de ses secteurs d'activité: une chaîne d'hôtels situés dans diverses grandes villes. D'une discussion avec l'un des responsables du projet, vous parvenez à faire ressortir la liste des informations factuelles suivantes:

  • Chaque hôtel a plusieurs employés, dont un(e) directeur(-trice) unique.
  • Chaque employé est affecté à un seul hôtel.
  • Chaque hôtel possède plusieurs chambres et une chambre appartient toujours à un hôtel.
  • Les hôtels n'offrent que deux catégories de chambres mutuellement exclusives, à savoir:
    • les chambres simples caractérisées par le type de salle de bain (douche ou bain)
    • les chambres doubles caractérisées par le type de lit (double ou jumeau)
    Les attributs communs aux deux catégories de chambres sont le numéro, le prix et la description de la chambre.
  • Chaque employé peut (ou non) être amené à effectuer des services (nettoyage, inspection du mini bar, réparation,...) dans les chambres et chaque chambre est servie par plusieurs employés durant l'année. Les attributs spécifiques à chaque service sont le type, la date et un commentaire.
  • Sur une année, chaque chambre est réservée par au moins un client enregistré dans la base de donnée. Un client peut soit ne rien réserver, soit réserver une ou plusieurs chambres. De plus, chaque réservation doit offrir les informations concernant la date de réservation, la date d'arrivée, la durée et le type de séjour (basic, demi-pension ou pension-complète).

A l'aide d'un diagramme entité-association, modélisez la structure des informations nécessaire au développement du système de gestion des hôtels.

|