본문 바로가기
Back-End/데이터베이스

SQL과 NoSQL의 차이

by AI Sonny 2022. 7. 19.
728x90

데이터베이스란?

 

데이터베이스는 일반적으로 컴퓨터 시스템에 전자적으로 저장되는 구조화된 정보 또는 데이터의 조직화된 모음으로

데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어된다.

 

연결된 애플리케이션과 함께 데이터와 DBMS를 하나로 묶어 데이터베이스 시스템이라고 하며

 

단축하여 데이터베이스라고도 합니다.


SQL (관계형 데이터베이스)이란?

SQL은 (Structured Query Language)의 약자로서 구조화된 쿼리 언어이다.

 

SQL을 사용하면 관계형 데이터 베이스 관리 시스템 (RDBMS)에서 데이터를 저장, 수정, 삭제 및 검색을 할 수 있다.

 

관계형 데이터베이스의 데이터는 정해진 스키마의 따라 테이블에 저장되고,

 

서로 연결되어 있는 테이블에 데이터가 분산되는 특징 있습니다.

 

엄격한 스키마

  • 스키마를 준수하지 않는 레코드는 추가할 수 없다.
  • 모든 데이터는 테이블에 Rows로 저장되고, 테이블에는 정의된 구조가 있다.
  • 구조는 컬럼의 이름과 데이터 유형으로 정의된다.

관계

  • 데이터들을 여러 개의 테이블로 나눠 중복을 피한다.
  • 데이터는 관계를 통해 여러 테이블에 분산된다.

SQL의 장점

  • 스키마가 엄격하기 때문에 데이터 무결성을 보장한다.
  • 모든 관계는 데이터를 중복없이 한번만 저장된다.

SQL의 단점

  • 데이터 스키마는 사전에 계획이 되고, 알려야해서 유연하지못하고, 수정하는 것이 복잡하다.
  • 관계를 맺고 있어 JOIN문이 많은 복잡한 쿼리가 만들어 질 수 있다,
  • 수평적보단 수직적 확장만 가능하다.

SQL을 사용할 때

  • 관계를 맺고 있는 데이터가 자주 변경되는 경우
  • 변경될 여지가 없고, 명홧한 스키마가 사용자와 데이터에게 중요한 경우

 

MySQL


NoSQL (비관계형 데이터베이스)이란?

NoSQL은 관계형 데이터베이스와 반대되는 접근방식을 따른다. NoSQL에서는 레코드를 문서(Document)로 부른다.

 

NoSQL은 다른 구조의 데이터를 같은 컬렉션에 추가할 수 있다.

 

또한 유연성과 확장성이 좋고, 대용량 데이터를 처리하는 성능이 뛰어나다.

 

그리고 가용성이 좋아 여러 대의 백업 서버 구성이 가능하여 장애 발생 시에도 무중단 서비스가 가능하다.

 

스키마 없음

  • NoSQL는 다른 구조의 데이터를 같은 컬렉션(= SQL에서의 테이블)에 추가할 수 있다.
  • 문서는 JSON 데이터와 비슷한 형태로 JOIN이라는 개념이 존재하지 않는다.

관계 없음

  • SQL과 딜리 관계가 존재하지 않아 중복데이터가 존재할 수 있다.
  • 특정 데이터를 같이 사용하는 모든 컬렉션에서 똑같은 업데이트를 수행해야한다.

NoSQL의 장점

  • SQL보다 훨씬 유연하다.
  • 데이터가 애플리케이션이 필요하는 형식으로 저장되어, 데이터를 읽어오는 속도가 빨라진다.
  • 수직 및 수평 확장이 가능하므로 데이터베이스가 애플리케이션에서 발생하는 모든 요청으 처리할 수 있다.

NoSQL의 단점

  • 유연성 때문에 데이터 구조를 결정하지 못하고, 미뤄질 수 있다.
  • 데이터 중복을 지속적으로 업데이트 해야한다.
  • 데이터가 여러 컬렉션에 중복되고 있어 수정 시 모든 컬렉션에서 수정해야한다.

NoSQL을 사용할 때

  • 정확한 데이터 구조를 알 수없거나 변경 및 확장 될 수 있는 경우
  • 자주 읽지만 데이터의 변경이 자주 없는 경우
  • 데이터베이스를 수평적으로 확장해야 하는 경우 (빅데이터를 다뤄야 할 경우)

몽고DB

728x90

댓글