
관계형 데이터베이스(RDBMS)로, 구조화된 테이블 형식을 가진다.
데이터베이스 스키마를 정의해 Table에 데이터 저장하며, SQL를 통해 DB에 접근한다.
각 테이블은 row와 col로 이루어져 있으며, 테이블에서 필드 사이의 관계를 제어하는 규칙을 설정한다.
원자성, 일관성, 지속성, 고립성의 특성을 보장하며, 데이터의 일관성과 안전성을 유지한다.
NoSQL 데이터베이스로, 스키마 없이 자유로운 형태의 문서로 저장한다.
JSON 형식으로 데이터를 저장하고, Field:Value 형식으로 구성된다.
수평 확장이 용이하며, 대용량 데이터 및 유연한 스키마에 적합하다.
| MySQL | MongoDB |
|---|---|
| row | document |
| table | collection |
| database | database |
| DBMS | MongoDB | MySQL |
|---|---|---|
| 데이터 모델 | 문서형(NoSQL) | 관계형(RDBMS) |
| 데이터 저장 형식 | BSON(Binary JSON) 형식 | Table 형식 |
| 데이터 관계 | 비정형 데이터 및 복잡한 관계에서 유리 | 정형화된 데이터 관계 |
| 트랜잭션 | 제한적인 트랜잭션 지원 | 완전한 트랜잭션 지원 |
| 사용 사례 | 실시간 분석, 빅데이터 | 금융, ERP 시스템 |
| 상대적 특징 | 빠른 개발 주기, 대규모 데이터 처리 | 데이터 간 안정성, 데이터 무결성(완전성) |
애플리케이션 빠르게 구축, 다양한 형태의 데이터 처리, 효율적인 관리
객체 코드를 관계형 테이블로 변환하는 복잡한 ORM(Object-Relational Mapping) 계층을 제거할 수 있다. ORM 계층을 제거함으로써 애플리케이션에 추가되는 오버헤드가 적어지고, 개발 속도를 높일 수 있다.
MySQL과 같은 RDB에서 가능하지 못한 새로운 수준의 가용성과 확장성을 제공할 수 있다. 비정형 데이터를 처리하기 힘든 RDB와는 다르게, 다양한 형태의 데이터 처리가 가능한 MongoDB는 RDB보다 더 많은 기능과 확장성을 가진다.
MongoDB의 유연한 데이터 모델은 데이터베이스 스키마가 비즈니스 요구사항에 맞게 발전할 수 있다.
MongoDB는 MySQL보다 상대적으로 속도가 빠르다.