DB의 종류

Jae·2025년 2월 16일

DB, Database

RDB

  • Relation Database
  • 테이블(표) 형태로 데이터를 저장한다.
  • ACID Transaction 지원
    - Atomic : 원자성, 모두 실행하거나 모두 실행되지 않는다.
    • Consistency : 일관성, 트랜잭션을 기준으로 상태가 일정해야한다.
    • Isolation : 독립성, 트랜잭션은 독립적으로 실행된다.
    • Durabilitiy : 영속성, 트랜잭션 결과는 영구적으로 저장되어야한다.
  • 데이터가 너무 많아지면 조회하는데 시간이 너무 많이 걸리게 된다.
  • 금융이나 재고처럼 트랜잭션의 안정성이 매우 중요할 때 활용
  • 종류 : MySQL, PostgreSQL, Oracle Database

Columnar Database

  • 빅데이터 분석용
  • 데이터를 열 단위로 저장하고 처리하는 데이터 베이스
  • 쿼리를 통해 처리하는 속도가 빠르고, 하드디스크 스토리지에 데이터를 효과적으로 읽고 쓸 수 있다.
  • 대량의 데이터를 분석이나 데이터 웨어하우스 작업, 머신러닝을 위해 데이터 셋을 읽고 쓸 때 유용.
  • 데이터 수정에는 비효율적
  • 대규모 로그나 분석 같은 통계성 작업을 빠르게 처리해야할 때 활용
  • 종류 : Amazon Redshift, ClickHous

Document Datbase

  • 문서 형태의 데이터베이스
  • JSON과 같은 형태를 그대로 저장한다.
  • 필드 하나하나도 조회할 수 있다.
  • 정보가 다른 각각의 다양한 속성을 관리하는데 용이하다.
  • 상품의 속성이 각기 다를 때 활용
  • 종류 : MongoDB

Graph DataBase

  • Node와 Edge의 개념으로 데이터 관계를 저장한다.
  • 페이스북의 친구 추천 시스템이 대표적
  • RDB의 조인과 비슷한 기능이지만 Graph Database가 훨씬 직관적임.
  • 소셜 관계나 추천 시스템처럼 복잡한 관계에서 연결 고리를 찾아야할 때 사용
  • 종류 :ArangoDB,Neo4j

Vector Database

  • 다양한 형태의 데이터를 임베딩 형태의 숫자로 변환하여 저장하는 방법
  • 넷플릭스의 경우 사용자 시청이력을 벡터 형태로 저장하여 개인 콘텐츠 추천 시스템에 사용.
  • 벡터간의 거리를 계산하여 비슷한 데이터를 찾아서 추천하는 원리
  • AI, ML에서는 비슷한 단어를 찾는데에도 사용
  • LLM과 RAG 등에 사용
  • AI나 ML 모델을 쓰고 있을 떄 사용
  • 종류 : pinecone, milvus, weaviate

Key-Value Database

  • Key-Value 형태로 데이터를 저장
  • X의 경우 타임라인과 세션을 Redis를 활용하여 사용.
  • 아마존은 쇼핑카트 정보를 DynamoDB에 저장하여 사용.
  • 대규모의 트랜잭션에도 활용 가능
  • 구조가 단순하여 캐싱이나 세션 관리에서 자주 사용.
  • 세션이나 캐싱처럼 단순 조회가 중요할 때 활용
  • 종류 : Memcached, Redis, etcd

Time-series Database

  • 시계열(time-stamped) 데이터를 처리하기 위해 최적화된 데이터베이스
  • 시간과 관련된 데이터들을 저장해서 활용하는데 사용하는 데이터베이스(..같음)
  • 시간대별로 쌓이는 로그나 센서 데이터에 활용

참고

0개의 댓글