RDB와 NOSQL의 차이
- rdb는 엄격하게 정의된 schema에 기반한 테이블 구조를 가지고, nosql은 테이블형식이 아닌 비정형데이터를 저장할 수 있다.
- 따라서 rdb는 데이터의 중복이 없기 때문에 데이터 update가 많을 때 유리하고, nosql은 update시 중복된 데이터의 값을 모두 바꿔야하므로 update가 적고 조회가 많을 때 유리하다.
NOSQL의 장단점
- 데이터의 형식이 정해져 있지 않아서 확장에 용이하다. 요즘처럼 방대한 양의 데이터를 다양한 소스에서 받아오는 경우 각 데이터의 형식이 다른 경우도 많은데 확장이 용이하기 때문에 여러 소스의 데이터를 다루기 좋다.
- 데이터에 이미 필요한 정보가 다 있기 때문에 Join이 필요없다.
- 단점으로는 데이터의 중복이 발생할 수 있고 중복이 발생하면 update시 모든 컬렉션을 수정해야한다. 또한 명확한 데이터의 구조를 보장할 수 없다.
RDB가 NOSQL보다 더 부하가 걸리는 상황
- JOIN을 하는 경우 RDB는 테이블을 합쳐야해서 부하가 많이 걸린다.
NoSQL을 활용한 경험이 있나요? 있다면, 왜 RDB를 선택하지 않고 해당 DB를 선택했는지 설명해 주세요.
- 실제로 nosql을 써본 적은 없지만 데이터의 양이 많고,update가 잦지 않으며, 정확한 데이터의 구조가 정해지지 않았으면 nosql을 사용할 거 같다.
참고: https://hyuuny.tistory.com/158