Database/MongoDB

[MongoDB] MongoDB 구조

emhaki 2023. 1. 30. 16:36
728x90
반응형
SMALL

MongoBD는 MySQL과 같은 관계형 RDBMS와 다른 구조를 가진다. RDBMS의 Cluster와 DataBase는 동일하지만 RDBMS의 Table, Row, Column의 개념이 MongoDB에서는 Collection, Document, Field의 개념으로 보면 될 것 같다.

MongoDB 구조

🔎 Database 특징

Database Description
admin - 인증과 권한 부여 역할
- 일부 관리 작업을 하려면 admin Database에 대한 접근이 필요
local - 모든 mongodb instance는 local database를 소유한다.
- oplog와 같은 replication 절차에 필요한 정보를 저장한다.
- startup_log와 같은 instance 진단 정보를 저장한다.
- local database 자체는 복제되지 않는다.
config - sharded cluster에서 각 shard의 정보를 저장한다.

🔎 Collection 특징

  • 동적 스키마를 갖고 있어서 스키마를 수정하려면 필드 값을 추가 / 수정/ 삭제하면 된다.
  • Collection 단위로 Index를 생성할 수 있다.
  • Collection 단위로 Shard를 나눌 수 있다.

MySQL과 같은 경우에는 테이블을 생성해야지 데이터를 삽입할 수 있으나 MongoDB는 Document를 삽입하면 자동으로 Collection이 생성된다.

db.message.insertOne({
	user: "haki",
    	age: "19",
    	log: "Hello MongoDB!"
})

MongoDB는 스키마가 자유로워서 스키마를 먼저 만들지 않고도 데이터를 삽입할 수 있다.

생성한 DB는 find()함수를 통해 확인할 수 있다.

db.message.find()

🔎 Document 특징

  • JSON 형태로 표현하고 BSON(Binary JSON) 형태로 저장한다.
  • 모든 Document에는 "_id" 필드가 있고, 없이 생성하면 Objectid 타입의 고유한 값을 저장한다.
  • 생성 시, 상위 구조인 Database나 Collection이 없다면 먼저 생성하고 Document를 생성한다.
  • Document의 최대 크기는 16MB이다.

Summary

  • Database -> Collection -> Document -> Field 순으로 구조가 형성되어 있다.
  • admin, config, local database는 MongoDB를 관리하는데 사용된다.
  • Collection은 동적 스키마를 갖는다.
  • Document는 고유한 "_id" 필드를 항상 갖고 있다.
  • Document의 최대 크키는 16MB로 고정되어 있다.
728x90
반응형

'Database > MongoDB' 카테고리의 다른 글

[MongoDB] SQL vs MQL  (0) 2023.03.28
[MongoDB] Replica Set vs Sharded Cluster  (0) 2023.03.25
[MongoDB] Sharded Cluster  (0) 2023.02.01
[MongoDB] Replica Set  (0) 2023.01.30