NoSQL DB와 RDB의 차이점
한줄 정리 : NoSQL DB는 SQL만 사용하는 DB가 아니라는 것입니다.
사실 극단적으로 말씀드리면 위의 한줄이 모든 차이점입니다.
NoSQL DB와 RDB(SQL)의 차이점은 따지면 많은 차이점을 찾을 수도 있습니다.
하지만 그렇게 하지 않는 이유는 NoSQL이라는 정의 자체가 애매하기 때문입니다.
실제 NoSQL이 주변분께 무엇이냐고 물어보신다면 대체로 비관계형 DB, 혹은 SQL만을 사용하지 않는 DB 라는
대답이 대부분일 것입니다. 만약 이 대답이 아니라면 정말 길고 긴 설명을 해야할지도 모르기에...
저도 DB 공부를 시작한지는 얼마 되지 않았기에 일반적인 차이점들만 집고 넘어가도록 하겠습니다.
일반적으로 RDB는 관계형 테이블의 형태로 저장을 하지만 NoSQL DB는 테이블뿐만 아니라 여러 형태로 저장을 합니다.
이에 관해서는 https://rural-mouse.tistory.com/38?category=781440 예전에 쓴글을 읽어보시면 될 것 같습니다.
이 저장방식의 다양성에 의해서 NoSQL은 RDB에서 적용되는 ACID나 정의나 제약조건을 정해주는 스키마가 존재하지
않을 수가 있습니다. 물론 꼭 없는 것이 아니라 필요한 경우 따로 만들기도 하는 것으로 알고 있습니다.
NoSQL을 쓰는 중유한 이유가 또 있는데 이는 성능과 확장성 때문입니다.
일반적인 RDB는 확장성이 낮으므로 데이터가 단기간에 급격히 늘어날 경우 NoSQL DB에 비해 확장이 어렵습니다.
이는 RDB는 H/W를 더 좋은 성능으로 바꿔주는 Scale Up 형태의 업그레이드이기 때문에 Scale Out을 목적으로
만들어진 NoSQL에 비하면 상당히 많은 기간과 비용이 듭니다. 이는 빅데이터를 다루는 시스템에서는 굉장히
중요하기도 합니다. 확장성은 곧 성능이기도 하기 때문이죠. 다만 이론과 실제는 항상 다른 법이기 때문에
직접 사용하는 데이터의 결에 따라 올바른 DB을 선택해주는 것이 중요하겠습니다.
시간이 남는다면 아래의 참조한 글들도 읽어보시는 것을 추천합니다.
참조
https://www.slideshare.net/WooYeongChoe1/slidshare-mongodbmysqlcrud
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=lowy&logNo=220616833900
https://www.samsungsds.com/kr/insights/1232564_4627.html
언제라도 글에 틀린 점이 있다면 댓글로 남겨주시면 감사하겠습니다.