제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 사용)