Base de donnée

Base de donnée - Programmation

Marsh Posté le 05-08-2002 à 16:37:20    

Voila j'essaye de comprendre les bases de données notament la base acess, afin que je puis travailler celle-ci sous Visual Basic. En effet jusqu'à ce jour, j'enregistre toutes les données sous forme de fichier texte (open "toto.dat" for ouput as #1).
Donc petite question:
 
Exemple : Dans access, j'enregistre le nom et prénom d'une personne, mais comment faire pour enregistrer les notes des diférents test effectué au cour de l'année, en sachant que leur nombre n'est pas connu d'avance.
 
Aussi pourkoi plusieurs table dans une base de données ?
 
Merci pour tout.

Reply

Marsh Posté le 05-08-2002 à 16:37:20   

Reply

Marsh Posté le 05-08-2002 à 17:10:06    

je vais répondre seulement pour les tables multiples : tu prends l'exemple d'un fichier client et civlité. Chaque personne posséde une civilité.
 
 
dans la table client tu as :

  • ID_client
  • Nom
  • prénom
  • adresse1
  • adresse2
  • cp
  • ville


dans la table civilités tu as :

  • ID_civ
  • libellé civ


sur ta feuille tu auras une combo, avec les civilités venant de la table civilités et les cadres pour saisir les informations sur le client. A l'enregistrement, dans la table client tu auras alors, le nuéméro de la civilités choisi et les informations concernant le client!
 
pour retrouver par exemple la civilités du client, avec le numéro que tu as, tu fais une recherche direct dans le fichier civilités et tu obtient, le libélle, c'est rapide et facile...!
 
Bien sur tu va dire pourquoi ne pas mettre, la civilits dans le fichier client ??? tu pourrais le faire, mais c'est pas trés malin, car si tu veux compter le nombre d'homme et de femmme tu seras obloigé de passer en revue tout l'enregistrement, du début jusqu'à la fin et de faire la recherche sur le libellé.  
 
Ce n'est pas trés fiable car il arrive parfois qu'il confonde les noms ayant les premiers caractéres identiques.  
 
Par contre la méthode de placer les civiliés dans l'autres fichier et bien, car au lieu de passer en revue, tout le fichier, tu feras la recherche sur le numéro que tu aurs dans le fichier client, en séquentiel indexé, dans le fichier client...c'est rapide et extremement fiable  ! ;)
 
 
Maintenant, je te conseille d'aprendre les bases du MCD (modéles conceptuelle de donnée) et tu MCT (modéle conceptuel de traitement), tu auras des explications supplémentaires...car tu as aussi une histoire de cardinalité, mais je n'en dis pas plus....!


Message édité par macray le 05-08-2002 à 17:10:57
Reply

Marsh Posté le 05-08-2002 à 17:20:59    

En fait, c'est justement toute l'utilité d'un base de donnée : tu ne sais pas quelle quantité de données tu va manipuler (et tu t'en fiche) mais tu sais quel type de données tu va manipuler.
 
Normalement, la règle dans un base de données, c'est d'éviter la redondance d'information et pour cela ne stocker qu'un seul et même type de données dans chaque table.
 
Dans ton exemple, tu as trois type de données : d'abord le nom et prénom d'un utilisateur qui servent à l'identifier, les différents exams (date/matière par exemple) puis les notes des élèves aux exams.
 
Une structure possible pour ton l'information que tu as a stocker serait par exemple :
 
Une table pour stocker les utilisateurs (num est le numéro de l'utilisateur):
 
Num    Nom    Prenom
1      Bob    Bob
2      John   John
 
Une table pour stocker les examens :
 
NumExam Matière Date Exam
   1         H     15/02/02
   2         G     18/04/02
 
Et enfin une table pour stocker les différentes notes des différents élèves aux différents exams
 
NumExam  NumEleve Note
   1        1      15
   1        2      16
   1        2      14
 
 
De la sorte, tu n'a pas besoin de connaitre à l'avance ni le nombre d'élève / exam / notes.

Reply

Marsh Posté le 05-08-2002 à 18:12:20    

merci à vous tous...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed