2009-09-17 23 views
15

Mi aplicación en la actualidad utiliza Microsoft Access, pero ahora puede ser alojado en cajas de Linux. Además, al acceder desde varias computadoras, una de ellas puede actualizar los registros (cuando otros usuarios la leen).¿Qué base de datos incrustada tiene máxima compatibilidad con SQL y compatibilidad con concurrencia?

que también requieren que la base de datos integrada debe apoyar las consultas SQL complejas - como SQL interno, se une, etc.

Probé SQLite, pero muchas de las consultas existentes fallan, o deben ser fijos (como en una consulta simple utilizando unión interna los corchetes después de FROM no era aceptable para SQLite, y tuvo que ser eliminado). La unión correcta también no es compatible.

Vine a saber acerca de Apache Derby y H2, pero antes preferiría su valiosa opinión.

Editar:

me olvidó mencionar que mi solicitud está escrito completamente en Java.

Editar:

En preestablecido utilizo Microsoft Access MDB, compartida en una unidad de red, permitiendo una conexión sin DSN desde equipos remotos.

actualización

me hicieron ensayos con Firebird, y realmente parece muy bueno, cero admin, y SQL compatible. Es rápido y no tuve problemas en ninguna de las consultas típicas que pude probar. Estoy muy satisfecho con esto, y con suerte lo usaré para el proyecto para el que planteé esta pregunta.

Esperemos que Advantage Server también sea bueno, pero no hay tiempo para revisarlo. Después de revisar/usar Firebird, no sienta la necesidad de probar nada más.

+0

De acuerdo con [hsqldb] (http://hsqldb.org/doc/guide/sqlgeneral-chapt.html#sgc_standards), que admite la más amplia gama de características estándar de SQL entre todos los RDBMS de código abierto. – nawfal

Respuesta

13

Creo que es Firebird.

¡Incluso Cte's son compatibles con Firebird 2.1!

obras Firebird en Windows, Linux, Mac OS ...

Jaybird controlador para Java.

hay algunas buenas herramientas de migración de Access a Firebird:

+0

Gracias por recordarnos sobre Firebird. Se ve bien. Sin embargo, muchas revisiones/comparaciones mencionan que, a pesar de ser una base de datos madura, la mayoría de las herramientas para desarrolladores de Firebird son productos comerciales de terceros. – vikramsjn

+2

- IBExpert (www.ibExpert.com) tiene edición personal - Database Workbench (www.upscene.com) también tiene edición personal También puede usar FlameRobin (www.flamerobin.org) –

+0

Para acceder a la base de datos/conectarse desde múltiples computadoras, y para actualizar desde el sistema que está alojado, parece que será necesario configurarlo en modo no integrado, es decir, servidor. ¿Esto requerirá bastante administración? En realidad, estaba buscando bases de datos integradas debido a su simplicidad de administración cero. – vikramsjn

1

Firebird es el más "comptible a SQL" incrustado base de datos. El motor de la versión integrada es el mismo que la edición del servidor.

Tenga en cuenta que con Firebird incrustado, solo un cliente a la vez puede conectarse a la base de datos, por lo que puede abarcar varias conexiones desde el mismo proceso pero no conectarse desde procesos diferentes. Este problema está solucionado en Firebird 2.5 y superior.

6

Me gustaría echar un vistazo al servidor de base de datos de Advantage (sybase.com). Se ejecuta en Windows, Linux y NetWare. Tenemos una aplicación comercial de contabilidad/gestión de proyectos para la industria de la construcción y cambiamos a Advantage hace 6 o 7 años. Estamos extremadamente contentos con el rendimiento y el apoyo. Los clientes también están muy contentos.

+0

Agregaría que Advantage tiene un controlador JDBC de tipo 4 que brinda un excelente soporte de Java. ¡Además, Advantage tiene excelentes herramientas de optimización de consultas y la utilidad de base de datos GUI tiene un depurador de SQL! Otros controladores incluyen ODBC, PHP, .NET, Delphi y OLE DB. – Joshery

1

Nuestra compañía está utilizando Advantage también. Llegamos desde el fondo XBase, pero desde entonces hemos adoptado su naturaleza SQL. Se ejecuta en muchas plataformas (Windows, Linux, NetWare) y tiene un conjunto de controladores (PHP, ADO, JDBC, ODBC, Crystal) para que funcione en casi cualquier entorno en el que pueda programar.