• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы maristo
  • Дата начала
M

maristo

При написании программных продуктов, часто сталкиваюсь с задачей хранить большие объемы данных (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 и устанавливать ее?

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

-master-

Под ваши требования любая подойдет.
 
L

LuMee

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!