본문 바로가기
정보처리기사/03. 데이터 입출력 구현

Chapter 02. 물리 데이터 저장소 설계

by HoPpangg 2021. 9. 8.
SMALL

1. 물리 데이터 모델링 변환 절차

  • 개체를 테이블로 변환 -> 속성을 컬럼으로 변환 -> UID를 기본키로 변환 -> 관계를 외래키로 변환 -> 컬럼 유형과 길이 정의 -> 반 정규화 수행

2. 참조 무결성 제약 조건

  • 제한(Restricted) : 참조 무결성 원칙을 위배하는 연산을 거절하는 옵션
  • 연쇄(Cascade) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조되는 릴레이션에서 해당 튜플을 참조하는 튜플도 삭제하는 옵션
  • 널 값(Nullify) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래키에 NULL 값을 넣는 옵션
    • 애트리뷰트에 'NOT NULL'이 명시되어 있다면 삭제 연산을 거절함

3. 인덱스 적용 기준

  • 분포도가 10~15%일 경우
    • 분포도 = (1/(컬럼 값의 종류)) X 100
    • 분포도 = (컬럼 값의 평균 Row 수) / (테이블의 총 Row 수) X 100

4. 인덱스 컬럼 선정

  • 분포도가 좋은 컬럼은 단독적으로 생성
  • 자주 조합되어 사용되는 컬럼은결합 인덱스로 생성
  • 결합 인덱스는 구성되는 컬럼 순서 선정에 유의
  • 가능한 한 수정이 빈번하지 않은 컬럼을 선정
  • 넓은 범위를 인덱스 처리 시오히려 전체 처리보다 많은 오버헤드를 발생시킬 수 있음을 유의
  • 인덱스와 테이블의 저장 공간을 적절히 분리될 수 있도록 설계

5. 클러스터 적용 기준

  • 인덱스의 단점을 해결한 기법으로, 분포도가 넓을수록 유리
  • 액세스 기법이 아니라 액세스 효율 향상을 위한 물리적 저장 방법
  • 분포도가 넓은 테이블의 클러스터링은 저장공간의 절약이 가능
  • 대량의범위를 자주 액세스하는 경우 적용
  • 인덱스를 사용한  처리 부담이 되는 넓은 분포도에 활용
  • 여러개의 테이블이 빈번하게 조인을 일으킬 때 활용

6. 클러스터 설계 시 고려 사항

  • 검색 효율은 높여주나 입력, 수정, 삭제 시에는 부하가 증가함을 고려
  • UNION, DISTINCT, ORDER BY, GROUP BY가 빈번한 컬럼이면 검토 대상
  • 수정이 자주 발생하지 않는 컬럼은 검토 대상
  • 처리 범위가 넓어 문제가 발생하는 경우 단일 테이블 클러스터링 고려
  • 조인이 많아 문제가 발생되는 경우 다중 테이블 클러스터링 고려

7. 파티션 종류 (레해리컴)

  • 레인지 파티셔닝 (Range Partitioning)
    • 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법
  • 해시 파티셔닝 (Hash Partitioning)
    • 파티션 키의 해시 함수 값에 의한 파티셔닝 기법
    • 균등한 데이터 분할이 가능하고 질의 성능 향상 가능
  • 리스트 파티셔닝(List Partitioning)
    • 특정 파티션에 저장 될 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법
  • 컴포지트 파티셔닝 (Composite Partitioning)
    • 레인티 파티셔닝, 해시 파티셔닝, 리스트 파티셔닝 중 2개 이상의 파티셔닝을 결합하는 파티셔닝 기법

8. 파티션의 장점 (성가백합)

  • 성능 향상
  • 가용성 향상
  • 백업 가능
  • 경합 감소
728x90
LIST

댓글