NRDBMS(NoSQL)
저번에 했던 RDBMS에 이어서 DBMS의 다른 한 종류인 NRDBMS를 알아보자!
DB / RDBMS ??
데이터베이스는 데이터들의 집합이라고 볼 수 있다. 이 데이터베이스를 이용/관리하기 위해서는 데이터베이스 관리 시스템이 있어야 하며 (DataBase Management System / DBMS) 이를 통해 데이터베이스에
ragdo11.tistory.com
RDBMS는 schema를 정의하고 해당 규격에 맞는 데이터를 2차원 테이블의 형태로 저장한다.
이는 복잡할 뿐만 아니라 저장해야 하는 데이터가 많아지면 용량의 한계에 다다를 수 있다는 단점도 존재한다.
-> 이를 해결하기 위해 등장한 것이 비관계형 데이터베이스인 NRDBMS(NoSQL)이다.
다만 RDBMS가 자리잡고 있는 위치 때문에 NoSQL의 활용에 의문이 들 수 있으나 NoSQL 역시 뚜렷한 장점이 존재한다.
( 참고! NoSQL은 sql을 사용하지 않겠다 라는 것이 아닌 Not only의 의미)
NoSQL은 RDBMS가 가진 강력한 consistency에 비해 비일관적인 특징이 있다. 그래서 consistency를 보장할 필요가 없는 방대한 데이터들의 저장을 효율적으로 할 수 있다. 많은 양의 데이터와 트래픽은 앞서 말했듯이 RDBMS의 용량의 한계를 가져왔고 이를 위해 장비의 성능을 높이는 Scale-up과 처리하는 장비의 수를 늘리는 Scale-out으로 해결해 왔다.
대부분 Scale-out의 방식을 채택하는 편인데 RDBMS는 이 방식에 효율적이지 못해서 복잡한 제어가 필요하다.
이에 비해 NoSQL은 확장이 쉬워서 데이터의 양이 많아져도 얼마든지 수평적인 확장이 가능하다.
일상에서 쓰이는 NoSQL의 예시를 들어보면 SNS의 게시글 저장, 검색 엔진 등이 NoSQL을 통해 구현된다.
다만 역시 부족한 일관성 때문에 일관성이 중요한 은행의 데이터 같은 곳에는 사용하기 힘들다는 단점이 있다. 만약 은행에서 일관성이 부족한 DB를 사용한다면 자신의 돈이 한순간에 사라질 수도 늘어날 수도 있어서 사실상 사용 못한다고 봐야한다.
또한, RDBMS는 종류가 다양해도 SQL언어로 묶어서 사용할 수 있지만 NoSQL은 MongoDB, Redis, CouchDB등 다양하게 있으면서 이들 각각의 구조와 문법이 달라 익혀야한다는 단점이 있다.