Что такое хороший выбор базы данных для небольшого приложения .NET?

Я разрабатываю небольшое приложение с С# в .NET и хочу иметь небольшую легкую базу данных, которая не использует много ресурсов.

Не могли бы вы перечислить некоторые из самых известных программных баз данных легкого веса.

Ответ 1

14/06/2016 Да... все еще получаю upvotes: -/


17/03/2014 Я по-прежнему получаю за это вознаграждение, помните дату, на которую это было изначально ответили. Хотя основные три перечисленные пункты все еще полностью жизнеспособны, список будет стремиться к устареванию. Существуют и другие технологии баз данных, которые не указаны.


У вас есть пара сразу узнаваемых и бесплатных опций:

Загрузка SQL Server Compact поставляется с поставщиком ADO.NET, который вам нужно будет указывать в коде. В SQLite-загрузке может быть не так, вот ссылка:

http://sqlite.phxsoftware.com/

Все три используют SQL, хотя, вероятно, с некоторыми ограничениями/причудами. Management Studio работает с Compact и LocalDB, тогда как с SQLite вам понадобится другой инструмент пользовательского интерфейса, такой как администратор SQLite:

http://sqliteadmin.orbmu2k.de/

Существуют альтернативы NoSQL, такие как:

Лично я бы избегал использования MS Access перед другими бесплатными опциями. Вы не ошибетесь в LocalDB, Compact или SQLite. Все они являются прекрасными небольшими базами данных, которые работают относительно быстро в небольшом объеме оперативной памяти - личные предпочтения в отношении религиозных аспектов, касающихся симпатии к продукту Microsoft, я полагаю: -)

Я использую Sterling для программирования Windows Phone, поскольку он построен для использования изолированного хранилища. Я видел статьи только на RavenDb, но могу вам сказать, что это основанная на JSON платформа хранения документов.

Не путать ситуацию (перейдите в SQLite, SQL Server Express LocalDB или SQL Server Compact Edition), но есть другие встроенные/локальные базы данных, некоторые из них относятся к объектно-ориентированным:

Не все из них бесплатны. Поддержка SQL/LINQ/in-proc отличается от всех. Этот список предназначен только для любопытства.

Теперь есть Karvonite, однако ссылка на галерею кода нарушена. Когда он будет жить снова, я буду изучать этот вариант для разработки WP7.

Ответ 2

Я бы рекомендовал SQLite. Мы используем его практически для всех приложений, которые мы разрабатываем, где я работаю.

Он маленький и компактный. Это требует, чтобы DLL находилась в каталоге приложения, но вам не нужно устанавливать другое программное обеспечение, такое как Access или SQL Server. Кроме того, как указано ниже, danielkza, "SQLite является общественным достоянием, поэтому вам не нужно беспокоиться о лицензировании". Это действительно может иметь большое значение.

Вы можете использовать System.Data.SQLite или csharp-sqlite для доступа к нему в приложении С#, используя те же методы, что и SQL или OleDB.

Вам также понадобится приложение для редактирования/управления базой данных. Самый лучший, на мой взгляд, SQLite Studio. Вот еще пара:
SQLite Admin
SQLite 2009 Pro (внизу страницы)
Обновление - 7/25/11 - Другие приложения SQLite (вопрос здесь о SO)

Здесь больше на SQLite:
SQLite в Википедии
Компании, использующие SQLite

Пользовательские функции: В качестве дополнения, если вы смотрите SQLite Core Functions и не видите того, который вам нравится, вы можете создавать свои собственные пользовательские функции. Вот несколько примеров:
Из SO
Пример Anoter

Ответ 3

Встроенный Firebird может быть хорошим выбором

Встраиваемая версия - удивительная вариация сервера. Это полнофункциональный сервер Firebird, упакованный всего несколькими файлами. Это очень легко развертывается, поскольку нет необходимости устанавливать сервер.

Есть некоторые очень хорошие dot net драйверы

Ответ 4

SQL Server Compact, если вы хотите использовать официальное решение для Microsoft. Это имеет то преимущество, что вы можете использовать репликацию с SQL-сервером, если вам нужно что-то подобное.

SQLite, если вы хотите что-то очень простое и бесплатное. Это то, что андроид использует для своих внутренних баз данных, поэтому он очень хорошо поддерживается и есть очень хорошие привязки .NET.

Одно из преимуществ SQLite заключается в том, что он является межплатформенным. Поэтому, если вы хотите перенести приложение в Mono.NET, у вас не будет никаких изменений в реализации базы данных.

Мне не нравится MS Access для этого решения, но многие люди включили его в свой ответ. Он ограничен из-за запатентованной форматной и платформенной зависимости. Однако у него есть свои преимущества. Вы можете легко манипулировать данными, если у вас есть копия MS Access, вы можете создавать запросы графически и создавать макросы. Вы можете легко интегрировать его с остальной частью MS Office.

Из всех этих SQLite была бы моя рекомендация из-за того, что он был настолько компактным, хорошо документированным и поддерживался растущей армией других разработчиков независимо от платформы.

ИЗМЕНИТЬ

Я понял, что есть еще один вариант, который все здесь забывали упомянуть

Пока вам не нужны реляционные таблицы, вы можете использовать CSV файл, который читается как набор данных через ADO.NET. (Больше предложений lulz, чем что-либо еще, но будет подходящим в некоторых случаях и не требует дополнительных библиотек для развертывания MS.

Ответ 5

Если вы строите проект с .NET 4.0.2 или выше и хотите встроенную поддержку базы данных, рассмотрите SQL Server Express LocalDB.

Это относительно новое дополнение к семейству Express, которое отличается меньшим размером установки и снижает накладные расходы на управление (по сравнению с другими выпусками Express), но при этом сохраняет аспекты программирования SQL Server. То есть, в отличие от Compact Edition, LocalDB не требует установки отдельного поставщика ADO.NET для связи с SQL.

Подробнее см. ниже:

SQL Express v LocalDB v SQL Compact Edition (Блоги MSDN)
SQL LocalDB и SQL Server CE (переполнение стека)

Ответ 7

Вы можете использовать Sql Server Express Edition как бесплатную и одинаково мощную до тех пор, пока вы не захотите использовать такие функции, как mirroring и т.д. Посмотрите this.

Ответ 8

Я успешно использовал db4o.
Файловое, большое сообщество, прост в использовании.

http://www.db4o.com/

Сведения о лицензировании

Бесплатная общедоступная лицензия db4o по умолчанию лицензируется под лицензией GPL.

Лицензия GPL идеально подходит, если вы планируете использовать db4o в доме или планируете разрабатывать и распространять свою собственную производную работу как бесплатное программное обеспечение под GPL.

Коммерческая лицензия Коммерческая лицензия требуется, если вы хотите встраивать db4o в коммерческий продукт без GPL. Приобретение коммерческих лицензий доступ к премиальным услугам и поддержка.

Ответ 9

Альтернатива, о которой не упоминалось, если вы не требуете, чтобы она была бесплатной базой данных, - VistaDB. Все это управляемый код, предоставляет множество функций для встроенной базы данных и обеспечивает неплохую производительность. Довольно хороший мост между SQL CE и SQL Server Express, так как большинство ваших хранимых процедур VistaDB будут работать без изменений в SQL Server Express. На данный момент я очень доволен обслуживанием клиентов. Я использую его на работе. Никаких услуг для запуска. Пустая БД составляет около 1 МБ, а DLL - довольно легкий. Имеет провайдеры ADO.NET и тому подобное. Мне это понравилось.

VistaDB

Ответ 10

SQL Server Compact Edition лучше всего, так как он свободен и свет в размере и интегрирует Well

Ответ 11

SQL Server Express или MS Access