WorkHard/자격증

[SQLD 개발자] 기출문제 공부(35회)

코딩공대 2023. 3. 6. 17:50
728x90

1. 반정규화?

  • 경로가 너무 멀어 조인으로 인한 성능 저하가 예상될 때 반정규화를 수행한다.
  • 데이터를 조회할 때 디스크 입출력량이 많아서 성능이 저하될 때 반정규화를 수행한다.
  • 칼럼을 계산하여 읽을 때 성능이 저하 될 것이 예상되는 경우 반정규화를 수행한다.
  • 반정규화는 데이터 무결성을 해친다.

2. ANSI-SPARC에서의 스키마 구조?

  • 외부 스키마 : 사용자 관점
  • 개념 스키마 : 통합 관점
  • 내부 스키마 : 물리적 관점

3. ERD에서 Relationship에 표시되는 것은?

  • 관계명(Relationship Membership)
  • 관계 차수(Relationship Degree / Cardinality)
  • 관계 선택 사양(Relationship Optionality)

4. 분산 데이터베이스?

  • 장점
    1. 지역자치성, 점증적 시스템 용량 확장
    2. 신뢰성과 가용성
    3. 효용성과 융통성
    4. 빠른 응답속도와 통신비용 절감
    5. 데이터의 가용성과 신뢰성 증가
    6. 시스템 규모의 적절한 조절
    7. 각 지역 사용자의 요구 수용 증대
  • 단점
    1. 소트프웨어 개발 비용 증가
    2. 오류의 잠재성 증가
    3. 처리비용의 증가
    4. 설계 및 관리의 복잡성과 비용증가
    5. 불규칙한 응답 소고
    6. 통제의 어려움 증가
    7. 데이터의 무결성에 대한 위협

5. Row Chaining, Row Migration

  • Row Chaining
    • 정의 : 하나의 Row를 하나의 블록에 저장할 수 없어서 여러 블록에 걸쳐서 저장하는 현상
    • 특징 : Initial Row Piece(행 조작)와 Row Pointer로 블록 내에 저장됨
    • 문제점 : Row의 정보를 검색하기 위해 하나 이상의 데이터 블록을 Scan해야 하기 때문에 성능이 감소됨
    • 해결책 : 블록의 크기를 크게 만든다.
  • Row Migration
    • 정의 : Update로 인하여 늘어나는 공간을 저장할 공간이 없어서 다른 블록으로 Row를 옮기는 현상
    • 특징 : 기존 블록에는 Migration되는 데이터의 Row Header와 블록 주소값을 갖게 되고, 새로운 블록에는 Migration되는 데이터가 저장됨
    • 문제점 : Migration된 Row를 읽기 전에 기존 블록에서 헤더를 통해 Migration된 Row를 읽기 때문에 성능이 감소됨
    • 해결책 : 객체를 Export하고 삭제한 후 Import한다, 객체를 Migration하고 Truncate한다, PCTFREE를 크게 설정한다.

6. 반정규화의 테이블?

  • 테이블 병합
    • 1:1 관계 테이블 병합 : 1:1 관계를 통합하여 성능 향상
    • 1: N관계 테이블 병합 : 1:N 관계를 통합하여 성능 향상
    • 슈퍼 / 서브타입 테이블 병합 : 슈퍼 / 서브 관계를 통합하여 성능 향상
  • 테이블 분할
    • 수직분할 : 컬럼 단위의 테이블을 디스크 I/O를 분산처리하기 위해 테이블을 1:1로 분리하여 성능향상(트랜잭션의 처리되는 유형파악이 선행되어야 함)
    • 수평분할 : 행 단위로 집중 발생되는 트랜잭션을 분석하여 티으스 I/O 및 데이터 접근의 효율성을 높여 성능을 향상하기 위해 행 단위로 테이블을 쪼갬
  • 테이블 추가
    • 중복 테이블 추가 : 다른 업무이거나 서버가 다른 경우 동일한 테이블 구조를 중복하여 원격 조인을 제거하고 성능을 향상
    • 통계 테이블 추가 : SUM, AVG등을 미리 수행하여 계산해 둠으로써 조회 시 성능을 향상
    • 이력 테이블 추가 : 이력 테이블 중에서 마스터 테이블에 존재하는 레코드를 중복하여 이력 테이블에 존재하는 방법