본문 바로가기
DB/mongodb

MongoDB란 - NoSQL, MongoDB

by 코딩하는 랄로 2023. 9. 5.
728x90

NoSQL

MongoDB는 NoSQL의 한 종류로서, MongoDB에 대해서 알아보기 전에 NoSQL이 무엇인지에 대해서 먼저 알아야 한다.

 

NoSQL = Not only SQL

 

NoSQL은 SQL을 쓰지 않는다의 의미를 가지는 No가 아닌 Not only를 줄인 No를 쓰기 때문에 SQL뿐만 아니라는 의미로 관계형 데이터베이스인 RDB에서 하지 못했거나 어려운 것들을 해결하기 위해 등장하였다.

 

RDB와 NoSQL의 특징 비교를 통해서 간략하게 알아보겠다.

 

 

RDB - 관계형 데이터베이스

RDB는 많은 사람이 알고 있듯이 효율적인 데이터 관리와 무결성을 위해 정규화를 사용한다. 이를 통해 여러 장단점을 가지게 된다.

  • 데이터 중복을 방지
  • 복잡하고 다양한 질의가 가능
  • 여러 테이블을 조인 해야 함 : 조회가 느림, 확장이 어려움
  • Schema 변경에 대한 공수가 큼

 

 

NoSQL  - Not only SQL

NoSQL은 RDB가 가지는 단점을 보완하거나 RDB가 하지 못하는 것을 하기 위해 등장했다.

  • 데이터 가시성이 뛰어남
  • Join 없이 조회가 가능하므로 응답 속도가 빠름
  • 스키마가 유연해서 데이터 모델의 Client의 요구사항에 맞게 데이터를 수용
  • Scale-Out이 간편
  • 역정규화에 따라 데이터 중복이 발생
  • 스키마 설계를 못하면 성능 저하가 발생

 

NoSQL이 RDB의 단점을 해결하고 못하는 것을 할 수 있게 해주는 것은 맞지만 모든 상황에서 RDB보다 뛰어난 성능을 발휘하는 것이 아니기 때문에 각각의 상황에 맞게 알맞는 개념을 사용하여 DB를 설계하면 된다.

 

 

 

MongoDB란

NoSQL은 어떤 방식을 이용하여 구현하냐에 따라 여러 분야로 나뉘게 되는데 MongoDB는 그 중 Document 기반의 NoSQL이다.

 

그렇기 때문에 다음과 같은 특징과 장점을 가진다.

  • 데이터 중복이 발생할 수 있지만 접근성과 가시성, 읽기 성능이 좋다.
    • 생성, 수정, 삭제 시 각 컬렉션에 반영해야 하는 단점
  • 스키마 설계가 어렵지만, 스키마가 유연해서 client의 요구사항에 맞게 데이터를 수용
  • HA와 Scale-Out Solution을 자체적으로 지원해서 확장이 쉬움
  • Secondary Index를 지원
  • 다양한 종류의 Index를 제공
  • 응당 속도가 빠름

 

 

개념

MongoDB는 RDB와는 다른 개념을 사용한다.

 

RDBMS MongoDB
Database Database
Table Collection
Row Document
Column Field

 

 

728x90