현문hyun답

[현문hyun답] 언제 어떤 데이터베이스와 ORM/ODM을 사용하는게 좋을까? (1) - 데이터베이스

Hyun-danpung2 2024. 11. 14. 21:13
728x90
반응형

서론

프로젝트를 하다보면 이 데이터베이스보다는 다른 게 더 적합할 것 같다 혹은 이 ORM은 내가 하는 작업에서는 불편한 점이 있다같은 생각이 들 때가 있다. 데이터베이스 별 특성은 알고 있어도 실제 프로젝트에 어떤 식으로 적용될 지와 적용되었을 때 실제로 어떨 지를 예시를 들어 같이 정리해보면 선택할 때 도움이 될 것이라 작성하게 되었다.

 

본론 - 1

  1. RDBMS (MySQL, MariaDB, PostgreSQL)
    1. 개요
      1. 데이터를 테이블 형식으로 구조화하여 저장하는 데이터베이스 시스템
      2. 행과 열로 구성되는 테이블
      3. 데이터 간의 관계를 정의
    2. 주요 특징
      1. 스키마 기반
      2. ACID 속성: 원자성, 일관성, 고립성, 지속성을 보장하여 데이터의 무결성 유지
      3. 관계: 테이블 간의 관계를 설정할 수 있으며, 외래 키를 통해 데이터의 무결성 유지
    3. 장점
      1. 스키마와 ACID 속성 덕분에 데이터의 일관성과 무결성을 유지하기 쉬움
      2. SQL은 표준 언어이고 많이 사용되는만큼, 개발자들이 쉽게 접근하고 사용할 수 있음
    4. 단점
      1. 수평적 확장이 어려워 대규모 데이터 처리에 한계
      2. 스키마가 고정되어 있어 데이터 구조 변경이 복잡
  2. NoSQL (MongoDB, DynamoDB)
    1. 개요
      1. 비관계형 데이터베이스
      2. 전통적인 관계형 모델이 아닌 다양한 데이터 모델 지원
      3. 비구조적 또는 반구조적 데이터 처리 용이
    2. 주요 특징
      1. 데이터 구조가 고정되지 않아, 데이터 모델을 동적으로 변경할 수 있음
      2. 여러 서버에 데이터를 분산하여 수평적으로 확장할 수 있음
      3. 문서 저장소, 키-값 저장소, 열 기반 저장소, 그래프 데이터베이스 등 다양한 형태로 데이터 저장
    3. 장점
      1. 대규모 데이터 처리에 유리하며 수평적 확장에 용이
      2. 다양한 데이터 형식을 처리할 수 있어, 빠르게 변화하는 데이터 요구 사항에 적합
      3. 특정 작업: 예를 들어 대량의 데이터를 빠르게 읽고 쓸 수 있음
    4. 단점
      1. ACID 속성을 완벽하게 지원하지 않는 경우에는 데이터 무결성을 보장하기 어려움
      2. 다양한 NoSQL 데이터베이스가 존재하여, 표준화된 쿼리 언어가 없음
728x90
반응형