DB의 핵심 3가지

  • 무결성 : 정확, 일관성(누가 보더라도 동일)
  • 안전성 : 고장x
  • 확장성 : scale-up 코어, 메모리 등을 확장 / scale-out 기기를 여러개
    • 크기를 키울건지 : 한 사람만 조회, 모노리식
    • 기기를 늘릴건지 : 여러 사람이 조회, stateless면 분산도 가능, CDN

관계형 DB

  • 테이블 사이에 관계를 맺어서 중복데이터 줄임
  • ↔ laterncy가 많이 소모 & 예전에는 메모리가 비싸서 주로 사용했음- 중복된 데이터를 없애고 메모리 비용을 아낌
  • 데이터 수정 시 관련된 여러 테이블을 변경해야 하기 때문에 시간이 오래 걸릴 수 있음

 

row-oriented : 읽는 양이 적은 경우, 많은 데이터 삽입에 적합

  • row뒤에 바로 row가 붙어서 삽입이 쉬움

column-oriented : 읽는 것이 빨라서 데이터 분석에 사용

  • 각 칼럼끼리 모아두는 구조 ⇒ 삽입이 많으면 부적합

 

NOSQL

- 서로 다른 종류의 데이터를 저장할 수 있고, 유연한 스키마를 가지고 있어서 데이터 구조를 동적으로 변경

  • key-value : redis
  • graph : 촌 수 같은 관계 표현하기에 유리, 한국에서는 덜 사용함
  • Document : json 데이터 넣기 좋음

 

CAP 이론

- 분산 시스템에서 일관성, 분산 저장 가능성, 가용성(항상 데이터에 접근 가능성) 중 두 가지만 선택할 수 있다는 이론

선택지

- 높은 가용성을 제공하면서 일부 일관성을 희생하는 NoSQL 데이터베이스

- 높은 일관성을 제공하면서 가용성을 희생하는 관계형 데이터베이스

'Spring > DB' 카테고리의 다른 글

[DB] 트랙잭션과 인덱스  (0) 2023.08.28
[DB] PostgreSQL과 MySQL  (0) 2023.08.08
[멋사] DB 연동  (0) 2023.04.06
DB(MySQL) & Spring 오류  (0) 2023.03.08

+ Recent posts