2009-04-02 7 views
3

.net에서 작은 windows 응용 프로그램을 개발 중입니다. 어떤 DB를 사용해야합니까?Windows 응용 프로그램에 사용할 DB는 무엇입니까?

DB 구조

표 1 : 이상 3 개 필드 : 50+ 기록 (추가, 삭제)

표 2 : 아니 10 개 이상의 필드 : 10-20 기록 (삭제, 추가)

나는 XMLDatabase를 사용하려고 생각했지만 일부는 XMLDatabase를 사용하지 않는 것이 좋습니다. 이것에 대한 이유는 무엇입니까? XML 파일을 DB로 사용해도 괜찮 으면 자습서 나 모범 사례를 제안 할 수 있습니까? 전에 XML 파일로 작업했습니다. DB로 사용할 때 다른 점이 있습니까?

나중에 친구들에게 응용 프로그램을 배포 할 계획이며이 사람들은 프로그래머가 아니며 기술에 익숙하지 않습니다.

그래서 SQL 서버를 사용하는 경우 어떻게 다른 컴퓨터에 배포 할 수 있습니까? 어떻게 그것을 설치 파일에 추가 할 수 있습니까?

업데이트 : 답변 해 주셔서 감사합니다. 나는 SQLite에 대해 가고 있으며 여기에 tutorial에 관한 SQLite 및 .net 누군가 관심이 있다면.

답변

12

SQLite는 작은 응용 프로그램에 좋은 방법입니다. 그것은 빠르고 유능하며 작은 설치 공간을 가지고 있습니다.

내가 이전 프로젝트에서 사용했던 훌륭한 관리 SQLite는 라이브러리있다 .NET 용

:

http://sqlite.phxsoftware.com/

편집 :

을 감안할 때 SQLite는 및 SQL Server 컴팩트 에디션 사이의 선택, 당신 '은 SQLite가 지원하지 않는 고급 기능을 필요로하지 않는다면 거의 항상 SQLite로 가고 싶습니다.

[SQL Server Compact Edition의 설치 크기에 따라 수정되었습니다. 마지막으로 살펴 보았을 때, 훨씬 더 불리한 입장이었습니다. 지금처럼 좋을 수도 있습니다.]

+0

SQL Server Compact Edition은 1.8MB 만 설치되어 있습니다 - http://download.microsoft.co.kr/download/A/4/7/A47B7B0E-976D-4F49-B15D-F02ADE638EBE/Compact_Express_Comparison.doc –

2

SQLite와 같은 작은 것이거나 앱에 내장 된 SQLServer Express 데이터베이스를 사용하여 벗어날 수 있습니다.

2

SQL Server를 사용하는 경우 스크립트를 생성하여 전체 데이터베이스를 만들 수있는 기능이 있습니다. 유효한 연결 문자열이 제공되면 스크립트를 실행하는 것이 보통 .NET Sql 클래스 (SqlConnection 등)를 통해 수행하기 쉽습니다.

그러나 단순한 데이터 모델의 경우 SQL Server가 과도하게 작동 할 수 있습니다. SQLite와 같은 더 작은 DB를 조사해야합니다.

0

SQL Server Express 또는 SQL Server Compact Edition을 살펴보십시오.

4

언급 한 내용을 토대로 SQLite 나 SQL Server Compact Edition을 살펴 보았습니다.

Compact Edition 권장 사항은 항상 실행중인 SQL Server 프로세스가 없도록하는 것입니다. Compact Edition은 응용 프로그램이 실행되는 동안에 만 실행됩니다.

업데이트

는 둘 사이의 크기에 관해서, SQLite는 크기 1메가바이트에서 조금. SQL Server Compact Edition은 1.8MB입니다 (확인을 위해서는 MS Document 참조).

+0

감사합니다. Mitchel. 나는 SQLite에 갈거야. – Shoban

3

예상되는 데이터베이스 크기가 너무 작기 때문에 &이라는 더러운 솔루션 (더러운 IMHO보다 빠름)은 XML로 데이터를 유지 (또는 개체 컬렉션을 XML로 serialize/deserialize)하고 LINQ . 그것은 빠르며 효과적입니다. 게다가 앱과 함께 배포 할 DB 엔진이 없습니다.

면책 조항 : 데이터 요구 사항이 작고 (그리고 단일 사용자라고 가정 할 때) IFF라는 것을 명심하십시오. 여러 사용자가 동시에 데이터를 치거나 데이터 크기가 커지거나 일종의 RDBMS를 사용할 때 가장 효율적인 기능이 필요하다면이 빠르고 더러운 솔루션이 창 밖으로 나옵니다. 곧 모든 앱의 가중치로 앱이 무너질 것입니다. 모든 코드가 작동하도록 만들기 위해 필요한 추가 코드. =)

1

귀하의 경우에는 지속성을 위해 XML을 사용하지 말라고 누가 권고했는지는 확실하지 않지만 영구 데이터의 잠재적 인 전체 크기를 고려할 때 XML은 간단하기 때문에 완벽합니다. .NET 응용 프로그램에 통합.

우리는 한 레코드에 최대 10 개의 필드가있는 약 100 개의 레코드를 말하는 것처럼 들립니다. XML 지속 데이터에서 쉽게 사전 처리되어 메모리에서 처리 될 수 있습니다. 나는 잠재적으로 LINQ를 사용하여 질의를하는 것에 대해 NoCarrier와 동의한다.

당신은 제 3 자의 의존성없이 할 수있는 것처럼 단순함을 찾고 있습니다.

0

데이터 소스 솔루션으로 XML에 동의합니다. 훌륭한 XML 책인 No Nonsense XML Development with PHP이 있습니다. PHP를 ASP.NET으로 쉽게 변환 할 수 있습니다. XML과 ASP.NET을위한 무료 전자 책도 있습니다.

XML의 이점은 간단한 데이터 전송 언어이며 배포 할 시스템에 타사 데이터베이스 서버를 설치할 필요가 없다는 것입니다.

0

표 1 : 이상 3 개 필드 : 50 개 + 기록 (삭제, 추가)

표 2 : 아니 10 개 이상의 필드 : 10-20 기록 (삭제, 추가)

레코드가 적당한 크기라면 (앱에 영화 나 그와 비슷한 것을 저장하고 싶지는 않겠습니까?) 시동시 플랫 텍스트 또는 XML 파일을 읽고 모든 내용을 유지할 것을 제안합니다. 기억. 버퍼를 수시로 디스크에 플러시 할 수 있습니다.

다른 요구 사항 (동시성은 어떨까요?)하지만 imho는 실제 DBMS가 문제가 될 수 있으며 sqlite (큰 팬)가 솔루션이 아닐 수도 있습니다 (다시 동시성, 그렇지 않습니다. sqlites 강점 중 하나).

2

John Saunders는 SQL Server Express에 대해 언급했습니다. Oracle Express와 DB2 Express도 있습니다. 각각의 기능 목록은 사실상 동일합니다. 모두 최소한 개인적인 용도로는 무료입니다.

관련 문제