Quelle base de données intégrée possède la compatibilité SQL maximale et la prise en charge de la simultanéité?

StackOverflow https://stackoverflow.com/questions/1438817

Question

Mon application utilise actuellement Microsoft Access, mais peut maintenant être hébergée sur des machines Linux. De plus, lorsqu’ils sont accessibles depuis plusieurs ordinateurs, l’un d’eux peut mettre à jour les enregistrements (lorsqu’ils sont lus par d’autres utilisateurs).

J'exige également que la base de données intégrée prenne en charge les requêtes SQL complexes - type SQL interne, jointures, etc.

J'ai essayé SQLite , mais de nombreuses requêtes existantes échouent ou doivent être corrigées ( comme dans une simple requête utilisant une jointure interne, les crochets après FROM n'étaient pas acceptables pour SQLite et devaient être supprimés). La jointure droite n'est pas non plus prise en charge.

J'ai découvert les Apache Derby et H2 , mais préféreriez d’abord votre avis précieux.

Modifier:

J'ai oublié de mentionner que mon application est entièrement écrite en Java.

Modifier:

Au préréglage, j'utilise Microsoft Access mdb, partagé sur un lecteur réseau, ce qui permet d'établir une connexion sans DSN à partir d'ordinateurs distants.

Mettre à jour

J'ai fait des essais avec Firebird, et cela semble vraiment très bon, zéro administrateur et conforme à SQL. Il est rapide et je n’ai rencontré aucun problème avec les requêtes classiques. J'en suis très satisfait et j'espère pouvoir l'utiliser pour le projet pour lequel j'ai soulevé cette question.

Espérons qu'Advantage Server sera également utile, mais ne peut pas avoir le temps de l'examiner. Après avoir examiné / utilisé Firebird, vous ne ressentez plus le besoin d'essayer autre chose.

Était-ce utile?

La solution

Je pense que c'est Firebird .

Même les les fichiers sont pris en charge dans Firebird 2.1!

Firebird fonctionne sous Windows, Linux, Mac OS ...

pilote Jaybird pour Java.

Il existe de bons outils de migration à partir de Access to Firebird:

Autres conseils

Je voudrais jeter un coup d’œil sur le serveur de base de données Advantage (sybase.com). Il fonctionne sous Windows, Linux et NetWare . Nous avons une application de comptabilité commerciale / gestion de projet pour l'industrie de la construction et nous sommes passés à Advantage il y a 6 ou 7 ans. Nous avons été extrêmement satisfaits de la performance et du support. Les clients sont très contents aussi.

Vous trouverez une description assez détaillée de la conformité aux normes SQL de Derby ici: http: // wiki .apache.org / db-derby / SQLvsDerbyFeatures

Notre société utilise également Advantage. Nous en sommes arrivés à XBase , mais nous en avons depuis adopté la nature SQL. Il fonctionne sur de nombreuses plates-formes (Windows, Linux, NetWare) et dispose de nombreux pilotes (PHP, ADO, JDBC, ODBC, Crystal), de sorte qu'il fonctionne dans pratiquement tous les environnements dans lesquels vous pouvez programmer.

Cela pourrait être utile dans votre recherche: Comparaison des systèmes de gestion de base de données relationnelle .

Personnellement, je suggérerais de regarder sérieusement Firebird. Multiplate-forme, il possède un fournisseur .NET natif et prend en charge les jointures que vous mentionnez.

Firebird est le plus "compatible avec SQL". base de données intégrée. Le moteur de la version intégrée est identique à celui de l'édition serveur.

Sachez qu'avec Firebird embedded, un seul client à la fois peut se connecter à la base de données. Vous pouvez ainsi étendre plusieurs connexions à partir du même processus, sans toutefois vous connecter à partir de processus différents. Ce problème est résolu dans Firebird 2.5 et versions ultérieures.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top