
Envoyé par
Sysko le prospecteur
Bien le bonjour
Je suis actuellement entrain d'écrire un programme en c d'analyse boursière ,
et après avoir coder tout ce qui était affichage des fenetres, profils utilisateurs etc... je me trouve confronter à un problème de taille:
la liste des société ainsi que leurs cours , récupéré par le programme depuis divers sites internets doivent être stocker quelque part ,
je voudrais :
stocker les infos dans une base de donné type mysql ( j'ai cru comprendre qu'il existait un API pour c )
mes questions :
la base de donné c'est un seul fichier ? ( y me semble que oui mais bon .... )
comme c'est uniquement le programme qui gera la base de donné, écriture et lecture ( l'utilisateur final étant un boursicoteur pas un programmeur ) , je doit donc en tant que programmeur ajouté de base dans base de donné un certain nombre de donné ( comme les entreprises du cac 40 et l'historique de leurs cours des 10 dernières années )
je peut le faire depuis quoi ?
base de donné
|
|
|
ecriture / lecture
|
|
programme -------- glane des infos ----- web
|
utilsation
|
utilisateur
PS : à présent ma question me semble un peu idiote ( je n'ai que quelques notions très très legeres de base de donné ) ,
C'est plus un topic d'apprentissage sur les bdd que sur le C car manifestement tu n'y connais pas grand chose...
Une base de données c'est un ensemble organisé de données. Concernant l'architecture interne tu n'y as pas accès, elle est gérée par le moteur de la bdd. Ce peut être un répertoire contenant un fichier par éléments stockés (comme dans Informix, MySQL ou PostgreSQL), un espace disque totalement géré par le moteur (comme dans Ingres) ou un gros fichier mais tu t'en fouts.
Comment est organisée la bdd => avec ce qu'on appelle des "tables". Une table c'est ce qui regroupe des données de même type. dans ton cas, par exemple, tu auras une table pour les actions. Cette table contiendra des "enregistrements" qui sont les infos que tu stockes (un enregistrement = une action).
Chaque table est découpée en "colonnes" qui caractérisent une partie de ton enregistrement. Par exemple tu peux avoir une colonne "nom", une colonne "n°", une autre "pays d'origine", une autre "date de création" etc. C'est à toi de voir, pour chaque enregistrement, ce dont t'as besoin.
A ce niveau là, on pourrait faire une analogie entre "table" et "feuille excel" (si t'as l'habitude)
Ensuite si tu veux associer ces données à d'autres (par exemple un historique des cours), faut que tu crées une 2° table "historique des cours" qui contiendra la date, le cours. Mais pour que ton moteur sache à quel action est associé le cours, faut que tu répercutes dans cette table l'identifiant de l'action considérée (ce qu'on nomme "jointure"). Donc si t'as une table "action" contenant
1 - Suez - Egypte
2 - Arcelor - France
3 - Eurotunnel - Angleterre
Et que tu as des cours pour Eurotunnel, ta table "histo" contiendra ceci
3 - 01/01/07 - 0,20
3 - 31/12/06 - 0,25
3 - 30/12/06 - 0,20
Et grace à un langage "SQL", tu pourras faire des "requêtes" pour demander "tous les cours de la société Eurotunnel" =>
select * from action, histo where action.nom="Eurotunnel" and action.n° = histo.n°
=> Cela te donnera le résultat suivant
3 - Eurotunnel - Angleterre - 01/01/07 - 0,20
3 - Eurotunnel - Angleterre - 31/12/06 - 0,25
3 - Eurotunnel - Angleterre - 30/12/06 - 0,20
Puis des requêtes d'insertion, de modification, de suppression. Bref tout un langage à apprendre.
Ensuite tu pourras utiliser des fonctions C permettant d'envoyer des requêtes au moteur sql et récupérer le résultat.
Les bases de données sont un bel outil et, au delà de ces simples exemples, intègrent des items d'optimisation. Par exemple si tu as souvent besoin de faire une recherche sur le nom de l'action, ben tu peux créer un index sur le nom => les recherches iront plus vite.
Par ailleurs tu peux y intégrer des procédures d'intégrité. Par exemple si tu supprimes l'action "Eurotunnel" de ta bdd que se passe-t-il pour l'historique des cours => ben tu peux demander à ton moteur de bdd de supprimer automatiquement les lignes de l'historique associé (ou alors de refuser la suppression de "Eurotunnel"). Idem si la référence "3" de l'action Eurotunnel (qui sert à la jointure sur l'historique) change et passe à "4" => Ton moteur bdd peut automatiquement répercuter la modif sur l'historique ou alors refuser le changement (à toi de décider) => c'est ce qu'on nomme des "contraintes d'intégrité". Les bdd sont un bel outil mais un outil "complet" qu'il faut d'abord apprendre avant de vouloir les intégrer dans des programmes...
Partager