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 :

Stocker et manipuler des données physiques de manière efficace, BDD ou pas?


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut Stocker et manipuler des données physiques de manière efficace, BDD ou pas?
    Bonjour,

    Alors voila j'aimerais réaliser une application C++, à l'aide de QT, qui servirait dans une petite bibliothèque (4000 livres, 200 lecteurs).

    Pour cela, il est nécessaire de stocker les données (livres, lecteurs, ...) de manière physique sur l'ordinateur. Peut-être me direz vous, "ben utilise les fichiers..". Mais voila, la bibliothèque en question utilise déjà un logiciel de ce type qui fonctionne avec des fichiers seulement les possibilités offertes par l'application semblent assez limitées.

    En effet, l'option tri est inexistante, l'affichage des données très basique et limité, les actions et tests réalisables sur les champs sont également casi inexistant et j'en comprends la raison si c'est en effet stocké de manière statique dans un fichier...

    Donc voila j'ai besoin de votre avis pour choisir la méthode de stockage la plus adapté sachant que l'application servira en local uniquement:

    Est-ce qu'en local, le choix d'une base de données type MySQL qui a de nombreux avantages (indépendance physique et logique, simplicité, accès efficace, absence de redondance, cohérence des données, bonne partageabilité...) reste la meilleure solution?

    Ou alors est-ce mieux de rester sur une manipulation des fichiers? Si oui, laquelle?

    Ou alors y a-t-il encore une autre méthode beaucoup plus adaptée?

    Voila je fais appel à vos avis professionnels pour faire un très bon choix qui fera ses preuves pendant de longue années. Je rappelle que j'aimerais avoir une bonne liberté d'actions sur les données comme celle qu'offre le langage SQL pour offrir le maximum de personnalisations aux futurs utilisateurs.

    Je vous remercie d'avance !
    "La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !" -Albert Einstein

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par Raiden1234 Voir le message
    Je rappelle que j'aimerais avoir une bonne liberté d'actions sur les données comme celle qu'offre le langage SQL pour offrir le maximum de personnalisations aux futurs utilisateurs.
    Je crois que tu as une partie de la réponse
    MySQL, c'est gratuit et cela avance (tu es bien avancé avec des remarques comme cela sur les performances) avec des fonctions de réplication (pas très utile pour toi pour l'instant) et de backup/restore.

    Cela à l'avantage que ce n'est pas à toi de gérer la cohérence des données et qu'en plus, tu pourras faire des requêtes de la mort (liste des livres le plus souvent empruntés cette année, moyenne des durées d'emprunt, nombre de livres par emprunteur en moyenne, ...)

    Mon avis
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    SQLite c'est la reponse

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    Je vous remercie de vos réponses mais est-ce que l'utilisation de SQL en local m'oblige à chaque fois utiliser EasyPHP (par exemple) pour démarrer la base de donnée sur l'ordinateur?
    Parce qu'il va falloir que j'ouvre ma base de donnée sur l'ordinateur à chaque ouverture de session (ce qui serait contraignant pour un simple utilisateur)?
    Ou alors je me trompe et il en est autrement en C++ qu'en PHP?

    EDIT: Il semblerait que SQLite ne m'oblige pas à réaliser ce genre de manipulation, est-ce juste? Si c'est juste, me recommanderiez vous d'utiliser SQLite ou le module SQL de QT?

    Veuillez m'excuser pour toutes ces questions, ceci me travaille beaucoup...
    "La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !" -Albert Einstein

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Utilise SQLite, oui.
    Par contre, sache bien que ce n'est pas aussi performant qu'une solution client/serveur quand il y a des accès concurrents.
    Boost ftw

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    MySQL que ce soit sur une plateforme Windows ou Linux peut démarrer en service Microsoft ou en démon Unix au démarrage de la machine. Nul besoin d'ouvrir une session utilisateur pour démarrer la base. Power ON et cela démarre.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Je ne connais pas mySQL mais le moteur SQL Server est démarré comme service. Ram-0000 dit qu'il en est de même pour mySQL ce qui paraît logique. Donc, tu n'as plus qu'à utiliser ton client pour se connecter à la base et lancer des requête.
    Le moteur BDD t'offrira souvent de meilleur performance que ce que tu pourras faire à la main: c'est fait pour. Par contre, ton client peut fortement dégradé ces performances. Il faut faire attention à ces aspects (fréquence de connexion à la base, type de requête, mise à jour de la base), etc... Après 4000 livres/200 lecteurs, c'est une toute toute toute petite base. Chargé en mémoire une liste de 4000 livres et de 200 lecteurs, ça ne doit pas être trop problématique, ni les algos de recherche/indexation, etc...
    La BDD t'offrira un format de stockage indépendant de ton programme client: autre avantage.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    SQLite c'est le SGBDR basé sur des fichiers ?

    Car si c'est bien le cas, autant utiliser ça, pas besoin de t'embêter avec un serveur (même si le serveur et l'ordinateur de l'utilisateur sont la même machine).
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    Je vous remercie beaucoup pour vos réponses.

    Je vais donc m'orienter vers une BDD, SQLite a l'air très intéressant je vais faire des recherches là dessus.

    Merci ++

    Raiden
    "La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !" -Albert Einstein

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Le module SQL de Qt est une couche d'abstraction des API de chaque BDD

    donc on utilise SQLite avec le module SQL de Qt, SQLite est meme présent par default dans Qt.

  11. #11
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par epsilon68 Voir le message
    Le module SQL de Qt est une couche d'abstraction des API de chaque BDD

    donc on utilise SQLite avec le module SQL de Qt, SQLite est meme présent par default dans Qt.
    Cool, merci pour cette précision!
    "La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !" -Albert Einstein

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Manipulation des donnes (perl+oracle)
    Par AmineDev9 dans le forum SGBD
    Réponses: 17
    Dernier message: 14/01/2008, 19h17
  2. Réponses: 20
    Dernier message: 05/01/2008, 11h52
  3. Réponses: 4
    Dernier message: 09/06/2007, 23h49
  4. [Tables]Stocker et supprimer des données
    Par Melhiril dans le forum Access
    Réponses: 3
    Dernier message: 14/05/2007, 09h45
  5. [xml]manipuler des données xml sous Oracle9i
    Par crazy dans le forum SQL
    Réponses: 7
    Dernier message: 28/02/2004, 11h40

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