다음 SQL 은 세 테이블을 조인하면서 대출과 도서 사이의 조인 조건을… | [SQLD] SQL 개발자 기출유형 모의고사 2회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 2회
다음 SQL 은 세 테이블을 조인하면서 대출과 도서 사이의 조인 조건을 빠뜨렸다. 실행 결과의 행 수는?회원
| 회원번호 | 이름 |
|---|---|
| 1 | 한지수 |
| 2 | 오민재 |
| 3 | 서가은 |
대출
| 대출번호 | 회원번호 | 도서번호 |
|---|---|---|
| 101 | 1 | B1 |
| 102 | 1 | B2 |
| 103 | 2 | B3 |
| 104 | 3 | B1 |
| 105 | 9 | B4 |
도서
| 도서번호 | 제목 | 분류 |
|---|---|---|
| B1 | SQL 입문 | IT |
| B2 | 봄날 | 소설 |
| B3 | 파이썬 기초 | IT |
| B4 | 고려사 | 역사 |
SELECT M.이름, B.제목 FROM 회원 M, 대출 L, 도서 B WHERE M.회원번호 = L.회원번호 AND B.분류 = 'IT' ORDER BY M.이름, B.제목;
1
16행
2
10행
3
3행
4
8행
해설
세 테이블 조인에는 조인 조건이 최소 2개(N−1) 필요한데 대출–도서 조건이 빠져 도서와는 카티션 곱이 생긴다.
회원과 짝이 맞는 대출은 회원번호 9 를 뺀 4건이고, 이 4건이 IT 도서 2권과 모두 짝지어 4 × 2 = 8행이 된다.
- 3행은 대출–도서 조건까지 있을 때의 정상 조인 결과이다.
- 10행은 회원이 없는 대출까지 IT 도서 2권과 곱한 값이다.
- 16행은 분류 조건을 무시하고 도서 4권과 곱한 값이다.
오류나 개정된 내용이 보이면 알려주세요