1. 정규화

  • 후보키
    • 모든 속성을 결정할 수 있어야 함
    • 예: AB → CDE 이면 AB가 후보키
  • 정규형 종류
    • 제1정규형: 모든 속성은 반드시 하나의 값(원자값)만 가져야 한다.
    • 제2정규형: 일반속성은 주식별자 전체에 종속되어야 한다. (부분 종속 제거)
      * 복합식별자의 일부에만 종속 → 제2정규화 만족 x → 분리 필요
    • 제3정규형: 일반속성 간에는 서로 종속적이지 않아야 한다. (이행적 종속 제거)

  • 정규화를 수행하면 조회 성능을 보장받을 수 있다? (x)
    → 정규화로 인해 오히려 조회 성능이 저하될 수 있다.
  • 제3정규형을 만족하는 엔터티의 일반속성은 주식별자 전체에 종속적이다. (○)
  • 반정규화는 성능을 위해 데이터 중복을 허용하지만, 성능 향상을 항상 보장하지는 않는다. (○)
  • 빈칸 문제
    Q. 어떤 릴레이션 R이 ( ① )이고, 기본키에 속하지 않은 모든 속성이 기본키에 이행적 함수 종속이 아닐 때 ( ② )에 속한다.
    → ① 제2정규형 ② 제3정규형
    Q. 일반속성은 주식별자 전체에 종속적이어야 한다:  (    )
    → 제2정규형
    Q. 정규화는 (     ) 데이터 모델의 일관성을 확보하고 중복을 제거한다.
    → 논리
  • 칼럼에 반복적인 속성값을 갖는 형태 → 속성의 원자성 위반 → 제1정규화 대상
  • 한 속성에 여러 값이 오는 경우 → 제1정규화 미충족

2. 관계와 조인의 이해

  • 부모 식별자 → 자식의 일반속성으로 상속: 비식별 관계
  • 부모 식별자 → 자식의 식별자에 포함: 식별 관계
  • 관계를 맺는다 = 식별자를 상속시키고, 해당 식별자를 매핑 키로 활용해 데이터를 결합하겠다는 의미

3. 트랜잭션의 이해

  • A와 B가 반드시 모두 수행되거나 모두 수행되지 않아야 할 때
    • 각각 커밋? (x) → A와 B는 하나의 트랜잭션으로 묶어 처리, 커밋은 모두 수행 후 최종 1회
    • A까지만 수행 후 장애 발생 → A를 UNDO 처리

4. NULL 속성의 이해

  • NULL은 아직 정의되지 않은 값 - 0(숫자), 공백(문자)과 다른 개념
  • NULL과 숫자 크기 비교 결과는 NULL이다? (✕) → UNKNOWN
  • NULL = NULL 결과는 True? (x) → UNKNOWN (비교 시 IS NULL 사용)
  • 집계 함수 계산 시 NULL은 0으로 처리된다? (x) → 계산에서 제외됨

5. 본질식별자 vs 인조식별자

  • 인조식별자를 사용하면 중복 데이터를 막기 어려워진다. (○)
  • 인조식별자는 되도록 사용하는 것이 바람직하다? (x) → 필요한 경우에만 사용
  • 인조식별자 사용 시 본질식별자 대비 추가 인덱스가 필요해진다. (○)

+ Recent posts