Какая встроенная база данных имеет максимальное соответствие SQL и поддержку параллелизма?
-
08-07-2019 - |
Вопрос
Мое приложение в настоящее время использует Microsoft Access, но теперь может быть размещено на коробках Linux.Кроме того, при доступе с нескольких компьютеров один из них может обновлять записи (когда его читают другие пользователи).
Я также требую, чтобы встроенная база данных поддерживала сложные SQL-запросы - такие как внутренний SQL, объединения и т.д.
Я пытался SQLite - файл, но многие из существующих запросов завершаются ошибкой или нуждаются в исправлении (например, в простом запросе с использованием внутреннего соединения скобок после FROM было неприемлемо для SQLite, и его пришлось удалить).Правое соединение тоже не поддерживается.
Я пришел, чтобы узнать о Дерби Апачей и H2, но сначала предпочел бы ваше ценное мнение.
Редактировать:
Я забыл упомянуть, что мое приложение полностью написано на Java.
Редактировать:
При предварительной настройке я использую mdb Microsoft Access, размещенный на сетевом диске, устанавливая соединение без DSN с удаленных компьютеров.
Обновить
Я пробовал использовать Firebird, и он действительно кажется очень хорошим, с нулевым администрированием и совместимым с SQL.Это быстро, и у меня не было проблем ни с одним из типичных запросов, которые я мог бы опробовать на нем.Я очень доволен этим и, надеюсь, использую его для проекта, для которого я поднял этот вопрос.
Надеюсь, сервер Advantage тоже будет хорош, но не смог выкроить время для его просмотра.После ознакомления / использования Firebird не испытывайте никакой необходимости пробовать что-либо еще.
Решение
Я думаю, что это Жар - птица.
Даже Cte's поддерживаются в Firebird 2.1 !
Firebird работает на Windows, Linux, Mac OS...
Сойка - птичка драйвер для Java.
Есть несколько хороших инструментов миграции из Access в Firebird:
- IBDatapump ИБДатапумп
- Конвертер баз данных Microsoft Access в Firebird (MDB2FDB)
Другие советы
Я бы взглянул на сервер базы данных Advantage (sybase.com).Он работает на Windows, Linux и Сетевое программное обеспечение.У нас есть приложение для коммерческого учета / управления проектами для строительной отрасли, и мы перешли на Advantage 6-7 лет назад.Мы были чрезвычайно довольны выступлением и поддержкой.Клиенты тоже очень довольны.
Вы можете найти довольно подробное описание соответствия Derby стандартам SQL здесь: http://wiki.apache.org/db-derby/SQLvsDerbyFeatures
Наша компания также использует Преимущества.Мы пришли к этому из xBase - база данных предыстория, но с тех пор приняли его SQL-природу.Он работает на множестве платформ (Windows, Linux, NetWare) и имеет множество драйверов (PHP, ADO, JDBC, ODBC, Crystal), так что он работает практически в любой среде, в которой вы можете программировать.
Это может быть полезно в вашем исследовании: Сравнение систем управления реляционными базами данных.
Лично я бы посоветовал серьезно взглянуть на Firebird.Он кроссплатформенный, имеет встроенную Поставщик .NET и поддерживает объединения, о которых вы упомянули.
Жар - птица является наиболее "совместимой с SQL" встроенной базой данных.Движок встроенной версии такой же, как и серверной версии.
Обратите внимание, что с Firebird embedded только один клиент одновременно может подключаться к базе данных, поэтому вы можете использовать несколько подключений из одного процесса, но не подключаться из разных процессов.Эта проблема исправлена в Firebird 2.5 и выше.