Skip to content

NoSQL

NoSQL 데이터베이스는 전통적인 관계형 데이터베이스 보다 덜 제한적인 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공한다. 이러한 접근에 대한 동기에는 디자인의 단순화, 수평적 확장성, 세세한 통제를 포함한다. NoSQL 데이터베이스는 단순 검색 및 추가 작업을 위한 매우 최적화된 키 값 저장 공간으로, 레이턴시와 스루풋과 관련하여 상당한 성능 이익을 내는 것이 목적이다. NoSQL 데이터베이스는 빅데이터와 실시간 웹 애플리케이션의 상업적 이용에 널리 쓰인다. 또, NoSQL 시스템은 SQL 계열 쿼리 언어를 사용할 수 있다는 사실을 강조한다는 면에서 "Not only SQL"로 불리기도 한다.

Categories

About

NoSQL 이란? (NoSQL은 "Not Only SQL" 이라고도 불린다.) 우리가 익숙하게 사용하고있는 RDBMS 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미한다. 제품에 따라 각기 그 특성이 매우 달라서 NoSQL을 하나의 제품군으로 정의할 수는 없다.

NoSQL 제품군이 RDBMS와의 다른 점으로는

  • 스키마가 없다. 즉, 데이터 관계와 정해진 규격 (table - column 의 정의)이 없다.
  • 관계정의가 없으니 Join이 불가능 하다. (하지만 reference와 같은 기능으로 비슷하게 구현은 가능하다)
  • 트랜잭션을 지원하지 않는다.
  • 분산처리 (수평적 확장)의 쉽게 제공한다.
  • 대부분의 NoSQL DB는 분산처리기능을 목적으로 나왔기 때문에 분산처리 기능을 자체 프레임워크에 포함하고 있다.
  • 트랜젝션과 JOIN 기능은 분산 시스템에서 효율적으로 제공하기 어렵기 때문에 제외 되었으며, 높은 확장성을 제공하는 아키텍처를 위한 결정이다.
  • 읽기 쓰기가 빠름 (Case-by-Case)

그리고 위의 내용들은 어느것이 장점이다 단점이다 말하기는 힘들다. 이유는 용도에 따라 장단점이 달라지기 때문이고 NoSQL이 RDBMS의 대안은 아니라는 것이다.

그럼 NoSQL은 왜 등장하게 되었을까?

빅 데이터 시대를 맞이하여 서비스를 제공하는 시스템에서 많은 양의 데이터를 효율적으로 처리가 필요하게 되었다.

  • 이로인해 데이터의 분산처리(샤딩),
  • 빠른 쓰기 및 데이터의 안정성 (복제)

즉 분산형 구조를 통해 데이터를 여러 대의 서버에 분산해 저장하고, 분산 시에 데이터를 상호 복제해 특정 서버에 장애가 발생했을 때에도 데이터 유실이나 서비스 중지가 없는 형태의 구조다.

See also

Favorite site

References


  1. NoSQL_comparison_-_Software_architect_Kristof_Kovacs.pdf