4. NoSQL의 매력
• 애플리케이션 개발 생산성
– 애플리케이션과 DB 상호 작용 단순화.
• 대규모 데이터
– 여러대로 구성된 클러스터 환경.
5. 관계형 DB의 가치
• 데이터 저장
– DB의 명확한 가치는 데이터 보관.
– 파일 시스템보다 뛰어난 융통성.
6. 관계형 DB의 가치
• 동시성과 통합
– 다수의 사용자가 동시에 데이터를 보고 수정
가능 .
– 트랙잰션 매커니즘.
– 서로 다른 컴토넌트간 통합 DB 공유.
7. 관계형 DB의 가치
• 표준 모델
– 벤더가 달라도 SQL 구분은 거의 비슷.
– 트랜잭션 동작 차이 없음.
– 벤터간 핵심 메커니즘 같음.
8. 관계형 DB의 불만
• 객체 관계 불일치
– 관계형 DB는 관계와 튜플로 데이터 구조화.
– 관계형 튜플안의 값은 단순해야 함.
– 중첩된 레코드나 다른 구조를 포함 할 수 없음.
– 객체 내 데이터 구조는 복잡한 구성.
– 객체 지향 DB의 등장… 하지만 실패.
– Hibernate, iBATIS의 프레임 워크 등장.
• DB나 쿼리 성능에 대한 이슈
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의 기본 개념
‘A Bigtable is a sparse, distributed,
persistent, multidimensional, sorted map.’
• Map
• 영구적이다.
• 분산기반이다.
• 정렬기능.
• 다차원적이다.
• 엉성하다.