• 검색 결과가 없습니다.

제 9 장 객체 - 관계 데이터베이 스

N/A
N/A
Protected

Academic year: 2023

Share "제 9 장 객체 - 관계 데이터베이 스"

Copied!
28
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

제 9 장 객체 - 관계 데이터베이 스

 내포 릴레이션

 복합형과 객체 지향성

 복합형을 가진 질의

 복합값과 복합 객체의 생성

 객체 지향과 객체 - 관계 데이터베이스의

비교

(2)

객체 - 관계 데이터 모델

 관계형 데이터 모델에 객체 지향성과 추가 데이 터형을 다루기 위한 구조체를 포함시켜 확장시켰 다 .

 튜플의 애트리뷰트에 내포 릴레이션과 같은 비원 자 값을 포함해 복합형을 갖도록 한다 .

 모델링 능력은 확장시킨 반면 , 특히 데이터에의 선언적 액세스같은 관계형 기본은 유지한다 .

 기존의 관계형 언어와의 양립성을 향상시킴

(3)

내포 릴레이션

 동기 :

비원자 도메인을 허용하자 ( 원자적≡나누어지지 않음 )

비원자 도메인의 예 : 정수들의 집합 또는 튜플들의 집합

복합 데이터를 가진 어플리케이션에 대해 보다 직관적인 모델링 을 허용하자 .

 직관적 정의 :

원자 ( 스칼라 ) 값을 허용하는 곳에 릴레이션을 허용하자 - 릴 레이션내에 릴레이션

 관계형 모델의 수학적 기초를 유지한다 .

 제 1 정규형에 위배된다 .

(4)

내포 릴레이션의 예

 예 : 문서 검색 시스템

 각 문서에는 다음을 가진다 .

제목

저자들의 집합

입수한 날짜 및

키워드의 집합

 비 -1NF 문서 릴레이션

title author-list date Keyword-list Day month year

salesplan {Smith, Jones} 1 April 79 {profit, strategy}

(5)

내포 릴레이션의 1NF 버전

 doc 의 1NF 버전

title author day month year keyword salesplan

salesplan salesplan salesplan status report status report status report status report

Smith Jones Smith

Jones Jones Frick Jones Frick

1 1 1 1 17 17 17 17

April April April April June June June June

79 79 79 79 85 85 85 85

profit profit strategy strategy

profit

profit

personnel

personnel

(6)

내포 릴레이션의 4NF 분해

 다음과 같은 다중값 종속을 가진다는 가정하에 flat- doc 의 어색함을 제거한다 :

title →→ author

title →→ keyword

title → day month year

 다음의 스키마를 사용해 flat-doc 을 4NF 로 분해한 다 :

(title, author)

(title, keyword)

(7)

flat-doc 의 4NF 분해

title author

salesplan Smith salesplan Jones status report Jones status report Frick

title keyword

salesplan profit salesplan strategy status report profit status report personnel

title day month year salesplan 1 April 89 status report 1 June 94

(8)

4NF 스키마에 가지는 문제점

 4NF 설계는 사용자의 질의에 죠인을 포함하 도록 한다 .

 4NF 릴레이션들의 조인으로 정의된 1NF 관 계형 뷰 flat-doc:

– 사용자들이 죠인을 수행할 필요가 없음

– 그러나 튜플과 문서간의 1 대 1 대응을 잃게됨

 여기서 내포 릴레이션 표현이 보다 더 자연스

럽다 .

(9)

복합형과 객체 지향성

 관계형 모델에의 확장은 다음을 내포 :

내포 릴레이션

복합형

세분화 (is-a 관계 )

상속

객체 식별성

 SQL 확장을 제공할 것이다 .

SQL-3 표준이 1997 년 현재 개발중

SQL-3 초안인 XSQL 언어와 SQL 의 Illustra 확장에 넓

게 기초하여 설명

(10)

구조형과 집단형

새로운 형과 새로운 테이블을 정의한다 .

create type MyString char varying.

create type MyDate

(day integer, month char(10), year integer)

create type Document

(name MyString, author-list setof(MyString), date MyDate, keyword-list setof(MyString))

create table doc of type Document

(11)

구조형과 집단형 ( 계속 )

일반적인 관계형 데이터베이스에서의 테이블 정의와는 달 리 , doc 테이블 정의에는 집합인 애트리뷰트와 MyDate 같 은 구조적 애트리뷰트를 허용한다 .

E-R 도의 복합 애트리뷰트와 다중값 애트리뷰트가 직접 표현 되도록 한다 .

위의 문장을 사용해 생성된 형은 데이터베이스에 저장된 스 키마에 기록된다 .

테이블을 직접 생성할 수 있다 .

create table doc

(name MyString, author-list setof(MyString),

date MyDate, keyword-list setof(MyString))

(12)

형의 상속

 사람을 위한 다음 형 정의를 고려해 보자 .

create type Person (name MyString,

social-security integer)

 상속을 이용해 student 와 teacher 형을 정의한다 .

create type Student

(degree MyString, department MyString) under Person

create type Teacher

(salary integer, department MyString)

(13)

형의 상속 ( 계속 )

 조교에 관한 정보를 저장하고 두 부서의 존 재간의 모순을 피하기 위해 as 절을 사용한 다 .

 TeachingAssistant 형의 정의

create type TeachingAssistant

under Student with (department as student-dept),

Teacher with (department as teacher-dept)

(14)

테이블 계층에서의 상속

엔티티가 한번에 하나 이상의 테이블에 존재하도록 하여 객체에 여 러 형을 갖도록 한다 .

people 테이블 :

create table people

(name MyString,

social-security integer)

그리고 students 와 teachers 테이블을 다음과 같이 정의 .

create table students

(degree MyString, department MyString) under people

create table teachers

(salary integer, department MyString)

(15)

테이블 상속 : 역할

 테이블 상속은 역할을 모델링하는데 유용하다 .

– 객체에 가장 특정한 형을 가지지 않고 여러 형을 가지 도록 한다 ( 형 상속과는 다름 ).

– 예를 들어 , 하나의 객체가 students 와 teachers 양쪽 하에 있는 student-teachers 서브 테이블에 있지 않고 students 와 teachers 서브 테이블에 동시에 있을 수 있 다 .

– 객체는 역할을 얻고 잃을 수 있다 : 서브 테이블에 객

체를 삽입 / 삭제함에 따름

(16)

테이블 상속 : 일관성 요구 조건

 서브 테이블과 수퍼 테이블상의 일관성 요구 조건

수퍼 테이블 people 의 각 튜플은 각 students 와 teachers 테이블의 기껏해야 하나의 튜플에 대응 .

students 와 teachers 의 각 튜플은 people 의 정확히 한 튜플에 대응해야 함 .

 수퍼 테이블의 주 키 이외에 상속되는 애트리뷰트 는 저장될 필요가 없으며 , 주 키에 근거해 수퍼 키와의 죠인으로 유도될 수 있다 .

 형과 함께 다중 상속이 가능하다 .

(17)

참조형

객체 지향 언어는 객체를 생성하고 참조하는 기능을 제공한 다 .

Document 형의 author-list 필드를 다음과 같이 재정의한다 .

author-list setof(ref(Person))

이제 author-list 는 Person 객체에 대한 참조 집합임 .

테이블의 튜플들은 또한 그들에 대한 참조를 가질 수 있다 .

테이블 people 의 튜플에 대한 참조는 ref(people) 형을 갖는다 .

주 키 또는 시스템이 생성한 튜플 식별자를 사용해 구현될 수 있다 .

(18)

릴레이션 값 애트리뷰트

 릴레이션명이 나타나는 어느곳에나 릴레이션을 평 가하는 표현식이 나타나도록 함으로써 , 확장된

SQL 은 내포 릴레이션 구조의 장점을 취할 수 있다 .

 다음의 릴레이션 pdoc 을 고려해 보자 .

create table pdoc

( name MyString,

author-list setof(ref(people)), date MyDate,

keyword-list setof(MyString))

(19)

예제 질의

키워드중의 하나에 “ database” 를 가진 모든 문서를 찾아라 .

select name from pdoc

where “database” in keyword-list

각 문서와 문서의 각 저자에 대해 “ document-name, author- name” 형의 쌍을 내포하는 릴레이션을 생성하라 .

select B.name, Y.name

from pdoc as B, B.author-list as Y

각 문서의 이름과 저자의 수를 찾아라 .

select name, count(author-list) from pdoc

(20)

경로 표현식

복합 애트리뷰트를 참조하기 위해 점 표기법이 참조와 함께 사 용될 수있다 .

앞의 people 테이블과 phd-student 테이블을 고려해 보자 .

create table phd-students (advisor ref(people)) under people

모든 박사과정 학생의 지도교수명을 찾아라 .

select students.advisor.name from phd-students

pdoc 릴레이션내 문서들의 모든 저자명을 찾아라 .

select Y.name

(21)

비내포

내포 릴레이션을 제 1 정규형으로 변환

내포 릴레이션을 내포 릴레이션 또는 애트리뷰트로서 구조적형을 갖지 않는 하나의 보통 릴레이션으로 변환

doc 릴레이션을 비내포 하라 (author-list 와 keyword-list 는 내포 릴레이 션이고 name 과 date 는 내포되지 않음 )

select name, A as author, date.day, date.month, date.year, K as keyword

from doc as B, B.author-list as A, B.keyword-list as K

from 절의 B 는 doc 에 범위를 한정하는 것으로 선언됨

A 는 그 문서에 대한 author-list 내의 저자로 한정

K 는 문서의 keyword-list 내의 키워드로 범위를 한정하는 것으로 선언

(22)

내포

1NF 릴레이션을 내포 릴레이션으로 변환하는 것 .

SQL 내 그룹핑의 확장으로 수행될 수 있다 .

릴레이션 flat-doc 을 애트리뷰트 keyword 에 대해 내포하라 :

select title, author, (day, month, year) as date, set(keyword) as keyword-list

from flat-doc

groupby title, author, date

title author date keyword-list

(day, month, year)

salesplan Smith (1, April, 89) {profit, strategy}

salesplan Jones (1, April, 90) {profit, strategy}

(23)

함수

 주어진 문서에서 저자의 수를 반환하는 함수를 정의하라 .

create function author-count(one-doc Document) returns integer as

select count(author-list) from one-doc

 두명 이상의 저자를 가진 모든 문서명을 찾아라 .

select name from doc

where author-count(doc) > 1

(24)

함수 ( 계속 )

데이터베이스 시스템은 C 또는 C++ 와 같은 다른 언어로 작성된 함수의 사용을 허용한다 .

 장점 : 많은 연산에 대해 보다 효율적이며 보다 표 현력이 강하다 .

 단점

함수를 구현하는 코드가 데이터베이스 시스템내에 로 드될 필요가 있다 .

데이터베이스 구조의 우발적인 파손의 위험 부담

(25)

복합 값과 복합 객체의 생성

 doc 릴레이션으로 정의된 형의 튜플을 생성하라 .

(“salesplan”, set(“Smith”, “Jones”), (1, “April”, 89), set(“profit”, “strategy”))

– 복합 애트리뷰트 date 의 값은 괄호 내에 그의 애트리뷰 트 day, month 및 year 를 나열해 생성한다 .

– 집합 값 애트리뷰트 author-list 와 keyword-list 는 키워

드 set 다음의 괄호 내에 그의 원소를 열거해 생성한다 .

(26)

예제 질의

 위의 튜플을 릴레이션 doc 에 삽입하라 .

insert into doc values

(“salesplan”, set(“Smith”, “Jones”), (1, “April”, 89), set(“profit”, “strategy”))

 질의에서 복합값을 사용할 수 있다 . 문서명이

“salesplan”, “opportunities” 또는 “ risks” 중의 하나인 모든 문서명과 날짜를 찾아라 .

select name, date

from doc

(27)

추가적인 개념

 다중 집합값은 set 을 multiset 으로 대치해 생성할 수 있다 .

 Constructor 함수를 사용해 새로운 객체를 생성한 다 .

– 형이 T 인 객체의 constructor 함수는 T() 이다 .

– 형 T 의 초기화되지 않은 새로운 객체를 생성해 그의 oid 필드를 채우고 객체를 반환한다 .

– 객체의 필드는 초기화되어야 한다 .

(28)

객체지향과 객체 - 관계 데이터이스의 비교

다양한 데이터베이스 시스템의 강점 요약

 관계형 시스템 : 단순한 데이터형 , 질의 , 높은 보호력

 OODB 에 근거한 영속 프로그래밍 언어 : 복합 데이터형 , 프로그래밍 언어와의 결합 , 높은 성 능

 객체 - 관계 시스템 : 복합 데이터형 , 질의 , 높은

보호력

참조

관련 문서

범인체포는 공안기관 의 체포증에 의하며 , 피의자에 대한구속은 인민검찰원의 승인 또는 인민법원의 결정을 거친 후에 공안기관이 집행한다.. 형사처벌을 받은 적이

4. ACTH는 태아의 부신피질을 자극하여 코르티솔의 합성·방출을 급격하게 증가시 킨다. 이와 같은 경로를 통해서 태아의 부신에서 다량으로 분비된 코르티솔은 태반

 보의 단면 m의 휨모멘트를

title author publisher pub_branch keyword Compilers Smith McGraw-Hill New York parsing Compilers Jones McGraw-Hil New York parsing Compilers Smith McGraw-Hill New

We compare our method FKS-AC with Fuzzy Keyword Search over Encrypted Data in Cloud Computing (FKS) [1] and Privacy-Preserving Multi-Keyword Fuzzy Search over Encrypted Data

Sixth, the skills of core manpower in Korean electronic industry tend to be converging toward the long-term cumulative skill formation. Keyword:

Keyword: HRD, the science policy, the educational policy, the Humanities, The Professional Graduate School for Education, the Presidential Committee for the

① 근로자의 희망을 고려한 배치 및 이동으로