2012-06-30 3 views
3

필자가 작성한 다른 모든 응용 프로그램은 데이터를 저장하기 위해 SQL 데이터베이스를 사용한 네트워크/웹 응용 프로그램이었으며 저에게 의미가 있습니다.오프라인, 단일 클라이언트 응용 프로그램에 많은 양의 데이터를 저장하는 좋은 방법은 무엇입니까?

네트워크로 연결할 필요가없는 응용 프로그램을 만드는 경우이 데이터를 영구히 저장하는 표준 방법이 있습니까? 텍스트 파일은 가능하지만 SQL 서버를 쿼리하는 이점을 제공하지 않으며 매우 안전하지도 않습니다. 내 프로그램을 시작할 때 시작하고 저장할 수있는 SQL 서버와 비슷한 것이 있습니까?

아마 내가 만난 적이없는 구조가 있습니까?

내가 읽은 바로는 SQLite 에서처럼 위에서 언급 한 내용을 수행 할 수 있습니다. 크고 분산 된 응용 프로그램에 의미가 있습니까?

이러한 유형의 프로그램을 디자인하는 방법에 대한 설명을 미리 감사드립니다.

편집 : @TomTom이 말한 것을 분명히하기 위해 그가 제안하는 것처럼 많은 양의 데이터가 아닙니다. 몇 가지 자료를 가지고 있다면 놀랄 것입니다. 내 말은 큰 점은 텍스트 파일에 저장할 수있는 일종의 데이터 구조를 만드는 것이 불합리한 것처럼 보였고, SQL과 유사한 데이터베이스를 사용하는 것보다 내 데이터를 집어 들고 검색하는 것이 었습니다.

분명히 대답을 통해 SQLite 또는 이와 비슷한 것을 데스크톱 응용 프로그램에 사용하는 것이 합리적입니다. 계속 살펴보고 아마 다음 프로젝트의 데이터를 추적하는 데 사용할 것입니다.

+0

죄송합니다.이 값은 계산되지 않습니다. 내 말은, "대용량 데이터"는 보통의 작은 디스크 하위 시스템이 처리 할 수있는 것보다 많습니다 (약 10k 기가 바이트 정도). 나는 더 작은 "많은 양의 데이터"를 호출하지 않을 것입니다. 네트워크가 없어도 하드웨어가 필요합니다. 당신은 "정말로 많은 양의 물건"을 옮겨야 만하고 컨테이너 선 대신에 기술 선택으로 몇 대의 작은 차를 명명해야하는 사람입니다. – TomTom

+0

귀하의 게시물은 다소 모순입니다 - 당신은 응용 프로그램이 네트워크에 연결되어 있지 않다는 것을 말하고 있지만, SQLite가 크고 분산 된 응용 프로그램 - 분산 된 묵시적 네트워크에서 의미가 있는지 물어보십시오. 무엇 이니? – Oded

+0

LocalDB 버전의 SqlServer 2012 Express가 좋은 후보로 보입니다. 클라이언트 PC에 쉽게 설치할 수 있습니다 (http://stackoverflow.com/questions/9655362/localdb-deployment-on-client-pc). SqlServer Express의 모든 기능을 사용할 수 있습니다. (확장해야 할 필요가 있다면 모든 것을 SqlServer 데이터베이스에 전달할 수 있습니다.) – Steve

답변

5

임베디드 데이터베이스를 사용할 수 있습니다.이 데이터베이스는 SQL 데이터베이스 일 수 있지만 필수는 아닙니다.

Windows의 경우 SQLite, SQL Server CompactRavenDB (비 SQL, 문서 데이터베이스의 경우)을 참조하십시오.

+1

슬프게도 다량의 데이터에는 적합하지 않습니다. SqlLite가 100GB 데이터베이스를 어떻게 처리하는지는 궁금합니다. – TomTom

+1

@TomTom - 당신의 큰 정의와 OP의 정의는 매우 다를 수 있습니다. OP가 처리하는 데이터의 크기를 아십니까? – Oded

+1

일 수도 있지만 내 정의가 아닙니다. 큰 데이터, 큰 데이터, 매우 큰 데이터베이스의 크기는 k로 표준에 부합합니다. 세상이 큰 것이라고 생각하는 것을 모르는 어떤 친구는 내 문제가 아닙니다. – TomTom

2

여전히 SQL 데이터베이스를 사용할 수 있지만 로컬로 사용할 수 있습니다. 시도해보십시오 SQLite.

기타 이름은 Esent 인 Windows 내장 데이터베이스 엔진을 사용하는 옵션입니다. 빠르지 만 Api를 사용하기가 정말 쉽지는 않습니다.

+0

CodePlex (http://managedesent.codeplex.com/)에는 Esent의 관리되는 래퍼가 있습니다. 또한 RavenDb는 Esent를 백 스토어 (인덱스 저장소의 경우 afaik)로 사용합니다. –

+0

사실, 보지 못했다면 관리되는 esent에 대한 링크가 거기에있었습니다. 고마워. –

관련 문제