67. 사원 정보를 저장하는 릴레이션 EMPLOYEE와 부양 가족 정보를 저장하는 릴레이션 DEPENDENT가 다음과 같이 정의되었다고 할 때, “부양가족이 없는 사원의 이름을 검색하라”라는 SQL 질의의 ㉮,㉯, ㉰에 들어갈 내용으로 가장 적절한 것은?
CREATE TABLE EMPLOYEE
(NAME VARCHAR(30) NOT NULL, SSN CHAR(9) NOT NULL, ADDR VARCHAR(30), PHONE CAHR(10), PRIMARY KEY (SSN)); |
CREATE TABLE DEPENDENT
(ESSN CHAR(9) NOT NULL, DEPNAME VARCHAR(30) NOT NULL, AGE INT, PRIMARY KEY (ESSN, DEPNAME), FOREIGN KEY (ESSN) REFERENCES EMPLOYEE (SSN)); |
SELECT NAME
FROM EMPLOYEE WHERE ㉮ (SELECT ㉯ FROM DEPENDENT WHERE ㉰) ; |
㉮ ㉯ ㉰
① NOT EXISTS * SSN=ESSN
② NOT IN * NAME=DEPNAME
③ NOT IN ESSN SSN=ESSN
④ NOT EXISTS ESSN NAME=DEPNAME
▣ SQL (EXISTS/NOT EXISTS)
▶ IN, NOT IN, EXISTS, NOT EXISTS
- IN : 리스트에 있는 복수 값 중에서 어느 하나라도 일치하면 됨
- 중첩 질의의 WHERE 절에 있는 조건에서 외부 질의에 선언된 릴레이션 애트리뷰트를 참조하는 경우에 상관 서브쿼리(Correlated SubQuery)라고 함
- EXISTS 질의 Q의 결과에 최소한 한 개의 투플이 있다면 참을 반환, 그렇지 않으면 거짓을 반환
- NOT EXSTS 는 질의 Q의 결과에 투플이 없다면 참을 반환하고, 그렇지 않으면 거짓을 반환 (NULL 포함)
<풀이>
- SELECT NAME FROM EMPLOYEE
WHERE NOT EXISTS (SELECT * FROM DEPENDENT WHERE SSN=ESSN) ;
* 특징 : ㉯ 는 아무것이나 들어와도 가능(*, 컬럼명, 1(숫자), 'A'(문자) 등)
㉰ 는 연관된 테이블의 연결가능 속성 조인을 해야 함
정답 : ①
68. 다음 릴레이션 R과 S에 대해 <보기>의 4개 관계 연산을 수행했을 때 4개 결과 릴레이션의 카디널리티(cardinality)의 합으로 옳은 것은?
|
① 15 ② 17 ③ 19 ④ 21
▣ 관계연산
- 쎄타 조인 : 카디널리티 5
- 자연 조인 : 카디널리티 3
- Left 아웃터 조인 : 카디널리티 5
- Right 아웃터 조인 : 카디널리티 4
→ 카디널리티의 합은 17
정답 : ②
공감과 댓글은 아이티신비에게 큰 힘이 됩니다.
블로그 글이 유용하다면 블로그를 구독해주세요.♥
'정보시스템 감리 기출해설 > 데이터베이스 해설' 카테고리의 다른 글
(제 22회) 데이터베이스 / (71)~(72) 해설 (0) | 2024.12.03 |
---|---|
(제 22회) 데이터베이스 / (69)~(70) 해설 (0) | 2024.12.02 |
(제 22회) 데이터베이스 / (65)~(66) 해설 (0) | 2024.11.30 |
(제 22회) 데이터베이스 / (63)~(64) 해설 (2) | 2024.11.29 |
(제 22회) 데이터베이스 / (61)~(62) 해설 (2) | 2024.11.28 |