데이터베이스 기초
표 R의 열 x의 값은 1, 1, 2, 3의 4개 행, 표 S의 열 x의 값은 1, 1, 2, 4의 4개 행이다. SELECT * FROM R INNER JOIN S ON R.x = S.x의 결과는 몇 행이 되는가?
- A2행
- B3행
- C5행
정답과 해설 보기
정답: C. 5행
조인에서는 조건을 만족하는 행의 조합이 하나씩 결과 행이 됩니다. x = 1에 대해서는 R의 2행과 S의 2행의 모든 조합이 조건을 만족하므로 2 × 2 = 4행, x = 2에 대해서는 1 × 1 = 1행입니다. R의 3과 S의 4는 상대가 없으므로 내부 조인의 결과에 나오지 않습니다. 합계는 4 + 1 = 5행입니다. 2행은 일치하는 값의 종류(1과 2)마다 한 행씩만 생긴다고 생각한 경우의 행 수입니다. 3행은 R의 각 행에 대해 S에 일치하는 값이 있는지만 본 경우(SELECT * FROM R WHERE x IN (SELECT x FROM S) 같은 질의)의 행 수입니다. 조건 없는 곱집합이라면 4 × 4 = 16행이 됩니다. 조인하는 열의 값이 중복되어 있으면 결과 행이 곱셈으로 늘어난다는 점에 주의해야 합니다.