MongoDB 개념 쌓기

유수민·2022년 8월 7일
0

지식창고

목록 보기
41/60
post-thumbnail

📌MongoDB?

  • mongoDB는 C++로 짜여진 오픈소스 데이터베이스
  • Document-Oriented(문서 지향적) NoSQL 데이터베이스

📌RDB와의 NoSQL 비교

📖RDB

  1. 구조가 정형화 되어있음.
    • 데이터는 테이블(table)에 레코드(record)로 저장되며 각 테이블에는 명확하게 정의된 구조
    • 정해진 스키마에 따르지 않으면 데이터를 추가할 수 없음
  2. 수직적 확장만 지원
    • '샤딩'이라는 개념이 있지만 특정 제한이 있으며 구현하기가 대체로 어려움
  3. 데이터의 무결성 보장
  4. 데이터를 중복없이 한번만 저장함

📖NoSQL

  1. 구조가 정형화 되어 있지 않음
    • 다른 구조의 데이터를 같은 컬렉션에 추가 가능
    • 스키마에 대해 신경쓸 필요가 없음
    • 🌟언제든지 저장된 데이터를 조정하고 새로운 "필드"를 추가할 수 있음
  2. 수직적 확장, 수평적 확장 둘다 가능
    • 여러 서버에서 데이터베이스를 쉽게 분리
  3. 데이터는 애플리케이션이 원하는 형식으로 저장됨.
    • 따라서 🌟데이터를 읽어오는 속도가 더 빠름
  4. join, 트랜잭션 지원 안함

📌단점

  • 데이터가 여러 컬렉션에 중복되어 있기 때문에, 수정(update)를 해야하는 경우 모든 컬렉션에서 수행해야 함
  • 데이터 정합성 보장 안됨

📌사용처

🌟쌓아놓고 삭제가 없는 경우가 제일 적합 ex) 로그데이터, 세션

  • 정확한 데이터 구조를 할 수 없거나 변경/확장 될 수 있는 경우
  • 읽기(read)처리를 자주하지만, 데이터를 자주 변경(update)하지 않는 경우 (즉, 한번의 변경으로 여러 문서를 변경할 일이 없는 경우)
  • 데이터베이스를 수평으로 확장해야 하는 경우 (막대한 양의 데이터를 다뤄야 하는 경우)

참고)
https://www.youtube.com/watch?v=qiElyjkUrKY
https://sjh836.tistory.com/98

profile
배우는 것이 즐겁다!

0개의 댓글