NoSQL

0

빅데이터와 같이 떠오르는 기술 NoSQL

Where it came from

이전까지의 컴퓨팅 시스템은 기업 업무를 자동화하고 효율화 하는데 그 목적이 있었고 복잡한 데이터를 저장하거나 그 데이터간의 관계를 정의하고 분석하는데 최적화되어 있었다.

물론 그 과정에서 생성되는 데이터의 양은 한계를 가지고 있었다.

BUT!
인터넷의 발전과 함계 특정고객이 아닌 전세계 사람들을 대상으로 하는 형태의 서비스가 발전이 되었고 이는 기존의 기업 시스템에서 볼 수 없었던 대규모의 데이터를 생산해냈다.

또한 이 데이터들은 기존에 복잡했던 데이터 형태에 비해 매우 단순한 형태를 띠었고 이것은 기존의 Oracle, MySQL등으로 대변되는 관계형 데이터베이스RDBMS 중심의 데이터 저장 기술 시장에서 새로운 데이터 저장 기술인 NoSQL이 등장하는 계기가 되었다.

관계형 데이터베이스는 관계된 데이터들을 보관하고 열람하기 편하지만 그 데이터의 크기가 엄청나게 커지고 복잡해지면 유지관리가 힘들어진다.

What

NoSQL 은 Not Only SQL or Non SQL 이라는 뜻으로 기존 RDBMS형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미하며 관계형 데이터베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태로 수평적 확장성을 갖고 있다.

RDBMS가 클라이언트/서버 환경에 맞는 데이터 저장기술이라면 NoSQL은 클라우드 환경에 맞는 저장 기술이다.

concepts

  • NoSQL은 RDBMS와는 달리 데이터간의 관계를 정의하지 않는다.
    RDBMS가 데이터의 관계를 Foreign Key등으로 정의하고 이를 이용해 Join등의 관계형 연산을 한다고 하면, NoSQL은 데이터간의 관계를 정의하지 않는다. 데이터 테이블은 그냥 하나의 테이블이며 각 테이블간의 관계를 정의하지 않고 일반적으로 테이블간의 Join도 불가능하다.

  • RDBMS에 비해 훨씬 더 대용량의 데이터
    관계형 데이터베이스의 복잡도와 용량의 한계를 극복하기 위한 목적으로 등장한 만큼 더욱 더 많은 급의 대용량 데이터를 저장할 수 있다.

  • 분산형 구조
    NoSQL은 RDBMS와는 다르게 하나의 고성능 머신에 데이터를 저장하는것이 아니라 일반적인 서버 수십대를 연결해 데이터를 저장 및 처리하는 구조를 갖는다. 즉, 여러대의 서버에 분산해, 특정서버에 장애가 발생했을 때에도 데이터 유실이나 서비스 중ㅈ디가 없는 구조의 형태를 가진다.

  • 고정되지 않은 테이블 스키마
    테이블의 스키마가 유동적, 데이터를 저장하는 컬럼은 각기 다른 이름과 다른 데이터 타입을 갖는것이 허용된다.
    (RDBMS할때 컬럼하나 추가할려면, DB 날리고, 컬럼 추가하고, 마이그레이션 다시하고,, 어우..🤦🏻‍♀️)

types

  • Key-Value DB
  • Wide Columnar DB
  • KDocument DB
  • Graph DB

source

곰돌이 놀이터

profile
🇰🇷🇺🇸 #Back-End Engineer

0개의 댓글