2009-11-22 1 views
1

저는 5 명 정도의 개발자로 구성된 개발 팀을 이끌고 있으며 소량의 데이터를 유지할 필요가 있습니다.간단한 데이터베이스 생성을위한 디스크 직렬화 ...이 접근 방식의 패턴 또는 업계 이름이 있습니까?

전체 DB 엔진을 사용할 필요가없고 데이터를 디스크에 직렬화 할 수 있다고 생각합니다. 우리는 테이블과 객체를 맵핑해야하는 DB가 아닌 런타임시 필요에 따라 우리의 객체 콜렉션을 디스크와 직렬화 할 것입니다. 기껏해야 우리는 약 20 개의 물체를 가지고 있으며 물체 수가 수천 개까지 확장 될 것이라고 상상할 수 없습니다.

팀원 중 일부는 이해할 수있는대로 데이터베이스 경로를 가고 싶어합니다. 다른 부분은 직렬화가 OK라고 생각합니다.

내 질문은 그것을하는 방법은 아니지만 .. 거기에 키워드 또는 SQL 또는 Oracle에 apposed로 응용 프로그램에 대한 DB로 직렬화를 사용하여 활동을 식별 이름이나 뭔가가 무엇입니까? 백서 또는 기타 정보를 검색 할 수있는 키워드 란 무엇이며 해당 접근법과 관련된 문서를 찾을 수 있습니까?

**** 추가 정보 *****

가 동시성 문제가 될 것이다, 그러나 사람들은 직렬화 된 데이터 파일에 동기화 된 액세스를 제공하는 것입니다 제어 인터페이스를 통해 완화 될 수있다.

이 응용 프로그램에서는 필요하지 않지만 트랜잭션은 트랜잭션과 유사한 패턴으로 관리됩니다 (실제로 필요한 경우). 트랜잭션을 시작하면 디스크에있는 데이터 파일을 백업하고 데이터가 문제없이 디스크에 기록 된 경우 커밋이 성공적으로 반환됩니다.

우리는 최대 20 개의 기본 엔터티를 유지해야하며 저장할 개체 수는 절대로 수천이되지 않습니다. 또한 데이터에 대한 신속하고 반복적 인 액세스, 때때로 읽기 및 쓰기 (몇 분에 한 번 최대 두 번)의 필요성도 없습니다.

디스크에 DB 또는 직렬화를 사용하는 경우 병행 성 및 트랜잭션 필요성을 모두 충족해야합니다. 우리는 뷰, 저장 프로 시저, 인덱스, SQL 지원 등을 필요로하지 않기 때문에 왜 DB가 필요한지를 놓치고 있습니다.

데이터 액세스 계층 (저장소)이 있으며 응용 프로그램이 아주 깨끗하게 인수 분해됩니다. 직렬화는 DB 또는 다른 방법으로 쉽게 대체 될 수 있습니다.

나는 정말로 후에 두 가지 접근 방식의 대조와 비교를합니다. 나는 현실 세계에서 두 접근법 사이에 사용자 연구를 문서화 한 후입니다. 나는 단지 그 주제들에 대한 갈고리를 찾으려고 노력하고 있으므로 장단점을 더 연구 할 수 있습니다.

+0

개체와 그들은 DB를 원합니까? 정말? –

+0

"화물 숭배 프로그래밍"이라고 생각합니다. :피 –

답변

1

하나의 제안이 있습니다. 객체를 SQLite와 같은 로컬 DB에 저장하십시오. DB와 일종의 디스크 직렬화가 될 것입니다.

2

는 디스크 나 데이터베이스에 직렬화 사이에 결정할 때 대답해야 할 질문은 다음과 같습니다

  • 당신이 거래를해야합니까. 예 : 데이터베이스 인 경우.
  • 동일한 개체에 여러 사용자가 작성해야합니까? 예 데이터베이스 인 경우.

단일 사용자 시스템 용으로 디스크에 직렬화를 수행 했으므로 정상적으로 작동합니다.

시스템을 데이터 액세스 계층으로 설계해야하며 나머지 시스템은 데이터 저장 방법을 알지 못합니다. 필요한 경우 나중에 변경할 수 있습니다.

검색 할 키워드는 직렬화/파일로 스트리밍됩니다.

관련 문제