Gestion d'un aéroport - SQL/NoSQL - Programmation
Marsh Posté le 22-02-2008 à 20:41:20
dois-je me contenter de ces entités et de ces relations?Ou puis-je créer d'autres entiés.Par exemple produit ou clients ou founisseurs.Puisque l'aero-club fourni d'autres service que de louer des avions (achat et vente d'avions et vente de produit)
De même les infos sont peut-être incomplète concernant les associations?Peut-être faudrait-il ajouter l'association possede entre pilote et compte......
qu'en pensez-vous?
Marsh Posté le 22-02-2008 à 21:59:40
svp il me faut une aide je déprime,je vous demande pas de le faire mais juste mettre en evidence quelques pistes de reflexions.
Marsh Posté le 23-02-2008 à 21:23:10
tu prends un papier et un crayon et tu dessines tes entités et leurs relations. T'as déjà tout de fait, là.
Marsh Posté le 24-02-2008 à 12:42:03
j'ai fais mon MCD mais je na sais pas commment le mettre en ligne.Le boulot est fait.
Marsh Posté le 24-02-2008 à 18:13:00
Bah il faut prendre un bon tuto SQL (CREATE TABLE, ...) et potasser
Marsh Posté le 24-02-2008 à 22:16:53
je sais crerre des tables avec les contraintes ect....mais je souhaite mettre mon MCD en ligne pour que vous puissiez juger et corriger au cas ou!!
merci d'avance
Marsh Posté le 24-02-2008 à 23:45:25
clintou a écrit : je sais crerre des tables avec les contraintes ect....mais je souhaite mettre mon MCD en ligne pour que vous puissiez juger et corriger au cas ou!! |
un MCD, c'est juste des rectangles relié par des traits ... Tu peux donc utiliser un logiciel de traitement d'image comme MS Paint, Snag Editor, .... ou sinon tu as Visio, Diag, ... comme logiciel un peu plus spécialisé ..
mais le top pour toi en terme de rapidité pour le mettre en ligne serait de scanner ton MCD sur papier et de l'enregistrer en tant qu'image ...
Marsh Posté le 25-02-2008 à 17:09:11
ReplyMarsh Posté le 25-02-2008 à 20:14:39
forzayalta a écrit : ou alors DB Designer4, disponible sur http://fabforce.net/dbdesigner4/ |
voici l'image de mon MCD
Marsh Posté le 26-02-2008 à 11:13:04
clintou a écrit : alors mes amis qu'en pensez vous? |
moi je rajouterais bien des "id" dans toutes les tables pour pouvoir faire des jointures correctes : id_vol, id_pilote, ....
edit : en fait, j'ai un doute, je ne sais pas si les ids doivent apparaître dans un MCD ? (suis pas trés bon en MCD/MLD) Mais ca ne change rien à mon propos, il faut en mettre dans les tables pour faire tes jointures
Marsh Posté le 26-02-2008 à 15:57:04
babasss > Les colonnes qui forment les clés primaires doivent apparaitre explicitement dans un MCD et il me semble qu'il faut indiquer dans le MCD qu'elles colonnes constituent la clé primaire d'une table. Quand aux clés étrangères qui référencent la clé primaire d'une autre table, elle n'a aucune raison d'exister dans le MCD : l'élément "liaison" est suffisant pour indiquer ce type de liaison et le logiciel de création de MCD est censé savoir rajouter ces colonnes là à la volé quand il génère les requêtes SQL (ou le script de création des tables).
En dehors de ça, certains logiciels permettent malgré tout d'afficher ou de cacher les colonnes de clé étrangères mais je n'en ai jamais vu qui permettent de modifier ces colonnes là (pas même le nom à par en modifiant la règle de nomage mais là c'est toutes les colonnes de clé étrangère qui sont modifiées d'un coup)
clintou > Je trouve vraiment bizarre tes liaisons à trois tables. En fait, ça me donne l'impression que ton MCD actuel est un mélange de MCD classique et de logique applicative : "tel pilote pilote tel avion pendant tel vol", c'est de la logique applicative. Au niveau de la base de donnée elle même, on a besoin de deux liaisons pour indiquer ça : "pour tel vol, le pilote est monsieur X" et "pour tel vol on a utilisé tel avion". Tes liaisons posent aussi des problèmes de lectures/compréhension : le pilote il possède quoi? Des compteurs, des vols ou les deux? A moins que ça soit le vol qui possède un compteur (ou le compteur qui possède des vols) Le 0,n du mvt-compt-hvol, c'est par rapport aux pilotes, aux vols ou a des couples de ces deux là? En clair, tu peux avoir plusieurs vols par mvt-compt-hvol? (on est censé avoir la réponse rien qu'en regardant le MCD)
Autre chose, n'utilise pas de donnée textuelle (surtout si c'est dispersé dans plusieurs colonnes) comme clé primaire d'une table. D'une part les liaisons entre table seront très lente avec de telles clés mais en plus tu seras vraiment emmerdé si tu dois changer un texte. Imagine toi par exemple que t'as dans ta base un pilote de sexe féminin et qu'elle change de nom par ce qu'elle se marie : tu feras comment? Avec ton MCD actuel, t'es obligé de modifier le nom dans trois tables. En plus de ça, ton MCD montre bien une des faiblesses de ce genre de clé : comment tu fais la différence entre "Dupont Marcel" et "Dupont Jean" dans ta table "mvt-compt-hvol" ? (t'as oublié le prénom)
Marsh Posté le 26-02-2008 à 20:16:31
en resumé , je supprime les ternaires et privilègie les binaires?
Marsh Posté le 26-02-2008 à 20:24:52
clintou > comment as tu fais tes relations sur DBdesigner ? elles ont été généré automatiquement lorsque tu as recupéré ton MCD existant en allant sur le menu Base de donnée => Ingénieurie inverse.
J'ai une clef etranger et je ne vois pas la liaison.
Désolé de poluer ton topic avec ma question
Marsh Posté le 27-02-2008 à 11:24:37
En régle générale, il faut privilégier les liaisons binaires (une relation n-aire ne permettant pas d'indiquer les cardinalités 0,1 s'il y a un 0,n avec une autre table) surtout si c'est pour représenter la structure d'une base de donnée : les bases de données ne sachant gérer que des relations binaires, les relation n-aire (avec n > 2) seraient au mieux transformé en une table dont les relations seraient toutes des 1,1 de son côté.
Pour le cas où tu veux modéliser la couche métié, là c'est vrai que les relations ternaires peuvent être utile, mais il faut réussir à garder en tête le fait que ces relations seront par nature moins précise au niveau des cardinalités et qu'il faudra donc préciser en commentaire les limites non visible de cet ensemble relationnel.
Marsh Posté le 28-02-2008 à 12:21:38
weed a écrit : |
beurk. modélise ton problème proprement en UML/OCL.
Marsh Posté le 28-02-2008 à 20:47:57
omega2 a écrit : En régle générale, il faut privilégier les liaisons binaires (une relation n-aire ne permettant pas d'indiquer les cardinalités 0,1 s'il y a un 0,n avec une autre table) surtout si c'est pour représenter la structure d'une base de donnée : les bases de données ne sachant gérer que des relations binaires, les relation n-aire (avec n > 2) seraient au mieux transformé en une table dont les relations seraient toutes des 1,1 de son côté. |
Je pense comprendre ou tu veux en venir. Dans son exemple, j'aurais pas mi de relation 1,1 avec piloter. Il n'est pas obligatoire d'avoir de vol. J'aurais fais 2 relations vol <=> avtion et vol <=> pilote avec tous les 2 une cardinalité de 1,n je dirais et non pas 0,n. Dans un aéroclub, il y a au moins 1 avion et un pilote.
Idem pour possede.
Taz a écrit : |
j'ai pas mal refléchi sur papier. En extrayant mon MCD via la base de donnée, cela m'évite de me prendre la tete de le creer sous Visio ou je ne sais quel outil.
Tu vas me dire qu'il est possible de creer ses tables sur DBdesigner (son MCD) puis d'envoyer le shema directement à la base de donné pour qu'il créé les tables. Cependant, je préfére créé mes tables directement avec un client SQL plus spécialisé.
Marsh Posté le 22-02-2008 à 20:13:02
salut tout le monde,
En premier je tiens remercier par avance tous ceux et celles qui auront la patiente et la gentillesse de me répondre.
Voila j'ai donc un petit problème.Je m'explique .
J'ai un exercice a faire pas je ne sais pas par quel bout le prendre.Je dois modéliser la gestion d'un aeroclub sachant que la gestion de l'aéro-club répond au besoin suivants:
Gestion des pilotes:Leur caracteristiques (adresse,qualification) et leur compte au niveau du club.Un pilote est titulaire d'un compte, debité lors de chaque vol ou lors d'un achat d'un produit fourni par le club.
gestion des avions:carnet de route decrivant les utilisations successives.Prens aussi en compte l'achat et la vente d'avions.
Les données accessibles doivent être:
pour les pilotes:-nom ,prenom,adresse,numero du brevet,qualification.
pour les avions:-immatriculation,type,année de construction,compteur horaire,tarif horaire.
les operations sur les données sont:
Pour les vols:- a la suite de chaque vol on dispose du nom du pilote, du nom de l'avion,de l'heure et la date de depart et celles de l'arrivée, du nom de la personne a qui facturer le vol.
pour les comptes:-versement ou debit dont on precise la date et le montant.
les différentes requêtes que l'on souhaite formuler sont:
pour les pilotes:- la liste des noms des pilotes, la consultation des caractéristiques d'un pilote donné,pour chaque pilote la liste de ses vols entre 2 dates données et celles de tous ses mouvements comptables.
Pour les avions:-la liste des différents vols pour tous les avions, pour un avion donné la liste de ses vols entre 2 dates,les caracteristiques d'un avion, le tarif horaire de l'avion,la liste des noms d'avion (leur immatriculation)
Pour la comptabilité :-la liste des mouvements comptables entre 2 dates.
On peut proposer cette gestion le modele Entité-Relation suivant:
ENTITE PILOTE:
nom du pilote
prenom
adresse
nombre d'heures de vol
numero brevet
positin comptable vis a vis de l'aero-club
ENTITE AVION
Immatriculation de l'avion
type de l'avion
prix horaire du vol sur cet avion
compteur horaire de l'avion
caracteristique de l'avion
ENTITE AEROCLUB
raison social de l'aero-club
diverses informations relatves à l'aero-club
ENTITE Mvt-Compt-Hvol
nom du pilote sur lequel porte le mouvement
code mouvement (credit ou debit)
code nature du mouvement(cb,cheques..)
date du mouvement
montant du mouvement
ENTITE VOL
immatriculation de l'avion utilisé lors du vol
nom du pilote aux commandes du vol
nom du pilote a facturer
date de début du vol
date d'arrivé du vol
compteur horaire de l'avion au depart
compteur horaire de l'avion à l'arrivée
ASSOCIATIONS
Appartient à:-entre AEROCLUB et AVIONS
Peut-Piloter: entre PILOTE et AVIONS
Membre de :-entre PILOTE ET AEROCLUB
On obtient les relations suivantes:
Pilote(nom,prenom,adresse,nbhvol,brevet,position,habil)
Avions(immat,type,prix,compth,cara)
Aeroclub(raison,divers)
Mvt-Compt-Hvol(nom,codmouv,codnat,date,montant)
VoL (immat,nomvol,nomfact,datedeb,datefin,compthdep,compthfin)
appartient-à (raison,immat)
Peut-Piloter(nom,immat)
Membre de (raison,nom)
Comment faire le MCD?Par quel bout commencer?
Message édité par Elmoricq le 22-02-2008 à 21:28:39