본문 바로가기
2021-1/RDA

MongoDB | 이해하기

by 이망고_ 2021. 10. 1.

RDBMS vs NoSQL

  RDBMS NoSQL
적합한 사용례 데이터 정합성이 보장되어야 하는 은행 시스템 낮은 지연 시간, 가용성이 중요한 SNS 시스템
데이터 모델 정규화와 참조 무결성이 보장된 스키마 스키마가 없는 자유로운 데이터 모델
트랜젝션 강력한 ACID 지원 완화된 ACID(BASE)
확장 하드웨어 강화(Scale up) 수평 확장 가능한 분산 아키텍처(Scale out)
API SQL 쿼리 객체 기반 API 제공

프로젝트에 투입하기 전에 데이터베이스를 몽고DB 로 변환하여 사용한다고 하여 몽고 DB 설치부터 기본 명령어를 숙지하라고 해서 몽고DB 를 공부하려고 합니다. 데이터 관련 시험을 준비하면서 SQL 이란 말은 들어보았는데 몽고DB 는 MySQL 이 아닌 NoSQL 이었습니다.

Schema-less (스키마 유연성)이며, 수평 확장이 가능하다는 특징을 갖고 있었습니다.

  • Schema-less :
    서비스를 운영하고 있는 상황에서 기능 추가로 데이터베이스 내 새로운 속성을 추가해야 한다면?
    스키마의 부재는 대규모의 데이터들은 입력되는 형태 그대로 데이터베이스에 저장되며, 각 객체가 독립적일 수도 혹은 합산적일 수도 있기 때문에 단일 서버 환경 및 분산 데이터 환경 모두에서 뛰어난 운용성을 자랑합니다.

대표적인 데이터베이스로, 그래프 데이터베이스가 있습니다. 

  • 그래프 데이터베이스 : 각 데이터 객체간의 관계를 선으로 표현
    사용자 데이터 더 쉽게 변경 가능
    비정형 데이터, 실시간으로 입력되는 데이터를 유연하게 저장, 처리, 수정 가능
    기존의 관계형 데이터베이스와 그래프 데이터베이스
     
  • 관계형 데이터베이스 : 데이터베이스 내 존재하는 테이블에 새로운 속성을 가진 값(Value)을 추가하기 위해 새 속성에 해당하는 열(Column)을 추가한 후 연동이 필요한(Foreign Key) 테이블을 확인하여 대상 테이블에 대한 열(Column) 추가 및 제약 조건을 다시 설정하는 작업 필요

 

그래프 데이터베이스(Graph Database)에서 새로운 속성을 가진 값을 추가하려면, 새로운 속성(Property) 값을 가진 점(Vertex 또는 Node)을 그래프 상에 생성한 다음 다른 점(Vertex 또는 Node)들과 선(Edge 또는 Relaionship)으로 연결해주기만 하면 모든 작업이 끝납니다. 또한 노들들에게 1개 또는 여러 개의 레이블(Label)을 부여할 수 있어 데이터 관리가 더욱 용이합니다. 

빠르게 변화하는 시장 환경에서 그래프 데이터베이스(Graph Database)는 유연성 및 변형 적응성을 제공함으로써 서비스 개발 환경의 편의성을 제공할 수 있다.