🎓 정보처리기사

[정보처리기사 - 실기] II. 데이터 입출력 구현 - 물리 데이터 저장소 설계

exception_log 2020. 11. 17. 19:56

물리 데이터 모델 설계 ⭐⭐⭐

물리 데이터 모델링 개념

논리 모델을 적용하고자 하는 기술에 맞도록 상세화해가는 과정

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

  1. 개체를 테이블로 변환
  2. 속성을 컬럼으로 변환
  3. UID를 기본키로 변환
  4. 관계를 외래키로 변환
  5. 컬럼 유형과 길이 정의 : 적절한 유형을 정의하고 데이터의 최대 길이를 파악하여 길이를 설정
  6. 반 정규화 수행 ⭐⭐⭐: 시스템 성능 향상과 개발 및 운영의 단순화를 위해 데이터 모델을 통합하는 반 정규화 수행

물리 데이터 저장소 구성 ⭐⭐⭐

참조 무결성 제약조건

릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 조건

  1. 제한 : 참조 무결성 원칙을 위배하는 연산을 거절하는 옵션
  2. 연쇄 (Cascade) : 참조되는 릴레이션에서 튜플을 삭제하고 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 함께 삭제하는 옵션
  3. 널 값 : 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래 키에 NULL 값을 넣는 옵션. 릴레이션을 정의할 때 참조하는 릴레이션에서 NULL 값이 들어갈 애트리뷰트에 'Not Null'이라고 명시되어 있다면 삭제 연산을 거절한다.
  4. 참조 무결성 제약 조건 SQL 예시
ALTER TABLE EMPLOYEE ADD CONSTRAINT emp_dt_fk
FOREIGN KEY (deptno)
REFERENCES DEPARTMENT (deptno)
ON DELETE { RESTRICT | CASCADE | SET NULL };

인덱스 개념

검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조이다.

인덱스 적용 기준

  • 인덱스 분포도가 10 ~ 15% 이내인 경우 아래 수식 참고

    분포도 = ( 1 / (컬럼 값의 종류)) x 100

    분포도 = (컬럼 값의 평균 Row 수) / (테이블의 총 Row 수) x 100

  • 분포도가 범위 이상이더라도 부분 처리를 목적으로 하는 경우 적용한다.

  • 조회 및 출력 조건으로 사용되는 컬럼인 경우 적용한다.

인덱스 컬럼 선정

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

설계 시 고려 사항

  • 지나치게 많은 인덱스는 오버헤드로 작용
  • 인덱스는 추가적인 저장 공간이 필요함을 고려해야 함
  • 넓은 범위 인덱스 처리 시 전체 처리보다 많은 오버헤드 발생시킬 수 있음

뷰 속성

뷰 속성

클러스터 적용 기준

  1. 인덱스의 단점을 해결한 기법으로 , 분포도가 넓을 수록 오히려 유리
  2. 엑세스 기법이 아니라 액세스 효율 향상을 위한 물리적 저장 기법
  3. 분포도가 넓은 테이블의 클러스터링은 저장 공간의 절약 가능
  4. 대량의 범위를 자주 액세스 하는 경우 적용
  5. 여러 개의 테이블이 빈번한 조인을 일으킬 때 활용
  6. 고려 사항 : 검색 효율은 높여주나 입력, 수정, 삭제 시는 부하가 증가함을 고려

파티션 종류 (레해리컴)

  1. 레인지 파티셔닝 : 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법 / 관리 시간 단축 가능
  2. 해시 파티셔닝 : 파티션 키의 해시 함수 값에 의한 파티셔닝 기법 / 균등한 데이터 분할 가능하고 질의 성능 향상가능
  3. 리스트 파티셔닝 : 특정 파티션에 저장 될 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법 / 분포도가 비슷하고 데이터가 많은 SQL에서 컬럼의 조인이 많이 들어오는 경우 유용
  4. 컴포지트 파티셔닝 : 범위 분할에 이후 해시 함수를 적용하여 재분할 하는 파티셔닝 기법 / 큰 파티션에 대한 I/O 요청을 여러 파티션으로 분산 가능

파티션의 장점

파티션의 장점

반응형