57. 다음에 주어진 릴레이션 Employee와 Department에 대해 각 SQL문을 수행한 결과로 생성되는 레코드의 개수가 옳지 않은 것은?
Employee
![]() |
Department
![]() |
①
|
SELECT *
FROM Employee as E INNER JOIN Department as D ON E.deptno = D.deptno; |
3
|
②
|
SELECT *
FROM Employee as E LEFT OUTER JOIN Department as D ON E.deptno = D.deptno; |
3
|
③
|
SELECT *
FROM Employee as E RIGHT JOIN Department as D ON E.deptno = D.deptno; |
4
|
④
|
SELECT *
FROM Employee as E FULL JOIN Department as D ON E.deptno = D.deptno; |
5
|
▣ 해설
문제가 길어서, 당황했을 텐데 왼쪽 조인, 오픈쪽 조인, 완전조인에 대해서 안다면, 쉽게 풀 수 있는 문제
→ 데이터 결과의 건수만 물어보는 문제였으므로, 10초안에 풀기는 어려우나, 시간여유 있다면, 풀 수 있는 문제였음
Employee
|
Departtment
|
이너조인 : 10,20,30
왼쪽조인 : 10,20,30,null 오른쪽조인 : 10,20,30,40 완전조인 : 10,20,30,40, null |
|||||
empno
|
ename
|
job
|
mgr
|
deptno
|
deptno
|
dname
|
|
7839
|
KING
|
PRESIDENT
|
NULL
|
NULL
|
10
|
ACCOUNTING
|
|
7698
|
BLAKE
|
MANAGER
|
7839
|
30
|
20
|
RESEARCH
|
|
7782
|
CLARK
|
MANAGER
|
7839
|
10
|
30
|
SALES
|
|
7566
|
JONES
|
MANAGER
|
7839
|
20
|
40
|
OPERATIONS
|
①
|
SELECT*
FROM Employee as E INNER JOIN Department as D ON E. deptno = D.deptno |
3
|
②
|
SELECT*
FROM Employee as E LEFT OUTER JOIN Department as D ON E. deptno = D.deptno; |
3 → 4
|
③
|
SELECT*
FROM Employee as E RIGHT JOIN Department as D ON E. deptno = D.deptno; |
4
|
④
|
SELECT*
FROM Employee as E FULL JOIN Department as D ON E. deptno = D.deptno |
5
|
정답 : ②
58. 아래의 country 테이블과 city 테이블에 대한 SQL 질의가 수행될 때, 생성되는 결과 테이블의 차수 (degree)와 카디널리티(cardinality)로서 옳은 것은?
country
![]() |
city
![]() |
SELECT country.country_name, COUNT(city.lat)
FROM city INNER JOIN country ON city.country_id = country.id GROUP BY country.country_name HAVING COUNT(city.lat) <= 1; |
① 차수: 1, 카디널리티: 4
② 차수: 1, 카디널리티: 5
③ 차수: 2, 카디널리티: 4
④ 차수: 2, 카디널리티: 5
▣ 해설
차수(degree) → 테이블 열의 개 수
카디널러티(cardianlity) → 데이터 건 수
SELECT country.country_name, COUNT(city.lat)
FROM city INNER JOIN country ON city.country_id = country.id GROUP BY country.country_name HAVING COUNT(city.lat) <= 1;. |
Count(city.lat) 가 1이하인 경우 → {1,2,3,5 인 나라 → {(Deutschland,1), (Srbija,1),(Hrvatska,1),(Polska,1)}
<문제풀이 팁>
일단, 문제가 길어서, 1차에 풀기는 부담스러운 문제임. 익숙하지 않은 것은 컬럼명, 테이블명이 영어이고, 데이터 내용도 기출에서 잘 언급되지 않은 도메인이라서, 어렵게 느껴짐
하지만, select 절에 attribute 가 2개나, 차수가 2란 걸 알 수 있고, 그리고, 조인이 inner 조인이라서, 나라별로 city.lat 의 건수 1개 이하인 것을 찾음. id 값이 4인 USA를 제외해서, 데이터 건수는 4개 라는 답을 구할 수 있음
→ 차수 :2, 카디널러티 : 4
정답 : ③
공감과 댓글은 아이티신비에게 큰 힘이 됩니다.
블로그 글이 유용하다면 블로그를 구독해주세요.♥
'정보시스템 감리 기출문제해설 > 데이터베이스 해설' 카테고리의 다른 글
(제 23회) 데이터베이스 / (61)~(62) 해설 (0) | 2024.09.29 |
---|---|
(제 23회) 데이터베이스 / (59)~(60) 해설 (5) | 2024.09.28 |
(제 23회) 데이터베이스 / (55)~(56) 해설 (0) | 2024.09.26 |
(제 23회) 데이터베이스 / (53)~(54) 해설 (3) | 2024.09.25 |
(제 23회) 데이터베이스 / (51)~(52) 해설 (0) | 2024.09.24 |