ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1012. [MongoDB] NoSQL 입문
    DB/mongoDB 2023. 10. 12. 14:59

    oracle과 같은 RDBMS이고 컬럼에서 정해진 거 외엔 저장할 수 없는 "정형데이터" (형태없는 건 비정형데이터)

    *RDBMS는 비정형보다 정형데이터를 다룰 때 편하다

     

    🖤MongoDB를 쓰는 이유

    1. 고정된 스키마가 없다. "flexible schema"

    스키마(데이터의 논리적 구조-테이블의 형태)가 자주 바뀌는 환경에서 유용

    스키마가 고정되어있지 않아 어떠한 테이블의 형태도 사용할 수 있다. "다양한 형태의 테이블 사용"

     

    2. 분산 컴퓨팅 환경

    샤딩과 복제가 default로 설정되어 있다. "고가용성"

     

    3. 임의의 추가적인 인덱스를 설정할 수 있다.

    4. in memory로 메모리에 올려두며 사용해서 처리속도가 빠르면서 메모리 사용량이 늘어나 단점이기도 하다.

     

    ⭐분산 컴퓨팅 환경이란?
    *네트워크 환경에서 서버를 여러 대 두고 운영하는데 클라이언트에게는 마치 한 개의 서버가 동작하는 것처럼 보이게 하는 시스템 (어떤 서버가 응답을 할지 클라이언트가 신경 쓸 필요 없음)
    문제점 : 고장이 났을 때 대응이 어렵다. (DB가 더이상 서비스를 못 해서 전체 서비스 불가 상태)
    => DB 서버도 여러 개 둠으로 해결함 "계속 가용서비스 상태"

     

    ❤️복제(미러링) : 똑같은 데이터를 가진 또다른 서버를 여러 개 두는 것

    - 장점 : 서버 하나가 고장나도 전체 서비스가 죽지 않음

    - 단점 : 효율성이 떨어짐 (각 서버가 완전히 같은 내용의 데이터여야 하므로 1개 수정하면 다른 곳도 다 수정해야 한다.)

     => "clustering"

     

    ❤️샤딩(Sharding) : 정보를 분할해서 관리(서버들이 각자 나눠서 분담)

    - 장점 : 데이터 분석 시 병렬 처리가 가능(동시에 각자 분석해서 나중에 merge 가능) - 속도 측면에서 유리하므로 빅데이터등의 대규모 분석 시 유용하다.

     

    **db의 분산기법

    어떤 데이터 구성이냐에 따라 다르게 선택해서 사용 

    가로샤딩 : 로우복제 - 행 단위

    세로 샤딩 : 컬럼복제 - 컬럼(열) 단위


    ⭐Redis 는 보조데이터를 다룰 때 많이 사용 : 좋아요, 조회수, 추천 등

    MongoDB는 메인DB로 많이 사용

     

    RDB(관계형 모델)과 MongoDB 모델

     

    관계형 모델에서는 테이블 정의가 중요하다.

    행 단위로 고정된 컬럼(id, 이름, 물품번호 등)의 데이터가 생성된다.

     

    MongoDB 모델에서는 Javascript의 Object(객체) 표현과 같다. (문자열로 보면 JSON같지만)

    즉, 자바스크립트와 잘 맞다.

    프로퍼티명이 : 컬럼에 해당해서 value가 컬럼 값에 대응한다.

     

    관계형 DB에서는 1:1 대응관계만 가능하여 컬럼에 배열을 넣지 못 하므로 join을 써야 했는데

    MongoDB에서는 {}안에 바로 [4,3] 처럼 쓸 수 있어 No Join (테이블, 컬럼이란 표현도 안 씀)

     

    ❗개발자에게 모든 책임을 넘기므로 유효성 검사를 하지 않는다. (장점이자 단점)

     

    * 테이블 : 컬렉션(도큐먼트를 여러 개 모은 것)

    한 행 : 도큐먼트

    컬럼 : 프로퍼티=필드(자유로움)

    필드에서 쓸 수 있는 타입 정의

    *자바스크립트에서의 타입과 같다.

     

    ⭐ U UID

    Universally Unique ID

    전세계적으로 유일한 아이디

     

    PK를 설정하지 않으면 자동으로 U UID 란 개념으로 16byte 데이터를 key로 해서 id를 만들어낸다.

    "위치정보 + 시간정보 + 순차정보" 로 유일한 아이디를 만들어낸다.


    🌏MongoDB 문서화 자료 링크

    https://www.mongodb.com/docs/v7.0/crud/

     

    MongoDB CRUD Operations — MongoDB Manual

    Docs Home → MongoDB Manual CRUD operations create, read, update, and delete documents.You can connect with driver methods and perform CRUD operations for deployments hosted in the following environments:MongoDB Atlas: The fully managed service for MongoD

    www.mongodb.com

     

     

     

    'DB > mongoDB' 카테고리의 다른 글

    1013. [mongoDB] 인증 (수정 중)  (0) 2023.10.13
    1012. MongoDB와 Studio 3T 설치 방법  (0) 2023.10.12
Designed by Tistory.