정답: 2번 릴레이션 R(A,B,C,D)에서 기본키는 (A,B)이며, D → B의 함수 종속성이 존재한다. 1. **1차 정규형 (1NF) 확인:** 모든 속성 값이 원자적이라고 가정하므로 1NF를 만족한다. 2. **2차 정규형 (2NF) 확인:** * 릴레이션이 1NF이고, 기본키의 부분집합에 의해 비기본키 속성이 결정되지 않아야 한다. * 기본키: (A,B) * 비기본키 속성: C, D * 부분 함수 종속성: 비기본키 속성이 기본키의 일부에만 종속되는 경우. * 주어진 함수 종속성 D → B는 비기본키 속성(D)이 기본키의 일부(B)를 결정하는 형태이다. 이는 비기본키 속성이 기본키의 부분집합에 종속되는 경우가 아니므로 2NF를 위반하지 않는다. * 따라서 2NF를 만족한다. 3. **3차 정규형 (3NF) 확인:** * 릴레이션이 2NF이고, 비기본키 속성이 기본키에 대해 이행적으로 종속되지 않아야 한다. (비기본키 속성이 다른 비기본키 속성에 의해 결정되지 않아야 한다.) * 3NF 조건: 모든 함수 종속성 X → Y에 대해 다음 중 하나를 만족해야 한다. 1. X가 슈퍼키이다. 2. Y가 기본 속성(prime attribute, 즉 어떤 후보키의 일부)이다. * 기본키 (A,B)로부터 (A,B) → C, (A,B) → D의 함수 종속성이 존재한다. 여기서 (A,B)는 슈퍼키이므로 3NF 조건을 만족한다. * 주어진 함수 종속성 D → B를 확인한다. 1. D는 슈퍼키인가? D는 A나 C를 결정하지 못하므로 슈퍼키가 아니다. 2. B는 기본 속성인가? B는 기본키 (A,B)의 일부이므로 기본 속성이다. * D → B의 경우, 두 번째 조건(Y가 기본 속성)을 만족하므로 3NF를 위반하지 않는다. * 따라서 3NF를 만족한다. 4. **BCNF (보이스-코드 정규형) 확인:** * 릴레이션이 3NF이고, 모든 함수 종속성 X → Y에 대해 X가 슈퍼키여야 한다. * 주어진 함수 종속성 D → B를 확인한다. * X = D, Y = B * D는 슈퍼키가 아니다. (D는 A나 C를 결정하지 못하므로) * X(D)가 슈퍼키가 아니므로 D → B는 BCNF를 위반한다. * 따라서 R은 BCNF가 아니다. 결론적으로, 릴레이션 R은 3차 정규형까지 만족하지만 BCNF는 만족하지 않는다. 따라서 가장 높은 정규형은 3NF이다.