61. 다음과 같은 함수 종속을 가진 릴레이션 R을 BCNF로 정규화한 결과로 옳은 것은? (단, 아래 지문에서 밑줄친 열은 기본키, 이탤릭체는 외래키를 의미한다.)
R(A, B, C, D)
함수종속 : A→(B, C, D), B→(A, C, D), D→C |
① R1(A, B, D), R2(D, C)
② R1(A, B, C), R2(C, D)
③ R1(A, B, C), R2(B, D)
④ R1(A, C, D), R2(B, A)
▣ 문제풀이
R(A, B, C ,D)
함수종속 : A → (B, C, D), B → (A, C, D), D → C
1) 후보키 확인 : A or B
2) A속성을 대표 후보키로 선정하면, 함수종속 A → (B, C, D), D → C 에서 이행함수 종속 존재(A → D → C) 그러므로, 2 정규형 임
3) 3 정규화 작업을 위해서 이행함수 종속 제거하고 R1 과 R2 로 분리함
R1 (A, B, D), R2( D,C)
4) 별도의 종속성이 존재하지 않으므로 BCNF 정규화 완료함
정답 : ①
62. 다음 Sailors, Boats, Reserves 3개의 릴레이션에서 질의 “color가 'red'인 Boat와 'green'인 Boat를 모두 reserve한 Sailor의 sname을 검색하라.”를 SQL로 나타낸 문장으로 옳은 것은? (단, Sailors, Boats, Reserves 릴레이션 각각의 기본 키는 sid, bid, (sid, bid)이다.)
Sailors(sid, sname, rating, age)
Boats(bid, bname, color) Reserves(sid, bid, day) |
① SELECT S.sname
FROM Sailors S, Reserves R, Boats B
WHERE S.sid = R.sid AND R.bid = B.bid AND
(B.color = 'red' OR B.color = 'green');
② SELECT S.sname
FROM Sailors S, Reserves R, Boats B
WHERE S.sid = R.sid AND R.bid = B.bid AND
(B.color = 'red' AND B.color = 'green');
③ SELECT S.sname
FROM Sailors S, Reserves R1, Boats B1,Reserves R2, Boats B2
WHERE S.sid = R1.sid AND R1.bid = B1.bid AND S.sid = R2.sid AND R2.bid = B2.bid AND B1.color = 'red' AND B2.color = 'green';
④ SELECT S.sname
FROM Sailors S, Reserves R, Boats B
WHERE S.sid = R.sid AND R.bid = B.bid AND B.color = 'red'
UNION
SELECT S2.sname
FROM Sailors S2, Boats B2, Reserves R2
WHERE S2.sid = R2.sid AND R2.bid = B2.bid AND B2.color = 'green';
▣ 문제풀이
① SELECT S.sname FROM Sailors S, Reserves R, Boats B
WHERE S.sid = R.sid AND R.bid = B.bid AND (B.color = 'red' OR B.color = 'green');
→ 'red' 또는 'green' 색 한 개씩 만 예약한 Sailors 도 조회
② SELECT S.sname FROM Sailors S, Reserves R, Boats B
WHERE S.sid = R.sid AND R.bid = B.bid AND (B.color = 'red' AND B.color = 'green');
→ 조회되는 데이터 없음
④ SELECT S.sname FROM Sailors S, Reserves R, Boats B
WHERE S.sid = R.sid AND R.bid = B.bid AND B.color = 'red'
UNION
SELECT S2.sname FROM Sailors S2, Boats B2, Reserves R2
WHERE S2.sid = R2.sid AND R2.bid = B2.bid AND B2.color = 'green';
→ 'red' 또는 'green' 색 한 개씩 만 예약한 Sailors 도 조회
정답 : ③
공감과 댓글은 아이티신비에게 큰 힘이 됩니다.
블로그 글이 유용하다면 블로그를 구독해주세요.♥
'정보시스템 감리 기출문제해설 > 데이터베이스 해설' 카테고리의 다른 글
(제 24회) 데이터베이스 / (65)~(66) 해설 (1) | 2024.08.04 |
---|---|
(제 24회) 데이터베이스 / (63)~(64) 해설 (1) | 2024.08.03 |
(제 24회) 데이터베이스 / (59)~(60) 해설 (0) | 2024.08.01 |
(제 24회) 데이터베이스 / (57)~(58) 해설 (0) | 2024.07.31 |
(제 24회) 데이터베이스 / (55)~(56) 해설 (0) | 2024.07.30 |