데지덤

  1. 데이터관련 직무와 자격
    1. 데이터베이스 직무

    2. 데이터베이스 자격

  2. 데이터관련 학습방법
    1. 데이터베이스 개론 학습

    2. DBMS 학습

    3. 읽어볼만한 DB책

  3. 최신동향과 유명한 Things
    1. DB최신동향

    2. 데이터로 유명한 Things

  4. 데이터베이스 개념
    1. 데이터베이스 개념

    2. DBMS

    3. 데이터베이스 개발과운영

  5. 데이터베이스 설계(1/2)
    1. 데이터표준

    2. 데이터모델링

    3. 데이터모델 디자인패턴

  6. 데이터베이스 설계(2/2)
    1. 프로세스및상관모델링

    2. 정규화

    3. 반(역)정규화

    4. DB물리설계

  7. 인덱싱과 DB프로그래밍
    1. 인덱스와 해싱

    2. 관계연산

    3. DB언어

    4. SQL

    5. 데이터베이스 미들웨어

  8. 데이터베이스 운영
    1. 트랜잭션

    2. 병렬처리

    3. 데이터베이스 복구

    4. 데이터베이스 성능

    5. 병행제어(동시성제어)

  9. 분석계 및 빅데이터기술
    1. 데이터웨어하우스

    2. 데이터마이닝

    3. 빅데이터기술

  10. 데이터거버넌스
    1. 데이터거버넌스

    2. 데이터베이스 감리/진단

  11. 데이터베이스 종류와 보안
    1. 데이터베이스 종류

    2. 데이터베이스 보안

  12. DBMS
    1. 오라클

    2. SQL Server

    3. DB2

    4. Sybase

    5. Altibase

NoSQL

개념
관계형 DB의 한계를 벗어나, Web2.0의 비정형 초고용량 데이터 처리를 위해 데이터의 읽기보다 쓰기에 중점을 둔, 수평적 확장이 가능하며 다수 서버들에 데이터 복제 및 분산 저장이 가능한 DBMS. 고비용의 ACID를 최우선으로하는 관계형DB의 한계를 벗어나, 비정형 데이터, 비관계형 데이터 저장을 위한 분산저장 시스템

I. 분산 DBMS환경에서의 고확장성 및 고용량 데이터 처리, NoSQL의 개요

  가. NoSQL(Not Only SQL)의 정의

- 관계형 DB의 한계를 벗어나, Web2.0의 비정형 초고용량 데이터 처리를 위해 데이터의 읽기보다 쓰기에 중점을 둔, 수평적 확장이 가능하며 다수 서버들에 데이터 복제 및 분산 저장이 가능한 DBMS

  나. NoSQL의  필요성

구분

설명

데이터 규모

의 확대

SNS와 같이 저장할 데이터가 많고 읽고/쓰기에 대해 기존 RDB가 제약적인 비즈니스 모델 등장

Web 2.0 이후 등장한 웹 기반 서비스들이 글로벌로 확장되면서

데이터의 처리양이 폭발적으로 증가함

웹서비스의

구조변화

웹 기반 서비스들의 저장할 데이터의 형태가 지속적으로 변화

사용자의 데이터 요구가 일관적이지 않고 다양해짐

 

  다. NoSQL의 장/단점

구분

설명

장점

데이터의분산저장으로수평적인확장이용이

대용량데이터의쓰기성능의향상

Disk 기반의경우저비용으로대용량데이터저장소구축용이

단점

구현기술의난이도가높음.

대부분공개소스기반으로안정성보장및문제발생시기술지원이곤란함.

자체적인기술력을확보하여야구축, 유지보수가가능(Google, Yahoo, Twitter, Facebook 등대형인터넷포탈업체들이주로채택함)

 

2. NoSQL 의 구성 및 특징

  가. NoSQL의 구성

  -  NoSQL은 클러스터링을 통한 확장성을 제공하며, 기존의 SQL 방식이 아닌 OpenAPI 및 RESTFul 서비스를 활용한 쿼리를 수행한다.

 

나. NoSQL의 특징

특징

설명

대용량 데이터 처리

페타바이트 수준의 데이터 처리 수용 가능한 느슨한 데이터 구조 제공

저렴한 클러스터 구성

PC 수준의 상용 하드웨어를 활용 다수 서버를 통한 수평적인 확장 및 데이터 복제 및 분산 저장 가능

병목 현상 제거

SQL의 구조적이고 반복적인 실행 구조와 달리 Key-Value 및 Graph, Document 구조의 단순화된 형태

필요한 만큼의 무결성

관계형 DBMS가 논리적 구조 및 ACID의 보장에 초점을 맟춘 반면, NoSQL은 무결성 모두 DBMS에 담당시키기 보다 응용에서 일부 처리함

 

 

3. NoSQL의 이론적 배경, CAP Theorem의 개념

  가. CAP Theorem의 정의

    대용량 분산 데이터 저장소는 데이터 일관성(Consistency), 가용성(Availability), 단절내성(Partition Tolerance)을 모두 만족시키는 것이 불가능하므로 두 가지만 전략적으로 선택해야 한다는 이론

 

  나. CAP Theorem의 구성과 관리 전략

특성

설명

구성도

Consistency

모든 노드들은 같은 시간에 같은 데이터를 보여줘야 함.

(각각의 사용자가 항상 동일한 데이터를 조회함)

Availability

몇몇 노드가 다운되어도 다른 노드들에게 영향을 주지 않아야 함.

(모든 사용자가 항상 읽고 쓸 수 있음)

Partition Tolerance

일부 메시지를 손실하더라도 시스템은 정상 동작을 해야 함

(물리적 네트워크 분산 환경에서 시스템이 잘 동작함)

C + A

-시스템이 죽더라도 메시지 손실은 방지하는 강한 신뢰형

-트랜잭션이 필요한 경우 필수적

-일반 RDBMS

C + P

-모든 노드가 함께 퍼포먼스를 내야하는 성능형

- 구글의 BigTable, HyperTable, HBase

A + P

-비동기화된 스토어 작업에 필수적

- Dynamo, Apache Cassandra, CouchDB, Oracle Coherence

- NoSQL 시스템들은 A+P, C+P 의 특성을 가지는 분산 시스템들로 구성

- 전통적인 RDBMS의 ACID가 아닌 BASE(Basically Available, soft state, Eventually consistent) 특성을 추구

 

4. NoSQL과 SQL의 비교 및 NoSQL 제품별 비교

  가. NoSQL과 SQL의 비교

구 분

SQL

NoSQL

저장 데이터

기업의 제품판매 정보, 고객정보 등의 핵심 정보의 저장

중요하지 않으나 데이터 양이 많고 급격히 늘어나는 정보 저장

환경측면

일반적인 환경이나 분산 환경 등에 사용

클라우드 컴퓨팅 처럼 수천, 수만대 서버의 분산 환경

장점

무결성, 정합성, 원자성, 독립성, 일관성

비용적인 측면과 확장성 기준

처리방법

오라클 RAC 등으로 분산 처리 방법

페타 바이트 수준의 대량의 데이터 처리

특징

고정된 스키마를 가지며 조인 등을 통하여 데이터를 검색함

단순한 키와 값의 쌍으로만 이루어져 인덱스와 데이터가 분리되어 별도로 운영됨

사용 예

오라클 RAC

구글의 Bigtable, 아마존의 Dynamo, 트위터의 Cassandra 등

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

나. NOSQL의 제품별 비교

CouchDB

MongoDB

Cassandra

개발언어

Erlang

C++

Java

중요점

DB Consistency,

ease of use

 

Retains some friendly properties of SQL.(Query, Index)

Best of BigTable and Dynamo

License

Apache

AGPL(Driver:Apache)

Apache

Protocol

HTTP/REST

Custom, binary(BSON)

Custom, binary(Thrift)

CAP

AP

CP

AP

Best

used

계산이 필요할 때, 종종 데이터 갱신이 필요할 때

동적인 질의가 필요할 때, 커다란 DB에서 좋은 수행능력이 필요할 때, CouchDB를 필요로 하지만 너무 많은 쓰기가 이루어질 때

읽기보다 쓰기가 많을 때, 시스템 컴포넌트가 모두 자바로 이루어져야 할 때,

For

example

CRM, CMS 시스템, 마스터 복제를 통해 데이터 복제를 쉽게 가능하게 사용할 수 있는 서비스

SQL 처리를 이용해야 하는 서비스

은행 서비스, 재무 관련 서비스

 

 

 

5. NoSQL의 적용사례 및 전망

  가.  NoSQL 적용 사례

범위

사례

국외

Google Bigtable, Amazon’s Dynamo, Digg.com Cassandra, Twitter Cassandra

국내

NHN 인증 플랫폼, Daum카페

 

  나. NoSQL 의 전망

   - 웹의 대용량화, 고성능화, 수평적 확장성(Horizontal Scalability: 즉 옆에 서버 한 대 더 배치해서 데이터베이스를 늘리고 싶다는 의미)을 해결하기 위해 CAP의 범주 중 CP, AP의 요구로 인한 NoSQL의 활용도의 증가 전망.

    - 국내외적으로 오픈소스 진영의 프로젝트가 활발히 진행 중임.

 

 

 

 

 

 

 

 

댓글