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 :

Embarquer une base de données MySQL


Sujet :

C#

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut Embarquer une base de données MySQL
    Bonjour,

    voilà, j'ai mon application qui utilise une base MySQL,
    j'ai un serveur d'installé en local, mais j'aimerai bien pouvoir utiliser
    ma base de données à la manière d'Access, sans forcément installer un serveur sur le client (application lourde).

    Comment ferriez vous?

    Un autre système qu'une base de données MySQL?

    En fichier uniquement, il existe Access, SQLite mais ils sont moins performant que MySQL sur le long terme.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par dtcSearch Voir le message
    Un autre système qu'une base de données MySQL?
    Oui, forcément... MySQL ne fonctionne pas sans installer de serveur

    Citation Envoyé par dtcSearch Voir le message
    En fichier uniquement, il existe Access, SQLite mais ils sont moins performant que MySQL sur le long terme.
    Access n'est pas terrible, mais SQLite a des performances très correctes, même pour des bases assez grosses (peut-être pas pour des Go de données, mais pour quelques dizaines ou centaines de Mo ça marche bien). En plus, le provider ADO.NET pour SQLite supporte Entity Framework

    Sinon, tu peux aussi jeter un coup d'oeil à SQL Server Compact Edition, qui a l'avantage de bien s'intégrer avec Visual Studio et .NET

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    Merci pour votre réponse,

    je cherchais encore et je suis tombé là dessus:
    http://stackoverflow.com/questions/4...ives-to-sqlite
    Il en ressort une liste assez sympa:
    VistaDB
    DotNetFirebird
    SQLCE (un teste entre SQLCE et SQLite)
    SQLite
    H2 Database Engine (plutôt Java, pas utilisable en DotNet, enfin j'ai rien trouvé)

    Et ici:
    http://www.connectionstrings.com/
    Y'a une grosse partie sur les "Data Files"
    Excel 2007
    Excel
    Textfile
    Access 2007
    Access
    Visual FoxPro / FoxPro 2.x
    DBF / FoxPro
    SQLite
    Filemaker

    Bref, je pense que SQLite est sans doute le meilleurs choix dans un mode Stand Alone.

    Juste une dernière question, imaginons que nous faisions un Installer qui inclurai MySQL.
    Si un autre programme lancer en même temps utilisant MySQL, ça bloquerai notre programme (en toute logique), il faut prévoir ce cas, faire une configuration particulière de MySQL (changer de port suffit?)

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Sql Server Ce (version actuelle 3.5 SP2) présente l'avantage en développement .Net de pouvoir utiliser Linq .Net et Entity (en plus, mais cekla ne concerne que les utilisateurs Sql Server, de la réplication de fusion avec 2005 et 2008).

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    C'est un avantage effectivement.

    J'aimerai savoir niveau performance, lesquels sont les mieux?

    Mon cas est le suivant, une grosse base de données avec assez peu d'accès concurrent (peu de charge) (< 2 requêtes / secondes)

    Je vous remercie d'avance

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par dtcSearch Voir le message
    C'est un avantage effectivement.

    J'aimerai savoir niveau performance, lesquels sont les mieux?
    En performances pures, SqLite *semble* (pas fait d'essais comparatif car je ne les utilise pas du tout pour le même usage) plus rapide, sous réserve de toujours utiliser les transactions en écriture (sinon c'est une cata ....)

    Cela ne compense pas à mon avis tous les autres inconvénients et notamment son absence totale de sécurité (pas de contraintes d'intégrité, etc ....)

    Bref, SqLite, pourquoi pas mais, pour ma part, pas pour des données métiers persistentes. En revanche, en tant que SGBD embedded pour des traitements pourquoi pas.

    Autre avantage de Sql Ce, c'est qu'on peut manipuler la base avec SSDE (mais encore une fois, cet avantage doit être relativiser pour un non utilisateur de Sql Server 'Server').


    Mon cas est le suivant, une grosse base de données avec assez peu d'accès concurrent (peu de charge) (< 2 requêtes / secondes)

    Je vous remercie d'avance
    Qu'entends tu par "grosse" base ? et tu l'embarques sur quoi ? (Tablet PC, PC portable ?).

  7. #7
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Oui, forcément... MySQL ne fonctionne pas sans installer de serveur
    Il y a une librairie libmysqld.dll qui théoriquement permet de faire un serveur embarqué, mais je n'ai jamais pu l'utiliser avec c#.
    Il y a de la doc à ce sujet sur le net....

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    Par grosse base, j'entends une base qui va contenir 10 ans de métier à raison d'une 100ène de nouveaux enregistrements par jours, qui peut au final frôler les 2Go je pense (en fonction de la base bien sûr).

    En faite, le projet est assez simple, c'est une appli métier, mais je ne voulais pas installer une SGBG sur la machine parce qu'elle peut être connecté à un serveur mais aussi travailler en "déco" donc dans une petite base qui sera synchronisé par la suite.
    Pour moi, l'emebeded était une solution simple qui permettait un compromis.

    Maintenant, vu qu'il est possible d'utiliser MySQL en embeded, là, ça devient assez intéressant, parce que ça permettrait de faire les deux cas de la même façon.

    Sinon, pour mon cas? un SGDB? ça serait mieux peu être non?

    (MySQL Embeded for C# avec libmySQL.dll > http://www.cybercom.net/~zbrad/DotNet/MySql/)

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par dtcSearch Voir le message
    Par grosse base, j'entends une base qui va contenir 10 ans de métier à raison d'une 100ène de nouveaux enregistrements par jours, qui peut au final frôler les 2Go je pense (en fonction de la base bien sûr).
    Ok. Le concept de "grosse base" rentrant dans le cadre des UPP (Unités Pifométriques Personnelles) il est en effet plus simple de le préciser.

    En faite, le projet est assez simple, c'est une appli métier, mais je ne voulais pas installer une SGBG sur la machine parce qu'elle peut être connecté à un serveur mais aussi travailler en "déco" donc dans une petite base qui sera synchronisé par la suite.
    Pour moi, l'emebeded était une solution simple qui permettait un compromis.
    J'avoue ne pas voir dans ton cas d'avantage (au contraire) à ne pas installer un serveur sur la machine. Du point de vue de la syncho c'est même un inconvénient.

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    Si y'a déjà un serveur d'installer dessus?

    :S c'est ça qui m'embête, le fait d'installer un service sur la machine (tierce) qui peut entrer en conflit avec une autre application.


    ps: pour ce qui est de la taille de la base de données, pour être plus précis, je dirais une palanqué de données.

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    Finalement, je pense (pour des questions de licences) que PostgreSQL est la meilleurs solutions dans mon cas. Je garde la notion de SGDB et de service.

    Merci pour votre aide

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Sql Server Ce (version actuelle 3.5 SP2) présente l'avantage en développement .Net de pouvoir utiliser Linq .Net et Entity
    SQLite aussi

  13. #13
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par tomlev Voir le message
    SQLite aussi
    Au temps pour moi alors; il est vrai que je n'ai pas travaillé avec SQLite depuis près de deux ans.

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

Discussions similaires

  1. Intégration des fichier XML dans une base de données MySQL
    Par bebemoundjou dans le forum XQUERY/SGBD
    Réponses: 8
    Dernier message: 25/11/2005, 22h41
  2. problème de recherche dans une base de donnée mysql
    Par Xini28 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/10/2005, 18h00
  3. gérer une base de donnée MySql via C++
    Par thiane dans le forum Bibliothèques
    Réponses: 9
    Dernier message: 19/05/2005, 16h19
  4. connexion a une base de donné mysql
    Par ithery75 dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/02/2005, 20h57
  5. [JDBC]acces à une base de données mysql
    Par sehaba dans le forum JDBC
    Réponses: 13
    Dernier message: 07/12/2004, 00h39

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