NoSQL Distilled
왜 NoSQL인가?
              양충현
Database 발전과정
도전자 NoSQL
• 절대 갖ㅇ자 관계형 DB의 종말?
• 과대 광고?
NoSQL의 매력
• 애플리케이션 개발 생산성
 – 애플리케이션과 DB 상호 작용 단순화.
• 대규모 데이터
 – 여러대로 구성된 클러스터 환경.
관계형 DB의 가치
• 데이터 저장
 – DB의 명확한 가치는 데이터 보관.
 – 파일 시스템보다 뛰어난 융통성.
관계형 DB의 가치
• 동시성과 통합
 – 다수의 사용자가 동시에 데이터를 보고 수정
   가능 .
 – 트랙잰션 매커니즘.
 – 서로 다른 컴토넌트간 통합 DB 공유.
관계형 DB의 가치
• 표준 모델
 – 벤더가 달라도 SQL 구분은 거의 비슷.
 – 트랜잭션 동작 차이 없음.
 – 벤터간 핵심 메커니즘 같음.
관계형 DB의 불만
• 객체 관계 불일치
 – 관계형 DB는 관계와 튜플로 데이터 구조화.
 – 관계형 튜플안의 값은 단순해야 함.
 – 중첩된 레코드나 다른 구조를 포함 할 수 없음.
 – 객체 내 데이터 구조는 복잡한 구성.
 – 객체 지향 DB의 등장… 하지만 실패.
 – Hibernate, iBATIS의 프레임 워크 등장.
• DB나 쿼리 성능에 대한 이슈
객체관계 불일치
통합 DB
• 서로 다른 component간 공통 DB 사용.
• 일관된 데이터 동작, 커뮤니케이션 향상.
• 통합은 인한 복잡한 구조
• 속성 추가로 인한 타 component 쿼리 성
  능 저하.
• 데이터 정합성 보장 못함.
애플리케이션 DB
• 단일 component가 하나의 DB 사용.
• 스키마 유지및 개선이 쉬워짐.
• 데이터의 정합성은 해당 component가 책
  임.
• Component 통합은 SOA(Service
  Oriented Architecture).
클러스터의 공격
• 2000년대 들어 대규모 데이터 집합 등장
 – 웹사이트 사용자 활동 추적
   • 링크, 소셜, 네트워크 활동 로그, 매핑 데이터.
   • 대규모 사이트는 엄청난 수의 방문자에게 서비스
     제공.
 – 데이터와 트래픽 증가
   • 해결방법 : 수평 확장, 수직 확장
수직확장과 수평확장
• 수직확장
 – 장비에 더 많은 프로세스, 디스크 스토리지 및 메
   모리 장착.
 – 실질적 한계 및 가격이 비쌈.
• 수평확장
 – 값싼 장비를 모아 클러스터로 구성.
 – 클러스터 구성은 다수의 장비중 한대가 실패도 중
   단되지 않음.
 – 관계형 DB는 지원하지 않음.
 – 빅테이블과 다이나모 논문.
NoSQL의 출현
• 1990년대 오픈 소스 관계형 DB의 이름으
  로 처음 등장.
 – 아무런 영향을 끼치지 못함.
• 현재 NoSQL 용어의 기원은 비공식 모임의
  이름(2009년)
 – 새로운 DB를 알고 싶어 하는 모임.
 – 볼드모트,카산드라,다이노마이트,H베이스,하
   이퍼테이블,카우치 DB,몽고 DB가 참여.
NoSQL이란?
• SQL을 사용하지 않음.
 – 일부 SQL은 질의어 지원.
• 오픈 소스 프로젝트.
• 대부분 클러스터 환경에서 실행할 목적.
• Not Only SQL = NOSQL != NoSQL
NoSQL의 기본 개념
‘A Bigtable is a sparse, distributed,
  persistent, multidimensional, sorted map.’
• Map
• 영구적이다.
• 분산기반이다.
• 정렬기능.
• 다차원적이다.
• 엉성하다.

NoSQL distilled 왜 NoSQL인가

  • 1.
  • 2.
  • 3.
    도전자 NoSQL • 절대갖ㅇ자 관계형 DB의 종말? • 과대 광고?
  • 4.
    NoSQL의 매력 • 애플리케이션개발 생산성 – 애플리케이션과 DB 상호 작용 단순화. • 대규모 데이터 – 여러대로 구성된 클러스터 환경.
  • 5.
    관계형 DB의 가치 •데이터 저장 – DB의 명확한 가치는 데이터 보관. – 파일 시스템보다 뛰어난 융통성.
  • 6.
    관계형 DB의 가치 •동시성과 통합 – 다수의 사용자가 동시에 데이터를 보고 수정 가능 . – 트랙잰션 매커니즘. – 서로 다른 컴토넌트간 통합 DB 공유.
  • 7.
    관계형 DB의 가치 •표준 모델 – 벤더가 달라도 SQL 구분은 거의 비슷. – 트랜잭션 동작 차이 없음. – 벤터간 핵심 메커니즘 같음.
  • 8.
    관계형 DB의 불만 •객체 관계 불일치 – 관계형 DB는 관계와 튜플로 데이터 구조화. – 관계형 튜플안의 값은 단순해야 함. – 중첩된 레코드나 다른 구조를 포함 할 수 없음. – 객체 내 데이터 구조는 복잡한 구성. – 객체 지향 DB의 등장… 하지만 실패. – Hibernate, iBATIS의 프레임 워크 등장. • DB나 쿼리 성능에 대한 이슈
  • 9.
  • 10.
    통합 DB • 서로다른 component간 공통 DB 사용. • 일관된 데이터 동작, 커뮤니케이션 향상. • 통합은 인한 복잡한 구조 • 속성 추가로 인한 타 component 쿼리 성 능 저하. • 데이터 정합성 보장 못함.
  • 11.
    애플리케이션 DB • 단일component가 하나의 DB 사용. • 스키마 유지및 개선이 쉬워짐. • 데이터의 정합성은 해당 component가 책 임. • Component 통합은 SOA(Service Oriented Architecture).
  • 12.
    클러스터의 공격 • 2000년대들어 대규모 데이터 집합 등장 – 웹사이트 사용자 활동 추적 • 링크, 소셜, 네트워크 활동 로그, 매핑 데이터. • 대규모 사이트는 엄청난 수의 방문자에게 서비스 제공. – 데이터와 트래픽 증가 • 해결방법 : 수평 확장, 수직 확장
  • 13.
    수직확장과 수평확장 • 수직확장 – 장비에 더 많은 프로세스, 디스크 스토리지 및 메 모리 장착. – 실질적 한계 및 가격이 비쌈. • 수평확장 – 값싼 장비를 모아 클러스터로 구성. – 클러스터 구성은 다수의 장비중 한대가 실패도 중 단되지 않음. – 관계형 DB는 지원하지 않음. – 빅테이블과 다이나모 논문.
  • 14.
    NoSQL의 출현 • 1990년대오픈 소스 관계형 DB의 이름으 로 처음 등장. – 아무런 영향을 끼치지 못함. • 현재 NoSQL 용어의 기원은 비공식 모임의 이름(2009년) – 새로운 DB를 알고 싶어 하는 모임. – 볼드모트,카산드라,다이노마이트,H베이스,하 이퍼테이블,카우치 DB,몽고 DB가 참여.
  • 15.
    NoSQL이란? • SQL을 사용하지않음. – 일부 SQL은 질의어 지원. • 오픈 소스 프로젝트. • 대부분 클러스터 환경에서 실행할 목적. • Not Only SQL = NOSQL != NoSQL
  • 16.
    NoSQL의 기본 개념 ‘ABigtable is a sparse, distributed, persistent, multidimensional, sorted map.’ • Map • 영구적이다. • 분산기반이다. • 정렬기능. • 다차원적이다. • 엉성하다.