현문hyun답
[현문hyun답] 언제 어떤 데이터베이스와 ORM/ODM을 사용하는게 좋을까? (1) - 데이터베이스
Hyun-danpung2
2024. 11. 14. 21:13
728x90
반응형
서론
프로젝트를 하다보면 이 데이터베이스보다는 다른 게 더 적합할 것 같다 혹은 이 ORM은 내가 하는 작업에서는 불편한 점이 있다같은 생각이 들 때가 있다. 데이터베이스 별 특성은 알고 있어도 실제 프로젝트에 어떤 식으로 적용될 지와 적용되었을 때 실제로 어떨 지를 예시를 들어 같이 정리해보면 선택할 때 도움이 될 것이라 작성하게 되었다.
본론 - 1
- RDBMS (MySQL, MariaDB, PostgreSQL)
- 개요
- 데이터를 테이블 형식으로 구조화하여 저장하는 데이터베이스 시스템
- 행과 열로 구성되는 테이블
- 데이터 간의 관계를 정의
- 주요 특징
- 스키마 기반
- ACID 속성: 원자성, 일관성, 고립성, 지속성을 보장하여 데이터의 무결성 유지
- 관계: 테이블 간의 관계를 설정할 수 있으며, 외래 키를 통해 데이터의 무결성 유지
- 장점
- 스키마와 ACID 속성 덕분에 데이터의 일관성과 무결성을 유지하기 쉬움
- SQL은 표준 언어이고 많이 사용되는만큼, 개발자들이 쉽게 접근하고 사용할 수 있음
- 단점
- 수평적 확장이 어려워 대규모 데이터 처리에 한계
- 스키마가 고정되어 있어 데이터 구조 변경이 복잡
- 개요
- NoSQL (MongoDB, DynamoDB)
- 개요
- 비관계형 데이터베이스
- 전통적인 관계형 모델이 아닌 다양한 데이터 모델 지원
- 비구조적 또는 반구조적 데이터 처리 용이
- 주요 특징
- 데이터 구조가 고정되지 않아, 데이터 모델을 동적으로 변경할 수 있음
- 여러 서버에 데이터를 분산하여 수평적으로 확장할 수 있음
- 문서 저장소, 키-값 저장소, 열 기반 저장소, 그래프 데이터베이스 등 다양한 형태로 데이터 저장
- 장점
- 대규모 데이터 처리에 유리하며 수평적 확장에 용이
- 다양한 데이터 형식을 처리할 수 있어, 빠르게 변화하는 데이터 요구 사항에 적합
- 특정 작업: 예를 들어 대량의 데이터를 빠르게 읽고 쓸 수 있음
- 단점
- ACID 속성을 완벽하게 지원하지 않는 경우에는 데이터 무결성을 보장하기 어려움
- 다양한 NoSQL 데이터베이스가 존재하여, 표준화된 쿼리 언어가 없음
- 개요
728x90
반응형