Rechercher : dans
Par :

Problème pour concevoir un modèle relationnel

Dernière réponse le 9 jun 2009 à 09:46:01 tuyen, le 28 jui 2005 à 15:39:23 
 Signaler ce message aux modérateurs

Bonjour à tous!

Voilà je dois faire une base de données (bdd) et je la fais en relationnel. Mon problème est que j'ai une situation et je ne sais pas comment la modéliser en relationnel.

J'ai une table Client, et une table Voiture. (c'est juste pour illuster mon problème). Maintenant imaginons qu'un client peut louer exactement 5 voitures au maximum. Comment modéliser cela?
Moi j'ai pensé à quelque chose comme ça :

table client :
CLIENT
IDClient (identifiant du client)
IDVoiture1 (identifiant de la première voiture qu'il loue)
IDVoiture2
...
IDVoiture5 (identifiant de la cinquième voiture qu'il loue)

table voiture :
VOITURE
IDVoiture (identifiant de cette voiture)
CouleurVoiture (autres attributs)
etc.

La grande question est concerne le sens de la flèche entre IDClient et IDVoiture. La réponse serait bien sur partant de IDVoiture vers IDClient, mais dans ce cas comment signifier sur le schéma qu'on ne veut que 5 voitures au maximum?

Merci de vos réponses. Je ne sais pas si je me suis bien exprimé alors si vous n'avez pas compris mon problème, merci de demander des précisions!

Meilleures réponses pour « Problème pour concevoir un modèle relationnel » dans :
Le modèle relationnel Voir Qu'est-ce que le modèle relationnel? Le modèle relationnel est basé sur une organisation des données sous forme de tables. La manipulation des données se fait selon le concept mathématique de relation de la théorie des ensembles, c'est-à-dire...
Le modèle TCP/IP VoirLe modèle TCP/IP Cet article décrit le modèle de référence TCP/IP, qui est la norme historique et technique d’Internet. Le ministère américain de la Défense a créé le modèle de référence TCP/IP parce qu’il avait besoin de concevoir un réseau...
Modèles de documents en ligne VoirModèles de documents en ligne : gagner du temps et éviter les pièges On trouve sur Internet une foule de sites qui proposent des modèles de documents à destination des entreprises. De la lettre type d'embauche au bail commercial, on trouve les...
MERISE - Modèle logique des données VoirLe modèle logique des données Le modèle logique des données consiste à décrire la structure de données utilisée sans faire référence à un langage de programmation. Il s'agit donc de préciser le type de données utilisées lors des...
Les modèles de SGBD VoirLes différents modèles de bases de données Les bases de données sont apparues à la fin des années 60, à une époque où la nécessité d'un système de gestion de l'information souple se faisait ressentir. Il existe cinq modèles de SGBD, différenciés...
MERISE - Modèle conceptuel des données VoirModèle conceptuel des données Le modèle conceptuel des données (MCD) a pour but d'écrire de façon formelle les données qui seront utilisées par le système d'information. Il s'agit donc d'une représentation des données, facilement compréhensible,...

1

Ekud, le 28 jui 2005 à 16:00:19

Tu veu modeliser ta base de données sur support papier ???
Si c'est le cas, dessine un MCD (modèle conceptuel de données) qui permet de renseigner les nombres nim et max entre chaque table (=cardinalités)

Répondre à Ekud

2

tuyen, le 28 jui 2005 à 16:08:07

Euh oui pour l'instant je le fais sur papier. En fait c'est une base hypersimplifiée que je dois faire en quelques semaines pour un stage.

Donc un client a au maximum 5 voiture et au minimum 0.
Une voiture peut appartenir à un client obligatoirement.

Mais bon, une fois que j'ai écrit ça, ça ne m'aide pas beaucoup pour la modélisation sur papier en relationnel. (je ne suis pas un pro de la BD, j'en fais que depuis 1 an seulement).

Répondre à tuyen

3

tuyen, le 28 jui 2005 à 16:12:42

Ah oui cela me fait penser à une autre question : Comment exprimer les cardinalités dans le modèle relationnel (d'après ce que j'en sais il n'y a que des flèches).

Répondre à tuyen

4

Ekud, le 28 jui 2005 à 16:19:13

Un MCD se construit de la manière suivante :

entre deux table, tu créer une ligne (liaison). Au milieu de cette ligne tu fais une bulle dans lequel tu ecris le verbe d'action (ex: LOUER). Puis tout se joue dans les deux extremités de cette liaison.
D'un coté tu marque deux nombre : sa valeur max et sa valeur min correspondant à sa table.
Et tu fait pareil de l'autre coté de la ligne (vers l'autre table)
Je m'explique plus clairement :
prenom ton exemple que je vais modeliser de la maniere suivante :

(CLIENT)1,5----------LOUER---------0,n(VOITURE)

Si je lis les première cardinalités, sa donne : "Un client loue au minimum 1 voiture et au maximum 5 voiture."
Et ensuite les deuxieme cardinalités (lecture de l'autre sens): "Une voiture est louée au minimum par 0 client et au maximum par n clients (n étant un nombre indeterminé)".

J'espère que c'ets asser clair car c'est pas facil a expliquer

Répondre à Ekud

5

blux, le 28 jui 2005 à 16:32:05

Une voiture peut être louée par plusieurs clients en même temps ?

Ca sent le surbooking ! ;-)))

Un très bon site (sur merise) pour la modélisation :

http://www.sam-mag.com/P53,53,5,43,,,default.aspx
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

6

Ekud, le 28 jui 2005 à 16:36:10

Blux> Oui hô, c'est sûr, faudrait mettre une entité porteuse de données pour y mettre la date de location mais bon, ce que je voulais exprimer, c'est la lecture des cardinalités.

Répondre à Ekud

7

blux, le 28 jui 2005 à 16:39:50

Ben, voui, je l'avais bien compris comme ça ! ;-)
A+ Blux

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

8

Tuyen, le 28 jui 2005 à 16:48:47

Oui EKUD j'ai compris ce que tu veux dire avec les cardinalités. En UML c'est la même chose, sauf qu'on met les chiffres dans le sens inverse.

Cependant le modèle que j'utilise est le relationnel :

IDClient <-- IDVoiture --> CouleurVoiture, etc.

Pour l'instant sur ce schéma (simplifié), on peur comprendre qu'une voiture correspond à un client, et qu'un client peut avoir une ou plusieurs voitures. Maintenant j'aimerais montrer dans ce schéma qu'un client ne peut louer uniquement jusqu'à 5 voitures seulement sans passer par un autre modèle.

Répondre à Tuyen

9

shaiulud, le 28 jui 2005 à 16:58:17

C'est pour un exercice où un cas concret ton problème?

car si c'est un cas concret,
je te conseille de modéfiser une cardinalité 0-n et de mettre ta valeur max (5 en l'occurance) dans une table de config

car les tables du genre ID, voit1, voit2, voit3 ... sont une catastrophe si tu dois faire des évolution plus tard.

Répondre à shaiulud

10

tuyen, le 29 jui 2005 à 09:45:43

C'est un cas concret... Mais j'ai pas de table voiture1... je n'ai qu'une seule table Voiture et une table Client.

Répondre à tuyen

11

shaiulud, le 2 aoû 2005 à 08:52:45

Je me suis mal exprimé, je parlais des colones de la table.

Répondre à shaiulud

12

random, le 2 aoû 2005 à 10:17:02

Voila qui démontre à merveille l'inanité du MCD et autre analyse
stupide
il y a belle lurette que j'aurais écrit la base correspondante
une table client
une table voiture
une table location
avec une procédure de vérif pour l'entrée dans la table location
que voiture n'est pas louée et que client n'a pas déja 5 voitures louèes
il est plus facile et plus utile de créer un prototype de base que
de se poser ce genre de question vaine sur la manière de représenter ce qui est évident elle est pas belle, la vie ?

Répondre à random

13

El Noño, le 15 jan 2007 à 16:57:10

Sauf que tout modéliser proprement permet de plus tard faire des modifications sans pour autant recommencer tout à zéro par exemple... En plus, ça permet d'être sûr qu'il n'y ait pas d'incohérence et de redondance.
De toutes façons, si le problème est simple, l'analyse n'est pas longue. Sans compter que si quelqu'un doit reprendre ton travail plus tard, il sera sûrement bien contant d'avoir le MCD pour y voir plus clair. Entre autres...

Répondre à El Noño

14

abdel, le 8 jun 2009 à 17:41:09

C'est vrai c'est pas du tout facile la modelisation mais ce que tu demandes est n'est pas trop compliqué,
il faut d'abord créer la table client et mettre les differents attributs qui la compose:
Client:
ID_client
Nom
Prenom
Adr
date_nais.

après cette table il faut penser la même chose pour la 2nd table qui est voiture qui se presentera comme ça.

Voiture:
Num_voiture
Marque
Annee_fabric
Nom

après ces deux etapes on peut maintenant etablir le model relationnel entre les deux tables

un Client peut acheter au moins 1voiture au plus 5
une voiture est acheté au moins par 1 client au plus 1
après on aura les cardinalités maximales des deux tables:(n, 1)
voila ce que je peux proposé comme reponse à ta question .

Par Abdel Diallo de l'université de Nancy ( M1 IE)

Répondre à abdel

15

 tuyen, le 9 jun 2009 à 09:46:01

Euh.... tu sais ca fait depuis bientot 4 ans que j'ai posé cette question... l'exercice concerné est fini depuis belle hurette... d'ailleurs j'ai terminé mes études et maintenant je travaille en tant que consultant en décisionnel... ^^ ... mais merci quand même!

Répondre à tuyen