제 3 장 관계형 모델 - 김건웅 교수...

75
Copyright 1999 서서서서서서서 서서서서서서 서서서 서서 1 서 3 서 서서서 서서 서서서 서서서서서서서 서서 서서서 서서 서서 서서서 서서 서서서 서서서 서서 서서 서서서 서서 서서 서서서서서서서 서서

Upload: trinhminh

Post on 21-May-2018

232 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 1

제 3 장 관계형 모델 관계형 데이터베이스의 구조 관계형 대수 튜플 관계형 해석 도메인 관계형 해석 확장 관계형 대수 연산 데이터베이스의 수정 뷰

Page 2: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 2

기본 구조 집합 A1, A2, …, An 이 주어지면 릴레이션 r 은 A1A2 … An

의 부분 집합이다 따라서 , 릴레이션은 aiAi 인 n- 튜플 (a1, a2, …, an) 의 집합이다 . 예 : 다음과 같다면 customer-name = {Jones, Smith, Curry, Lindsay} customer-street = {Main, North, Park} customer-city = {Harrison, Rye, Pittsfield} 그러면 customer-name customer-street customer-city 에 대한 r = {(Jones, Main, Harrison), (Smith, North, Rye), (Curry, North, Harr

ison), (Smith, North, Rye), (Curry, North, Rye),(Lindsay, Park, Pittsfield)} 인 릴레이션이다 .

Page 3: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 3

릴레이션 스키마

A1, A2, …, An 은 애트리뷰트이다 .

R = (A1, A2, …, An) 인 릴레이션 스키마이다 .

Customer-schema = (customer-name, customer-street, customer-city)

r(R) 은 릴레이션 스키마 R 상의 릴레이션이다 . customer(Customer-schema)

Page 4: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 4

릴레이션 사례

릴레이션의 현재 값 ( 릴레이션 사례 ) 는 테이블로 표현된다 .

r 의 원소 t 는 튜플이며 , 테이블에서 행으로 표현된다 .

customer

customer-name customer-street customer-city Jones Main Harrison Smith North Rye Curry . North Rye Lindsay Park Pittsfield

Page 5: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 5

키 K R 이라 하자 . K 의 값이 각각의 가능한 릴레이션 r(R) 의 고유한 튜플을

구분하는데 충분하다면 K 는 R 의 수퍼 키이다 . “ 가능한 r”이란 모델링하고 있는 조직에 존재할 수 있는 릴레이션 r 을 의미한다 .

예 : {customer-name, customer-street} 와 {customer-name} 은 어느 두 고객도 같은 이름을 가질 가능성이 없으므로 모두 Customer의 수퍼 키이다 .

K 가 최소 길이이면 후보 키이다 . 예 : {customer-name} 은 자신이 수퍼 키이고 ( 어느 두 고객도

같은 이름을 가질 가능성이 없다고 가정 ), 어떤 부분 집합도 수퍼 키가 아니므로 Customer 의 후보 키이다 .

Page 6: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 6

E-R 집합으로부터 키의 결정 강 엔티티 집합 . 엔티티 집합의 주 키는 릴레이션의 주

키가 된다 . 약 엔티티 집합 . 릴레이션의 주 키는 강 엔티티 집합의

주 키와 약 엔티티 집합의 구별자의 합집합으로 구성된다 . 관계 집합 . 관련된 엔티티 집합의 주 키의 합집합은

릴레이션의 수퍼 키가 된다 . 이진 다 대 다 관계 집합에서는 위의 수퍼 키가 또한 주

키이다 . 이진 다 대 일 관계 집합에서는 “다”쪽 엔티티 집합의 주

키가 릴레이션의 주 키가 된다 . 일 대 일 관계 집합에서는 어떤 쪽의 엔티티 집합의 주

키도 릴레이션의 주 키가 될 수 있다 .

Page 7: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 7

질의어

사용자가 데이터베이스로부터 정보를 요청하는 언어 언어의 부류 : - 절차식 - 비절차식 순수언어 : - 관계형 대수 - 튜플 관계형 해석 - 도메인 관계형 해석 순수 언어는 사람들이 사용하는 질의어의 기본을 이루고

있다 .

Page 8: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 8

관계형 대수 절차식 언어 6 가지 기본 연산자 - 선택 - 추출 - 합집합 - 차집합 - 카티전 곱 - 재명명 연산자는 입력으로서 하나 이상의 릴레이션을 취해 그

결과로 새로운 릴레이션을 생성한다 .

Page 9: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 9

선택 연산 표기법 : P(r) 다음과 같이 정의된다 . P(r) ={ t | t r and P(t)}

여기서 P 는 다음과 같은 유형의 표현을 다루는 명제 해석에서의 식이다 .

< 애트리뷰트 > = < 애트리뷰트 > 또는 < 상수 > > < (and), (or), (not) 으로 연결된다 .

Page 10: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 10

선택 연산 예제 릴레이션 r :

A=BD>5(r)

A B C D 1 7 5 7 12 3 23 10

A B C D 1 7 23 10

Page 11: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 11

추출 연산 표기법 : A1, A2, …, A k(r) 여기서 A1, A2 는 애트리뷰트명이고 r 은

릴레이션명이다 . 결과는 명시하지 않은 열을 제외한 k 열의

릴레이션으로 정의된다 . 릴레이션은 집합이기 때문에 중복 행은

결과에서 제거된다 .

Page 12: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 12

추출 연산 예제 릴레이션 r :

A, C(r)

A B C 10 1 20 1 30 1 40 2

A C 1 1 1 2

A C 1 1 2

=

Page 13: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 13

합집합 연산 표기법 : r s 다음과 같이 정의된다 . r s = {t | t r or t s} r s 가 가능하려면 , 1. r 과 s 는 같은 항 ( 애트리뷰트의 수가 같음 ) 을

가져야 한다 . 2. 애트리뷰트의 도메인은 양립할 수 있어야 한다

( 즉 , r 의 두번째 열은 s 의 두번째 열의 것과 같은 유형의 값을 다룬다 ).

Page 14: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 14

합집합 연산의 예제 릴레이션 r, s

r sr

s

A B 1 2 1 3

A B 1 2 1

A B 2 3

Page 15: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 15

차집합 연산

표기법 : r - s 다음과 같이 정의된다 . r - s = {t | t r and t s} 차집합 연산은 양립할 수 있는 릴레이션 간에만

이루어질 수 있다 . - r 과 s 는 같은 항을 가져야 한다 . - r 과 s 의 애트리뷰트 도메인은 양립해야만

한다 .

Page 16: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 16

차집합 연산의 예제

릴레이션 r, s

r - s

rs

A B 1 2 1

A B 2 3

A B 1 1

Page 17: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 17

카티전 곱 연산

표기법 : r s 다음과 같이 정의된다 . r s = {t q| t r and q s} r(R) 과 s(S) 의 애트리뷰트가 서로

다르다고 가정하자 ( 즉 , RS = ). r(R) 과 s(S) 의 애트리뷰트가 서로 다르지

않다면 , 재명명을 사용해야 한다 .

Page 18: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 18

카티전 곱 연산의 예제

릴레이션 r, s :

r s

rs

A B 1 2

C D E 10 + 10 + 20 - 10 -

A B C D E 1 10 + 1 10 + 1 20 - 1 10 - 2 10 + 2 10 + 2 20 - 2 10 -

Page 19: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 19

복합 연산 여러 연산을 사용해 표현식을 만들 수 있다 . 예 : A=C(r s) r s

A=C(r s)

A B C D E 1 10 + 1 10 + 1 20 - 1 10 - 2 10 + 2 10 + 2 20 - 2 10 -

A B C D E 1 10 + 2 10 + 2 20 -

Page 20: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 20

재명명 연산 이름을 줄 수 있도록 하여 관계형 대수 표현식의 결과를

참조하도록 한다 . 하나 이상의 이름으로 릴레이션을 참조하도록 한다 . 예 : x(E)

이름 x 로 표현식 E 를 돌려준다 .관계형 대수 표현식 E 가 n 항이면 , x (A1, A2, …,An)(E)

이름 x 하에 A1, A2, …,An 으로 재명명된 애트리뷰트를 가

진 표현식 E 의 결과를 돌려준다 .

Page 21: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 21

은행 예제branch(branch-name, branch-city, assets)

customer(customer-name, customer-street, customer-city)

account(branch-name, account-number, balance)

loan(branch-name, loan-number, amount)

depositor(customer-name, account-number)

borrower(customer-name, loan-number)

Page 22: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 22

예제 질의 1,200 불을 초과하는 모든 대출을 찾아라 . amount >1200(loan)

1,200 불을 초과하는 각 대출의 대출 번호를 찾아라 .

loan-number( amount >1200(loan))

Page 23: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 23

예제 질의 은행에 예금 , 대출 또는 모두를 가진 고객의

이름을 찾아라 . customer-name(borrower) customer-name(depositor)

은행에 예금과 대출을 가진 모든 고객의 이름을 찾아라 .

customer-name(borrower) customer-name(depositor)

Page 24: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 24

예제 질의 Perryridge 지점에 대출이 있는 모든 고객의 이름을

찾아라 . customer-name(branch-name=“Perryridge”

(borrower.loan-number=loan.loan-number(borrower loan))) Perryridge 지점에 대출이 있으면서 은행의 어떤

지점에도 예금이 없는 모든 고객의 이름을 찾아라 . customer-name(branch-name=“Perryridge”

(borrower.loan-number=loan.loan-number(borrower loan)))

- customer-name(depositor)

Page 25: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 25

예제 질의 Perryridge 지점에 대출이 있는 모든 고객의 이름을

찾아라 .- 질의 1 customer-name(branch-name = “Perryridge”

(borrower.loan-number = loan.loan-number(borrower loan)))

- 질의 2 customer-name(borrower.loan-number=loan.loan-number( (branch-name = “Perryridge”(borrower)) loan))

Page 26: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 26

예제 질의가장 큰 예금 잔고를 찾아라 . account 릴레이션을 d 로 재명명한다 . 질의는 다음과 같다 :

balance(account) - account.balance

(account.balance < d.balance(account d(account)))

Page 27: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 27

형식적 정의 관계형 대수에서의 기본 표현식은 다음 중 하나 이상으로 구성된다 . - 데이터베이스내의 릴레이션 - 상수 릴레이션 E1 과 E2 를 관계형 대수 표현식이라 하자 ; 다음은 모두 관계형 대수

표현식이다 : - E1 E2

- E1 - E2

- E1 E2

- P(E1), P 는 E1 내 애트리뷰트 상의 술어이다 .

- S(E1), S 는 E1 내 어떤 애트리뷰트로 구성된 리스트이다 .

- x(E1), x 는 E1 의 결과에 대한 새로운 이름이다 .

Page 28: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 28

추가 연산관계형 대수에 어떠한 능력도 추가되지 않지만 질의를 단순화하는 추가 연산을 정의한다 . 공통 집합 자연 죠인 나누기 배정

Page 29: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 29

공통 집합 연산 표기법 : r s 다음과 같이 정의된다 . r s = {t | t r and t s}

가정 : - r 과 s 는 같은 항을 갖는다 . - r 과 s 의 애트리뷰트는 양립성이 있다 . 유의 : r s = r - (r - s)

Page 30: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 30

공통 집합 연산의 예제 릴레이션 r, s

r s

rs

A B 2

A B 1 2 1

A B 2 3

Page 31: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 31

자연 죠인 연산 표기법 : r s r 과 s 를 각각 스키마 R 과 S 상의 릴레이션이라 하자 . 결과는 r 의

튜플 tr 과 s 의 튜플 ts 의 각 쌍을 고려해 얻은 스키마 R S 상의 릴레이션이다 .

tr 과 ts 가 RS 의 애트리뷰트 각각에 같은 값을 가지면 , 다음과 같이 튜플 t 가 결과에 추가된다 .

- t 는 r 상에 tr 로서 같은 값을 갖는다 .

- t 는 s 상에 ts 로서 같은 값을 갖는다 .

예 : R = (A, B, C, D) S = (E, B, D) 결과 스키마 = (A, B, C, D, E) r s 는 다음과 같이 정의된다 . r.A, r.B, r.C, r.D, s.E(r.B=s.Br.D=s.D(r s))

Page 32: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 32

자연 죠인 연산의 예제

릴레이션 r, s

r sr s

A B C D 1 a 2 a 4 b 1 a 2 b

B D E 1 a 3 a 1 a 2 b 3 b

A B C D E 1 a 1 a 1 a 1 a 2 b

Page 33: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 33

나누기 계산 r s “ 모두에 대한”이라는 구절을 내포한 질의에 적합하다 . r 과 s 를 각각이 다음과 같은 스키마 R, S 상의

릴레이션이라 하자 .

- R = (A1, …, Am, B1, …, Bn)

- S = (B1, …, Bn)

r s 의 결과는 스키마 R-S = (A1, …, Am) 상의 릴레이션이다 .

r s = {t | t R-S(r) u s(tu r)}

Page 34: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 34

나누기 연산 ( 계속 )

속성 - q = r s 라 하자 . - 그러면 q 는 q s r 을 만족하는 가장 큰 릴레이션이다 .

기본 대수 연산의 표현으로 정의 r(R) 과 s(S) 를 릴레이션이라 하고 S R 이라 하자 .

r s = R-S(r) - R-S((R-S(r) s) - R-S,S(r))

그 이유는 다음과 같다 . - R-S,S(r) 은 단순히 r 의 애트리뷰트를 재배열한다 .

- R-S((R-S(r) s) - R-S,S(r)) 은 us 인 어떤 튜플에 대해

tur 인 R-S(r) 내의 튜플 t 를 구한다 .

Page 35: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 35

나누기 연산의 예제 릴레이션 r, s :

r s

r

s

A B 1 2 3 1 1 1 3 4 6 1 2

B 1 2

A

Page 36: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 36

또 다른 나누기 예제 릴레이션 r, s:

r sr

s

A B C D E a a 1 a a 1 a b 1 a a 1 a b 3 a a 1 a b 1 a b 1

D E a 1 b 1

A B C a a .

Page 37: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 37

배정 연산 배정 연산 () 은 복잡한 질의를 편리하게 표현하는 방법을

제공한다 . 질의를 일련의 배정 연산과 질의의 결과 값이 디스플레이되는 표현식으로 구성된 순차 프로그램으로 작성한다 .

배정은 항상 임시 릴레이션 변수로 작성되어야 한다 . 예 : r s 는 다음과 같이 작성한다 . temp1 R-S(r)

temp2 R-S((temp1 s) - R-S,S(r))

result = temp1 - temp2 - 의 오른쪽 결과가 의 왼쪽의 릴레이션 변수에 배정된다 . - 연속 표현식내에 변수를 사용할 수 있다 .

Page 38: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 38

예제 질의 적어도 Downtown 과 Uptown 지점에 예금을 가진 모든 고객을

찾아라 . - 질의 1 CN(BN=“Downtown” (depositor account)) CN(BN=“Uptown” (depositor account))

여기서 CN 은 customer-name 을 나타내고 BN 은 branch-name 을 나타

낸다 . - 질의 2 customer-name,branch-name(depositor account)

temp(branch-name)({(“Downtown”),(“Uptown”)})

Page 39: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 39

예제 질의 Brooklyn 에 위치한 모든 지점에 예금을

가진 모든 고객을 찾아라 .

customer-name,branch-name(depositor account)

branch-name(branch-city=“Brooklyn”(branch))

Page 40: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 40

튜플 관계형 해석

각 질의가 다음과 같은 형식인 비절차식 질의어

{ t | P(t) }

술어 P 가 t 에 대해 참인 모든 튜플 t 의 집합이다 . t 는 튜플 변수이고 , t[A] 는 애트리뷰트 A 에 대한

튜플 t 의 값을 의미한다 . t r 은 튜플 t 가 릴레이션 r 에 속함을 의미한다 . P 는 술어 해석의 그것과 유사한 식이다 .

Page 41: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 41

술어 해석 식1. 애트리뷰트와 상수의 집합2. 비교 연산자의 집합 : ( 예를 들어 , <, , =, , >, )3. 연결자의 집합 : and(), or(), not()4. 내포 () : x y, x 가 참이면 y 도 참이다 .

x y x y

5. 한정자의 집합 :

t r (Q(t)) 술어 Q(t) 가 참인 릴레이션 r 내에 튜플 t 가 존재한다 . t r (Q(t)) 릴레이션 r 내의 모든 튜플 t 에 대해 Q 가 참이다 .

Page 42: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 42

은행 예제branch (branch-name, branch-city, assets)

customer(customer-name, customer-street, customer-city)

account(branch-name, account-number, balance)

loan(branch-name, loan-number, amount)

depositor(customer-name, account-number)

borrower(customer-name, loan-number)

Page 43: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 43

예제 질의 1,200 불을 초과하는 대출에 대해 branch-name, loan-nu

mber 및 amount 를 찾아라 . {t | t loan t[amount] > 1200} 1,200 불을 초과하는 각 대출의 대출 번호를 찾아라 . {t | s loan (t[loan-number] = s[loan-number] s[amount] > 1200)}

스키마 [customer-name] 상의 릴레이션은 질의에 의해 묵시적으로 정의됨에 유의하라 .

Page 44: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 44

예제 질의 은행에 대출 , 예금 또는 모두를 가진 고객의

이름을 찾아라 . {t | s borrower(t[customer-name] = s[customer-name]) u depositor(t[customer-name] = u[customer-name])}

은행에 대출과 예금을 가진 모든 고객의 이름을 찾아라 .

{t | s borrower(t[customer-name] = s[customer-name]) u depositor(t[customer-name] = u[customer-name])}

Page 45: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 45

예제 질의 Perryridge 지점에 대출이 있는 모든 고객의 이름을 찾아라 . {t | s borrower(t[customer-name] = s[customer-name] u loan(u[branch-name] = “Perryridge” u[loan-number] = s[loan-number]))}

Perryridge 지점에 대출은 있지만 , 은행의 어떤 지점에도 예금은 없는 모든 고객의 이름을 찾아라 .

{t | s borrower(t[customer-name] = s[customer-name] u loan(u[branch-name] = “Perryridge” u[loan-number] = s[loan-number])

v depositor(v[customer-name] = t[customer-name]))}

Page 46: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 46

예제 질의 Perryridge 지점에서 대출을 받은 고객의 이름과

그들이 살고 있는 도시를 찾아라 .

{t | s loan(s[branch-name] = “Perryridge” u borrower(u[loan-number] = s[loan-number] t[customer-name] = u[customer-name] v customer(u[customer-name] = v[customer-name] t[customer-city] = v[customer-city])))}

Page 47: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 47

예제 질의 Brooklyn 에 위치한 모든 지점에 예금을 가진

모든 고객의 이름을 찾아라 .

{t | s branch(s[branch-city] = “Brooklyn” u account(s[branch-name] = u[branch-name] v depositor(t[customer-name] = v[customer- name] v[account-number] = u[account-number])))}

Page 48: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 48

표현식의 안전성 무한 릴레이션을 생성하는 튜플 해석 표현식을

작성할 수가 있다 . 예를 들어 , {t | t r} 은 릴레이션 r 의 어떤

애트리뷰트 도메인이 무한이면 무한 릴레이션을 생성한다 .

이러한 문제점을 방지하기 위해 허용 가능한 표현식의 집합을 안전한 표현식으로 한정한다 .

튜플 관계형 해석내의 표현식 {t | P(t)} 는 t 의 모든 요소가 P 내에 나타나는 릴레이션 , 튜플 또는 상수 중의 하나에 나타나면 안전하다 .

Page 49: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 49

도메인 관계형 해석

튜플 관계형 해석과 능력이 동등한 비절차식 질의어

각 질의는 다음과 같은 형식의 표현식이다 .

{<x1, x2, …, x n> | P(x1, x2, …, x n)}

- x1, x2, …, x n 은 도메인 변수를 표현한다 .

- P 는 술어 해석의 그것과 유사한 식이다 .

Page 50: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 50

예제 질의 1,200 불을 초과하는 대출의 branch-name, loan-number 및 amount

를 찾아라 . {< b, l, a >|< b, l, a > loan a > 1200}

1,200 불을 초과하는 대출을 가진 모든 고객의 이름을 찾아라 . {< c > | b, l, a (< c, l > borrower < b, l, a > loan a > 1200}

Perryridge 지점에서 대출을 받은 모든 고객의 이름을 찾아라 . {< c, a > | l (< c, l > borrower b (< b, l, a > loan b = “Perryridge”))}

Page 51: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 51

예제 질의 Perryridge 지점에 대출 , 예금 또는 모두를 가진 고객의 이름을

찾아라 . {< c > | l (< c, l > borrower b, a(< b, l, a > loan b = “Perryridge”)) a (< c, a > depositor b, n(< b, a, n > account b = “Perryridge”))}

Brooklyn 에 위치한 모든 지점에 예금을 가진 고객의 이름을 찾아라 .

{< c > | x, y, z (< x, y, z > branch y =“Brooklyn”) a, b (< x, a, b> account < c, a > depositor)}

Page 52: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 52

표현식의 안전성 {<x1, x2, …, x n>| P(x1, x2, …, x n)}

위의 표현식은 다음 조건을 모두 만족하면 안전하다 .

1. 표현식의 튜플에 나타나는 모든 값이 dom(P) 로 부터의 값이다 ( 즉 , 값이 P 또는 P 에 언급된 릴레이션의 튜플내에 나타난다 ).2. x(P1(x)) 형태의 모든 “존재한다”는 부 식에 대해 , 부 식이 참인 필

요 충분 조건은 P1(x) 가 참인 dom(P1) 내에 값 x 가 존재하는 것이다 .

3. x(P1(x)) 형태의 모든 “모든 에 대한”이라는 부 식에 대해 , 부 식

이 참인 필요 충분 조건은 P1(x) 가 dom(P1) 으로부터의 모든 값 x

에 대해 참인 것이다 .

Page 53: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 53

확장 관계형 대수 연산 일반화 추출

외부 죠인

집성 합수

Page 54: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 54

일반화 추출 추출 리스트에 산술 함수를 사용 하도록 함으로써 추출

연산을 확장한다 . F1, F2, …, Fn

(E)

E 는 관계형 대수 표현식이다 . F1, F2, …, Fn 각각은 E 의 스키마 내에 상수와

애트리뷰트를 내포하고 있는 산술 표현식이다 . 주어진 릴레이션 credit-info(customer-name, limit, credit-bal

ance) 에 대해 각 개인이 얼마까지 사용할 수 있는지를 찾아라 .

customer-name, limit – credit-balance (credit-info)

Page 55: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 55

외부 죠인

정보의 손실을 피하는 죠인 연산의 확장 죠인을 계산하고 다른 릴레이션의 튜플과

부합하지 않는 어떤 릴레이션의 튜플들을 죠인의 결과에 추가한다 .

널 값을 사용한다 . - 널은 알려지지 않은 값이나 존재하지 않는 값을

의미한다 . - 널을 내포한 모든 비교는 정의에 의해 거짓이다 .

Page 56: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 56

외부 죠인의 예제 릴레이션 loan

릴레이션 borrower

branch-name loan-number amountDowntownRedwoodPerryridge

L-170L-230L-260

300040001700

customer-name loan-numberJonesSmithHayes

L-170L-230L-155

Page 57: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 57

외부 죠인의 예제

loan borrower

loan borrower

branch-name loan-number amount customer-nameDowntownRedwood

L-170L-230

30004000

JonesSmith

branch-name loan-number amount customer-name loan-number

Downtown Redwood Perryridge

L-170 L-230 L-260

3000 4000 1700

Jones Smith null

L-170 L-230 null

Page 58: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 58

외부 죠인의 예제 loan borrower

loan borrower

branch-name loan-number amount customer-nameDowntownRedwoodnull

L-170L-230L-155

30004000null

JonesSmithHayes

branch-name loan-number amount customer-nameDowntownRedwoodPerryridgenull

L-170L-230L-260L-155

300040001700null

JonesSmithnullHayes

Page 59: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 59

집성 함수 집성 연산자 는 값의 모임을 취해 하나의 값을 결과로 돌려준다 . avg: 평균 값 min: 최소 값 max: 최대 값 sum: 합계 count: 값의 개수

G1, G2, …, Gn F1 A1, F2 A2, ..., Fm An(E)

- E 는 관계형 대수 표현식이다 . - G1, G2, …, Gn 은 그룹핑할 애트리뷰트 리스트이다 .

- Fi 는 집성 함수이다 .

- Ai 는 애트리뷰트명이다 .

Page 60: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 60

집성 함수의 예제 릴레이션 r :

sumC(r)

A B C 7 . 7 3 10

sum-C

27

Page 61: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 61

집성 함수의 예제 릴레이션 account 를 branch-name 으로

그룹핑한다 .

branch-name sum balance(account)

branch-name account-number balancePerryridgePerryridgeBrightonBrightonRedwood

A – 102A – 201A – 217A – 215A – 222

400900750750700

branch-name sum-balancePerryridgeBrightonRedwood

13001500700

Page 62: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 62

데이터베이스의 수정 데이터베이스의 내용은 다음 연산을 사용해 수정할 수 있다 .

- 삭제 - 삽입 - 갱신 이들 모든 연산은 배정 연산자를 사용해 표현된다 .

Page 63: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 63

삭제 삭제 요청은 사용자에게 튜플을 디스플레이하는 대신

선택한 튜플들이 데이터베이스에서 제거되는 것을 제외하고는 질의와 유사하게 표현된다 .

튜플을 통째로 삭제할 수 있지 , 특정 애트리뷰트의 값 만을 삭제할 수는 없다 .

삭제는 관계형 대수로 다음과 같이 표현된다 .

r r - E

여기서 r 은 릴레이션이고 E 는 관계형 대수 질의이다 .

Page 64: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 64

삭제 예제 Perryridge 지점의 모든 계좌 레코드를 삭제하라 .

account account - branch-name = “Perryridge” (account)

0 부터 50 사이의 금액을 가진 모든 대출 레코드를 삭제하라 .

loan loan - amount 0 and amount 50 (loan)

Needham 에 위치한 지점의 모든 계좌를 삭제하라 .

r1 branch-city = “Needham” (account branch) r2 branch-name, account-number, balance(r1) r3 customer-name, account-number(r2 depositor) account account - r2

depositor depositor - r3

Page 65: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 65

삽입 릴레이션에 데이터를 삽입하려면 다음과 같이 한다 . - 삽입될 튜플을 지정한다 . - 결과가 삽입될 튜플의 집합인 질의를 작성한다 .

관계형 대수에서 , 삽입은 다음과 같이 표현된다 . r r E 여기서 r 은 릴레이션이고 , E 는 관계형 대수

표현식이다 .

단일 튜플의 삽입은 E 를 하나의 튜플을 내포한 상수 릴레이션이 되도록하여 표현한다 .

Page 66: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 66

삽입의 예제 데이터베이스에 Smith 가 Perryridge 지점에 1,200 불의 계좌 A-

973 을 가지고 있다는 정보를 삽입하라 . account account {“Perryridge”, A-973, 1200} depositor depositor {“Smith”, A-973}

Perryridge 지점의 모든 대출 고객에게 200 불의 저축 예금 계좌를 제공하고자 한다 . 대출 번호를 새로운 저축 계좌의 계좌 번호로 하자 .

r1 (branch-name = “Perryridge” (borrower loan))

account account branch-name, loan-number, 200(r1)

depositor depositor customer-name, loan-number(r1)

Page 67: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 67

갱신 튜플 내의 모든 값을 바꾸지 않고 일부 값을

변경하는 기법 일반화 추출 연산자를 사용한다 . r F1, F2, …, Fn

(r)

- 각 Fi 는 i 번째 애트리뷰트가 갱신되지 않거나

갱신될 r 의 i 번째 애트리뷰트이다 . - Fi 는 애트리뷰트에 새로운 값을 주는 상수와 r

의 애트리뷰트만을 내포하는 표현식이다 .

Page 68: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 68

갱신의 예제 모든 잔고에 5% 의 이자를 지급하라 .

account BN, AN, BALBAL*1.05(account)

여기서 BAL, BN 및 AN 은 각각 balance, branch-name 및 account-number 를 나타낸다 .

10,000 불을 초과하는 잔고에는 6% 의 이자를 지급하고 그 외의 잔고에는 5% 의 이자를 지급하라 .

account BN, AN, BAL BAL*1.06(BAL > 10000(account))

BN, AN, BAL BAL*1.05(BAL 10000(account))

Page 69: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 69

뷰 어떤 경우에도 , 모든 사용자가 전체 논리 모델을

보는 것이 바람직하지 않다 ( 즉 , 데이터베이스에 저장된 모든 실제 릴레이션 ).

고객의 대출 번호는 알 필요가 있으나 대출 금액을 알 필요가 없는 개인을 고려해 보자 . 이 사람은 다음과 같이 관계형 대수로 기술된 릴레이션을 보아야만 한다 .

customer-name, loan-number(borrower loan) 개념적 모델의 일부는 아니지만 사용자에게 “가상

릴레이션”으로 보이는 릴레이션을 뷰라 한다 .

Page 70: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 70

뷰 정의 뷰는 다음과 같은 형식을 갖는 create view 문을 사용해

정의한다 . create view v as < 질의 표현식 > 여기서 < 질의 표현식 > 은 적법한 관계형 대수 질의

표현식이다 . 뷰명은 v 로 표현된다 . 일단 뷰가 정의되면 , 뷰를 생성하는 가상 릴레이션을

참조하는데 뷰명이 사용될 수 있다 . 뷰 정의는 질의 표현식을 평가함으로써 새로운

릴레이션을 생성하는 것과는 다르다 . 대신 , 뷰 정의는 뷰를 사용하는 질의내에 대치될 표현식을 저장한다 .

Page 71: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 71

뷰의 예

지점과 고객으로 구성된 뷰 ( 뷰명 : all-customer) 를 고려해 보자 .

create view all-customer as branch-name, customer-name (depositor account)

branch-name, customer-name (borrower loan)

Perryridge 지점의 모든 고객은 다음과 같이 찾을 수 있다 . customer-name

(branch-name = “Perryridge” (all-customer))

Page 72: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 72

뷰를 통한 갱신

뷰로서 표현된 데이터베이스 수정은 데이터베이스의 실제 릴레이션의 수정으로 변환되어야 한다 .

loan 릴레이션에서 amount 를 제외한 모든 대출 데이터를 필요로 하는 개인을 고려해 보자 . 그 사람에게 제공되는 branch-loan 뷰는 다음과 같이 정의된다 .

create view branch-loan as branch-name, loan-number(loan) 릴레이션 명이 허용되는 어느 곳에나 뷰명이 나타날 수

있으므로 , 그 사람은 다음과 같이 작성할 수 있다 . branch-loan branch-loan {(“Perryridge”, L-37)}

Page 73: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 73

뷰를 통한 갱신 ( 계속 )

앞의 삽입은 뷰 branch-loan 이 구축된 실제 릴레이션 loan 으로의 삽입으로 표현되어야 한다 .

loan 에의 삽입은 amount 값을 필요로 한다 . 삽입은 다음 둘 중 하나로 취급될 수 있다 .

- 삽입을 거절하고 사용자에게 에러 메시지를 돌려준다 . - loan 릴레이션에 튜플 (“Perryridge”, L-37, null) 을 삽입

한다 .

Page 74: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 74

다른 뷰를 사용해 정의한 뷰

하나의 뷰는 다른 뷰를 정의하는 표현식에 사용될 수 있다 .

뷰 릴레이션 v1 은 v2 가 v1 을 정의하고 있는 표현식에 사용된다면 뷰 릴레이션 v2 에 직접 종속한다고 말한다 .

뷰 릴레이션 v1 은 종속 그래프내에 v2 에서 v1 로의 경로가 존재하면 뷰 릴레이션 v2 에 종속한다고 말한다 .

뷰 릴레이션 v 가 그 자신에 종속하면 순환적이라 말한다 .

Page 75: 제 3 장 관계형 모델 - 김건웅 교수 홈페이지lily.mmu.ac.kr/lecture/00db/data/ch3.ppt · PPT file · Web view · 2000-08-31제 3 장 관계형 모델 관계형 데이터베이스의

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 75

뷰 확장 다른 뷰의 용어로 정의된 뷰의 의미를 정의하는 방법

뷰 v1 을 그 자신이 뷰 릴레이션의 사용을 내포할 수 있는 표현식 e1 으로 정의된다 하자 .

표현식의 뷰 확장은 다음과 같은 대치 절차를 반복한다 . repeat e1 에서 어떠한 뷰 릴레이션 vi 를 찾는다 .

뷰 릴레이션 vi 를 vi 를 정의하고 있는 표현식으로 대치한다 .

until 더 이상의 뷰 릴레이션이 e1 내에 존재하지 않음

뷰 릴레이션이 순환적이지 않은 한 이 루프는 종료할 것이다 .