본문 바로가기
Computer Science/Database

SQL과 NOSQL의 차이

by 하상원이야 2022. 7. 19.

SQL - 관계형 데이터베이스

-> RDBMS(관계형 DB 관리 시스템, 오라클/mySql 등) 에서 데이터를 저장, 수정, 삭제, 검색 가능하다

-> 정해진 스키마에 따라 테이블에 저장된다, 관계에 따라 여러 테이블에 분산된다, 스키마를 준수하지 않은 레코드는 추가할 수 없다

-> 데이터의 중복을 없애기 위해 관계를 이용하여 저장한다.

    하나의 테이블에서 중복없이 하나의 데이터만을 관리하기 때문에 부정확한 데이터를 다룰 위험이 없다

 

장점

+++데이터 무결성 보장

++명확한스키마, 데이터는 한번만 저장됨

++수직 확장만 가능(성능 업글)

 

단점

-- 수평적 확장이 어렵고, 조인이 많을 시 매우 복잡한 쿼리문이 만들어짐

 

SQL 데이터베이스 사용이 더 좋을 때

  • 관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우

 

NOSQL

-> 스키마 없고 관계 없음 -> 레코드를 문서라고 부름

-> 필요한 모든 것을 문서에 저장한다. 문서는 JSON과 비슷한 형식을 가지고 있다

 

장점

+++유연성, 데이터 읽어오는 속도 빠름

++애플리케이션이 필요로 하는 형식으로 저장되어, 데이터 읽어오는 속도가 빨라짐

++수직 및 수평 확장 가능

 

단점

-- 업데이트 시 모든 컬렉션에서 수정해야함

-- 데이터 중복을 계속 업데이트 해야 함

 

NoSQL 데이터베이스 사용이 더 좋을 때

  • 정확한 데이터 구조를 알 수 없거나 변경/확장 될 수 있는 경우
  • 읽기를 자주 하지만, 데이터 변경은 자주 없는 경우
  • 데이터베이스를 수평으로 확장해야 하는 경우 (막대한 양의 데이터를 다뤄야 하는 경우)

 

 

 

 

 

반응형

댓글