1 / 32

13. 객체 데이타베이스

13. 객체 데이타베이스.  새로운 데이타베이스 응용. 전통적인 데이타베이스 응용들의 특성 통일성 레코드 중심 작은 데이타 아이템 원자 필드 (atomic field) 단기 트랜잭션 정적 스키마.  새로운 데이타베이스 응용 (2). 새로운 응용들 컴퓨터 이용 설계 (CAD, Computer-Aided Design) 컴퓨터 이용 소프트웨어 공학 (CASE, Computer-Aided Software Engineering) 멀티미디어 (Multimedia) 데이타베이스

glenda
Download Presentation

13. 객체 데이타베이스

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 13. 객체 데이타베이스

  2.  새로운 데이타베이스 응용 • 전통적인 데이타베이스 응용들의 특성 • 통일성 • 레코드 중심 • 작은 데이타 아이템 • 원자 필드 (atomic field) • 단기 트랜잭션 • 정적 스키마

  3. 새로운 데이타베이스 응용 (2) • 새로운 응용들 • 컴퓨터 이용 설계(CAD, Computer-Aided Design) • 컴퓨터 이용 소프트웨어 공학(CASE, Computer-Aided Software Engineering) • 멀티미디어(Multimedia) 데이타베이스 • 사무 정보 시스템(OIS, Office Information System) • 하이퍼텍스트(hypertext) 데이타베이스 시스템

  4. 객체 지향 개념의 제안 • 기존 관계형 모델은 새로운 응용 영역에 부적합 • 새로운 데이타 모델과 질의어, 트랜잭션 모델 요구 • 객체 지향 언어의 개념에 기반한 객체 지향 데이타 모델 등장

  5. 객체 데이타 모델 • 객체 지향 개념 • 객체 및 객체 식별자 • 애트리뷰트와 메소드 • 클래스, 클래스 계층 • 상속 • 복합 객체 • 객체 데이타 모델 • 객체 지향 개념을 지원하는 데이타 모델

  6. 객체 데이타 모델(2) • 객체 데이타베이스(object database) • 객체 데이타 모델에 따라 객체의 상태(state)와 행태(behavior), 관계(relationship)가 정의되는 객체의 집합 • 객체 데이타베이스 관리 시스템(ODBMS, object DBMS) • 객체 데이타 모델을 직접 지원하는 DBMS • 객체 데이타베이스 시스템(ODBS, object DBS) • 객체 데이타베이스를 정의하고 처리할 수 있는 데이타베이스 시스템

  7. ▶객체와 객체 식별자 • 객체(Object) • 유일한 식별, 내포된 성질을 가지고 다른 객체들과 상호작용 할 수 있는 실세계 개체의 추상적 표현 • 객체 = 개체(데이타) + 연산자 • 유일한 식별성(identity) • 객체 식별자(OID: Object Identifier) • 객체의 유일성 표현 • 관계 모델의 기본키와 달리 변경되지 않음(user-defined value vs. system-defined value) • 객체 탐색의 수단 • 다른 객체의 OID를 이용해 객체간 참조 관계 표현

  8. ▶애트리뷰트와 메소드 • 애트리뷰트 • 인스턴스 변수(instance variable) : 객체의 상태를 기술 • 객체 구조(object structure) : 한 객체의 애트리뷰트 집합 • 유일한 이름과 도메인으로서의 데이타 타입을 가짐 Student Student 객체의 애트리뷰트

  9. 메소드 1 데이타 메소드 메소드 2 3 ▶ 애트리뷰트와 메소드 (2) • 객체 상태(Object State)  어느 한 시점에서 객체의 애트리뷰트들의 값  시간에 따라 변화 • 메소드 • 객체 상태를 처리하기 위해 수행되는 연산 • 객체 행태(object behavior) • 한 객체에 명세된 메소드 집합 • 캡슐화(encapsulation) • 객체의 내부 즉 애트리뷰트의 데이타 표현과 메소드 구현이 다른 객체에게 은닉된 상태

  10. ▶ 클래스( Class) • 동일한 구조(애트리뷰트)와 행태(메소드)를 가진 객체들의 집합 • 같은 특성을 갖는 객체의 모형(template) • 클래스 정의 : 구조와 행태(메소드)의 명세 • 클래스의 인스턴스가 객체 • 클래스와 객체는 instance-of 관계 • 객체 지향 데이타베이스의 질의의 대상

  11. S_number Name Date_ of_birth Dept Grade Address Course_taken Advisor 차재병 박정숙 채진영 채진영 Sgrade Mail 메소드 Student 인스턴스(객체) Student 클래스 클래스의 예 인스턴스 변수 (애트리뷰트)

  12. ▶ 클래스 계층 • 클래스 계층(class hierarchy) • 클래스들간의 세분화(specialization)에 따라 계층 형성 • 서브클래스(subclass), 슈퍼클래스(superclass) • 구조  트리(tree)  격자(lattice) :비사이클 방향 그래프(DAG, Directed Acyclic Graph) • 일반화(generalization) 관계 • 슈퍼클래스는 서브클래스의 일반화 개념 • 서브클래스는 슈퍼클래스의 세분화 개념 • 서브클래스와 슈퍼 클래스는 ISA 관계

  13. 클래스 계층의 예 Vehicle tree Car Truck Domestic Car Import Car

  14. ▶ 상속(Inheritance) : 클래스 계층 구조에 따라 상위 클래스의 애트리뷰트와 메소드를 상속받는 것 • 구조적 상속(structural inheritance) • 애트리뷰트(인스턴스 변수) 상속 • 행태적 상속(behavioral inheritance) • 메소드 상속 • 코드 재사용(code reuse)을 지원 • 단일상속(single inheritance) : 트리 • 다중상속(multiple inheritance) : 격자 • 폴리모피즘(polymorphism)/오버로딩(overloading)  하나의 이름을 둘 이상의 상이한 메소드가 사용하는 것  적용 객체에 따라 상이한 응답

  15. 다중 상속 Person rrno name addr lattice Student Employee sno dept year eno sal dept major advisor PartTimeStudent

  16. ▶ 다중 상속 • 이름 충돌과 상속 범위 • 서브 클래스 우선 • 슈퍼클래스와 같은 이름의 메소드, 애트리뷰트는 상속 하지 않음 • 슈퍼클래스들 사이의 우선 순위 • 다중상속에서 슈퍼클래스들 사이에서 문제점 • 슈퍼클래스들 사이의 우선 순위에 따라 상속

  17. ▶ 복합 객체(Complex Object) :애트리뷰트 값이 도메인으로 명세된 클래스의 인스턴스 객체 또는 객체 집합 • 애트리뷰트의 도메인 • 시스템이 정의한 기본 클래스(primitive class) • 애트리뷰트 값 : 도메인의 한 인스턴스 • 사용자 정의 클래스(user-defined class) • 애트리뷰트 값 : 해당 인스턴스의 OID • 복합 객체 • 애트리뷰트 값으로 다른 객체를 참조 • 애트리뷰트의 도메인으로 사용자 정의 클래스 사용 • 클래스의 중첩 구조를 형성 • 클래스 구성 계층(class composition hierarchy) 형성 Part of 관계

  18. Vehicle ID weight engine manufacturer 클래스 구성 계층의 예 VehicleEngine size cylinder Employee Company rrno name age city name location president Car Truck DomesticCar ForeignCar DomesticAutoCo ForeignAutoCo 슈퍼클래스/서브클래스 링크 애트리뷰트/도메인 링크

  19.  ODMG의 ODBMS • ODMG(Object Data Management Group) • Object Model 표준화를 위한 OMG(Object Management Group)산하 소그룹 • 2000년 현재 ODMG 3.0 표준 채택 • 객체 모델(Object Model), 객체 정의어(ODL), 객체 질의어(OQL), 언어 바인딩(C++, Java, Smalltalk) 등 포함

  20. ▶ ODMG 객체모델 • 객체 모델(Object Model) • 객체질의어와 객체정의어의 기반 데이타모델 • 기본 개념 : 객체(object)와 리터럴(literal) • 객체(Object) • 객체 식별자(OID) : unique • 이름(name) : optional, but unique • 수명(lifetime) : 영속적(persistent) 또는 일시적(transient) • 구조 : 객체 생성자에 의한 생성 방법

  21. ▶ ODMG 객체모델 (2) • 객체 타입 • 집단 객체 타입(collection object type) • Set, Bag, List, Array, Dictionary • 원자 객체 타입(atomic object type) • 사용자 정의 객체 타입(Class) • 리터럴(literal) • 식별자 없이 값만 존재 • 객체를 구성하는 요소로 사용 • 개별 참조가 불가

  22. ▶ ODMG 객체모델 (3) • 리터럴 타입 • 원자 리터럴 타입 : long, short, char, string • 구조화 리터럴 타입 : date, time, timestamp, interval • 집단 리터럴 타입 : Set, Bag, List, Array, Dictionary • 관계(relationship) • 어떤 객체에 대한 참조(reference)나 참조의 집합을 표현 • ODMG에서는 이원 관계만 허용 • 역(inverse)관계 명세 가능 • 연산(메소드) : 객체에 적용하는 함수

  23. ▶ ODL • ODL(Object Definition Language) • 데이타베이스 스키마를 정의 • 객체의 명세(specification)를 정의하는 언어 • 서로 다른 ODBMS간에 데이타베이스 스키마를 쉽게 이식 • 객체는 interface와 class 정의로 명세 • 인터페이스(interface) 정의 • 객체타입의 연산 시그니쳐(signature)를 명세 • 다른 인터페이스나 클래스가 상속 가능 • 자체 인스턴스의 생성은 불가

  24. 인터페이스 정의의 예 interface Object { ··· boolean same-as(in Object Other-Object); Object copy(); void delete(); ··· }; interface Time : Object { ··· unsigned short hours(); unsigned short minutes(); unsigned short seconds(); unsigned short milliseconds(); ··· boolean equal(in Time Other-Time); boolean greater(in Time Other-Time); ··· };

  25. ▶ ODL (2) • Class 정의 • 연산, 애트리뷰트, 관계 명세 • 행태 상속 및 상태(애트리뷰트, 관계) 상속 가능 • 객체 인스턴스 생성 가능 • Relationship • 다른 객체의 참조 명세 • 일대일, 일대다, 다대다 관계로 구분 • Superclass/subclass 관계 • Extends로 명세

  26. Extent : 클래스에 속하는 객체들의 집합을 총칭 클래스 정의의 예 class Student ( extent Students key sno ) { struct Department { string dname, string location }; attribute integer sno; attribute string sname; attribute Department dept; relationship Set<Course> take inverse Course::enrol; }

  27. 클래스 정의의 예 • Course 클래스의 정의 class Course ( extent Courses key cno ) { attribute string cno; attribute string cname; attribute string professor; attribute integer credit; relationship Set<Student> enrol inverse Student::take; float noOfStudents(); } • Course 클래스의 서브클래스로 SeminarCourse 정의 class SeminarCourse extends Course ( extent SeminarCourses ) { attribute integer maxAttendees; }

  28. ▶ OQL(Object Query Language) • ODMG 객체 모델을 지원하는 객체 질의어 • SQL을 기반으로 객체 개념 확장 • 예제 SELECT S.sno FROM StudentsS WHERE S.sname = ‘홍길동’ 객체 집단 반복 변수

  29. ▶ OQL (2) • 예제 수강생 수가 20명 미만인 과목을 수강하는 학생의 이름, 소속학과명, 과목명을 검색하라. SELECT student_name:S.sname, department:S.dept.dname, course_name:C.cname FROM Students S, S.take C WHERE C.noOfStudents() < 20 결과 필드 이름 명명 참조 연산: SQL의 JOIN과 비슷

  30. ▶ OQL (3) • 예제 SELECT creditno: C,credit AvgNum: AVG( SELECT P.C.noOfStudents() FROM partitionP ) FROM Courses C GROUP BY C.credit 그룹을 지칭하는 키워드

  31. ▶ OQL (4) • 예제 SELECT low, high, avgNum: AVG( SELECT P.C.noOfStudents() FROM partitionP ) FROM Courses C GROUP BY low: C.credit < 3, high: C.credit >= 3 그룹을 지칭하는 키워드 low와 high는 boolean변수

  32. ▶ OQL (5) • 예제 ( SELECT C.cname FROM Courses C ORDER BY C.noOfStudents() DESC) [0:4] 학생수가 가장 많은 상위 5개 과목

More Related