본문 바로가기

개념

몽고디비MongoDB

MongoDB는 문서 지향적인 NoSQL 데이터베이스로, 대량의 비정형 데이터를 저장하고 처리하는 데 사용된다

비정형데이터저장이
RDBMS와의 차이점이 된다

NoSQL: Not Only SQL
RDB(Relational Database)관계형 데이터베이스
RDBMS관계형 데이터베이스 관리 시스템: Relational Database management System
ex)MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, Oracle Database

rdb는 쿼리를 생성하는 반면, nosql은 메소드를 사용하여 데이터를 조작한다
Document 클래스를 사용하여 문서를 생성하고 필드와 값을 추가한다 
ex) insertOne(), find(), updateOne(), deleteOne() 등의 메소드

비정형 데이터:
MongoDB는 JSON(키:벨루)형식의 문서로 데이터를 저장 => BSON(Binary JSON)
하나의 문서에는 여러 필드와 값이 포함될 수 있다.
MongoDB는 여러 개의 문서를 하나의 컬렉션으로 그룹화한다.
컬렉션은 RDBMS의 테이블에 해당하며, 각 문서는 유일한 식별자인 ObjectId를 갖는다.
이 ObjectId는 자동으로 생성되며, 각 문서를 고유하게 식별하는 데 사용된다.
ex) _id : 자동생성된다

rdb에서의 테이블: nosql에서 collection
rdb에서의 한행record: nosql에서 document
rdb에서의 하나의 속성, 컬럼: nosql에서 feild

컬렉션은 비정형문서 Document들의 그룹

문서 지향적: 
문서 지향적(Document-oriented)이란 데이터베이스 시스템의 한 종류이며,
MongnDB에서는 비정형 데이터를 저장하고 
관리하기 위해 문서(Document)라는 개념을 중심으로 데이터를 구성한다.

논리적으로 비슷한 유형을 모아서 저장하는 단위를 앞서 말한 컬렉션이 되겠다

 

MongoDB의 특징 3가지를 간단히 정리해보았다.

  1. 문서 지향적(Document-Oriented)/ 비정형데이터
    JSON 형식의 문서=>BSON를 중심으로 데이터를 저장
  2. 스케일아웃 가능(Scalable)
    분산 아키텍처로 수평적인 확장이 가능하며 대용량 데이터 처리에 용이:비정형데이터저장가능함으로.
  3. 유연한 데이터 모델(Flexible Schema)
    스키마를 사전에 정의하지 않고 유연하게 데이터를 저장하고 수정가능:비정형

장점/단점

RBMS에 비해 저렴한 비용으로 분산처리와 병렬처리 가능
비정형 데이터 구조 설계로 설계 비용 감소
Big Data 처리에 효과적
가변적인 구조로 데이터 저장이 가능
데이터 모델의 유연한 변화가 가능
----
데이터 업데이트 중 장애가 발생하면 데이터 손실 발생 가능
데이터 일관성이 항상 보장되지 않음
많은 인덱스를 사용하려면 충분한 메모리가 필요. 인덱스 구조가 메모리에 저장
데이터가 여러 컬렉션에 중복되어 있기 때문에 수정이 필요한 경우 모든 컬렉션에서 수행해야 한다.

'개념' 카테고리의 다른 글

상속 활용  (0) 2024.03.24
상속  (0) 2024.03.24
생성자  (0) 2024.03.20
인스턴스  (0) 2024.03.20
클래스 생성 및 인스턴스  (0) 2024.03.18