정보시스템 감리 기출해설/데이터베이스 해설

(제 23회) 데이터베이스 / (57)~(58) 해설

아이티신비 2024. 9. 27. 09:00

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

 

정답 : ③

 





 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥