[데이터베이스 구축] 뷰, 클러스터 및 분산DB 설계

이도연·2024년 6월 13일

정보처리기사

목록 보기
18/21

VIEW (가상테이블)

  • 하나 이상의 기본 테이블로부터 유도된 가상의 테이블을 의미
  • 물리적으로 존재하진 않지만, 사용자에겐 있는것처럼 간주
  • 필요한 데이터만 뷰로 정의되어 있으므로 관리가 용이하고, 보안 측면에서 유리
  • 뷰를 통해 또 다른 뷰 생성 가능
  • 뷰 삭제 시, 그 뷰를 기초로 한 또 다른 뷰도 자동으로 삭제
  • 논리적 데이터 독립성 제공
  • 뷰의 정의를 변경 x
  • 뷰에 대한 삽입, 삭제, 갱신 연산 작업에 대해 제약 발생





CLUSTER

  • 디스크로부터 데이터를 읽어오는 시간을 줄이기 위해 JOIN 이나, 자주 사용되는 테이들의 데이터를 디스크의 같은 위치에 저장시키는 방법
  • 클러스터링 키 컬럼 값의 순서대로 저장되고 여러개의 테이블이 하나의 클러스터에 저장
  • 클러스터링된 테이블 사이에 JOIN 이 발생할 경우 처리시간 단축
  • 클러스터링 키 열을 공유하여 한 번만 저장하므로, 저장 영역의 사용을 줄임
  • 대용량을 처리하는 트랜잭션은 전체 테이블을 스캔하는 일이 자주 발생하므로, 클러스터링을 하지 않는 것이 바람직
  • 파티셔닝된 테이블에는 클러스터링 할 수 x
  • 처리범위가 넓은 경우에는 단일 테이블 클러스터링을 사용하고, JOIN 이 많이 발생하는 경우에는 다중 테이블 클러스터링을 사용

클러스터링 하기 좋은 대상 테이블

  • 조회가 자주 발생하고, 수정이 거의 발생하지 않는 테이블
  • 자주 JOIN 되는 테이블
  • 분포도가 넓은 테이블





Partiton

  • 대용량의 테이블이나 인덱스를, 작은 논리적 단위로 나누는 것을 의미
  • 작은 단위로 나눠서 분산시키면, 성능저하 방지 뿐 아니라 데이터 관리도 수월
  • 테이블, 인덱스를 파티셔닝하면 파티션키 또는 인덱스 키에 따라, 물리적으로 별도 공간에 데이터 저장
  • 데이터 접근 시 엑세스 범위를 줄여 쿼리 성능 향상
  • 파티션별로 데이터가 분산되어 저장되므로 디스크 성능 향상
  • 파티션 단위로 입출력을 분산

range partitioning

분할 키 값이 범위 내에 있는지 여부로 구분
예) 일별, 분기별, 월별 파티셔닝

hash paritioning

해싱함수를 적용한 결과 값에 따라 데이터를 분할
데이터를 고르게 분산할 때 유용

composite partitioning

범위 분할로 분할한 다음 해싱 함수를 적용하여 다시 분할하는 방식
파티션이 너무 클 경우 유용





분산 DB 시

정의
컴퓨터 네트워크를 기반으로 DB 와 DBMS 가 분산된 시스템으로
DB 는 물리적으로 분산되어 있지만, 논리적으로는 하나의 통합된 DB 로 간주
장점
지역 자치성, 신뢰성 및 가용성, 점진적 시스템 용량 확정, 효율성과 융통성
구성요소
분산처리기(컴퓨터 시스템), 분산 DB(지역 DB), 통신 네트워크
관리 기법
분산 질의처리, 분산 회복기법, 분산 병행 제어 기법, 카탈로그 관리

분산 DB 목표

위치 투명성(location transparency)
오로지 DB 의 논리적 명칭만으로 엑세스(실제위치 알 필요 x)

중복 투명성(replication tranparency)
동일 데이터가 여러곳에 중복되어 있더라도, 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용. 시스템은 자동으로 여러 자료에 대한 작업 수행

병행 투명성(concurrency transparency)
다수의 트랜잭션들이 동시에 실행되어도, 해당 트랜잭션의 결과는 영향 x

장애 투명성(failure transparency)
트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션은 정확히 처리

0개의 댓글