Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD
Décisions SGBD Forum de décisions sur le choix en bases de données. Le Comparatif
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2006, 09h58   #1
Invité régulier
 
Inscription : juin 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 38
Points : 7
Points : 7
Par défaut Cardinalité- modélisation base de données

Bonjour tout le monde,
j'ai un petit problème au niveau de mes cardinalités :
J'ai une centaines d'objets et 4 plateaux.
Les objets se positionnent sur les plateaux.
A un instant t, un objet A ne peut se trouver que sur un seul plateau (logique)
Cependant, à l'instant t+1, il peut très bien se trouver sur un des trois autres plateaux

Ainsi, la cardinalité qui relie objet à plateau est -elle :
-- (0, n) --> un objet peut se trouver sur plusieurs plateaux, ou bien
-- (0, 1) --> un objet peut se trouver sur 0 ou 1 plateau ?????

Car je ne sais pas si la cardinalité se calcule à l'instant t ou pour un tps infini.

Merci de votre aide
LaFik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 10h39   #2
Invité régulier
 
Inscription : juin 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 38
Points : 7
Points : 7
Et si la cardinalité est (0,1), quelqu'un sait comment je pourrait archiver les compositions de chaque plateau ?
En fait je voulais avoir un attribut : "date_objet_plateau" qui indiquerai a quelle(s) date(s) se trouve l'objet X sur le plateau Y.
Mais si ma cardinalité est (0,1) je ne peut pas mettre cette attribut dans l'association qui aurait pu relier les deux tables.
comment faire pour garder un historique de tout ca ???
Aidez moi please, je me perd !!!
LaFik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 11h23   #3
Invité régulier
 
Inscription : juin 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 38
Points : 7
Points : 7
Re Salut,
en fait j'ai lu ça sur le site de Developpez.com (http://mhubiche.developpez.com/Acces...s/bases/#LII-1) :
"Donc, lorsque nous sommes en présence d’une association plusieurs à plusieurs, il convient de toujours se poser les questions relatives aux données complémentaires, et tout particulièrement les données historiques. "

Ma question est : Lorsque nous sommes en présence d'une association 0 (ou 1) à plusieurs, est-ce que les Historiques de ces données pourront être automatiquement retrouvés ? ou faut il que je le modélise explicitement ?
LaFik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 12h35   #4
Inactif
 
Avatar de Médiat
 
Inscription : décembre 2003
Messages : 1 946
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 946
Points : 1 932
Points : 1 932
Il te faut 3 entités :

Citation:
Plateau (IdPlateau, Attributs définissant les plateaux...)
Objet (IdObjet, Attributs définissant les objets, sans tenir compte des plateaux...)
Position (IdObjet, DateDebut, IdPlateau, ...)
Les clés sont soulignés, cela devrait te permettre d'en déduire les cardinalités.
Médiat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 13h36   #5
Invité régulier
 
Inscription : juin 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 38
Points : 7
Points : 7
Salut,
merci bcp pour ta réponse.
En fait j'avais essayé de faire ceci auparavant :
Modèle Conceptuel des Données3.doc,

est-ce ca pourrait aller, compte tenu de mes exigences ?
Est-ce qu'avec ce schéma là, je pourrai plus tard faire un historique sur les différentes versions des plateaux (ex : retrouver la version du plateau X à la date Y, ou encore, sortir ttes les versions du plateau X contenant l'objet O ?).
???
LaFik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 14h27   #6
Inactif
 
Avatar de Médiat
 
Inscription : décembre 2003
Messages : 1 946
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 946
Points : 1 932
Points : 1 932
Citation:
Envoyé par LaFik
est-ce ca pourrait aller, compte tenu de mes exigences ???
Je en crois pas, un objet n'ayant qu'un seul Version_plateau, tu ne peux pas retrouver l'historique !
Médiat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 14h29   #7
Invité régulier
 
Inscription : juin 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 38
Points : 7
Points : 7
Ok, ne bouge pas, je vais essayer de faire comme tu m'as dit.
Apres je te montre,
Merci, ca m'aide beaucoup,
LaFik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 14h58   #8
Invité régulier
 
Inscription : juin 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 38
Points : 7
Points : 7
Voilà, j'ai changé : j'ai rajouté une table pour la position des objets, indépendamment de leur N°de série et autres caractéristique.
Modèle Conceptuel des Données4.doc,
peux tu me dire si avec ca y a moyen de faire historique sur les version des plateau et un historique sur les objet et leurs différentes positions ?
D'avance merci,

PS: si tu as des critiques à faires ou d'autres idées n'hésites pas ...
LaFik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 15h50   #9
Inactif
 
Avatar de Médiat
 
Inscription : décembre 2003
Messages : 1 946
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 946
Points : 1 932
Points : 1 932
Je n'ai pas beaucoup de temps maintenant, mais regarde là :
http://www.developpez.net/forums/sho...d.php?p=516217
Médiat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 16h15   #10
Invité régulier
 
Inscription : juin 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 38
Points : 7
Points : 7
Merci c'est cool,
je vais essayer de me concentrer sur le paragraphe enorme que tu as écrit. Par contre le document :"Un MCD pour servir d'exemple" je n'arrive pas à le lire.
Est-ce que tu pourrais essayer de me le renvoyer par hasard.
Merci beaucoup.
Je reviens des que j'ai une autre question !
Je pense bientot
LaFik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 16h55   #11
Invité régulier
 
Inscription : juin 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 38
Points : 7
Points : 7
En fait, par rapport à ce que tu a écrit sur l'autre discussion que tu m'a envoyé, je pense que mon pb correspond a un historique.
En effet, l'outil que je dois mettre en place doit pouvoir :

-- sortir l'historique des l'ensemble des versions d'un plateau
Exemple 1: sortir la configuration du plateau A à la date du 10 juin 2002

-- sortir l'historique d'un composant
Exemple 2: sortir la liste de l'ensemble des versions de plateau utilisant
une carte XY 2.03.
aurais-tu des cours la dessus, et encore mieux des exemples de schemas de modélisation avec ce genre d'historique ?

Merci bcp, ton aide m'est tres précieuse, sans ca je suis perdu dans mon stage.
LaFik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 17h47   #12
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Vous faites tous la même erreur de modélisation qui se répête de décennies en décennie... Vous oubliez que DATE est une entité que l'on pourrait apeller PLANNING !

Donc le modèle conceptuel se résume à :

Code :
1
2
3
Plateau (IdPlateau (clef), Attributs définissant les plateaux...)
Objet (IdObjet (clef), Attributs définissant les objets, sans tenir compte des plateaux...)
Planning (DateHeure (clef))
A partir de ces entité, la relation est :

avec des liens identifiants (1,1) pour objet et planning.

Ce qui conduit au modèle physique :

Code :
1
2
3
4
Plateau (IdPlateau (clef), Attributs définissant les plateaux...)
Objet (IdObjet (clef), Attributs définissant les objets, sans tenir compte des plateaux...)
Planning (DateHeure (clef))
Situé ((IdObjet (ce) , DateHeure (ce) clef), IdPlateau (ce))
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 18h05   #13
Inactif
 
Avatar de Médiat
 
Inscription : décembre 2003
Messages : 1 946
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 946
Points : 1 932
Points : 1 932
Pour gérer l'historique des plateaux, des objets et de l'appartenance :
Images attachées
Type de fichier : jpg lafik.jpg (17,2 Ko, 10 affichages)
Médiat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 09h41   #14
Invité régulier
 
Inscription : juin 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 38
Points : 7
Points : 7
Salut !
Pour répondre à SQLpro (merci de ton aide) j'ai essayer de faire ce schéma du coup : MCD5.doc,
Par contre j'ai pas compris les cardinalités. Peux tu me les réexpliquer please . (eh oui je débute, j'ai encore du mal).

Et par rapport à ce schéma penses tu que ceci répondra à mes exigneces d'historiques que j'ai cité un peu plus haut dans la discussion ?
Merci beaucoup.

Quand à toi Mediat, merci également, je vais essayer de faire un autre schéma en me basant sur le tien. Par contre je n'ai pas compris pourquoi tu a mis une version objet (qu'est-ce que je doit mettre de plus que ds objet ?), et je n'ai pas compris non plus comment lire les cardinalité .

Je suis désolé d'etre un boulet mais j'ai vraiment besoin de votre aide !
Encore merci.
LaFik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 10h04   #15
Inactif
 
Avatar de Médiat
 
Inscription : décembre 2003
Messages : 1 946
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 946
Points : 1 932
Points : 1 932
VersionObjet est là pour garder l'historique des changements dans la définition des objets, si tu n'en a pas besoin, il suffit de l'enlever.

Pour les cardinalités :
s'il y a une patte : maxi = 1
s'il y a 3 pattes : maxi = n
S'il y a une flèche : relation identifiante (la clé migrée fait partie de la clé)
si le trait est barré par un 0 : mini = 0
si le trait est barré par un I : mini = 1
Médiat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 10h57   #16
Invité régulier
 
Inscription : juin 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 38
Points : 7
Points : 7
Salut Mediat,
j'ai tenté de faire le schéma suivant par rapport à ce que tu m'a dit :
MCD6.doc.
Je ne suis pas sure des cardinalités entre position et objet.
Peux tu m'expliquer, si tu as le tps, en quoi ce schéma peux répondre à mes exigences et gérer les historiques des versions des plateaux et des appartenances des objets aux différentes versin du plateau.
Merci bcp.
LaFik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 11h13   #17
Inactif
 
Avatar de Médiat
 
Inscription : décembre 2003
Messages : 1 946
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 946
Points : 1 932
Points : 1 932
C'est de ma faute, je suis allé trop vite :

les cardinalités entre "Objet" et "POSITION OBJET DANS UNE VERSION DE PLATEAU" doivent être interverties.

Du coup Date début ne sera plus dans Objet, ObjetId sera dans "POSITION OBJET DANS UNE VERSION DE PLATEAU"

Presence_objet est inutile, je ne comprend pas connexion_objet dans "POSITION OBJET DANS UNE VERSION DE PLATEAU"
Médiat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 11h37   #18
Invité régulier
 
Inscription : juin 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 38
Points : 7
Points : 7
En fait l'outil doit me sortir un fichier pour chaque version de chaque plateau.
Ce fichier est représenté sous forme d'un tableau.
La 1ere colonne du tableau liste l'ensemble des objet présents sur le plateau (plateau A, par exemple).
Les autres colonnes correspondent à la réference de chaque objet, leur N° de série, ... et encore d'autres colonnes dont les colonnes :
-- présence_sur_plateau : qui indique si l'objet est présent sur le plateau A
-- connection_au_plateau : qui indique si l'objet est connecté au plateau A (connecté à d'autres objets du plateau A), indépendamment de sa présence. Car un objet peut etre présent sur le plateau A sans pour autant être utilisé. Un objet peut également etre connecté aux objets d'un plateau A (via des cables) tout en étant présent sur le plateau B !!
C'est compliqué je l'avoue. Mais c'est pas moi qui est posé les regles .

Penses tu que je suis sur la bonne voie pour le schéma ?
LaFik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 11h39   #19
Invité régulier
 
Inscription : juin 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 38
Points : 7
Points : 7
En fait les attributs "présence" et "connection" sont des boolean.
C'est l'attribut "position" qui indique la position de l'objet s'il est présent.
LaFik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2006, 14h21   #20
Inactif
 
Avatar de Médiat
 
Inscription : décembre 2003
Messages : 1 946
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 946
Points : 1 932
Points : 1 932
Un enregistrement dans "POSITION OBJET DANS UNE VERSION DE PLATEAU" indique que l'objet x est présent dans le plateau A à partir de telle date, le booléen présence_sur_plateau sera donc toujours à TRUE, il ne sert donc à rien !

Change les cardinalités comme je te l'ai dit avant et cela devrait coller (même solution que ma première réponse, avec l'historique en plus)
Médiat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h04.


 
 
 
 
Partenaires

Hébergement Web