"Nosql 철저입문"을 중심으로 살을 붙여서 작성함.
1. nosql 탄생배경:
- 기존의 관계형 데이터베이스가 요구사항을 충족하지 못해서 생김.
- 관계형 데이터베이스의 한계:
-- 대용량 데이터의 읽기와 쓰기 작업
-- 빠른 응답시간
-- 높은 가용성
-- 이 3가지를 충족시키기 어려움.
2. 대용량 데이터 관리시스템에서 고려해야할 4가지 특성
1) 확장성
변화무쌍한 작업 부하에 대한 요구사흥을 효율적으로 충족시키는 능력
대표적으로 스케일아웃하면 가능하다.
그런데 관리형 데이터베이스는 스케일아웃하기 위해서는 따로 소프트웨어가 필요함.
스케일업하는 방법도 있긴함.--> 유연성이 떨어짐
--> Nosql은 유연하게 관리 가능
2) 비용
라이센스 비용. -->관계형 db는 비용이 많이듬.
주요 Nosql은 오픈소스
3) 유연성
관계형 db는 테이블과 칼럼이 고정되어있어서 유연성이 부족하다.
다만, 일부 Nosql은 고정된 테이블구조가 필요없다.
4) 가용성
특정 부분이 장애가 나도 작동을 해야한다는 의미이다.
책에는 자세히 나와있지 않지만,(혹은 내가 이해를 못했거나)
이부분도 RDMBS보다는 Nosql쪽이 좋은 것 같다.
웹크롤링 + 온라인 장바구니 관리프로그램들 --> nosql필요.
nosql 분류
키-값, 문서, 칼럼패밀리, 그래프 데이터베이스
문서 데이터베이스 --> 키-값의 묶음인 document라는 노리구조 구성
광범위한 데이터 관리작업에 사용하는 경우
그래프 데이터베이스 --> 네트워크 모델링하는데 적합 --> 컴퓨터간의 통신부터 사람들 사이의 상호교류까지 사용.
데이터베이스 시스템 기본 기능
영구적인 데이터 저장
데이터 일관성 유지
--> 관계형 데이터베이스 시스템은 여러단계에 걸쳐 일어나는 과정을 단일작업처럼, 단일 트랜잭션으로 처리하도록 설계
nosql --> 결과적 일관성