데이터베이스

NoSQL

승무_ 2023. 4. 10. 08:19

정의

NoSQL(Not Only SQL)은 관계형 데이터베이스가 갖는 테이블 형태의 스키마에 얽매이지 않고 자유롭게 데이터를 저장하고 조회할 수 있는 비관계형 데이터베이스입니다. NoSQL은 분산 처리, 고성능, 확장성 등의 장점을 가지고 있어 대규모 분산 시스템에서 많이 사용됩니다.

 

CAP 이론

CAP 이론은 분산 시스템에서 세 가지 속성 중 최대 두 가지만 만족할 수 있다는 것을 설명하는 이론입니다. CAP은 일관성(Consistency), 가용성(Availability), 분할 내성(Partition tolerance)의 약자입니다.

일관성(Consistency): 모든 클라이언트가 같은 시간에 같은 데이터를 보게 됩니다. 이 속성을 만족하는 시스템은 모든 노드에 동일한 데이터가 있는 것을 보장합니다. 

가용성(Availability): 모든 클라이언트 요청에 대해 항상 응답을 보장합니다. 이 속성을 만족하는 시스템은 항상 사용 가능하며, 일부 노드의 장애가 발생해도 서비스가 중단되지 않습니다.

분할 내성(Partition tolerance): 이 속성을 만족하는 시스템은 분산 시스템에서 일부 노드가 통신 불가능하더라도 전체 시스템이 정상적으로 동작합니다.

CAP 이론은 분산 시스템에서 노드의 수가 많아지고 더 많은 클라이언트가 접속하면서 일관성과 가용성, 분할 내성 세 가지 속성을 모두 만족시키는 것이 어렵다는 것을 보여줍니다. 따라서 시스템 설계 시에는 이 세 가지 속성 중에서 필요한 두 가지를 선택하여 설계해야 합니다

 

저장 방식에 따른 NoSQL 분류

 

NoSQL 데이터베이스에서 사용되는 데이터 모델은 크게 3가지로 분류할 수 있습니다. 

Key-Value Model
Key-Value Model은 데이터를 키와 값의 쌍으로 저장하는 모델입니다. 이 모델은 매우 단순하고 빠르게 데이터를 저장하고 조회할 수 있습니다. 예를 들어, 사용자의 아이디와 비밀번호를 저장할 때, 사용자의 아이디를 키로, 비밀번호를 값으로 저장할 수 있습니다. 대표적인 예시로 Redis가 있습니다.

Document Model
Document Model은 JSON, XML과 같은 형식으로 데이터를 저장하는 모델입니다. Document Model은 Key-Value Model에 비해 복잡한 구조를 갖을 수 있으며, 여러 필드를 묶어 하나의 문서(Document)로 관리합니다. 대표적인 예시로 MongoDB가 있습니다.

Column Model
Column Model은 하나의 키에 여러 개의 컬럼 이름과 컬럼 값의 쌍으로 이루어진 모델입니다. 이 모델은 대용량 데이터를 처리할 때 매우 효율적입니다. 대표적인 예시로 Apache Cassandra가 있습니다.

'데이터베이스' 카테고리의 다른 글

Key (기본키, 후보키, 슈퍼키 등등...) 에 대해 설명해 주세요.  (0) 2023.06.19
면접 준비  (0) 2023.04.21
교착상태  (0) 2023.04.09
정규화  (0) 2023.04.03
Index  (0) 2023.04.02