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

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

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

57. 객체 데이터 모델(object data model)에서 사용하는 OID(Object IDentifier)에 대한 설명으로 가장 적절하지 않은 것은?

 

① OID는 객체마다 유일한 값을 가지고 있으므로 하나의 시스템 내에서 OID가 동일한 객체는 있을 수 없다.

② OID는 객체가 생성될 때 시스템에 의해 생성되고 일단 생성된 뒤에는 어떠한 경우에도 변경되지 않는다.

③ OID는 관계 데이터 모델에서 사용하는 기본 키와 본질적으로 동일한 성질을 가지고 있다.

④ OID는 객체가 제거될 때만 삭제되며 이렇게 삭제된 OID는 다시 재사용할 수 없다.

 

▣ 객체(Object) 와 객체 식별자(Object Identifier:OID)

  • 객체는 실세계 환경에서는 존재하는 개체를 추상적으로 표현한 것임
  • 수많은 객체들을 유일하게 식별하기 위한 것이 객체 식별자임
  • 객체에 대한 참조관계는 한 객체의 속성값으로 피참조객체의 식별자를 가짐
  • 객체 식별자는 생성된 이후에는 그대로 유지됨

 

● 문제 풀이

③ OID는 관계 데이터 모델에서 사용하는 기본 키와 본질적으로 동일한 성질을 가지고 있다.

→ OID 는 한번 생성 후에 그대로 유지되고, 삭제된 후에는 재 사용할 수 없다. 그러나 관계 데이터 모델의 기본 키 특성은 유일성, 최소성을 만족하면 되고, 삭제 후 재사용 가능하는 등 OID 와는 동일한 성질을 가진다고 볼 수 없다.

 

정답 : ③

 

 

58. 다음과 같은 5-원(way) B-트리가 있다고 할 때, 새로운 키 값 30을 삽입했을 때의 설명으로 가장 적절하지 않은 것은?

 

 

① 삽입의 결과로 트리의 높이가 증가한다.

② 삽입의 결과로 루트의 공간 사용율이 1/2 미만이 된다.

③ 삽입 과정에서 노드의 분할이 발생한다.

④ 삽입 과정에서 노드의 병합이 발생한다.

 

▣ B-트리 삽입/삭제

  • B-트리 삽입

- 리프 노드에 빈 공간이 있는 경우 : 단순히 빈 공간에 삽입하면 됨

- 오버플로 발생 시

1) 두 노드로 분열(split)

2) [m/2] 째의 키 값 → 부모노드

3) 나머지는 반씩 나눔(왼쪽, 오른쪽 서브트리)

 

  • B-트리 삭제

- 리프노드에서 삭제

- 삭제키가 리프가 아닌 노드에 존재

· 후행키 값과 자리교환(후행키 - 항상 리프에)

· 리프노트에서 삭제

· 언더플로 : 키수 < [m/2] -1

· 재분배(redistribution) : 최소키 수 이상을 포함한 형제노드에서 이동

(형제노드의 키 → 부모노드 → 언더플로 노드)

· 합병(merge) : 재분배 불가능 시 이용(형제노드 + 부모노드의 키 + 언더플로 노드)

 

● 문제풀이

  • 삽입 과정에서 노드의 병합이 발생한다 → 오버플로우가 발생하고 노드의 분열이 발생한다.

 

정답 : ④

 

 



 

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

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