Skip to content

Latest commit

 

History

History
33 lines (17 loc) · 1.57 KB

sql_nosql.md

File metadata and controls

33 lines (17 loc) · 1.57 KB

SQL vs NoSQL

RDB

RDB에서는 효율적인 데이터 관리를 위해서 정규화를 사용한다.

데이터의 중복을 방지할 수 있으며 복잡하고 다양한 질의가 가능하다.

하지만 단점으로는 여러 테이블의 연관관계를 외래키를 통해 갖고있고 연관된 데이터를 조인해서 가져오기때문에 조회가 느리다.

그리고 확장성이 떨어진다는 단점이 있다.

스키마 변경에 대한 공수도 매우 크다.

Scale-out 등의 기법은 고려하지 않고 만들어졌다고 볼 수 있다.

NoSQL

관계형 데이터베이스에서 하지 못했거나 어려운 것들을 해결하기 위해 등장했다.

데이터의 가시성이 뛰어난다. JSON형태로 Document 내부에 Document를 두는 것이 가능하다.

Join이 없이 데이터를 조회가 가능하므로 조회속도가 매우 빠르다

스키마가 유연해서 데이터 모델을 Application의 요구사항에 맞게 데이터를 수용할 수 있다.

스케일 아웃이 간편하다.

단점으로는 역정규화에 따라 데이터 중복이 많이 발생하고 스키마 설계를 못하면 성능 저하가 발생한다.

NoSQL은 진짜 No SQL이라는 뜻이 아니라 Not-Only SQL이라는 뜻이다 기본 SQL 뿐만 아니라 다양한 방법으로 지원을하고있다는 데이터베이스라고 생각하면 된다.

무조건 NoSQL이 좋은가? 이건 또 아니다. NoSQL에서 연관관계가 있는 데이터를 저장할때 데이터의 중복이 많기 때문이다. 적절한 상황에 맞춰서 사용하도록하자