SQL
- 정해진 데이터 스키마에 따라 데이터가 저장
- 데이터는 관계를 통해 여러 데이터에 분산된다
- 데이터는 테이블에 레코드로 저장되는데 각 테이블마다 명확하게 정의된 구조가 있다. 해당 구조는 필드의 이름과 데이터 유형으로 정의된다. 따라서 스키마를 준수하지 않은 데이터는 저장될 수 없다.
NoSQL
- 스키마도, 관계도 없다.
- 관계형 디비 처럼 여러 테이블에 나눠 담지 않고 관련 데이터를 동일한 컬렉션에 담는다
- 조인을 잘 사용하지 않고 자주 변경되지 않는 데이터일 때 NoSQL을 사용하면 좋다
SQL 장점
- 명확하게 정의된 스키마, 데이터 무결성 보장
- 관계는 데이터를 중복없이 한번만 저장
SQL 단점
- 덜 유연함
- 관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어 질 수 있음
- 대체로 수직적 확장만 가능
NoSQL 장점
- 스키마 없어서 유연함. 언제든지 저장된 데이터 조정하고 새로운 필드 추가 가능
- 데이터는 애플리케이션이 필요로 하는 형태로 저장됨. 편함
- 수직 및 수평 확장 가능
NoSQL 단점
- 유연성으로 인해 데이터 구조 결정을 미루게 될 수 있음
- 데이터 중복을 계속 업데이트 해야 함
- 데이터가 여러 컬렉션에 중복되어 있기에 수정시 모든 컬렉션 수정해야 함