[정보처리기사 실기] 3. 데이터 입출력 구현(2)

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

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

  1. 개체를 테이블로 변환

  2. 속성을 컬럼으로 변환

  3. UID를 기본키로 변환

  4. 관계를 외래키로 변환

  5. 컬럼 유형과 길이 정의

    • CHAR : 최대 2000바이트 고정길이 문자열
    • VARCHAR : 최대 4000바이트 가변길이 문자열
    • NUMBER : 38 자릿수의 숫자 저장
    • DATE : 날짜 값
    • BLOB, CLOB : 바이너리, 텍스트 데이터 최대 4GB까지
  6. 반정규화 수행

📌 물리 데이터 저장소 구성

✅ 테이블 제약조건 설계

  • 참조무결성 제약조건 : 참조의 일관성 보장
    • 제한(Restricted) : 참조무결성 원칙을 위배하는 연산 거절
    • 연쇄(Cascade) : 참조되는 릴레이션에서 튜플 삭제하고 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 함께 삭제하는 옵션
    • 널 값(Nullify) : 참조되는 릴레이션에서 튜플을 삭제하고 참조하는 릴레이션에서 튜플들의 외래키에 NULL값 넣는 옵션
      ※ 애트리뷰트에 'NOT NULL'이라고 명시되어 있다면 삭제 연산 거절
    ALTER TABLE 테이블 ADD
    FOREIGN KEY (외래키)
    REFERENCES 참조테이블(기본키)
    ON DELETE [RESTRICT | CASCADE | SET NULL ]   

✅ 인덱스 설계

  • 개념 : 검색 연산의 최적화를 위해 DB 내 열에 대한 정보를 구성한 데이터 구조
  • 인덱스 컬럼 선정
    • 가능한 수정이 빈번하지 않은 컬럼 선정
  • 설계시 고려사항
    • 지나치게 많은 인덱스는 오버헤드로 작용
    • 추가적인 저장공간 필요
    • 넓은 범위 인덱스 처리 시 전체 처리보다 많은 오버헤드 초래 가능
    • 인덱스와 테이블 저장 공간 적절히 분리

✅ 뷰 설계

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

✅ 클러스터 설계

  • 적용기준
    • 인덱스의 단점 해결한 기법으로, 분포도 넓을수록 유리
    • 분포도 넓은 테이블의 경우 저장 공간의 절약 가능
    • 대량의 범위를 자주 액세스하는 경우 적용
    • 여러 테이블이 빈번하게 조인을 일으킬 때 사용

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

✅ 파티션 설계 (레헤리컴)

  • 종류
    • 레인지 파티셔닝
      - 연속적인 숫자나 날짜를 기준
      - e.g. 우편번호, 일별, 월별, 분기별 등
    • 해시 파티셔닝
      - 해시 함수 값에 의한 파티셔닝
      - 균등한 데이터 분할 가능, 질의 성능 향상 가능
      - e.g. 범위가 없는 데이터에 적합
    • 리스트 파티셔닝
      - 특정 파티션에 저장될 데이터에 대한 명시적 제어가 가능
      - 분포도 비슷하고 데이터 많은 SQL에서 컬럼의 조건이 많이 들어오는 경우 유용
      - e.g. (한국,일본,중국 -> 아시아)(호주,뉴질랜드 -> 오세아니아)
    • 컴포지트 파티셔닝
      - 3개의 파티셔닝 중 2개 이상의 파티셔닝 결합
      - e.g. 레인지 파티셔닝할 수 있는 컬럼이나 파티션이 너무 커서 효과적으로 관리할 수 없을 때 유용
  • 장점 (성가백합)
    • 성능 향상
    • 가용성 향상
    • 백업 가능
    • 경합 감소

좋은 웹페이지 즐겨찾기