혼자공부중
공부하는 블로그
혼자공부중
전체 방문자
오늘
어제
  • 분류 전체보기 (111)
    • 자격증 (49)
      • 정보처리기사 실기 (49)
    • JAVA (18)
    • DB (0)
    • 알고리즘 문제 풀이 (11)
      • 프로그래머스 (11)
    • Front (0)
      • HTML (0)
      • CSS (0)
      • Javascript (0)
    • 패스트캠퍼스 강의 (33)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 데이터모델
  • SQLD
  • 변수
  • 프로그래머스
  • 관계형데이터베이스
  • 2022정보처리기사
  • 수제비
  • Java
  • 상속
  • 2022정보처리기사필기
  • 반복문
  • 애플리케이션테스트
  • UI
  • 알고리즘
  • 정보처리기사
  • 정보처리기사 실기 정리
  • 2022정보처리기사실기
  • 정보처리기사 필기
  • 객체지향
  • 메소드
  • 자바
  • 정보처리기사 필기 정리
  • 데이터베이스
  • 시나공
  • 인터페이스
  • DBMS
  • 패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완
  • 정보처리기사 실기
  • 코딩테스트
  • 배열

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
혼자공부중

공부하는 블로그

자격증/정보처리기사 실기

14. [물리 데이터 저장소 설계] 물리 데이터 저장소 구성

2022. 3. 24. 18:32
수제비 2022 정보처리기사 실기 수험서를 보고 공부한 기록입니다.

[ 1. 테이블 제약 조건(Constraint) 설계 ]

1. 참조무결성 제약 조건

  • 릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 조건이다
  • 두 개의 릴레이션이 기본키, 외래키를 통해 참조 관계를 형성할 경우, 참조하는 외래키의 값은 항상 참조되는 릴레이션에 기본키로 존재해야 한다

①제한(Restricted)

참조무결성 원칙을 위배하는 연산을 거절하는 옵션이다

②연쇄(Cascade)

참조되는 릴레이션에서 튜플을 삭제하고, 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 함께 삭제하는 옵션이다

③널 값(Nullify)

  • 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래 키에 NULL 값을 넣는 옵션이다
  • 만일 릴레이션을 정의할 때 참조하는 릴레이션에서 NULL 값이 들어갈 애트리뷰트에 'NOT NULL'이라고 명시되어 있다면 삭제 연산을 거절한다

④참조무결성 제약 조건 SQL 문법(삭제 시)

ALTER TABLE 테이블 ADD
FOREIGN KEY (외래키)
REFERENCES 참조테이블(기본키)
ON DELETE [ RESTRICT | CASCADE | SET NULL ];

[ 2. 인덱스(Index) 설계 ]

인덱스 적용 기준, 컬럼 선정 등을 고려하여 설계한다

1. 인덱스 개념

  • 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터구조이다
  • 인덱스를 통해 전체 데이터의 검색 없이 필요한 정보에 대해 신속한 조회가 가능하다

2. 인덱스 적용 기준

  • 인덱스 분포도가 10~15% 이내인 경우 아래 수식을 참고한다
분포도=(1/(컬럼 값의 종류)) x 100
분포도=(컬럼 값의 평균 Row 수) / (테이블의 총 Row 수) x 100
  • 분포도가 범위 이상이더라도 부분처리를 목적으로 하는 경우 적용한다
  • 조회 및 출력 조건으로 사용되는 컬럼인 경우 적용한다
  • 인덱스 자동생성 기본키와 Unique 키의 제약 조건을 사용할 경우 적용한다

3. 인덱스 컬럼 선정

  • 분포도가 좋은 컬럼은 단독적으로 생성한다
  • 자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성한다
  • 결합 인덱스는 구성되는 컬럼 순서 선정(사용빈도, 유일성, 정렬 등)에 유의한다
  • 가능한 한 수정이 빈번하지 않은 컬럼을 선정한다

4. 설계 시 고려 사항

  • 지나치게 많은 인덱스는 오버헤드(Overhead)로 작용한다
  • 인덱스는 추가적인 저장 공간이 필요함을 고려해야 한다
  • 넓은 범위를 인덱스 처리 시 오히려 전체 처리보다 많은 오버헤드를 발생시킬 수 있음에 유의해야 한다
  • 인덱스와 테이블의 저장 공간을 적절히 분리될 수 있도록 설계해야 한다

[ 3. 뷰(View) 설계 ]

뷰의 속성 및 고려 사항을 참고하여 설계한다

1. 뷰 속성

속성 설명
REPLACE 뷰가 이미 존재하는 경우 재생성
FORCE 본 테이블의 존재 여부에 관계없이 뷰 생성
NOFORCE 기본 테이블이 존재할 때 뷰 생성
WITH CHECK OPTION 서브 쿼리 내의 조건을 만족하는 행만 변경
WITH READ ONLY 데이터 조작어 작업 불가

2. 뷰 설계 시 고려 사항

  • 뷰 사용에 따라 수행속도에 문제가 발생할 수 있다
  • 뷰의 조건은 최적의 액세스 경로를 사용할 수 있도록 한다

[ 4. 클러스터(Cluster) 설계 ]

클러스터의 적용 기준 및 고려 사항을 참고하여 설계한다

1. 적용 기준

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

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

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

[ 5. 파티션(Partition) 설계 ]

1. 파티션의 종류

①레인지 파티셔닝(Range Partitioning)

  • 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법이다
  • 손쉬운 관리 기법을 제공하여 관리 시간의 단축이 가능하다

②해시 파티셔닝(Hash Partitioning)

  • 파티션 키의 해시 함수 값에 의한 파티셔닝 기법이다
  • 균등한 데이터 분할이 가능하고 질의 성능이 향상 가능하다

③리스트 파티셔닝(List Partitioning)

  • 특정 파티션에 저장 될 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법이다
  • 분포도가 비슷하고 데이터가 많은 SQL에서 컬럼의 조건이 많이 들어오는 경우 유용하다

④컴포지트 파티셔닝(Composite Partitioning)

  • 레인지 파티셔닝, 해시 파티셔닝, 리스트 파티셔닝 중 2개 이상의 파티셔닝을 결합하는 파티셔닝 기법이다
  • 큰 파티션에 대한 I/O 요청을 여러 파티션으로 분산할 수 있다

⑤라운드로빈 파티셔닝(Round-Robin Partitioning)

  • 라운드로빈 분할로 회전하면서 새로운 행이 파티션에 할당하는 방식이다
  • 파티션에 행의 고른 분포를 원할 때 사용한다

2. 파티션의 장점

속성 설명
성능 향상 데이터 액세스 범위를 줄여 성능 향상
가용성 향상 전체 데이터의 훼손 가능성이 감소 및 데이터 가용성 향상
백업 가능 분할 영역을 독립적으로 백업하고 복구가능
경합 감소 디스크 스트라이핑으로 입출력 성능을 향상
디스크 컨트롤러에 대한 경합의 감소

[ 6. 디스크(Disk) 구성 설계 ]

  • 정확한 용량을 산정하여 디스크 사용의 효율을 높인다
  • 업무량이 집중되어 있는 디스크를 분리하여 설계한다
  • 입출력 경합을 최소화하여 데이터의 접근 성능을 향상시킨다
  • 디스크 구성에 따라 테이블스페이스 개수와 사이즈 등을 결정한다
  • 파티션 수행 테이블은 별도로 분류한다
저작자표시 (새창열림)

'자격증 > 정보처리기사 실기' 카테고리의 다른 글

16. [연계 데이터 구성] 연계 요구사항 분석  (0) 2022.03.25
15. [데이터베이스 기초 활용하기] 데이터베이스 종류  (0) 2022.03.24
13. [물리 데이터 저장소 설계] 물리 데이터 모델 설계  (0) 2022.03.24
12. [논리 데이터 저장소 확인] 논리 데이터 모델 검증  (0) 2022.03.21
11. [논리 데이터 저장소 확인] 데이터 모델  (0) 2022.03.19
    '자격증/정보처리기사 실기' 카테고리의 다른 글
    • 16. [연계 데이터 구성] 연계 요구사항 분석
    • 15. [데이터베이스 기초 활용하기] 데이터베이스 종류
    • 13. [물리 데이터 저장소 설계] 물리 데이터 모델 설계
    • 12. [논리 데이터 저장소 확인] 논리 데이터 모델 검증
    혼자공부중
    혼자공부중
    대단한 목적보다는 혼자 공부하는 것에 의미를 두려고 합니다.

    티스토리툴바