본문 바로가기
데이터 분석

MongoDB

by 땅호720 2023. 12. 5.

0. NoSQL (Non Relational Operation Database SQL)

Not Only SQL, NoSQL 데이터베이스는 비관계형이므로 테이블을 연결할 필요가 없음.

JSON 문서 (동적 스키마형 문서)와 같은 하나의 데이터 구조 안에 데이터를 보관하며, 스키마가 필요하지 않으므로 일반적으로 비정형인 대규모 데이터 세트를 관리할 수 있는 신속한 확장성을 제공함.

  • Document: 가장 기본적인 데이터 (RDBMS에서 row(record))
  • Collection: Document의 집합 (RDBMS에서 Table)
  • DB: Collection의 집합 (Table의 집합)

관계형 데이터베이스 vs NoSQL

관계형 데이터베이스 NoSQL
Scale-up: 서버 한 대를 중심으로 확장 Scale-out: 여러 대의 서버를 중심으로 확장
무결성 유연성
데이터 중복 제거 데이터 중복 허용
트랜잭션 빠른 쓰기, 읽기

 

1. MongoDB

Document 방식 (JSON)의 NoSQL.

BSON(Binary JSON)이라는 독자적인 형식을 사용하며, 데이터의 타입까지 포함되어 이진형태로 인코딩되어 저장.

CRUD 위주의 다중 트랜잭션 처리가 가능하며, Sharding (분산) / Replica (복제) 기능을 제공함.

Memory Mapping 기술을 기반으로 빅데이터 처리에 성능이 탁월함.

장점은 아래와 같다.

  • Schema-less (Schema가 없다. 같은 Collection 안에 있을지라도 다른 Schema를 가지고 있을 수 있다)
  • 각 객체의 구조가 뚜렷하다
  • 복잡한 JOIN 없다
  • Deep Query ability (문서지향적 Query Language 를 사용하여 SQL 만큼 강력한 Query 성능을 제공한다.
  • 어플리케이션에서 사용되는 객체를 데이터베이스에 추가 할 때 Conversion / Mapping이 불필요하다.

데이터 일관성(Consistency)이 거의 필요 없고 JOIN 연산을 Embed로 대체할 수 있는 경우에 유용함.

Document의 데이터 구조는 key-value 쌍으로 이루어짐

{
    "_id": ObjectId("5099803df3f4948bd2f98391"),
    "username": "velopert",
    "name": { first: "M.J.", last: "Kim" }
}

 

RDBMS vs MongoDB

RDBMS MongoDB
Table Collection
Tuple/Row Document
Column Key/Field
Table Join Embedded Documents
Primary Key _id
Relationship Embedded & Link

 

관계형 데이터 베이스도 구현할 수 있지만, 성능적인 면을 고려하여 선택해야 함.

 

[참조]

 

'데이터 분석' 카테고리의 다른 글

문해력: 문제 정의  (1) 2024.01.03
Chapter 1 미니 프로젝트: 뉴욕맛집  (0) 2023.12.21
평가 메트릭  (0) 2023.12.20
pandas: map, apply, transform, agg  (0) 2023.12.19
데이터 분석 프로세스  (2) 2023.12.05