문제
다음 ERD에 대한 설명으로 가장 적절한 것은?
고객과 계약상세를 계약을 통해 조인하여 COUNT(*)를 수행할 때, 고객별 필터 없이 전체 조인 결과를 집계하면 어떤 건수와 같아지는가?
① 고객의 건수 ② 계약의 건수 ③ 계약상세의 건수 ④ 항상 1건
정답
3번
해설
정답: 3. 고객-계약-계약상세가 1:M:M 구조로 조인되면 최종 조인 결과는 가장 하위 상세 행 기준으로 생성되므로 계약상세 건수와 같아진다.
오답 풀이
- 1번: 고객 1건이 여러 상세 행으로 확장될 수 있다.
- 2번: 계약 1건도 여러 계약상세 행으로 확장될 수 있다.
- 3번: 하위 상세 엔터티의 행 수와 일치하는 것이 일반적이다.
- 4번: 집계 결과 COUNT(*)는 1개의 값으로 출력되지만 그 값이 1이라는 의미는 아니다.
보충 개념 1:M 관계를 따라 조인하면 부모 행은 자식 행 수만큼 반복된다. 여러 단계의 1:M 조인에서는 최하위 자식 행의 수가 결과 건수를 결정하는 경우가 많다.