NoSQL DB는 비관계형 데이터베이스를 의미하며, 관계형 데이터베이스의 테이블과는 다른 형식으로 데이터를 저장한다. 다양한 데이터 처리 방식으로 목적에 따라 데이터베이스를 유연하게 설계할 수 있어, 비정형 데이터를 처리하는데 용이하다.
NoSQL DB는 다양한 대규모 데이터를 처리해야 할 필요성 때문에 주목받기 시작했다. NoSQL DB로 다양한 데이터 형식과 모델을 관리할 수 있고, 이것으로 예측 불가능한 데이터를 유연하고 빠른 속도로 처리할 수 있다.
유연성: NoSQL에는 엄격하게 정해진 스키마가 없기 때문에(schemaless: 데이터의 스키마와 속성을 동적으로 정의함), 훨씬 더 자유로운 방식으로 데이터를 저장할 수 있다. 이것으로 인해 보다 빠르게 데이터베이스를 개발할 수 있으며, 빈번한 변화와 데이터 요구 사항에 맞춰 빠르고 유연하게 데이터를 저장할 수 있다.
확장성: NoSQL DB를 사용하면 서버를 증설해 확장하는 대신, 분산형 서버 클러스터(여러 DB 서버를 묶어서 클러스터를 만듦) 내에 규모가 큰 단일 데이터베이스를 보관할 수 있다. 이로 인해 증가한 트래픽을 처리할 수 있고, 다운타임 없이 수요를 충족시킬 수 있다.
고성능: NoSQL DB는 데이터를 빠르고 안정적으로 수집하고 제공할 수 있기 때문에, 데이터 양과 트래픽이 증가할 때 매우 좋은 성능을 보인다.
고기능성: NoSQL DB는 데이터 저장 수요가 매우 큰 분산형 데이터 저장소를 위해 설계되었고, 유연하게 데이터를 처리할 수 있기 때문에 실시간 웹, 앱, 온라인 쇼핑, 게임, 소셜 네트워크 등 다양한 분야에서 사용할 수 있다.
Key-value DB: 해시 테이블을 사용하여 key-value 쌍으로 데이터를 저장하는 방식으로 가장 널리 쓰이는 방식이다.
Wide Columnar DB: Big Table DB라고도 하며 테이블, 행, 열 형식으로 데이터를 저장하고 관리하는 방식이다.(Column Family 데이터 모델)
Document DB: HTML, JSON, XML과 같은 Collection 데이터 모델을 채택하는 유형으로 반정형 데이터의 저장, 검색, 관리에 사용된다.
Graph DB: 데이터를 노드 간 연결 관계를 보여주는 유형으로, 소셜 네트워크, 추천 엔진 등 연결된 데이터셋을 사용하는 APP을 쉽게 구축하고 사용할 수 있게 한다.
Reference
OCI-NoSQL이란 무엇인가?
NoSQL이란?
정보통신용어사전-반정형 데이터