-
DB - NOSQLCS/DB 2021. 2. 12. 19:47
NOSQL
SQL
-
관계형 데이터베이스 에서 사용되며 '구조화 된 쿼리 언어(Structured Query Language)'의 약자이다.
- RDBMS(관계형 데이터베이스 관리 시스템)에서 데이터를 저장, 수정, 삭제 및 검색할 수 있다.
- 데이터는 정해진 데이터 스키마를 따라 테이블에 저장되고 관계를 통해 연결된 여러개의 테이블에 분산된다.
- 장점: 데이터의 무결성을 보장한다. 각 데이터를 중복 없이 한번만 저장한다.
- 단점: 데이터 스키마를 나중에 수정하기가 번거롭거나 불가능 할 수 있다. JOIN문이 많은 복잡한 쿼리가 만들어질 수 있어 성능에 문제가 생길 수 있다.
NOSQL
-
스키마가 없고 관계가 없는 비 관계형 데이터베이스를 말한다.
- 레코드를 문서(documents)라고 부른다.
- 다른 구조의 데이터를 같은 컬렉션(= SQL에서의 테이블)에 추가할 수 있다.
- 관련 데이터를 동일한 컬렉션에 넣기 때문에 조인할 필요가 없어 조인이라는 개념이 존재하지 않는다.
- 장점: 스키마가 없어 유연하게 데이터를 저장할 수 있다. 데이터를 원하는 형식으로 저장할 수 있어 읽어오는 속도가 빠르다.
- 단점: 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정을 해야하는 경우 모든 컬랙션에서 수행해야 한다.
SQL? NOSQL?
- SQL은 데이터가 자주 변경되는 환경에서는 여러 컬렉션을 수정해야 하는 NOSQL에 비해 SQL이 더 적절하다.
- 명확한 스키마가 중요한 환경에서는 SQL이 더 적절하다.
- 정확한 데이터 구조를 알 수 없거나 변경/확장 될 가능성이 있는 경우 NOSQL이 적절하다.
- 읽기는 자주 처리하지만, 자주 변경되지 않는 경우 NOSQL이 적절하다.
- DB를 수평으로 확장해야 하는 경우(막대한 양의 데이터를 다뤄야 하는 경우) NOSQL이 적절하다.
reference
-