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

JDBC Java Discussion :

Choix d'une base de donnée embarquée


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Choix d'une base de donnée embarquée
    Bonjour tt le monde,
    je débute en programmation java, j'ai besoin d'une petite BD pour mon app, svp quels sont les choix que j'ai, je trouve ds la documentation sur jdbc que c'est pour connecter a un sgbd, mais je veux une application autonome (strandalone) sur un poste, est c'est impossible d'avoir une telle architecture ? c-a-d sans sgbd installé sur la machine cible ? si j'utilise le pilote de MySQL par exemple, est ce que mon application ne fonctionnera pas si un serveur MySQL n'est pas installé ? j'ai besoin de trois ou 4 tables.
    merci d'avance.

  2. #2
    En attente de confirmation mail
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2010
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 501
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonsoir,

    HSQLDB devrait être adapté pour ce besoin.
    C'est beaucoup plus portable que MySQL.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci bcp Mr Nudger, c'est gentil de votre part, je vais surement l'utilier;
    mais s'il vous plais, si vous avez un peut de temps, de me dire si j'utilise oracle ou MySQL par exemple, avec les pilotes jdbc, ça sera uniquement dans un contexe client/serveur ? donc l'application finale ne comportera pas une bd "intégrée", et la présence de l'orale dans ce cas est obligatoir dans l'environnement où l'application va tourner ? car j'ai une petite experience avec delphi, qui date de plusieurs années , j'avais l'habitude d'ulitliser des tables dbase ou paradox, sans avoir a installer le SGBD proprement dit dans l'environnement cible, est ce que java est différent la ?
    merci++,

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Points : 432
    Points
    432
    Par défaut
    Oui si tu veux utiliser MySQL ou oracle , il faut l'installer ... , je ne comprend pas ce que tu veux savoir?

    Tu veux savoir si tu peux installer sur le même poste de travail ton application et le SGBD ? Oui c'est tout à fait possible.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci pour votre message,
    quand je developpe l'application, c'est sure que je dois installer le SGBD, mais apres le deploiement du logiciel, soit disant mon logiciel est installé chez mon client, est ce qu'il doit installer le SGBD aussi, ou bien le logiciel fonctionnera tout seul ? c-a-d est ce que la base de donnée est incluse dans le logiciel livré, oubien le SGBD utilisé doit être installé en plus de mon logiciel ?
    merci beaucoup

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Points : 432
    Points
    432
    Par défaut
    J'allais répondre non , mais en fait je viens de regarder , il existe bien une version embarqué de MySQL , dans ce cas la en effet cela doit être possible.

    Pour ce qui est d'oracle , il est spécialisé dans le stockage de très grosse base de données , plusieurs TO donc pas fait pour votre demande.

    Mais ce que propose Nudger à l'air plus adapté à vos besoins.

    Sinon es que vous avez vraiment besoin d'une bdd relationnel , d'utiliser du sql ect ..., dans votre application ?

    Vous pouvez utiliser Oracle Berkeley DB Java Edition:

    Oracle Berkeley DB Java Edition is an open source, embeddable, transactional storage engine written entirely in Java. It takes full advantage of the Java environment to simplify development and deployment. The architecture of Oracle Berkeley DB Java Edition supports very high performance and concurrency for both read-intensive and write-intensive workloads. Depending on your needs choose between Berkeley DB Java Edition's Direct Persistence Layer (DPL), Persistent Collections API, or simply store key/value pairs of arbitrary data. If your application requires something outside the bounds of relational databases then Berkeley DB Java Edition is likely to be the best choice.

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    en java pour embarquer une base de donnée avec l'application, on utilise hsqldb, derby, ou h2database par exemple, qui ne nécessitent aucune installation et sont 100% java. Pour les autres, a réserver dans le cadre d'un déploiement client/server dans un environnement controlé.

  8. #8
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 084
    Points
    7 084
    Par défaut
    J'ai déjà utiliser des base de données embarquées Firebird et MySQL. Ca marche plutôt bien.
    Mais les bases pure-Java, citées par Tchize_, sont beaucoup plus simples à utiliser (pas de librairies natives).

    Pour informations, nous utilisons H2 qui fonctionne soit en mode serveur, soit en mode embarqué. La base de données gère même des triggers/procédures/fonctions à condition de ne pas utiliser de "ClassLoader dynamique".

    Pour ce qui est d'Oracle je le déconseille. Je connaissais pas trop mais depuis que j'utilise beaucoup (dévelopement, administration) c'est le calvaire. C'est bourré de bugs, complétement non-triviale, super cher et pas si performant.

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    c'est parce que oracle n'est performant et ne donne toute sa puissance que pour des très grandes masses de données et à condition de l'avoir configurée correctement, ce qui est un boulot a part entière. Ca ne se justifie certainement pas pour 4 tables.

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Nemek Voir le message
    Pour ce qui est d'Oracle je le déconseille. Je connaissais pas trop mais depuis que j'utilise beaucoup (dévelopement, administration) c'est le calvaire. C'est bourré de bugs, complétement non-triviale, super cher et pas si performant.
    Assez d'accord côté performance, on avait fait des bench entre Oracle, DB2, MySQL et Progress et le classement avait mis Oracle en 3ème position.
    Dans l'ordre :
    1-DB2
    2-MySql (très proche de DB2)
    3-Oracle (éloigné significativement mais pas à la ramasse non plus)
    4-Progress (<- une véritable cata !)

    L'installation était tout aussi pénible d'ailleurs, 1 journée pour configurer correctement contre 1/2 heure pour DB2 et encore moins pour MySQL.
    Bon, il est vrai que depuis, ils ont fait des progrès...

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    1 journée pour configurer correctement
    Cherche pas, oracle pour le tuner correctement, il faut au moins y passer deux semaines (tuning des tets de stockage, choix des stratégie d'index, monitoring, etc). En plus de mémoire oracle a des système qui optimisent les requetes sur le long terme (du style "a mais tous les mardis tu me demande ce genre de chose, ok, lundi je vais penser à rebuilder doucement mes indexes pour qu'ils soient prets")


    Maintenant, au boulot je suis parfois impressionné de la vitesse à laquelle il arrive à nous faire des jointures dans tous les sens et nous sortir les résultat en un claquement de doigt. Je devrais une fois comparer nos requete sur le serveur "prod" et sur une installation de base :p

  12. #12
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    DB2 UDB a également des "choses" qui permettent d'optimiser sans se poser de question, elle est assez bluffante je trouve... et les outils d'administration sont vraiment bien.
    Ceci dit, j'utilise plus MySQL...

  13. #13
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 084
    Points
    7 084
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    c'est parce que oracle n'est performant et ne donne toute sa puissance que pour des très grandes masses de données et à condition de l'avoir configurée correctement, ce qui est un boulot a part entière. Ca ne se justifie certainement pas pour 4 tables.
    J'ai une dizaine de tables avec des millions d'enregistrements ... Et la configuration en production est effectuée par une équipe d'experts Oracle.
    L'optimiseur est super capricieux sur la façon d'écrire une requête. Bon je dois avouer qu'on utilise des bases distantes pour certaines vues, ça n'arrange pas les choses ... Certains projets migrent vers des vues matérialisés pour ces base de données.

    Citation Envoyé par OButterlin Voir le message
    L'installation était tout aussi pénible d'ailleurs, 1 journée pour configurer correctement contre 1/2 heure pour DB2 et encore moins pour MySQL.
    Bon, il est vrai que depuis, ils ont fait des progrès...
    1 journée c'est pour une base de données pas trop compliquée ... Si tu te lances dans une architecture DataGuard tu peux bloquer la semaine -_-'


    En tout cas, la gestion de la chaîne vide et du null sont devenus un critère discriminant envers Oracle.
    Dans une application, on a été obligé d'interdire les chaînes vides pour certains champs.

  14. #14
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    y a pas de problème avec la gestion du null dans oracle, il respecte pour ca exactement les standard SQL. Par contre l'assimilation de la chaine vide à un null, c'est une belle saloperie en oracle

  15. #15
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 084
    Points
    7 084
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Par contre l'assimilation de la chaine vide à un null, c'est une belle saloperie en oracle
    C'est bien à ça que je faisais référence. Le pire dans tout ça c'est l'absence de logique.
    Exemple (fais en live, désolé pour la syntaxe foireuse)
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CREATE TABLE PROPERTY(IDNUMBER(9), VALUE VARCHAR2(255), PRIMARY KEY (NAME));
    INSERT INTO PROPERTY(NAME, VALUE) VALUES (1, '');
    SELECT * FROM PROPERTY WHERE VALUE = '';
    DROP TABLE PROPERTY;

  16. #16
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    ben ouais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM PROPERTY WHERE VALUE = '';
    assimilé en oracle à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM PROPERTY WHERE VALUE = NULL;
    et en SQL tout comparaison avec un NULL (en ce et y inclu NULL avec NULL) renvoie false

  17. #17
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Nemek Voir le message
    1 journée c'est pour une base de données pas trop compliquée ... Si tu te lances dans une architecture DataGuard tu peux bloquer la semaine -_-'
    Oui, je parlais d'une configuration de base, sans rien de spécial... mais là, 1 journée, c'est tout de même énorme
    L'édition Express permet d'aller plus vite maintenant.

  18. #18
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 084
    Points
    7 084
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    et en SQL tout comparaison avec un NULL (en ce et y inclu NULL avec NULL) renvoie false
    Ouais d'ailleurs j'ai eu pas mal de problème avec des conditions IN

    Citation Envoyé par OButterlin Voir le message
    Oui, je parlais d'une configuration de base, sans rien de spécial... mais là, 1 journée, c'est tout de même énorme
    L'édition Express permet d'aller plus vite maintenant.
    Ouais mais l'edition Express n'est pas maintenue et celle de la 10g est buggée.
    L'optimiseur "plante" à la génération du plan d'exécution de certaines requêtes avec un SELECT imbriqué. Idem pour certaines jointures avec des tables distantes où il envoie certaines conditions locales à la base distante qui du coup plante.

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour tout le monde,
    merci infiniment pour votre precieuse aide, c'est vraiment gentil, et je vien de découvrir hsqldb, c'est parfait pour mes besoins actuels,
    en fait, je suis nouveau dans ce forum, et je trouve qu'il est digne de son nom : un forum pour les pro, c'est agréable , et constructif surtout, j'espere que je pourais vous aider moi aussi

    for n=0 to infin
    ((...(merci++)++)++ ...++)++ ;

    a moins que le sys ne se bloquera pas

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

Discussions similaires

  1. Quel choix pour une base de données embarquée ?
    Par Schyzophrenic dans le forum JDBC
    Réponses: 2
    Dernier message: 04/07/2008, 19h49
  2. choix d'une base de données simple
    Par semenzato dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 12/07/2005, 14h18
  3. choix d'une base de donnée
    Par frisouille dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 17/06/2005, 15h52
  4. Choix d'une base de données
    Par AlexB59 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 07/06/2005, 17h02
  5. Choix d'une base de données
    Par maurice66 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 15/07/2004, 10h14

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