NOSQL 기본 공부하기 - 01

in Korea • 한국 • KR • KO5 years ago

예전부터 공부하고 싶었던 DB를 시작합니다. (그 중에서 요즘 뜨고있는 NOSQL)
DB는 제대로 배워본적이 없어 걱정이지만 이왕하는거 공부하는 책을 요약&정리 한다고 생각하고 글로 써보려고합니다.(참고도서 '빅데이터 시대를 여는 첫걸음NOSQL 데이터모델링')

1.1 DBMS등장

  • IBM사에서 1968년 첫발표이후 여러번의 변화(DB통합 등)를 거쳐 최근에는 주로RDBMS 사용 됨 → 최근 빅데이터의 개념이 등장하면서 NOSQL형식의 DB가 주목을 받고있음
  • DBMS의 유명메이커 오라클의 등장 (1978년)→→→→ 거의 모든기업에서 사용하고있는 RDBMS(관계형 DB)까지 진화함
여기서 DBMS란? (Database Management System)
  • DB관리 솔루션
    -- DB관련 운영소프트웨어는 DBMS단독으로 사용되어 DB가 곧 DBMS

  • DBMS종류는 계층형DB, 네트워크DB, 관계형DB, 객체지향DB, 객체관계형DB, NOSQL 등 여러종류가 존재함
    -- 많이 사용되는것은 관계형 DB로 (RDBMS) mysql, 오라클, mariaDB ...etc

  • 2004년 구글에서 빅테이블개념을 발표(NOSQL의 개념이 알려지기 시작)

  • 2010년 구글에서 실적용을 시작, 본격적으로 NOSQL알려지기 시작함(mogoDB, Cassandra, HBASE.... 등여러 DB가 등장하여 사용)

1.2. 관계형 DB 개요

  • 제일 많이 사용하고있는 관계형DB 테이블 용어정리
  • 관계형 테이블을 NOSQL형식으로 바꾸면서 확인
    1_1_2_기본테이블.png

1.3 NOSQL 개요

  • 크게 4가지형식 으로 분류됨(key/Value, Column Family, Graph, Document)
1.3.1 key/Value Store
  • Key, Value값 만존재, 위 Key/Value형태는 아마존 DynamDB형식(추후 나중에 설명예정)
  • NOSQL의 기본형식

image.png

image.png

1.3.2 Column Family Store
  • key/Value → Column Family으로 확장된 형태
  • 관계형모델에서는 테이블 생성시 컬럼명(PK)을 새로정의해 줘야하고, 새 컬럼추가시 테이블구조 변경이 필요함
    -- 모든 값의 컬럼항목이 추가됨
  • Column Family에서는 구조변경이 필요없고 필요한 컬럼,값 만 추가 하면됨

image.png

1.3.3 Document Store
  • key/Value → Document로 확장된 형태(필드구조는 비슷함)
  • Value값대신 Document를 사용함(JSON, XML, YAM)
    -- 구조화된 데이터 타입, 복잡한 계층으로 데이터를 저장함(mongoDB, Azure CosmosDB, CouchDB ..etc)
  • Join기능 미지원, 복잡한쿼리 사용할수 없음(조인 비슷한 기능은 추후에 설명)

image.png