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

(제 22회) 데이터베이스 / (53)~(54) 해설

아이티신비 2024. 11. 24. 09:00

53. 릴레이션 스키마 S=(A, B, C, D, E, F, G)에서 다음과 같은 함수적 종속성(functional dependency) 이 존재한다고 가정하자. 릴레이션 S에서 후보 키로서 옳지 않은 것은?

 

 
A → ABCDEFG, BD → E, CE → A

 

① A       ② BD

③ CE    ④ BCD

 

▣ 폐포(Closure)

  • FD 의 집합 F의 폐포(closure) : F+ → F 로 부터 추론할 수 있는 모든 가능한 함수적 종속성들의 집합
  • F 에서 속성 집합 X의 폐포(closure of X under F) : X+ → 함수적 종속성 집합 F를 사용하여 X에 의해 함수적으로 결정되는 모든 애트리뷰트의 집합

예) F = (SSN → EMAME, PNUMBER → {PNAME, PLOCATION},{SSN,PNUMBER} → HOURS}

* 알고리즘을 사용하여 F하에서 다음과 같은 폐포 집합들을 구할 수 있다.

SSN+ = {SSN, ENAME}

PNUMBER + = {PNUMBER, PNAME, PLOCATION}

{SSN, PNUMBER}+ = {SSN, PNUMBER, ENAME, PNAME, PLOCATION, HOURS}

- 결국 키(K)는 자신의 폐포가 모든 애트리뷰트를 포함하는 애트리뷰트 집합을 의미, K+ = {ALL}

 

● 풀이

① A → A + = {A,B,C,D,E,F,G}

② BD → BD + = {B,D,E} 그러므로, 후보키가 될 수 없다.

③ CE → CE + = {C,E,A,B,D,F,G}

④ BCD → BCD + = {B,C,D,E,A,F,G}

 

 

정답 : ②

 

 

54. SQL에서 사용되는 COUNT 함수에 대한 다음 설명 중 옳은 것으로 묶인 것은?

가. 중복되는 값이 있는 속성의 경우, COUNT(속성명)의 결과와 COUNT(DISTINCT 속성명)의 결과는 동일하다.
나. 중복되는 값이 없는 속성의 경우, COUNT(*)의 결과와 COUNT(속성명)의 결과는 상이하다.
다. COUNT(*)의 처리 대상은 투플의 집합이고, 그 결과는 투플의 수이다.
라. COUNT(*)의 결과에 중복되는 투플은 포함된다.

① 가, 나 ② 가, 다

③ 나, 다 ④ 다, 라

 

▣ 집계함수

  • COUNT 함수는 질의에서 지정한 튜플이나 값들의 개수를 반환한다.
  • COUNT(NULL) : NULL을 포함한 개수 반환
  • COUNT(SALARY) : NULL 을 제외한 개수 반환

SELECT COUNT(*), COUNT(SALARY) => NULL 여부에 따라 결과가 다를 수 있다.

FROM EMPLOYEE ;

  • SUM, MAX, MIN, AVG 함수들은 집합이나 수치 값들의 다중집합에 적용되며, 각각은 합, 최대값, 최소값, 평균값을 반환함

 

● 문제 풀이

가. 중복되는 값이 있는 속성의 경우, COUNT(속성명)의 결과와 COUNT(DISTINCT 속성명)의 결과는 동일하다.

→ 중복되는 값이 존재하므로 COUNT(속성명) > COUNT(DISTINC 속성명)

나. 중복되는 값이 없는 속성의 경우, COUNT(*)의 결과와 COUNT(속성명)의 결과는 상이하다.

→ 항상 상이하다고 할 수 없다. NULL 이 없으면 동일, NULL 이 존재하면 상이

다. COUNT(*)의 처리 대상은 투플의 집합이고, 그 결과는 투플의 수이다.

라. COUNT(*)의 결과에 중복되는 투플은 포함된다.

 

 

정답 : ④

 



 

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

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