Какая встроенная база данных имеет максимальное соответствие SQL и поддержку параллелизма? - PullRequest
15 голосов
/ 17 сентября 2009

Мое приложение в настоящее время использует Microsoft Access, но теперь может быть размещено на блоках Linux. Кроме того, при доступе с нескольких компьютеров один из них может обновлять записи (когда его читают другие пользователи).

Мне также требуется, чтобы встроенная база данных поддерживала сложные запросы SQL - например, внутренний SQL, объединения и т. Д.

Я пытался SQLite , но многие из существующих запросов терпят неудачу или должны быть исправлены (как в простом запросе с использованием внутренних скобок соединения после того, как FROM был неприемлем для SQLite, и должен был быть удален ). Правое объединение тоже не поддерживается.

Я узнал о Apache Derby и H2 , но сначала предпочел бы ваше ценное мнение.

Edit:

Я забыл упомянуть, что мое приложение полностью написано на Java.

Edit:

По умолчанию я использую Microsoft Access mdb, совместно используемый на сетевом диске, делая подключение без DSN с удаленных компьютеров.

Обновление

Я провел испытания с Firebird, и он действительно кажется очень хорошим, без администрирования и с SQL-совместимостью. Это быстро, и у меня не было проблем ни с одним из типичных запросов, которые я мог примерить. Я очень доволен этим и надеюсь использовать его для проекта, для которого я поднял этот вопрос.

Надеюсь, Advantage Server тоже будет хорош, но не смог найти время для его просмотра. После просмотра / использования Firebird не нужно больше ничего пробовать.

Ответы [ 6 ]

13 голосов
/ 17 сентября 2009

Я думаю, что это Жар-птица .

Даже Cte's поддерживаются в Firebird 2.1!

Firebird работает на Windows, Linux, Mac OS ...

Jaybird драйвер для Java.

Есть несколько хороших инструментов миграции с Access to Firebird:

6 голосов
/ 22 сентября 2009

Я бы посмотрел на сервер базы данных Advantage (sybase.com). Он работает в Windows, Linux и NetWare . У нас есть приложение для коммерческого учета / управления проектами в строительной отрасли, и мы перешли на Advantage 6 или 7 лет назад. Мы были чрезвычайно довольны производительностью и поддержкой. Клиенты тоже очень счастливы.

2 голосов
/ 21 октября 2009

Вы можете найти довольно подробное описание соответствия стандартам Derby SQL здесь: http://wiki.apache.org/db-derby/SQLvsDerbyFeatures

1 голос
/ 24 сентября 2009

Наша компания также использует Advantage. Мы пришли к этому из XBase фона, но с тех пор приняли его характер SQL. Он работает на многих платформах (Windows, Linux, NetWare) и имеет несколько драйверов (PHP, ADO, JDBC, ODBC, Crystal), поэтому он работает практически в любой среде, в которой вы можете программировать.

1 голос
/ 19 сентября 2009

Firebird - наиболее встроенная база данных, совместимая с SQL. Движок встроенной версии такой же, как серверная версия.

Обратите внимание, что со встроенным Firebird только один клиент может одновременно подключаться к базе данных, поэтому вы можете охватить несколько подключений из одного процесса, но не из разных процессов. Эта проблема исправлена ​​в Firebird 2.5 и выше.

1 голос
/ 17 сентября 2009

Это может быть полезно в вашем исследовании: Сравнение систем управления реляционными базами данных .

Я бы лично предложил серьезно взглянуть на Firebird. Он кроссплатформенный, имеет собственного .NET провайдера и поддерживает упомянутые вами объединения.

...