Oracle 12c 데이터베이스 18 - 대용량 데이터베이스 구축 기술

💡 본 글은 ‘실습과 함께하는! 데이터베이스 Oracle 12c’ 강의 내용을 바탕으로 정리하였습니다.

대형 데이터베이스 구축 기술

필요성

  • 데이터는 계속 늘어남
    • 한 대의 DBMS 서버로는 처리 능력의 한계
  • 성능 업그레이드
    • HDD → SSD(All Flash Memory) → 인 메모리 머신(In Memory Machine)
    • 하지만 이 방식으로는 한계가 있음

VLDB(Very Large DBMS)

  • 샤딩
    • DBMS 내용 분할(DB/테이블)
    • Join 시 어느 테이블이 어느 DB에 있는지 Location을 알아야 함 (Join을 하기 어려워 역정규화하기도 함)
    • 쓰기 성능 향상
  • 복제
    • 동일한 DBMS를 여러 개 유지(마스터/슬레이브)
    • 읽기 성능 향상

💡 샤딩과 복제를 동시에 쓰기도 함!

스케일업과 스케일아웃

스케일업

  • 보통 말하는 성능 업그레이드
  • CPU 클럭 속도 증가, 코어 수 증가, 메모리 증가
  • 보통 성능 증가에 비해 가격 증가가 더 빠름 → 비용 부담
  • 병령컴퓨팅 / 전용 네트워크
  • Tightly-Coupled System

스케일아웃

  • 동일한 서버/DBMS를 병렬로 구축
  • 분산컴퓨팅
  • Loosely-Coupled System → 상대적으로 저렴
  • 노드 수 추가하여 계속 성능 향상 가능 / 효율은 상대적으로 떨어짐

NoSQL

개념

  • 일반 RDBMS가 주로 읽기/검색 성능에 최적화(인덱스 사용)
  • 쓰기 성능이 중요한 응요의 경우 NoSQL이 좋은 성능을 보임
    • ex. 로그, SNS 메신저
  • 기존 RDBMS를 대체하기 보다는 보완하는 역할
  • 제품군
    • MongoDB가 시초
    • Apache Cassandra, Apache HBASE, Redis, …

CAP 이론을 이용한 NoSQL 시스템 분류

  • C 일관성(Consistency)
    • 어떤 노드를 접근하더라도 데이터 값이 동일해야 한다
  • A 가용성(Availability)
    • 노드 일부가 Fail 되더라도 서비스가 중단이 안 되어야 한다.
  • P 파티션 내성(Partition Tolerance)
    • 노드 간 통신에 장애가 생겨도 문제가 없어야 한다.

📌 어떤 시스템도 3가지 모두를 만족시킬 수는 없음! (CA, AP, CP)

  • CA (RDBMS)
  • CP (Hbase, MongoDB, Redis)
  • AP (Cassandra)

저장 형태에 대한 분류

구분 설명 예시
키-밸류(Key-Value) 키 값을 주면 밸류를 리턴하는 형태(JSON과 유사) Redis
정렬된 키-밸류(Ordered Key-Value) 키 값으로 정렬되는 형태 Hadoop, Cassandra, HBase
도큐먼트 형태(Document based) 밸류 값이 JSON/XML 문서인 형태 MongoDB

스키마리스

  • 스키마(DDL) 기반이 아니라 필요하면 새로운 컬럼(키)를 추가하면 됨
  • 동일한 구조가 아닐 수 있음
  • RDBMS(정규형데이터), NoSQL(반정규형 데이터), 검색엔진(비정규형 데이터)