CAP 정리 (Consistency, Availability, Partition : pick two)를 가져 오지 않고 "NoSQL"데이터베이스에 대해 이야기 할 수는 없습니다. MongoDB (Partition, Consistency)와 CouchDB (Availability, Partition) 사이에서 선택해야 할 경우 가장 먼저 생각해야 할 것은 "올바른 데이터가 필요합니까? 아니면 항상 액세스해야합니까?"입니다.
그 새 데이터베이스가되었다 만든 분할 될 수 있습니다. 하지만 내가 하지 않으면 어떻게됩니까? 관계형 데이터베이스 대신 데이터베이스 / 키, 값, 열, 문서가 있고 서버 인스턴스를 하나만 작성하고 샤드하지 않는 것이 좋다고 생각한다면 어떻게해야합니까? 이 경우 가용성과 일관성이 모두 없습니까? MongoDB는 아무것도 복제 할 필요가 없으므로 사용할 수 있습니다. 그리고 CouchDB는 하나의 데이터 소스만을 가지므로 꽤 일관성이 있습니다.
그렇다면 MongoDB와 CouchDB는 유스 케이스의 기간에 거의 차이가 없을 것입니까? 물론 성능, API 및 al을 제외하고는 기본적으로 서로 다른 두 가지 요구 사항을 갖는 것보다 PostgreSQL과 MySQL 중에서 선택하는 것과 비슷합니다.
내가 여기있어? 인스턴스를 두 개 이상 만들지 않으면 서 AP 또는 CP 데이터베이스를 AC 데이터베이스로 변경할 수 있습니까? 아니면 내가 놓친 것이 있습니까?
질문을 반대로하자. 관계형 데이터베이스를 가져 와서 MySQL이라고 말하고 마스터 / 슬레이브 구성에 넣으면 어떻게 될까요? ACID 트랜잭션을 사용하지 않습니다. 쓰기를 즉시 슬레이브에 동기화해야한다면 CP 데이터베이스가되지 않습니까? 미리 정의 된 간격을 동기화하면 클라이언트가 슬레이브에서 오래된 데이터를 읽는지 여부는 중요하지 않습니다. 그것이 AP 데이터베이스가되지 않습니까? ACID 준수를 포기하더라도 여전히 분할 된 데이터베이스에 관계형 모델을 사용할 수 있다는 의미는 아닙니까?
본질적으로 : 기본 데이터 모델보다 더 많은 CAP 정리에서 포기할 준비가 된 것에 대한 확장 성이 있습니까? 열, 문서, 키 값 등이 관계형 모델에 비해 확장 성을 향상시키는 것은 무엇입니까? 파티션 공차를 위해 처음부터 설계된 관계형 데이터베이스를 설계 할 수 있습니까? (아마도 존재합니다). NoSQL 데이터베이스 ACID를 준수 할 수 있습니까?
죄송합니다. 많은 질문이 있지만 최근에 NoSQL 데이터베이스에 대해 많이 읽었으며이 데이터베이스를 사용하면 얻을 수있는 가장 큰 이점은 파티션 인 CAP보다는 데이터의 "모양"에 더 잘 맞는다는 것입니다. ACID 준수 포기. 결국, 모든 사람이 데이터를 분할해야 할만큼 많은 데이터를 가지고있는 것은 아닙니다. 데이터 분할에 대해 생각하기 전에 관계형 모델을 사용하지 않으면 성능 / 확장 성 이점이 있습니까?