에릭브루어는 CAP를 모두 동시에 지원하는 분산 컴퓨터 시스템은 없다라고 가설을 제시했는데, 세스길버트와 낸시린치가 이를 증명했다.
일반적으로 웹 서버와 DB서버는 각각 다른 하드웨어에 설치한다. 이와 같이 단일 시스템이 아닌 '다중 시스템환경에서 소프트웨어가 작동하는 것'을 분산 컴퓨팅이라 한다.
대부분의 NoSQL은 기본적으로 분산 환경에서 잘 동작하도록 설계되어 있다. 즉 동일한 성격의 데이터가 물리적으로 다른 하드웨어에 저장되고 조회된다. 이때 각 NoSQL은 일관성, 가용성, 분할허용성 가운데 두 가지 속성만을 지원하며, 나머지 한 속성은 특정 조건에서만 만족한다. 이것이 CAP정리의 핵심이다.
CAP정리에 기초한 세 가지 속성 중에서 어떠한 두 속성을 지원하는 지에 따라서 NoSQL의 특징이 달라진다.
분산시스템을 구성하는 각각의 하드웨어 또는 소프트 웨어를 노드, 그 노드들의 모음을 클러스터라고 한다. 분산시스템은 하나 혹은 그 이상의 다중 클러스터로 구성될 수 있다. 다중의 클러스터에서는 각 클러스터는 동일 지역 혹은 지역적으로 떨어진 위치에 존재할 수 있다. 이때 각 클러스터 간의 연결은 네트워크를 기반으로 한다.