Я хотел бы создать и развернуть приложение базы данных для систем на базе Windows, но мне необходимо соблюдать следующие ограничения:
Кроме того, хорошо иметь "особенности":
Я видел этот вопрос Встроенная база данных для .net, которая может работать вне сети но для меня это не совсем ответ.
Я видел Сайт VistaDB, но, хотя он выглядит многообещающим, у меня нет личного опыта с ним.
Я также посмотрел на SQLite, и хотя он кажется достаточно хорошим для Goggle, у меня (опять же) нет личного опыта с ним.
Я хотел бы использовать решение на основе Java, потому что оно кроссплатформенное (хотя моя основная цель - Windows, я бы хотел быть гибким), а WebStart - действительно хороший способ распространения программного обеспечения, но наиболее часто используемые БД (Derby и hsqldb) не поддерживает общий доступ.
Я знаю, что я не единственный, кто пытается / пытался это сделать, поэтому надеюсь, что смогу получить какой-нибудь совет.

Я бы выбрал SQLite. Есть привязки SQLite для всего, и он очень широко используется в качестве встроенной базы данных для большого количества приложений.
Я использую SQLite на работе, и вы должны помнить, что он основан на файлах и использует файловую блокировку для управления одновременными подключениями. Это не лучшее решение, когда несколько пользователей одновременно пытаются использовать базу данных. Однако SQLite - отличная база данных для одного пользовательского приложения, она быстрая, занимает мало места и вокруг нее построено процветающее сообщество.
И моему приложению требуется, чтобы 2-3 пользователя одновременно обращались к этим файлам.
Если у вас есть VStudio, как насчет версии SQL Server 3.5 Compact? MSSQL работает в процессе.
http://www.microsoft.com/sql/editions/compact/downloads.mspx
Я рассматривал это как решение (и у меня есть опыт работы с ним на портативных устройствах), но не думаю, что он здесь подойдет. Это гораздо более «тяжелая» установка, и по умолчанию она может выполнять серверные функции. Но более важно то, что это предназначено для общих файлов базы данных.
Я предполагаю, что реальный вопрос заключается в том, насколько хороша производительность и насколько сложно кодировать в многопользовательской среде.