발자취

#13 반정형데이터 (NoSQL, JSON) 본문

3-1/데이터베이스

#13 반정형데이터 (NoSQL, JSON)

해린 2023. 8. 12. 04:25

#01 NoSQL

 - 기존의 RDBMS가 읽기 최적화인데 반해 쓰기 최적화된 시스템
 
 - 현재의 NoSQL
    - 읽기 최적화된 RDBMS와 쓰기 최적화된 NoSQL을 합쳐서 서로의 약점을 보완함
 
1. NoSQL 분류
 (1) CAP 이론
    - 일관성(Consistency): 여러 개의 클라이언트가 조회해도 데이터가 항상 일정
    - 가용성(Availability): 노드가 장애가 발생해도 읽기/쓰기에는 문제 없는 성질
    - 파티션 내성(Partition Tolerance): 네트워크가 분리되도 개별 서비스는 문제 없는 성질
    → 3가지를 모두 제공하는 시스템은 없다 -> 2개만 제공 (CA, AP, CP)
 
 (2) 저장방식
    - Key/Value Store
    - Ordered Key/Value Store: 기본 키 정렬해서 저장
    - Document Key/Value Store: Value 값이 문서임
    - 컬럼기반 저장 방식: 기존의 줄(row) 단위 저장 방식이 아닌, 컬럼 기반 저장방식
       - 컬럼단위로 조회/처리할 때 적합
 
 

#02 JSON

 - Key/value Store
 - RDBMS와의 주요 차이점
    - 테이블 - 외래키 연결 구조가 아님 (조인도 안됨)
 
 

#02-2 JSON 실습

‘test’ 테이블을 만들고, JSON을 사용하여 ‘age’, ‘gender’, ‘department’ 값을 삽입했습니다.
 

profile 컬럼 안에 JSON 형태로 저장되어 있는 것을 확인할 수 있습니다.
json_extract 함수로 JSON 값을 조회할 수 있습니다. profile 컬럼에서 ‘department’ 키를 갖는 값을 찾아 조회했습니다.