소규모 .NET 응용 프로그램에 적합한 데이터베이스는 무엇입니까? [닫은]


180

.NET에서 C #으로 작은 응용 프로그램을 개발 중이며 많은 리소스를 사용하지 않는 작은 경량 데이터베이스 를 원합니다 .

가장 잘 알려진 경량 데이터베이스 소프트웨어 를 나열 해 주시겠습니까 ?


답변:


192

14/06/2016 Yep ... 아직도 upvotes를 받고 :-/


2014 년 3 월 17 일 나는 여전히 이것에 대한 공의를 받고 있습니다. 원래 답변 날짜를 염두에 두십시오. 나열된 세 가지 주요 항목이 여전히 실행 가능하지만 목록이 오래되는 경향이 있습니다. 나열되지 않은 추가 데이터베이스 기술이 있습니다.


즉시 인식 할 수있는 몇 가지 무료 옵션이 있습니다.

SQL Server Compact 다운로드는 코드에서 참조해야하는 ADO.NET 공급자와 함께 제공됩니다. SQLite 다운로드에는 없을 수 있으므로 여기 링크가 있습니다.

http://sqlite.phxsoftware.com/

세 가지 모두 SQL을 사용하지만 몇 가지 제한 사항이 있습니다. Management Studio는 Compact 및 LocalDB와 함께 작동하지만 SQLite에는 SQLite Administrator와 같은 다른 UI 도구가 필요합니다.

http://sqliteadmin.orbmu2k.de/

다음과 같은 NoSQL 대안이 있습니다.

개인적으로 다른 무료 옵션에 직면하여 MS Access를 사용하지 않을 것입니다. LocalDB, Compact 또는 SQLite에는 문제가 없습니다. 그들은 모두 작은 RAM에서 비교적 빠르게 실행되는 멋진 작은 데이터베이스입니다.

격리 된 저장소를 사용하도록 구축 된 Windows Phone 프로그래밍에 Sterling을 사용합니다. RavenDb에 대한 기사 만 보았지만 JSON 기반 문서 저장소 프레임 워크라고 말할 수 있습니다.

상황을 혼동하지 말고 (SQLite, SQL Server Express LocalDB 또는 SQL Server Compact Edition과 함께) 다른 내장 / 로컬 데이터베이스가 있으며 일부는 관계 지향적 인 객체 지향입니다.

이 모든 것이 무료 인 것은 아닙니다. SQL / LINQ / in-proc 지원은 모두 다릅니다. 이 목록은 호기심을위한 것입니다.

이제 Karvonite 도 있지만 코드 갤러리 링크가 끊어졌습니다. 다시 살아 나면 WP7 개발을 위해 이것 하나를 살펴볼 것입니다.


11
SQL Server CE의 경우 +1 앱과 함께 SQL 서버를 설치하는 대신 SQL Server CE dll을 사용하고 응용 프로그램의 작업 디렉토리에 데이터베이스 파일을 가질 수 있습니다. 단순한.
Phil

2
RavenDB는 실제로 문서 데이터베이스이지만 API는 단순한 이름 및 값 쌍보다 훨씬 강력합니다. 문제는 당신이 무료 대안을 찾고 있다면 상업 프로젝트에 무료가 아니라는 것입니다.
JCallico

@JCallico 나는 요약으로 약간 일반화하고 있음을 인정할 것이지만, 내가 말한 것을 복음으로 받아들이는 사람은 의심 스럽다.
Adam Houldsworth

@Brendan Long, 100 % 표준을 말할 수있는 SQL 구현은 없습니다.
팝 카탈린

1
답이 맨 위에 작은 읽기 어려운 메시지를 남겨 두는 대신 정보가 오래되었다는 것을 설명합니다. 답변을 업데이트 및 / 또는 추가하는 것이 더 쉬울 수 있으며 오늘날 사용 가능한 옵션의 예를 포함하십시오.
제임스 쇼

58

나는 SQLite를 추천합니다 합니다. 우리는 내가 일하는 곳에서 개발하는 거의 모든 앱에 사용하고 있습니다.

작고 컴팩트합니다. 앱 디렉토리에 DLL이 있어야하지만 Access 또는 SQL Server와 같은 다른 소프트웨어를 설치할 필요는 없습니다. 또한 아래의 danielkza가 언급 한 것처럼 "SQLite는 공개 도메인이므로 라이센스에 대해 전혀 걱정할 필요가 없습니다." 그것은 정말로 큰 차이를 만들 수 있습니다.

System.Data.SQLite 또는 csharp-sqlite를 사용할 수 있습니다 를 사용하여 SQL 또는 OleDB와 동일한 방법을 사용하여 C # 앱에서 액세스 할 .

데이터베이스를 편집 / 관리하는 응용 프로그램도 필요합니다. 내 생각에 가장 좋은 것은 SQLite Studio 입니다. 여기에 몇 가지 더있다 :
SQLite는 관리자
SQLite는 2009 프로 (페이지 하단)
업데이트 - 7/25/11 - 더 SQLite는 애플 리케이션 (여기에 SO에 대한 질문)

SQLite에 대한 추가 정보 :
Wikipedia의 SQLite
를 사용 회사의 SQLite

사용자 정의 함수 : 또한 SQLite 핵심 함수를 보고 원하는 기능 이 보이지 않으면 사용자 정의 함수를 만들 수 있습니다. 다음은 몇 가지 예입니다.
SO
Anoter 예제에서


8
한 가지 추가 사항 : SQLite는 공개 도메인이므로 라이센스에 대해 전혀 걱정할 필요가 없습니다.
danielkza

@MikeWebb Sqlite는 추가 서비스 나 무언가를 설치할 필요없이 ClickOnce 응용 프로그램과 함께 작동합니까? 여러 명의 동시 사용자가 네트워크 공유에있는 경우 작동합니까?
Prokurors

1
@Prokurors-실행해야하는 모든 SQLite는 프로그램에서 사용중인 언어 (C ++, C # 등)에 해당하는 DLL 파일입니다. 다른 서비스 나 프로그램이 필요하지 않습니다. 또한 동시 사용자가있는 네트워크에서 작동해야합니다. 우리는 내가 일하는 서버에서 사본을 운영하고 있으며 훌륭하게 작동합니다. 여기 동시성에 더 볼 수 있습니다 : sqlite.org/lockingv3.html
마이크 웹의

10

Firebird 임베디드 는 좋은 선택이 될 수 있습니다

임베디드 버전은 서버의 놀라운 변형입니다. 단지 몇 개의 파일로 포장 된 완전한 기능을 갖춘 Firebird 서버입니다. 서버를 설치할 필요가 없으므로 배포가 매우 쉽습니다.

아주 좋은 닷넷 드라이버가 있습니다


8

공식 Microsoft 솔루션을 사용하려는 경우 SQL Server Compact 이렇게하면 SQL 서버에서 복제를 사용할 수 있다는 장점이 있습니다.

아주 간단한 작고 자유로운 것을 원한다면 SQLite. 이것은 안드로이드가 내부 데이터베이스에 사용하는 것이므로 매우 잘 지원되며 사용 가능한 .NET 바인딩이 매우 좋습니다.

SQLite의 또 다른 장점은 플랫폼 간입니다. 따라서 응용 프로그램을 Mono.NET으로 이식하려면 데이터베이스 구현을 수정하지 않아도됩니다.

나는이 솔루션에 대한 MS 액세스를 좋아하지 않지만 많은 사람들 이이 솔루션에 솔루션을 포함 시켰습니다. 독점 형식 및 플랫폼 의존성으로 인해 제한됩니다. 그래도 장점이 있습니다. MS Access 사본이 있으면 데이터를 쉽게 조작 할 수 있으며 그래픽으로 쿼리를 작성하고 매크로를 작성할 수 있습니다. 다른 MS Office와 쉽게 통합 할 수 있습니다.

이 모든 SQLite 중에서 플랫폼에 관계없이 점점 더 많은 동료 개발자가 지원하는 컴팩트하고 문서화되어 있기 때문에 내 추천이 될 것입니다.

편집하다

나는 여기의 모든 사람들이 언급하는 것을 잊어 버린 다른 옵션이 있다는 것을 깨달았습니다.

관계형 테이블이 필요하지 않으면 ADO.NET을 통해 CSV 파일을 데이터 집합으로 사용할 수 있습니다. (다른 것보다 lulz 제안이 많지만 경우에 적합하며 MS 배포를 위해 추가 라이브러리가 필요하지 않습니다.


8

.NET 4.0.2 이상으로 프로젝트를 빌드하고 내장 데이터베이스 지원을 원하는 경우 SQL Server Express LocalDB를 고려하십시오. .

Express 제품군에 상대적으로 새로 추가 된 제품으로 설치 공간이 작고 관리 오버 헤드가 줄어들지 만 (다른 Express 버전과 비교할 때) SQL Server의 프로그래밍 기능 측면을 유지합니다. 즉, Compact Edition과 달리 LocalDB는 SQL과 통신하기 위해 별도의 ADO.NET 공급자를 설치할 필요가 없습니다.

자세한 내용은 다음을 참조하십시오.

SQL Express v LocalDB v SQL Compact Edition (MSDN 블로그)
SQL LocalDB 및 SQL Server CE (스택 오버 플로우)


7

1
또는 특히 .NET의 경우 RavenDB
marc_s

몽고는 사랑 스럽지만 임베디드로 실행되지 않습니다. 별도의 서버 프로세스를 시작해야합니다. OP의 목적에 따라 약간 무거울 수 있습니다.
마이크 우드 하우스

Mongodb는 SQL을 지원하지 않습니다. asker는 "Sql 쿼리로 레코드를 저장하고 검색 할 수있는 위치"를 원합니다. 그리고 mongodb은 메모리가 배고프다는 것입니다. 이 사용 사례에는 권장하지 않습니다.
피터 롱

4

당신은 Sql Server Express Edition그것의 자유로 사용할 수 있고 당신이 mirroring등등 과 같은 기능을 원할 때까지 그리고 똑같이 강력 합니다 . 이것을 살펴보십시오 .


8
이 질문에는 "강력한 것이 필요 없습니다"라는 내용이 있습니다. SQL Server Express는 SQL Server의 경량 버전이 아닙니다. 데이터베이스 크기 제한 버전이며 서비스가 시작될 때 사용자 PC를 시작하는 데 큰 영향을줍니다. 이 질문에는 과잉입니다. SQL Server Compact가 더 적합합니다.
Moog

2

나는 db4o를 성공적으로 사용했다.
사용하기 쉬운 파일 기반의 대규모 커뮤니티.

http://www.db4o.com/

라이센스 세부 사항

Free General Public License db4o는 기본적으로 GPL에 따라 라이센스가 부여됩니다.

GPL 라이센스는 db4o를 사내에서 사용하거나 GPL에 따라 자유 소프트웨어로 자체 파생 작업을 개발 및 배포하려는 경우에 이상적입니다.

상용 라이센스 상용 GPL이 아닌 제품에 db4o를 임베드하려면 상용 라이센스가 필요합니다. 상용 라이센스 사용자는 프리미엄 서비스 및 지원에 액세스 할 수 있습니다.


2012 년에 6 개월 동안 db4o를 사용했습니다. 객체 모델이 변경된 후 이전 데이터에 액세스 할 수없는 문제를 피할 수있는 방법이 있다면이 답변을 찬성했습니다. 내가 아는 한, 객체를 변경하면 오래된 데이터가 손실되는 것을 피하기가 어렵습니다. 결론은 항상 다른 비 db4o 형식의 데이터 백업 사본을 유지하는 것입니다 (어쨌든 일반적인 규칙입니다).
Contango 2016 년

2

무료 데이터베이스가 필요하지 않은 경우 언급되지 않은 대안은 VistaDB입니다. 모두 관리되는 코드이며 내장 데이터베이스에 대한 수많은 기능을 제공하며 성능이 매우 뛰어납니다. 대부분의 VistaDB 저장 프로시 저는 SQL Server Express에서 수정하지 않고 실행되므로 SQL CE와 SQL Server Express 사이의 아주 좋은 다리입니다. 이 시점에서도 고객 서비스에 매우 만족했습니다. 나는 직장에서 그것을 사용하고 있습니다. 시작할 서비스가 없습니다. 빈 DB는 약 1MB이며 DLL도 매우 가볍습니다. ADO.NET 공급자와 그와 같은 것들이 있습니다. 나는 그것을 조금 좋아했다.

VistaDB


안녕하세요! 다중 사용자 시나리오에서 작동합니까? 예를 들어이 VistaDB를 네트워크 공유에 저장하고 여러 사용자가 동시에 액세스 할 수 있습니까?
Prokurors

1
이와 관련하여 일부 제한된 능력을 수행합니다. 분명히 해당 상자에서 로컬 DB 엔진으로 실행되는 실제 데이터베이스를 대체 할 수는 없지만 몇 가지 트랜잭션 옵션을 제공합니다. 우리는이 시나리오에서 우리가 직면 한 무료 옵션보다 더 잘 처리하는 것처럼 보였고 고객은 SQL Server 또는 기타 설정에 대한 전문 지식이 없을 것 같습니다. 그것은 sqlce보다 더 많은 기능을 제공하지만 전체 SQL 서버만큼 많지는 않습니다. 진정한 품질의 소프트웨어입니다.
Rig

정보 감사합니다! 그리고 그들의 새로운 예상 버전 5는 매우 유망한 것으로 들립니다. VistaDB로 Entity Framework를 사용해 보셨습니까? 어쩌면 먼저 EF 코드로 VistaDB 파일을 만들었습니까?
Prokurors

1
나는했지만 이것은 약 3-4 년 전이었습니다. 그 시점에서 나는 그것이 잘 작동하는 것을 알았고 그것이 나의 첫 EF 경험이었습니다. 나는 지금 더 나은 것으로 가정합니다. 당시 유일하게 부족한 점은 문서의 특정 부분이 희박했지만 현재 소유자가 문서를 구입 한 후 전환하는 동안이었습니다.
장비

1
추신 : 적어도 내가 그것을 사용했을 때 그들은 사용할 데모 라이센스를 제공하고자하는 것 이상이었습니다. 라이센스 비용을 커밋하기 전에 시도해 보는 것이 좋습니다.
리그

1

SQL Server Compact Edition은 자유롭고 가벼우 며 잘 통합됩니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.