Professional Documents
Culture Documents
제 17 장 객체지향 데이타베이스의 개념
제 17 장 객체지향 데이타베이스의 개념
객체지향 데이타베이스의 개념
17.1 OO 의 개요
17.2 OO 식별자 , 객체 구조 및 타입 생성자
17.3 연산의 캡슐화 , 메소드 , 지속성
17.4 타입 및 클래스 계층구조와 상속
17.5 복합 객체
17.6 또 다른 OO 개념
17.7 요약 및 현재 상황
주된 관점
– OO 데이타베이스는 실세계 객체들과 데이타베이스 객체들 간
의 직접적인 연관을 유지하여 객체가 자신의 무결성과 식별성을
잃지 않고 쉽게 식별되어 동작되도록 함
객체
– 두 구성요소 : 상태 ( 값 ) 과 행위 ( 연산 )
인스턴스 변수
– OOPL 에서 객체의 내부구조는 인스턴스 변수의 명세를 통해
정의됨
– 인스턴스 변수는 객체의 내부 상태를 정의하는 값들을 가짐
– 인스턴스 변수는 애트리뷰트와 비슷한 개념이지만 객체 내에
캡슐화 되어 외부 사용자들에게는 안 보이게 할 수 있다는 점에
서 애트리뷰트와 차이가 있음
객체의 캡슐화
– 사용자가 객체에 적용할 수 있는 모든 연산들이 미리 정의되어
야 하는 OO 모델도 있음
– 이 경우 , 객체의 완전한 캡슐화가 이루어지게 됨
고유한 식별자
– OO 데이타베이스 시스템은 데이타베이스에 저장된 각 독립 객체에
고유한 식별자를 제공함
– 이러한 고유한 식별자는 일반적으로 시스템이 생성한 객체 식별자
(OID) 에 의해 구현됨
OID 의 주요 특성은 불변성임
– 즉 , 특정 객체에 부여된 OID 값은 바뀔 수 없다는 것임
– OID 의 이런 특성에 의해 실세계 객체의 식별성이 보존됨
타입 생성자
– OO 데이타베이스에서 , 복합 객체의 상태 ( 현재 값 ) 는 다른 객체
( 또는 다른 값 ) 들로부터 타입 생성자를 사용하여 생성될 수 있음
예 : 계속
예 1 ( 계속 )
예 1( 계속 ):
위에 열거한 처음 여섯 개의 객체 (o1-o6) 는 원자 값이다 .
데이타베이스 내에 각각의 서로 다른 상수 원자 값에 대하여
하나씩이 생성되므로 비슷한 객체들이 많이 존재하게 된다 .
1) 객체 o7 은 5 번 부서의 위치들을 나타내는 집합 값을 가지는 객
체이다 . 즉 , {i1, i2, i3} 집합은 {‘Houston’, ‘Bellaire’,
‘Sugarland’} 집합을 나타낸다 .
2) 객체 o8 은 5 번 부서 자체를 나타내는 투플 값의 객체로서
DNAME, DNUMBER, MGR, LOCATIONS 등의 애트리뷰트들을
가진다 .
예 2:
본 예는 두 객체의 상태를 비교함으로써 두 가지 동등 관계의
차이점을 설명한다 .
o1 = (i1, tuple, <a1:i4, a2:i6>)
예 2( 계속 ):
o1 과 o2 는 값들이 원자 레벨에서는 같으나 서로 다른 객체인
o4 와 o5 에 의해 값을 얻게 되므로 두 객체 o1 과 o2 는 같은
상태를 가진다 .
캡슐화
OO 언어와 시스템의 주요 특징 중 하나임
프로그래밍 언어의 추상 데이터 타입 및 정보 은닉 개념과 연관됨
예:
PERSON: Name, Address, Birthdate, Age, SSN
서브타입
– 설계자나 사용자가 , 이미 정의된 타입과 유사하지만 동일하지는 않은 새로
운 타입을 생성해야 할 때 유용함
수퍼타입
– 이미 정의된 타입으로부터 모든 함수를 상속함
비구조적 복합 객체
– DBMS 가 제공하는 비구조적 복합 객체의 기능은 데이타베이스 응용이 필요로
하는 대형 객체들의 검색 및 기억 장소를 지원한다 .
이진 대형 객체 / BLOB
– 비구조적 복합 객체의 대표적인 예로는 비트맵 이미지와 긴 텍스트 스트링 ( 예 ,
문서 ) 이 있는데 , 이런 객체들을 이진 대형 객체 (binary large objects) 또는
BLOB 이라고 한다 .
관계형 DBMS 에서의 복합객체 지원 방법과 차이점
– 관계형 DBMS 에서도 복합 객체를 지원할 수 있으나 객체에 대한 연산은
RDBMS 밖에 정의할 수밖에 없다 .
구조적 복합 객체
– 객체의 구조가 OODBMS 에서 제공되는 타입 생성자들을 반복적으로 적용하여
정의된다는 점에서 비구조적 복합 객체와 다르다 .
– 따라서 OODBMS 에 의해 객체의 구조가 정의되어 등록된다 .
다형성 ( 연산자 중첩 ):
다형성의 개념은 동일한 연산자의 이름 또는 심볼이 그 연산자가 적
용될 객체의 타입에 따라 서로 다른 연산자의 구현과 결합될 수 있
다는 것이다 .
다중 상속과 선택적 상속
타입 계층구조에서 다중 상속은 하나의 서브타입 T 가 서로 다른 수
퍼타입을 두 개 이상 가지고 , 따라서 그 수퍼타입들의 함수 ( 애트
리뷰트와 메소드 ) 들을 모두 상속받는 것을 말한다 .
버전과 구성
객체지향 시스템을 사용하는 데이타베이스 응용들에서는 동일한 객체
에 대해 여러 버전의 관리가 필요하다 .
한 객체에 대해 두 개 이상의 버전이 있을 수 있다 .
구성 (Configuration)
각 모듈당 하나의 버전으로 구성된 모임으로서 모듈 버전들이 서로 호
환적이며 복합 객체의 유효한 버전을 형성한다 .