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

Langages de programmation Discussion :

Instances multiples vs BDD


Sujet :

Langages de programmation

  1. #1
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut Instances multiples vs BDD
    Bonjour tout le monde,

    voilà, je suis (jeune) étudiant, et je commence à m'intéresser à la modélisation UML. Ce qui m'a amené à me poser une question simple : quand utiliser de multiples instances d'un même objet et quand utiliser une base de donner SQL?

    Je travail généralement en Java, et jusqu'à maintenant je ne travaillé pas avec SQL. En regardant un peu, je me suis rendu compte (sauf erreur de ma part), que travailler avec une base de données SQL reviens à travailler avec une instanciation/suppression d'objets en fonction des besoins. Je me demande donc s'il y a un intérêt à utiliser une méthode plutôt que l'autre (propreté/souplesse du code,...).

    Merci!
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Je n''ai pas du tout compris ce que tu veux dire, et pourtant je connais pas mal la conception objet et les bases de donnees...

    Tu cherches a voir l'interet d'une base de donnee ? Ou savoir quel est l'interet de garder des objets en memoire plutot que d'aller les chercher a chaque fois dans la base ? Ou encore autre chose ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Salut,

    la question doit être un peu idiote, c'est pour ça!

    Je vais donner un exemple concret, ce sera plus simple. Je travail sur la modélisation d'un jeu de type "4X", et j'ai donc besoin que ma carte principale "héberge" une centaine d'objets "système", qui eux même hébergent des objets "étoile" et "planète". Leurs attributs sont connus (diamètre, masse,...) et en en relation les uns avec les autres, mais générés aléatoirement à chaque instance. Ma question est donc de savoir s'il vaut mieux dans ce type de cas instancier mes systèmes, qui eux même instancient les étoiles et les planètes, et garder les instances en mémoires, ou générer le tout et le stocker dans des tables de données pour y accéder quand c'est nécessaire (sachant que ces objets peuvent subir des modifications de leurs attributs).

    Je pense que ça correspond plutôt à la deuxième question que tu pose... Mon avis, pour l'instant, c'est que le stockage d'objets prend plus de temps au départ, mais améliore la vitesse d'utilisation, alors que le stockage BDD, c'est l'inverse. Si je peux avoir une réponse pour le cas particulier, ce serai gentils, une réponse générale sur "quand utiliser une BDD plutôt que de stocker des instances en mémoire".

    J'espère que c'est plus clair...
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Ok, je vois un peu mieux.

    Tu parles de generation aleatoire a chaque instance. Est-ce que tu as une vraie generation aleatoire, ou bien tu choisis dans une liste de possibilites ?

    Dans le premier cas, la BDD est a priori inutile. Par contre, dans le second, si tu as pas mal d'objets, alors ca peut etre interessant.

    En gros, tu ne vas avoir une base de donnees que si tu as un nombre assez important de donnees, voir tres important.
    Si tu as un faible jeu de donnee, tu t'embeteras moins a lire un fichier plat qu'a instancier une base et te connecter dessus.
    Si tu as une volumetrie moyenne, tu as des bases de donnees en fichier, type sqlite, qui est par exemple utilisee par mozilla pour stocker les signets dans le navigateur firefox.
    Enfin, si tu as un tres gros jeu de donnees, tu ne couperas pas a la base de donnees.

    Dans ton cas de generation de donnees par le programme, je ne vois pas bien l'interet de ne pas les garder en memoire : certes, c'est un peu consommateur en memoire, mais le temps d'acces aux donnees en ecriture est relativement lent, et plus complexe a programmer que la simple manipulation de donnees dans un programme.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Dans ton cas de generation de donnees par le programme, je ne vois pas bien l'interet de ne pas les garder en memoire : certes, c'est un peu consommateur en memoire, mais le temps d'acces aux donnees en ecriture est relativement lent, et plus complexe a programmer que la simple manipulation de donnees dans un programme.
    Ok, donc comme c'est du "vrai" aléatoire (instanciation de Random et bornes), je pense qu'il vaut mieux pour moi garder mes objets.

    Par contre quand tu parle de lenteur en écriture et de complexité de programmation, tu parle bien du cas où on utilise une base de données? Sinon, j'ai pas compris...
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  6. #6
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Citation Envoyé par Cafeinoman Voir le message
    Par contre quand tu parle de lenteur en écriture et de complexité de programmation, tu parle bien du cas où on utilise une base de données? Sinon, j'ai pas compris...
    Oui.

    Dans tous les cas, tu auras des objets a manipuler. Mais dans le cas de la base de donnees, il est necessaire d'ecrire du code supplementaire pour lire/ecrire dans la base, parfois de gerer des transactions, ...

    Meme si avec ODBC (JDBC pour Java) ou des framework comme Hibernate ou les possibilites offertes par les IDE c'est plus simple, ne pas faire une usine a gaz reste un peu complexe. Donc si tu ne dois pas utiliser une base, autant ne pas se compliquer la vie.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/02/2008, 18h05
  2. Instances multiples de Tk et PhotoImage
    Par atalon1 dans le forum Tkinter
    Réponses: 2
    Dernier message: 03/02/2008, 18h03
  3. [MySQL] Menu déroulant multiple avec bdd
    Par spawns dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 31/01/2008, 00h01
  4. [kate] interdire les instances multiples
    Par Eusebius dans le forum KDE
    Réponses: 0
    Dernier message: 24/08/2007, 11h45
  5. Instances multiples du meme objet
    Par jbjweb dans le forum wxPython
    Réponses: 3
    Dernier message: 26/02/2007, 10h34

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