데이터베이스의 종류

김나현·2025년 3월 15일

1) key-value DB

ex) redis - ram에 저장

2) 관계형 데이터베이스(Reational DB)

  • 속도보다 정확도가 중요한 서비스의 경우
  • 테이블(table)(Rows & Columns)
  • Schema 필요, 정규화, sql언어
  • ACID Transaction 기능 ( 돈거래 등 안전하게 이처럼 정확도가 매우 중요한 서비스의 경우) 때문데

데이터를 일관성 있게 유지하며, 작업이 완료되었을 때 데이터베이스의 상태가 항상 정확하게 유지됩니다.

  • ex) mysql, oracle , postgreSQL 등

** ACID 추가 설명:

  • 트랜잭션은 하나의 작업 단위

<Atomicity -원자성

  • 중간에 오류가 발생하면 모든 작업이 취소됨. 완전 작업을 하게한다.
    예시:
    트랜잭션이 "계좌 A에서 100원 이체"와 "계좌 B에 100원 입금"으로 이루어졌다고 가정했을 때, 만약 입금이 성공했지만 이체가 실패하면, 전체 트랜잭션은 실패로 간주되고 입금도 취소됩니다.

Consistency (일관성):

  • 트랜잭션 전 후의 규칙,제약 준수.
  • 예시:
    은행 계좌 잔액이 음수가 될 수 없다는 규칙이 있다면, 전후모두 이규칙을 따른다.

Isolation (격리성):

  • 동시에 여러 트랜잭션이 실행될 때 서로 간에 영향을 미치지 않도록
  • 예시:
    두 사람이 동시에 같은 계좌에서 이체하려고 할 때, 서로의 트랜잭션이 겹치지 않도록 보장합니다. 각 트랜잭션은 다른 트랜잭션에 영향을 미치지 않고 독립적으로 실행됩니다.

Durability (지속성):

  • 트랜잭션이 완료된 후, 그 결과가 영구적으로 데이터베이스에 저장
  • 예시:
    만약 은행 이체가 완료된 후 시스템이 갑자기 종료되었다 하더라도, 이체된 금액은 영구적으로 저장

3) 문서형 데이터베이스(Document DB)

  • 정규화 안함 비정형 데이터, 대용량 데이터를 빠르게 처리해야 하는 경우 - 실시간 서비스 , sns 와 같은 경우

  • 분산처리 잘해줌

  • 자유로운 형태, 갑자기 구조바뀌어도 신경 안씀

  • collection 폴더 만들고 -> 그안에 documnet 하나의 파일들

  • 파일 안 json형태 저장

  • NoSQL DB로 MongoDB Query Language (MQL) 사용

  • ex) mongoDB, Cloud Firestore 등


4) Graph DB

  • ex) neo4j
  • 자료간 관계, 방향을 중점 으로 할 경우
  • node(노드)
profile
Let's study hard!

0개의 댓글