[DataBase System] ch11 - 객체 데이터베이스

2023. 5. 19. 00:28DataBase/DB 문제풀이

[DataBase System] ch11 - 객체 데이터베이스

 

책정보, 데이터베이스 시스템 : 네이버 책 (naver.com)

 

데이타베이스 시스템 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

문제풀이

 

1 ) 기존의 상용 데이터베이스 시스템이 지원하기에 적당하지 않은 새로운 응용과 이 응용들의 요구 사항들을 설명하여 보라.

 

- 새로운 응용

  • 컴퓨터 이용 설계(CAD -  Computer aided design) 
    • CAD DB는 설계 중인 아이템의 구성요소(Component), 구성요소 간의 상호관계, 버전 관리 등을 포함하는 공학 설계에 관한 데이터 저장
  • 컴퓨터 이용 소프트웨어 공학 (CASE - Computer aided software engineering)
    • CASE DB는 소프트웨어 개발자를 지원하기 위해 필요한 데이터를 저장
    • 해당 데이터에는 원시 코드, 모듈들 간의 종속 관계, 변수의 정의와 용도, 소프트웨어 시스템의 개발 과정 등의 데이터가 포함
  • 사무 정도 시스템 (OIS - Office Information System)
    • 사무 자동화는 문서의 작성과 검색, 스케줄 관리를 위한 도구들을 포함
    • OIS DB는 스케줄, 문서, 문서 내용에 대한 질의를 처리할 수 있어야 한다. 
  • 하이퍼텍스트(HyperText) 데이터베이스 시스템 
    • 하이퍼텍스트는 다른 문서를 가리키고 있는 링크를 가진 텍스트
    • 하이퍼텍스트 DB는 링크를 기반으로 하는 문서검색과 질의를 처리할 수 있어야 한다.
  • 멀티미디어 데이터베이스  
    • 멀티미디어 DB는 이미지, 시공간 데이터, 오디오, 비디오, 화상, 그래픽스, 텍스트 등과 같은 데이터 포함  

요구

  • 객체 데이터 모델
    • 객체 지향 개념을 지원하는 데이터 모델
    • 객체 및 객체 식별자, 애트리뷰트와 메서드, 클래스와 클래스 계층 및 상속, 복합 객체를 포함
    • 복합객체
      • 어느 한 객체의 애트리뷰트가  그 값으로 다른 객체를 참조하는 객체

 


2 ) 다음 용어를 간단히 설명하라

 

  1. 객체
    1. 다른 객체 또는 자기 자긴과 상호 작용을 할 수 있는 실세계 개체를 추상적 표현
  2. 객체 식별자
    1. 객체마다 유일한 값을 가지는 것을 의미
  3. 클래스
    1. 공통적인 특성을 가진 객체들의 모임
  4. 클래스 계층
    1. 클래스들을 계속적으로 세분화시킨 것
  5. 클래스 격자
    1. 둘 이상의 슈퍼 클래스가 허용되는 클래스 계층
    2. 클래스들이 하나의 루트를 가진 무사이클 방향 그래프 구성
  6. 계승
    1. 계층 경로에서 자기보다 상위에 있는 클래스의 애트리뷰트와 메서드를 계승받는 것
  7. 메서드
    1. 객체의 상태를 변경시키려면 해당 객체의 애트리뷰트 값을 변경시키는 역할
  8. 객체 상태
    1. 어느 한 시점에서 한 객체의 애트리뷰트들이 가지고 있는 값
  9. 폴리모피즘
    1. 하나의 메서드 이름을 둘 이상의 프로그램이 사용하는 것
  10. 참조
    1. 객체의 데이터와 메서드에 접근하는 방법
    2. 애트리뷰트 값으로 해당 인스턴스의 객체 식별자가 저장이 되는 것
  11. 클래스 구성 계층
    1. 클래스의 애트리뷰트와 그 애트리뷰트의 도메인이 되는 클래스들 간의 관계
  12. 슈퍼클래스
    1. 클래스 계층에서 클래스에 연결된 부모 노드에 해당되는 클래스
  13. 서브클래스
    1. 클래스 계층에서 클래스에 연결된 자식 노드에 해당되는 클래스
  14. 캡슐화
    1. 애트리뷰트의 데이터 표현과 메서드의 구현을 다른 객체나 사용자로부터 은닉시키는 기능

3 ) 클래스를 생성할 때 명세하여야 할 요소를 설명하라

  • 클래스에 속하는 객체들에 대한 구조와 메서드의 명세

4 ) 클래스 제거에 따르는 문제가 있으면 설명하라

  • 만약 제거하려는 클래스가 상속을 하고 있는 슈퍼클래스와 서브 클래스라면 슈퍼 클래스를 삭제하려는 순간 서브 클래스에 영향을 주게 됨

5 ) 데이터 삭제 연산을 설명하고 수반되는 문제점을 설명하라

  • 데이터 삭제를 위해서는 delete 문을 사용
  • delete [클래스 변수]
  • from {[all] 클래스명세 [변수]},+
  • [where 탐색조건]
  • all을 사용 시 서브 클래스도 동시에 되는 경우가 존재
  • 이때 all 미사용 시 서브클래스가 아닌 슈퍼 클래스만 삭제 
  • 데이터 삭제 연산을 잘못 수행하면 데이터 무결성 제약조건에 위배 가능
  •  

6 ) 본문에서 예를 든 학생과 과목 클래스에 대해 다음과 같은 질의문을 OQL로 표현하라

 

  1. 학번이 200인 학생이 수강하는 과목의 담당교수를 검색하라
    1. SELECT c.professor 
    2. FROM Student s, Courses c
    3. WHERE s.id = 200 and c in s.courses
  2. 3학년 학생들이 수강하는 과목의 이름과 그 과목의 학생수를 검색하라
    1. select c.name, count(c.students)
    2. from Student s, Courses c
    3. where s.grade = 3 and c in s.courses
  3. 컴퓨터과 학생이 수강하는 과목의 평균 학생수를 검색하라
    1. select avg(c.student)
    2. from Student s, Courses c
    3. where s.department = '컴퓨터과' 

 


7 ) 일대일, 일대다, 다대다의 관계를 갖는 ODL 클래스 선언 예를 보이라