Mongo DB 1강 - 설치
★ Mongo DB 이해하기!
MongoDB 이해하기
사내에서 MongoDB를 잘 쓰기위한 스터디를 하게되어 이번 기회에 관련 자료를 정리하기로 했다. MongoDB가 왜 필요한지, 더 잘사용하기 위해서 무엇이 필요한지를 중심으로 처음 MongoDB를 사용할 때
kciter.so
1. 설치
MongoDB Community Download
Download the Community version of MongoDB's non-relational database server from MongoDB's download center.
www.mongodb.com
- 환경변수 추가
Mongo DB bin 파일 위치 : C:\Program Files\MongoDB\Server\5.0\bin
2. Mongodb 정리
* Mongodb 의 특징
- Document
- BASE
- Open Source
→ 데이터는 Document 기반으로 구성되어 있고, ACID 대신 BASE를 택하여 성능과 가용성을 우선시한다.
① NoSQL
NoSQL은 Not Only SQL, SQL 뿐만 아니다라는 의미를 지니고있다. 즉, SQL을 사용하는 관계형 데이터베이스가 아닌 데이터베이스를 의미한다. 대표적인 관계형 데이터베이스로는 MySQL, Oracle, PostgreSQL이 있고, NoSQL 진영에는 MongoDB와 Redis, HBase 등이 있다.
RDBMS vs NoSQL
RDBMS | NoSQL | |
적합한 사용례 | 데이터 정합성이 보장되어야 하는 은행 시스템 | 낮은 지연 시간, 가용성이 중요한 SNS 시스템 |
데이터 모델 | 정규화와 참조 무결성이 보장된 스키마 | 스키마가 없는 자유로운 데이터 모델 |
트랜젝션 | 강력한 ACID 지원 | 완화된 ACID(BASE) |
확장 | 하드웨어 강화(Scale up) | 수평 확장 가능한 분산 아키텍처(Scale out) |
API | SQL 쿼리 | 객체 기반 API 제공 |
② Document
MongoDB는 Document 기반 데이터베이스다. Database > Collection > Document > Field 계층으로 이루어져 있으며 Document는 RDBMS의 Row에 해당한다. 계층은 RDBMS와 유사하다.
흥미로운 점은 Document 기반 데이터베이스은 RDBMS와 다르게 자유로이 데이터 구조를 잡을 수 있다는 점이다. MongoDB는 BSON으로 데이터가 쌓이기 때문에 Array 데이터나 Nested한 데이터를 쉽게 넣을 수 있다.
③ BASE
BASE는 ACID와 대립되는 개념으로 다음 세 가지로 이루어져있다.
- Basically Avaliable
* 기본적으로 언제든지 사용할 수 있다는 의미를 가지고 있다.
* 즉, 가용성이 필요하다는 뜻을 가진다.
- Soft state
* 외부의 개입이 없어도 정보가 변경될 수 있다는 의미를 가지고 있다.
* 네트워크 파티션 등 문제가 발생되어 일관성(Consistency)이 유지되지 않는 경우 일관성을 위해 데이터를 자동으로
수정한다.
- Eventually consistent
* 일시적으로 일관적이지 않은 상태가 되어도 일정 시간 후 일관적인 상태가 되어야한다는 의미를 가지고 있다.
* 장애 발생시 일관성을 유지하기 위한 이벤트를 발생시킨다.
→ 이처럼 BASE는 ACID와는 다르게 일관성을 어느정도 포기하고 가용성을 우선시한다. 즉, 데이터가 조금 맞지 않더라도 일단 내려준다는 뜻이다.
④ ACID
ACID(원자성, 일관성, 고립성, 지속성)는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어
ACID - 위키백과, 우리 모두의 백과사전
다른 뜻에 대해서는 애시드 문서를 참고하십시오. ACID(원자성, 일관성, 고립성, 지속성)는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어이다. 짐 그
ko.wikipedia.org