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

2022. 4. 18. 15:38정보처리기사/실기

728x90
반응형

물리 데이터 모델 설계

물리 데이터 모델링 개념

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

 

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

- 논리에서 물리 데이터 저장 모델로 변환하는 절차

  1. 개체를 테이블로 변환 : 테이블과 개체 명칭 동일 권고, 한글명 사용, 소스코드는 가독성위해 영문
  2. 속성을 컬럼으로 변환 : 표준화된 약어 사용, SQL 예약어 피해라, 컬럼 명칭은 짧게 
  3. UID를 기본키로 변환 : UID에 해당하는 모든 속성에 대해 기본키로 선언, NOT NULL, Unique 추가 가능
  4. 관계를 외래키로 변환 : 기본키 이름을 그대로 사용하나 다른 의미 가질 경우 변경, 순환 관계에서 자신 기본키 외래키로 정의
  5. 컬럼 유형과 길이 정의 : char varchar2 number date blob clob
  6. 반 정규화 수행 : 중복 테이블 추가, 테이블 조합, 테이블 분할, 테이블 제거, 컬럼 중복화

 

물리 데이터 저장소 구성

- DBMS 선정 후 활동

 

테이블 제약 조건 설계

(1) 참조 무결성 제약 조건 : 참조의 일관성 보장위한 조건, 기본키 외래키 형성 시 참조 하는 외래키의 값은 항상 참조되는 릴레이션 기본키로 존재

 

(1) - 1 제한 Restricted : 무결성 원칙 위배하는 연산 거절 옵션

(1) - 2 연쇄 Cascade : 삭제시 참조 또한 삭제

(1) - 3 널 값 : 튜플 삭제하고, 해당 참조 외래키에 NULL 삽입, 만약 NOT NULL이라면 삭제 연산 거절

 

인덱스 설계

- 인덱스 적용 기준, 컬럼 선정 등 고려해 설계

(1) 개념 : 최적화 위해 디비 내 열에 대한 정보 구성 데이터구조, 전체 데이터 검색 없이 필요한 정보에 대한 신속한 조회 가능

 

(2) 적용 기준

- 분포도가 10~15% 이내 경우 : 분포도 = ( 1 / 컬럼 값의 종류) * 100, 분포도 = (컬럼 값 평균 로우 수 / 테이블 총 로우 수) * 100

- 범위 이상이더라도 부분 처리를 목적으로 하는 경우 적용, 조회 및 출력 조건으로 컬럼인 경우 적용, 자동생성 기본키와 유니크 키 제약 조건 사용할 경우 적용

 

(3) 인덱스 컬럼 선정

- 단독적 생성, 결합 인덱스로 생성, 컬럼 순서 선정에 유의, 수정이 빈번하지 않은 컬럼 선정

 

(4) 설계 시 고려

- 지나치게 많은 인데스는 오버헤드 작용, 추가 공간이 필요함, 넓은 버위는 전체보다 많은 오버헤드 발생, 적절한 분리 설계

 

뷰 설계

(1) 속성

  • REPLACE : 이미 존재 경우 재생성
  • FORCE : 존재 여부 관계 없이 생서
  • NOFORCE : 기본 테이블이 존재할 때 뷰 생성
  • WITH CHECK OPTION : 서브 쿼리 내 조건 만족하는 행만 변경
  • WITH READ ONLY : DML 불가

(2) 고려 사항 : 수행 속도 문제, 최적의 액세스 경로를 사용할 수 있도록 한다.

 

클러스터 설계

- 적용 기준 및 고려 사항 참고 설계

 

(1) 적용 기준

-  인덱스 단점 해결법, 분포도가 없을 수록 유리, 액세스 효율 향상 위한 물리 저장법, 분포도가 없은 클러스팅은 저장 공간 절약 가능, 대량 범위 자주 액세스하는 경우 적용, 처리 부담이 되는 넓은 분포도에 활용, 빈번하게 조인시 사용

 

(2) 고려사항

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

 

파티션 설계

 

(1) 종류

  • 레인지 파티셔닝 : 연속적인 수나 날짜 기준 파티셔닝, 관리 시간 단축
  • 해시 파티셔닝 : 해시 함수 값에 의한 파티셔닝, 균등한 데이터 분할이 가능 질의 성능 향상
  • 리스트 파티셔닝 : 특정 저장 될 데이터에 명시적 제어가 가능한 파티셔닝, 분포도가 비슷한 데이터가 많은 SQL 컬럼의 조건이 많이 들어오는 경우
  • 컴포지트 파티셔닝 : 위에 언급한 파티셔닝 중 2개 이상 결합한 기법, 큰 파티션에 대한 IO 요청을 여러 파티션으로 분산
  • 라운드로빈 파티셔닝 : 라운드로빈 분할로 회전하면서 새로운 행이 파티션에 할당, 고른 분포 원할 때 사용

(2) 장점

- 성능 향상, 가용성 향상, 백업 가능, 경합 감소

 

디스크 구성 설계

- 정확한 용량 산정해 효율 올린다, 업무량이 집중된 디스크 분리 설계, 입출력 경합을 최소하해 데이터 접근 성능 향상, 디스크 구성에 따라 테이블 스페이스 개수와 사이즈 결정, 파티션 수행 테이블은 별도로 분류

728x90
반응형