RDBMS간 비교

지니🧸·2023년 10월 18일
0

데이터베이스

목록 보기
2/20

RDBMS


[이미지 출처]

관계형 데이터베이스는 정규화된 형태의 데이터, 명확한 스키마 및 constraint 관리, 중복 데이터 관리 등이 특징이자 장점이다.

키워드: 스키마, 데이터 무결성, 중복 데이터 방지

다양한 RDBMS를 비교해보자

H2

  • 매우 가벼운 데이터베이스
    • 로컬/테스트 DB로 적합
  • 웹용 콘솔이 제공됨
  • 스프링부트가 지원하는 인메모리 관계형 데이터베이스

[ 내가 H2를 사용했던 이유 ]
스프링 부트 독학 시절 강의자가 H2를 사용하셔서 따라서 사용했다. 사용해보니 환경설정이 간단하고 데이터베이스가 가벼워서 이후에도 자주 사용했다.

MySQL

  • 사용이 편리함
  • 암호화, 접근 관리 등을 통한 보안 기능 제공
  • 재해 복구와 데이터 보호를 위한 다양한 built-in 메커니즘
  • 캐싱, 인덱싱, 쿼리 최적화 기능으로 성능 향상
  • 다양한 언어와 호환 가능

[ 내가 MySQL를 사용했던 이유 ]
첫 스프링부트 프로젝트라서 참고할 자료가 많고, 흔히 쓰이는 데이터베이스를 쓰고 싶었다.

PostgreSQL

  • 복잡한 쿼리 및 서브쿼리, JOIN을 지원함
  • 다양한 언어와 호환 가능
  • 데이터 복제,transactional processing
  • 큰 데이터셋과 트래픽이 많은 애플리케이션에 적합
  • 인덱싱, 파티셔닝, 병행 프로세싱 가능
  • 다양한 데이터타입 제공
  • 다양한 운영체제와 호환 가능

Transactional Processing: 태스크 또는 유저/프로그램 요청을 런타임 또는 즉각 처리하는 처리 방식. 하나의 비즈니스 트랜잭션을 완성하려면 함께 동작해야 하는 서로 다르지만 연관된 프로세스들을 처리한다.

Parallel Processing: 하나의 큰 태스크를 여러 작은 태스크로 나눠 각 태스크를 여러 노드에 걸쳐 동시에 수행한다.

[ 내가 PostgreSQL를 사용했던 이유 ]
기존에 완성된 웹사이트를 확장 및 리뉴얼하는 프로젝트에 참여하면서, 기존 데이터베이스를 유지하고자 사용했다. 복잡한 쿼리를 사용하지 않아서인지 스프링부트 환경에서는 MySQL을 사용하는 것과 전혀 차이를 느끼지 못했다.

SQLite

  • 서버 프로세스 및 설정이 필요없는 독립적인 데이터베이스 시스템
  • 가벼움
  • 오버헤드가 적음
  • ACID 규칙을 적용함

MariaDB

  • MySQL와 동일한 소스코드를 가짐
  • 이상은 MySQL와 비슷함

Azure SQL

  • 클라우드 기반 관게형 데이터베이스
  • 마이크로소프트가 Azure 클라우드 컴퓨팅 시스템의 부분으로 제공함
  • 타 Azure 서비스와 호환성이 좋음

References

profile
우당탕탕

0개의 댓글