jeediagclasses
no way to compare when less than two revisions
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | jeediagclasses [2020/08/24 12:13] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Diagramme de classes et Modèle Logique des Données ====== | ||
+ | |||
+ | Le diagramme de classes qui est un des 11 schémas UML est le schéma de base, essentiel au développement de la partie modèle d'une application JEE. | ||
+ | Vous trouverez ci-dessous un extrait du diagramme de classes du projet Equida, avec ses règles de gestion et sa transcription en base de données. | ||
+ | |||
+ | ===== | ||
+ | Modèle Général | ||
+ | ===== | ||
+ | |||
+ | |||
+ | ===== Relation 1 à n = Relation Many-To-One / One-To-Many ===== | ||
+ | |||
+ | |||
+ | * Schéma | ||
+ | {{: | ||
+ | |||
+ | |||
+ | * Règles de gestion | ||
+ | __Many-To-One :__ Un cheval est caractérisé par une et une seule race (yearling, trotteur, pure-sang, etc...). | ||
+ | |||
+ | __One-To-Many :__ A une race de cheval correspond plusieurs chevaux. | ||
+ | |||
+ | |||
+ | * Modèle Logique de Données | ||
+ | |||
+ | RACE_CHEVAL (id, libelle, description) | ||
+ | |||
+ | clé primaire : id | ||
+ | |||
+ | |||
+ | |||
+ | CHEVAL (id,nom, sexe, sire, dateNaissance, | ||
+ | |||
+ | clé primaire : id | ||
+ | |||
+ | clé étrangère : idRace en référence à id de RACE_CHEVAL | ||
+ | |||
+ | |||
+ | |||
+ | ===== L' | ||
+ | |||
+ | * Schéma | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * Règles de gestion | ||
+ | Il existe deux categories de clients ayant des propriétés communes : les acheteurs et les vendeurs | ||
+ | |||
+ | |||
+ | * Modèle Logique de Données | ||
+ | Il y a 3 solutions pour implémenter un héritage en base de données. | ||
+ | |||
+ | __Solution n°1 :__ **1** classe seulement sera conservée pour la transformation et on créera une nouvelle table permettant de définir le type de client (acheteur ou vendeur) : | ||
+ | |||
+ | TYPE_ACHETEUR (code, libelle) | ||
+ | clé primaire : code | ||
+ | |||
+ | La table client conservent les mêmes propriétés auxquelles on ajoutera une clé étrangère faisant référence à la clé primaire de la table ci-dessus : | ||
+ | |||
+ | CLIENT (id, titre, nom, prénom, .., idTypeAcheteur, | ||
+ | clé primaire : id | ||
+ | **clé étrangère : codeTypeAcheteur en référence à code de la table TYPE_ACHETEUR** | ||
+ | |||
+ | __Solution 2 :__ on conserve les **2** classes pour la transformation, | ||
+ | ACHETEUR (id, titre, nom, prénom, | ||
+ | clé primaire : id | ||
+ | |||
+ | VENDEUR (id, titre, nom, prénom, | ||
+ | clé primaire : id | ||
+ | |||
+ | |||
+ | __Solution 3 :__ les **3** classes seront conservées pour la transformation : | ||
+ | |||
+ | CLIENT (id, titre, nom, prénom, | ||
+ | clé primaire : id | ||
+ | |||
+ | ACHETEUR (idAcheteur) | ||
+ | clé primaire : idAcheteur | ||
+ | clé étrangère : idAcheteur en référence à id de la table CLIENT | ||
+ | |||
+ | VENDEUR(idVendeur) | ||
+ | clé primaire : idVendeur | ||
+ | clé étrangère : idVendeur en référence à id de la table CLIENT | ||
+ | |||
+ | Les sous-classes, | ||
+ | |||
+ | |||
+ | |||
+ | ===== La classe association | ||
+ | |||
+ | |||
+ | * Schéma | ||
+ | |||
+ | * Règles de gestion | ||
+ | Un cheval participe à plusieurs courses. | ||
+ | A une course participent plusieurs chevaux. | ||
+ | Pour chaque course, on souhaite conserver la place à laquelle est arrivée le cheval. | ||
+ | |||
+ | |||
+ | |||
+ | * Modèle Logique de Données | ||
+ | CHEVAL (id,nom, sexe, sire, dateNaissance, | ||
+ | clé primaire : id | ||
+ | |||
+ | COURSE (id, nom, lieu, date) | ||
+ | clé primaire : id | ||
+ | |||
+ | COURSE_CHEVAL (idcheval, idCourse) | ||
+ | clé primaire : idCheval, idCourse | ||
+ | clé étrangère : idCheval en référence à id de la table CHEVAL | ||
+ | clé étrangère : idCourse | ||
jeediagclasses.txt · Dernière modification : 2020/08/24 12:13 de 127.0.0.1