Посоветуйте Базу Данных C# (.net 3.5, .net4)

14.11.2010
19
0
#1
При написании программных продуктов, часто сталкиваюсь с задачей хранить большие объемы данных (300000 - 500000 записей, возможно даже больше). Насколько я понимаю, самым правильным решением является использование здесь баз данных. Таким образом, я сформировал набор требований, которые предъявляю к провайдеру базы данных:
1. Производительность и скорость (объемы информации описал выше. Например это могут быть 500000 записей, хранящих информацию (различные параметры) об объектах недвижимости);
2. Возможность автоматической установки базы данных вместе с моим приложением (например посредством создания инсталлятора в Inno Setup) - чтобы пользователь не утруждал себя лишними действиями для установки еще и базы данных (грубо говоря - чтобы он даже не знал о ее существовании).
3. Работоспособность на популярных ОС (win7,xp,vista) 32 и 64 разрядных.
4. Бесплатная лицензия для коммерческого распространения

Уже пробовал разные решения. Сначала использовали sqlite - но при увеличении базы данных, тем более до таких объемов, он работает слишком медленно. Затем задействовали mssql express - но его инсталляция - это какой то ужас (то есть автоматическое скачивание и установка, настроенные в рамках проекта InnoSetup - это не проблема, но вот дальнейшее использование - постоянные проблемы то с правами, то с названием сервера базы, то еще непонятно с чем). Очень нравится вариант mysql - но, насколько я понимаю, его нельзя распространять с коммерческим приложением (точнее можно, но для этого нужно купить commercial license). Еще недавно слышал про firebird, но не пробовал что это за птица такая.

Кстати - будет ли нарушением коммерческой лицензии mysql, если Innosetup будет при установке моей программы, автоматически скачивать бд с официального сайта mysql и устанавливать ее?

Но основной вопрос - какая БД будет соответствовать всем вышеперечисленным требованиям. Также - если у вас есть большой опыт в данном вопросе - готов заплатить за консультацию по данному вопросу и создание небольшого примера инсталлятора десктопного приложения, который будет параллельно автоматически устанавливать базу данных (соответствующую вышеперечисленным требованиям), с которой данное приложение в дальнейшем сможет взаимодействовать.
 

LuMee

Well-Known Member
02.05.2006
477
0
#3
Советую посмотреть на SQL Server Compact: тут о ее сравнении с SQLite, тут о том, как впихнуть ее в инсталлятор.
Если данные не слишком сильно структурированы и нет необходимости гонять запросы со статистическими функциями и GROUP BY всякими, можно посмотреть в сторону NoSQL-решений, вроде той же MongoDB.