[128회 관리 기출목차]

 

문제 1-6

NoSQL의 3가지 구조에 대하여 설명하시오

1. BigData대응 유연 스키마 구조, NoSQL 개요

구분 설명
개념 RDBMS 제약을 개선한 고용량의 비정형 데이터를 효율적으로 처리할 수 있는 구조와 유연성을 가진 확장가능한 분산 DBMS
특징 비관계형 구조 -기존 RDB와는 다르게 ForeignKey 등으로 데이터 관계를 제약하지 않으며(엔티티 관계 불필요), Join 기능 제거로 성능 향상
유연한 스키마 -비정형 데이터처 처리에 적합하도록 저장 컬럼은 각기 다른 이름과 다른 타입이 허용
대용량 분산처리 -BigData 처리에 적합한 확장 가능한 대용량 분산 처리 시스템

- BASE(Basically Available, Soft state, Eventually Consistence) 속성은 분산 데이터베이스 환경에서 가용성과 성능을 중시하는 NoSQL의 특성

2. NoSQL 3가지 구조
1) Key-Value Store

구분 설명
개념 기본적인 패턴으로 Key-Value 하나의 묶음으로 저장되는 구조(Unique Key에 하나의 Value 대응)
데이터 Integer, String, Primitive Type
특징 - 단순한 구조로 속도가 빠르며 분산 저장 시 용이
- 모바일 애플리케이션용 사용자 데이터 정보와 구성 정보 저장
- 이미지나 오디오 파일 같은 대용량 객체 저장
사례 Redis, Riak, Oracle Berkely, AWS DynamoDB, VoldeMorte

- 대부분 NoSQL 제품 기본 구조로 활용

2) Wide Columm Store(Column Family Store)

구분 설명
개념 Key-Value Store 방식의 Key:Value=1:1제약을 개선하여 단일 Key에 다수의 Column을 저장할 수 있는 구조
데이터 Integer, String, Primitive Type
특징 - 테이블의 스키마가 유동적, 즉 레코드마다 각각 다른 스키마 가능
- 대용량 데이터 읽기/쓰기 성능 및 고가용성 설계
- 컬럼들을 컬렉션으로 병합가능(Column Family)
- 분산 애플리게이션 적합
사례 Hbase, Casandra, Google BigTable, MS Azure, Vertica

- 특히 Ordering을 제공하는 NoSQL형식을 Sorted by Key/Value Store라 명명

3) Document Store

구분 설명
개념 Key-Value의 확장된 구조로 저장되는 Value의 타입으로 Document라는 구조화된 데이터 타입(JSON, XML등) 사용, 즉 Value를 문서로 저장
데이터 Document (JSON, XML,...)
특징 - 테이블의 스키마가 유동적, 즉 레코드마다 각각 다른 스키마 가능
- 복잡한 계층구조 및 다양한 속성 효과적 표현
- 비정규화된 중첩구조 및 JSON 데이터 구조에 적합
사례 MongoDB, CouchDB, Couchbase, Azure Cosmos DB

- 제품에 따라 Sorting, Join, Grouping등 RDB와 같은 기능 지원

3. NoSQL과 RDBMS 비교

구분 NoSQL RDBMS
구성기반 Document, Key-Value pairs,
Wide-column
Table
스키마 Dynamic Schema Predefined Schema
트랜잭션 BASE 강조 ACID 강조
확장방향 Horizontally Scalable (Scale-Out) Vertically Scalable (Scale-up)
쿼리 기본적으로 Put/Get 지원 Sort, Join, Grouping, Index등 다수

+ Recent posts