NOSQL 기본 공부하기 - 01
예전부터 공부하고 싶었던 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가 곧 DBMSDBMS종류는 계층형DB, 네트워크DB, 관계형DB, 객체지향DB, 객체관계형DB, NOSQL 등 여러종류가 존재함
-- 많이 사용되는것은 관계형 DB로 (RDBMS) mysql, 오라클, mariaDB ...etc2004년 구글에서 빅테이블개념을 발표(NOSQL의 개념이 알려지기 시작)
2010년 구글에서 실적용을 시작, 본격적으로 NOSQL알려지기 시작함(mogoDB, Cassandra, HBASE.... 등여러 DB가 등장하여 사용)
1.2. 관계형 DB 개요
- 제일 많이 사용하고있는 관계형DB 테이블 용어정리
- 관계형 테이블을 NOSQL형식으로 바꾸면서 확인
1.3 NOSQL 개요
- 크게 4가지형식 으로 분류됨(key/Value, Column Family, Graph, Document)
1.3.1 key/Value Store
- Key, Value값 만존재, 위 Key/Value형태는 아마존 DynamDB형식(추후 나중에 설명예정)
- NOSQL의 기본형식
1.3.2 Column Family Store
- key/Value → Column Family으로 확장된 형태
- 관계형모델에서는 테이블 생성시 컬럼명(PK)을 새로정의해 줘야하고, 새 컬럼추가시 테이블구조 변경이 필요함
-- 모든 값의 컬럼항목이 추가됨 - Column Family에서는 구조변경이 필요없고 필요한 컬럼,값 만 추가 하면됨
1.3.3 Document Store
- key/Value → Document로 확장된 형태(필드구조는 비슷함)
- Value값대신 Document를 사용함(JSON, XML, YAM)
-- 구조화된 데이터 타입, 복잡한 계층으로 데이터를 저장함(mongoDB, Azure CosmosDB, CouchDB ..etc) - Join기능 미지원, 복잡한쿼리 사용할수 없음(조인 비슷한 기능은 추후에 설명)