IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Base de donnée dans un programme


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut Base de donnée dans un programme
    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é ) ,

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 838
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Sysko le prospecteur Voir le message
    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" =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    D'accord , sinon exact j'y connait pas grand chose et d'ailleurs en ce moment même je suis entrain de reunir de la doc sur les base de donné ,

    au depart j'avais penser faire cela avec seulement des fichiers textes et des fonctions de recherche etc... mais j'ai très vite compris en faisant des recherches qu'une base de donné et un moteur du type mysql gererait cela mieux que moi avec bien évidemment pour contrainte d'apprendre à ce servir ce nouvel outil , mais bon il fallait bien en tant qu'étudiant en informatique que j'y passe un jour ou l'autre ^^

    pour ce qui est des tables , des relations 1-n ,n-n etc... je commence à comprendre donc je vais devoir


    1 - apprendre du theorique ( un peu / beaucoup ? ) ( ce que je suis entrain de faire)
    2 - modeliser ma base de donné sur "papier" pour voir les relations entre les différentes tables , optimiser le tout
    3 - apprendre à me servir d'un moteur de base de donné ( je penche vers mysql vu que mon projet sera en license gpl )
    4 - intégrer le tout à mon projet

    c'est bien cela ? je grille pas d'étape ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/07/2014, 12h33
  2. Réponses: 0
    Dernier message: 17/04/2010, 11h04
  3. Réponses: 7
    Dernier message: 05/01/2005, 13h43
  4. Réponses: 4
    Dernier message: 29/11/2004, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo