티스토리 뷰

관계 대수의 결과로 나오는 릴레이션은 항상 중복이 제거된 상태로 된다고 가정한다.


하지만 실제로 데이터베이스에서는 

중복을 제거하려고 하면 굉장히 많은 연산이 필요할 수 있기 때문에 중복을 제거 하지 않은 상태로 결과 릴레이션을 내놓는다.

S2


sid 

sname 

rating 

age 

28

58 

yuppy

Rusty 

9

10

 

35.0

35.0 


이 있을때 πage(S2) 의 결과는 

 age


35.0 

35.0

이다. 하지만 실제로는 35.0은 한번만 표시해야 한다.



두 릴레이션 인스턴스가 합병 가능한 경우 합집합,교집합,차집합 연산이 가능하다.


합병가능 -> 두 릴레이션의 필드 수가 서로 같고, 왼쪽 부터 오른쪽까지 차례 대로 필드의 도메인이 같아야 한다.


S1과 S2 라는 두 테이블이 있을때 집합연산(합,교,차집합)을 한 결과 릴레이션은


S1의 필드 이름을 따며, S1과 S2의 필드이름이 같지 않아도 합병가능한 경우(필드수 와 도메인만 같으면) 집합 연산을 할 수 있다.

결과 릴레이션에서는 S1의 필드 이름을 따서 만들게 된다.


ex)


S1                                                                        S2

sid(char) sname(char) rating(int) age(int)        a(char) b(char) c(int) d(int)


S1 합집합 S2 가능함 -> 합병 가능하기 때문 -> 필드수와 도메인이 같다.


결과 릴레이션은 S1의 필드명을 따서 만든다.


sid sname rating age



카티션 곱 = 크로스 프로덕트 는 두 릴레이션이 합병가능하지 않아도 연산을 할 수 있다.


R과 S의 교집합은 R - (R -S)로 표현이 가능하다.


조인


R과 S를 크로스 프로덕트 한다음 셀렉션이나 프로젝션을 수행한것.


왼쪽은 동등 조인이고 오른쪽은 자연 조인이다.

동등 조인은 중복 필드를 제거 하지 않고 자연 조인은 중복 필드를 제거한다.


세타조인(비교 연산자 사용 > < = 등)

동등 조인( = 연산자 사용)

자연 조인 ( 중복 필드 제거)


세타조인은 동등조인을 포함하며 동등조인은 자연조인을 포함하는 개념이다.





S1*R1의 결과로 나온 릴레이션의 이름을 C라고 개명하고 1번 필드의 이름을 sid1, 5번 필드의 이름을 sid2로 변경하겠다는 뜻



                                            





댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함