RDB 특징(장단점)

 - Table마다 Schema를 정의해야한다

    - data type과 constraint를 통해서, 데이터의 정확성을 보장한다

 - SQL을 통해 요청을 처리한다

 - 성능을 높이려면 H/W를 고성능으로 교체해야 한다 (=scale up)

    - 고성능 H/W는 가격이 매우 비싸다

    - RDB의 성능을 높이기(확장하기) 어렵다는 의미이고, 이것을 보고 RDB의 확장성이 낮다고 한다


NoSQL 특징(장단점)

 - RDB의 확장성 이슈를 해결하기 위해 나온 DB 모델 (등장배경)

 - 분산 컴퓨팅 활용이 목적이고 이것을 통해, 비교적 저렴한 가격으로 DB 성능을 높일수 있다 (=Scale out)

 - NoSQL이 분산 컴퓨팅 가능한 이유? : Table이 여러개가 아닌 등, 자세한 내용은 이후 추가예정 (Sharding?)

 - 그래서 Hadoop과 함께 언급되는 경우가 많다

 - 여러 개의 table이 아닌 Big table 1개만을 사용한다

    - 가장 많이쓰이는 NoSQL은 Key-value 형식으로 데이터를 관리한다

 - SQL을 사용하지 않는다

 - Schema-less

    - 구조 변경이 쉽다

    - 데이터 형식이 다양하고 / 바뀌기 쉽고 / 정확성보다는 데이터량이 중요한 BigData 사용에 적절하다

 - 대표적으로 Redis(Key-value), MongoDB(document-oriented) 등이 있다


In-memory DB 특징(장단점)

 - Memory의 가격이 용량대비 충분히 낮아지면서 빠른 DB 성능을 위해 나왔다 (등장배경)

 - Disk 대신 memory를 사용함으로써 I/O 성능을 높인다 (SSD처럼)

 - 대표적으로 Redis, LMDB 등이 있다





WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/