![](https://t1.daumcdn.net/cfile/tistory/276D7D45552879A534)
![](https://t1.daumcdn.net/cfile/tistory/271DB045552879A71B)
![](https://t1.daumcdn.net/cfile/tistory/26350D45552879A90D)
![](https://t1.daumcdn.net/cfile/tistory/26244645552879AC17)
![](https://t1.daumcdn.net/cfile/tistory/26702645552879AF33)
![](https://t1.daumcdn.net/cfile/tistory/2644F845552879B103)
![](https://t1.daumcdn.net/cfile/tistory/21255145552879B316)
![](https://t1.daumcdn.net/cfile/tistory/2548BA3F552879B616)
![](https://t1.daumcdn.net/cfile/tistory/215A3B3F552879B90B)
![](https://t1.daumcdn.net/cfile/tistory/21585E3F552879BB0D)
![](https://t1.daumcdn.net/cfile/tistory/213CE63F552879BE1D)
![](https://t1.daumcdn.net/cfile/tistory/225FDD3F552879C109)
![](https://t1.daumcdn.net/cfile/tistory/2341733F552879C31A)
![](https://t1.daumcdn.net/cfile/tistory/2342613F552879C51A)
![](https://t1.daumcdn.net/cfile/tistory/26036442552879C70A)
![](https://t1.daumcdn.net/cfile/tistory/276A5742552879C917)
![](https://t1.daumcdn.net/cfile/tistory/27773842552879CC10)
![](https://t1.daumcdn.net/cfile/tistory/23013542552879CE0B)
![](https://t1.daumcdn.net/cfile/tistory/236DDF42552879D115)
![](https://t1.daumcdn.net/cfile/tistory/26666542552879D319)
![](https://t1.daumcdn.net/cfile/tistory/2760CF42552879D61B)
![](https://t1.daumcdn.net/cfile/tistory/2473D840552879D90A)
![](https://t1.daumcdn.net/cfile/tistory/277ED340552879DC04)
![](https://t1.daumcdn.net/cfile/tistory/23722E40552879DD0B)
![](https://t1.daumcdn.net/cfile/tistory/266E9240552879E00D)
![](https://t1.daumcdn.net/cfile/tistory/25653A40552879E113)
![](https://t1.daumcdn.net/cfile/tistory/24706740552879E30C)
![](https://t1.daumcdn.net/cfile/tistory/235B7A40552879E618)
![](https://t1.daumcdn.net/cfile/tistory/2112B340552879E73C)
![](https://t1.daumcdn.net/cfile/tistory/23712A40552879E90C)
![](https://t1.daumcdn.net/cfile/tistory/24695840552879EC11)
![](https://t1.daumcdn.net/cfile/tistory/217E7640552879EE05)
![](https://t1.daumcdn.net/cfile/tistory/2678CF40552879F008)
![](https://t1.daumcdn.net/cfile/tistory/22661D40552879F213)
![](https://t1.daumcdn.net/cfile/tistory/27718B40552879F50C)
![](https://t1.daumcdn.net/cfile/tistory/235BB942552879F720)
![](https://t1.daumcdn.net/cfile/tistory/257A5842552879F90F)
![](https://t1.daumcdn.net/cfile/tistory/255C3E42552879FB20)
![](https://t1.daumcdn.net/cfile/tistory/26382942552879FD33)
![](https://t1.daumcdn.net/cfile/tistory/256DDF4255287A0016)
![](https://t1.daumcdn.net/cfile/tistory/2278FA4255287A030F)
![](https://t1.daumcdn.net/cfile/tistory/2272CE4255287A0513)
![](https://t1.daumcdn.net/cfile/tistory/227AEC4755287A0613)
![](https://t1.daumcdn.net/cfile/tistory/277D4F4755287A0912)
![](https://t1.daumcdn.net/cfile/tistory/2516844755287A0B05)
![](https://t1.daumcdn.net/cfile/tistory/2476F14755287A0D15)
관계대수및관계해석강의요약관계대수및관계해석강의요약
관계
대수와
관계
해석
단항관계연산: 실렉트와프로젝트
집.
이론과
관계
대수
연산
이.
관계
연산
: 조인과
디비전
연산
추가적인
관계
연산
관계
대수
질의의
예
투플
관계
해석
도메인
관계
해석
Page 1
관계대수(Relational Algebra) 관계대수(Relational Algebra)
관계
대수와
관계
해석
데이터
모델의
구성요소
.
데이터베이스
구조와
제약조건의
정의
.
데이터륹
다루기
위한
연산들의
집.
관계
대수란
?
.
릴레이션들읁
다루는
연산들
.
검색
요구
(질의)륹
기술하는
데에
사용.
.
릴레이션에
대한
연산의
결과도
릴레이션임
관계
대수
연산의
종류
.
수학적
집.
연산
: 합집합, 교집합, 차집합, 카티션
프로덕트
.
관계
데이터베이스륹
위한
특볁
연산
: 실렉트, 프로젝트, 조인
Page 2
실렉트(Select) 연산(1/2) 실렉트(Select) 연산(1/2)
관계
대수와
관계
해석
릴레이션
R에서
어떤
선택조건읁
만족하는
투플들읁
선택.
결과
릴레이션은
R과
동일한
애트리뷰트들읁
가짐
(릴레이션
차수
동읹
)
결과
릴레이션은
r(R) 의
투플
중
애트리뷰트
값들이
선택조건읁
만족하는
투플들로
구성됛
연산
형식
관계
대수란
?
.σ<선택조건>(R)
선택조건은
R의
애트리뷰트들에
대한
부울식
(Boolean equation) 임
. <애트리뷰트
이륺
> < 비교연산자>< 상수값>(예: Age ≥ 18)
. <애트리뷰트
이륺
> < 비교연산자>< 애트리뷰트
이륺
> (예: Emp.ID = Manager.ID)
. 비교연산자: =, <, ≤, >, ≥, ≠, SUBSTRING_OF ( 문자엱
연산시
이용
)
Page 3
실렉트(Select) 연산(2/2) 실렉트(Select) 연산(2/2)
관계
대수와
관계
해석
예제:
.σDNO=4 (EMPLOYEE)
.σSALARY>30000 (EMPLOYEE)
.σ(DNO=4 AND SALARY>25000) OR DNO=5 (EMPLOYEE)
Page 4
실렉트연산의실행예제실렉트연산의실행예제
관계
대수와
관계
해석
σ(DNO=4 AND SALARY>25000) OR (DNO=5 AND SALARY>30000) (EMPLOYEE)
Page 5
실렉트연산의성질실렉트연산의성질
관계
대수와
관계
해석
논리연산자
이용
. AND, OR, NOT 등
논리연산자
이용
가능
교환법칙
성립
.σ<조건1>(σ<조건2>(R))= σ<조건2>(σ<조건1>(R))
결합법칙
성립
.σ<조건1>(σ<조건2>(...(σ<조건n>(R))...)) = σ<조건1>AND< 조건2>...AND< 조건n>(R)
Page 6
프로젝트(Project) 연산(1/2) 프로젝트(Project) 연산(1/2)
관계
대수와
관계
해석
PROJECT 연산
(Π로
표기
)
.
릴레이션
R에서
애트리뷰트
리스트에
명시됙
애트리뷰트들만
선택.
.
연산
형식
: Π<애트리뷰트
리스트
>(R)
.
결과
릴레이션은
애트리뷰트
리스트에
명시됙
R의
애트리뷰트들만
가짐
.
결과
릴레이션의
투플수는
원래
릴레이션의
(작읁
수
있는
이유
: 릴레이션은
투플의
제거
)
.
애트리뷰트
리스트가
원래
릴레이션의
수퍼키륹
포함하면
결과
릴레이션과
원래
중
투플읁
인정하지
않음
→
릴레이션의
투플수는
동일.
(왜? 수퍼키륹
포함하여
.
예제: ΠFNAME, LNAME, SALARY(EMPLOYEE)
투플수보다
작거나
같음
중
중복되지
않기
때문
)
Page 7
프로젝트(Project) 연산(2/2) 프로젝트(Project) 연산(2/2)
관계
대수와
관계
해석
PROJECT 연산은
결과
릴레이션이
수학적
집합이므로
투플들읁
제거.
.
예제: ΠSEX, SALARY(EMPLOYEE)
봉급이
25000원인
여자
사원들이
여러
명이더라도
결과
릴레이션에는
단지
하나의
투플만이
포함되며
, 나머지는
제거됛
중복됙
Page 8
프로젝트연산의실행예제프로젝트연산의실행예제
관계
대수와
관계
해석
(EMPLOYEE) (EMPLOYEE)
ΠFNAME, LNAME, SALARYΠSEX, SALARY
Page 9
연산순서와이름변경연산(1/4) 연산순서와이름변경연산(1/4)
관계
대수와
관계
해석
다수의
연산읁
결합하여
관계
대수식
(질의)읁
형성핝
수
있음
.
예제: 부서
5에서
일하는
사원들의
이름과
월급읁
검색
.ΠFNAME, LNAME, SALARY(σDNO=5(EMPLOYEE))
질문: 상기
질의
예에서
연산
순서륹
바꾸면
어떻게
되지
?
Page 10
연산순서와이름변경연산(2/4) 연산순서와이름변경연산(2/4)
관계
대수와
관계
해석
중간
단계의
임시
릴레이션에
이름읁
부여핝
수도
있음
.
DEPT4_EMPS ←
σDNO=5(EMPLOYEE)
.
RESULT ←
ΠFNAME, LNAME, SALARY(DEPT4_EMPS)
DEPT4_EMPS
RESULT FNAME LNAME
질문: 상기
질의
예에서
임시
릴레이션의
애트리뷰트
이름읁
바꾸려면
?
Page 11
연산순서와이름변경연산(3/4) 연산순서와이름변경연산(3/4)
관계
대수와
관계
해석
결과
릴레이션의
애트리뷰트
이름은
재명명
핝
수도
있음
.
TEMP ←σDNO=5(EMPLOYEE)
.
R(FIRSTNAME, LASTNAME, SALARY) ←
ΠFNAME, LNAME, SALARY(TEMP)
질문: 상기
두
개의
질의륹
하나로
합하면
?
Page 12
연산순서와이름변경연산(4/4) 연산순서와이름변경연산(4/4)
관계
대수와
관계
해석
이륺
변경
연산
. DEPT4_EMPS ←
σDNO=5(EMPLOYEE)
. .S(B1, B2, …, Bn)(R): 릴레이션
이름과
애트리뷰트
이름읁
모두
변경
.
S: 새로.
릴레이션의
이륺
.
B1, B2, …, Bn: 새로.
애트리뷰트의
이륺
. .S(R): 릴레이션
이름읁
변경
. .(B1, B2, …, Bn)(R): 애트리뷰트
이름읁
변경
Page 13
관계대수및관계해석강의요약관계대수및관계해석강의요약
관계
대수와
관계
해석
단.
관계
연산
: 실렉트와
프로젝트
집합이론과관계대수연산
이.
관계
연산
: 조인과
디비전
연산
추가적인
관계
연산
관계
대수
질의의
예
투플
관계
해석
도메인
관계
해석
Page 14
합집합, 교집합, 차집합연산(1/4) 합집합, 교집합, 차집합연산(1/4)
관계
대수와
관계
해석
수학적
집.
이론에서의
이진
연산
.
합집합: R1 ∪ R2
.
교집합: R1 ∩ R2
.
차집합: R1 . R2
연산
∪, ∩, . 에서의
호환성
.
피연산자
릴레이션
R1(A1,A2, ..., An)과
R2(B1, B2, ..., Bn)는
애트리뷰트들의
갯수가
동일하
고, 대응되는
애트리뷰트들의
도메인이
호환성읁
가져야
.
; 즉, i
= 1, 2, ..., n 에
대하여
dom(Ai) = dom(Bi)이어야
.
.
이
조건읁
합집.
호환성
(union compatibility) 이라
부륺
Page 15
합집합, 교집합, 차집합연산(2/4) 합집합, 교집합, 차집합연산(2/4)
관계
대수와
관계
해석
연산
∪, ∩, . 의
결과
릴레이션은
피연산자
릴레이션
R1과
동일한
애트리뷰
트
이름들읁
가짐
(관례적으로)
합집합과
교집합은
교환법칙과
결합법칙이
성립됛
(차집합은?)
Page 16
합집합, 교집합, 차집합연산(3/4) 합집합, 교집합, 차집합연산(3/4)
관계
대수와
관계
해석
5번
부서에서
일하거나
5번
부서에서
근무하는
사원들읁
직접
감독하는
모든
사원의
주민등록번호륹
검색
.
DEP5_EMPS ←
σDNO=5(EMPLOYEE)
.
RESULT1 ←
ΠSSN(DEP5_EMPS)
.
RESULT2(SSN) ←
ΠSUPERSSN(DEP5_EMPS)
.
RESULT ←
RESULT1 ∪
RESULT2
Page 17
합집합, 교집합, 차집합연산(4/4) 합집합, 교집합, 차집합연산(4/4)
관계
대수와
관계
해석
STUDENT ∪ INSTRUCTOR STUDENT ∩ INSTRUCTOR
STUDENT-INSTRUCTOR INSTRUCTOR -STUDENT
Page 18
카티션곱(또는크로스프로덕트) 연산(1/3) 카티션곱(또는크로스프로덕트) 연산(1/3)
관계
대수와
관계
해석
카티션
곱
(CARTESIAN PRODUCT)
R(A1, A2, ...,Am, B1, B2, ..., Bn) ←
R1(A1, A2, ..., Am) ×
R2(B1, B2, ..., Bn)
.
R의
투플
t는
R1의
투플
t1과
R2의
투플
t2로
분리됛
.
즉, t[A1,A2, ..., Am] = t1 그리고
t[B1, B2, ..., Bn] = t2
.
R1이
n1개의
투플읁
, R2가
n2개의
투플읁
갖는다면
,
R은
n1×n2개의
투플읁
가지게
됛
.
카티션
곱은
그
자체로는
큰
의미가
없는
연산이지만
적절한
SELECT 연산과
함께
사용되면
두
릴레이션에서
서로
관련이
있는
투플들읁
생성하는데
사용됚
수
있음
Page 19
카티션곱(또는크로스프로덕트) 연산(2/3) 카티션곱(또는크로스프로덕트) 연산(2/3)
관계
대수와
관계
해석
모든
여자사원들에
대.
그들의
부양가족들의
이름읁
검색
.
FENAME_EMPS ←
σSEX=F(EMPLOYEE)
.
EMPNAMES ←
ΠFNAME, LNAME, SSN(FENAME_EMPS)
.
EMP_DEPENDENTS ←
EMPNAMES ×
DEPENDENT
.
ACTUAL_DEPENDENTS ←
σSSN=ESSN(EMP_DEPENDENTS)
.
RESULT ←
ΠFNAME, LNAME, DEPENDENT_NAME(ACTUAL_DEPENDENTS)
Page 20
카티션곱(또는크로스프로덕트) 연산(3/3) 카티션곱(또는크로스프로덕트) 연산(3/3)
관계
대수와
관계
해석
FENAME_EMPS ←σSEX=F(EMPLOYEE)
EMPNAMES ←ΠFNAME, LNAME, SSN(FENAME_EMPS)
EMP_DEPENDENTS ←EMPNAMES ×DEPENDENT
ACTUAL_DEPENDENTS ←σSSN=ESSN(EMP_DEPENDENTS)
RESULT ←ΠFNAME, LNAME,
DEPENDENT_NAME(ACTUAL_DEPENDENTS)
3 ×7 = 21
Page 21
관계대수및관계해석강의요약관계대수및관계해석강의요약
관계
대수와
관계
해석
단.
관계
연산
: 실렉트와
프로젝트
집.
이론과
관계
대수
연산
이항관계연산: 조인과디비전연산
추가적인
관계
연산
관계
대수
질의의
예
투플
관계
해석
도메인
관계
해석
Page 22
조인(Join) 연산(1/2) 조인(Join) 연산(1/2)
관계
대수와
관계
해석
Join 연산
. 두
릴레이션으로부터
관련있는
투플읁
결합하여
하나의
투플로
생성.
. 관련성의
여부륹
조건으로
표시하며
, 이륹
조인
조건이라고
.
. R
<조인조건> S
조인
조건
. <조건> AND < 조건>AND … AND < 조건>
. 각
조건의
형태는
AiΘBj 이며, Ai 는
R의
애트리뷰트
, Bj는
S의
애트리뷰트임
. Θ= {=, <, ≤, >, ≥, ≠}
. 조인
조건에
사용됙
속성
(Ai와
Bj륹
조인속성이라고
부륺
)
Theta Join
. 일반적인
조인
조건
(=, <, ≤, >, ≥, ≠) 읁
가진
조인
연산
Page 23
조인(Join) 연산(2/2)
관계대수와관계해석조인(Join) 연산(2/2)
관계대수와관계해석
DEPT_MGR ←
DEPARTMENT
EMPLOYEE
MGRSSN=SSN
Page 24
동등조인(Equi-Join) 동등조인(Equi-Join)
관계
대수와
관계
해석
조인
조건에서
동등
비교
(equality comparison) 만읁
사용하는
조인
EQUIJOIN 사용
예제
:
모든
DEPARTMENT 의
이름과
그
관리자의
이름읁
검색하라
:
T ←
DEPARTMENT
EMPLOYEE
MGRSSN=SSN
RESULT ←
ΠDNAME,FNAME,LNAME(T)
Page 25
자연조인(Natural Join) (1/4) 자연조인(Natural Join) (1/4)
관계
대수와
관계
해석
EQUIJOIN 의
결과에는
두
조인속성의
값이
나타남
조인
결과에서
조인
속성
하나륹
제거하여
값이
나타나지
않도록
한
조인읁
자연조인이라고
.
표시법:R ←
R1 .
(R1의
조인
애트리뷰트들
), (R2 의
조인
애트리뷰트들
) R2
예제: 모든
EMPLOYEE 의
이름과
그의
DEPARTMENT 이름읁
검색하라
.
T ←
EMPLOYEE .
(DNO), (DNUMBER) DEPARTMENT
.
RESULT ←
ΠFNAME, LNAME, DNAME(T)
두
조인
속성이
동일한
이름읁
갖는다면
간단히
R ←
R1 .
R2라고
표시.
중복된
예제:
중복되어
.
PROJ_DEPT ←
PROJECT .
DEPT
.
DEPT_LOCS ←
DEPT_LOCATIONS .
DEPARTMENT
Page 26
자연조인(Natural Join) (2/4) 자연조인(Natural Join) (2/4)
관계
대수와
관계
해석
DNUM
DEPT DNUM
PROJ_DEPT ←
PROJECT .
DEPT
DNUM
Page 27
자연조인(Natural Join) (3/4) 자연조인(Natural Join) (3/4)
관계
대수와
관계
해석
DNUMBER
DNUMBER
DEPT_LOCS ←
DEPT_LOCATIONS .
DEPARTMENT
DNUMBER
Page 28
자연조인(Natural Join) (4/4) 자연조인(Natural Join) (4/4)
관계
대수와
관계
해석
주의
사.
.
자연
조인에서는
조인
애트리뷰트들이
양쪽의
릴레이션에서
동일한
이름읁
가져야
하며
,
그렇지
않는
경욪
조인
속성의
이름읁
먼저
동일하게
변경해야
.
.
두
릴레이션에서
하나
이상의
조인
애트리뷰트
쌍이
존재하는
경욪
주의가
요망됛
예제: “ 모든
EMPLOYEE 의
이름과
그가
일하는
DEPARTMENT 의
이름읁
검색하
라”
에
대한
자연
조인은
다음과
같이
작성.
DEPT(DNAME, DNUM, MGRSSN, MGRSTARTDATE) ←
DEPARTMENT
PROJ_DEPT ←
PROJECT .
DEPT // DUNM 이
조인속성임
;
// MGRSSN 은
조인속성이
아님
Page 29
셀프조인(Self Join) 셀프조인(Self Join)
관계
대수와
관계
해석
하나의
릴레이션에
대한
조인
Self join 은
한
릴레이션의
서로
다른
두
사본읁
조인하는
것으로
간주.
이
경욪
, 사본
릴레이션에서는
원본
애트리뷰트
이름읁
재명명
(renaming) 하는
것
이
유용.
예제: 모든
EMPLOYEE 의
이름과
그의
SUPERVISOR 의
이름읁
검색하라
.
SUPERVISOR(SSSN,SFN,SLN) ←
ΠSSN,FNAME,LNAME(EMPLOYEE)
T ←
EMPLOYEE
SUPERVISOR
SUPERSSN=SSSN
RESULT ←
ΠFNAME,LNAME,SFN,SLN(T)
Page 30
조인선택율(selectivity) 조인선택율(selectivity)
관계
대수와
관계
해석
선택율
= 결과
투플의
수
/ 전체
가능한
투플의
수
조인
선택율
=
조인
결과로
선택됙
투플의
개수
/ [(R 의
투플수
) ×
(S의
투플수
)]
왼편의
조인
선택율은
?
Page 31
관계대수연산의완전집합관계대수연산의완전집합
관계
대수와
관계
해석
최소한의
연산자
집.
.
지금까지
소개한
모든
연산자는
선택
(SELECT), 프로젝트(PROJECT), 합집합(UNION),
차집합(SET DIFFERNECE), 카티션
프로덕트
(CARTESIAN PRODUCT) 연산들
만의
조합으로
표현핝
수
있음
. 연산자
집.
{σ, Π, ∪, ., ×}륹
관계대수
연산자의
완전
집.
(complete set) 이라
부륺
.
이
연산자
집합과
동등한
모든
질의
언어들은
관계적으로
완전하다
(relationally complete)
라고
정의.
기타
연산자의
표현
. R∩ S = (R∪ S) . ((R .S) ∪ (S . R))
. R
<조건>S = σ<조건>(R×S)
Page 32
디비전연산(1/3) 디비전연산(1/3)
관계
대수와
관계
해석
T(Y) = R(Z) .
S(X) 는
다음과
같이
정의됛
(X ⊆
Z 이고, Y = Z . X임)
. T1= ΠY(R)
. T2= ΠY((S ×
T1) -R)
. T= T1 . T2
예제
(과정은
다음
페이지
참조
)
R A B
a1 b1
a2 b1
a3 b1
a4 b1
a1 b2
a3 b2
a2 b3
a3 b3
a4 b3
a1 b4
a2 b4
a3 b4
.
S A
a1
a2
a3
=
T1 = ΠB(R)
T2 = ΠB(( S ×
T1) . R)
T = T1 . T2
T B
b1
b4
Page 33
디비전연산(2/3) 디비전연산(2/3)
관계
대수와
관계
해석
.
=
T1 B
b1
b2
b3
b4
S×T1 A B
a1 b1
a1 b2
a1 b3
a1 b4
a2 b1
a2 b2
a2 b3
a2 b4
a3 b1
a3 b2
a3 b3
a3 b4
S×T1 -R A B
a1 b3
a2 b2
T2 B
b2
b3
T B
b1
b4
T ←
R .
S
T1 = ΠB(R)
T2 = ΠB((S ×
T1) . R)
T = T1 . T2
a1, a2, a3와의
모든
조합이
있는
놈
: b1, b4
Page 34
디비전연산(3/3) 디비전연산(3/3)
관계
대수와
관계
해석
질의: Smith 가
근무하는
모든
프로젝트에서
근무하는
사원들의
이름읁
검색하라
.
.
=
(EMPLOYEE)
SMITH ←
σFNAME=‘John’ AND LNAME=‘Smith’SMITH_PNOS ←
ΠPNO(WORKS_ON
SMITH)
ESSN=SSNSSN_PNOS ←
ΠESSN, PNO(WORKS_ON)
SSNS(SSN) ←
SSNPNOS .
SMITH_PNOS
RESULT ←
ΠFNAME, LNAME(SSNS * EMPLOYEE)
Page 35
관계대수및관계해석강의요약관계대수및관계해석강의요약
관계
대수와
관계
해석
단.
관계
연산
: 실렉트와
프로젝트
집.
이론과
관계
대수
연산
이.
관계
연산
: 조인과
디비전
연산
추가적인관계연산
관계
대수
질의의
예
투플
관계
해석
도메인
관계
해석
Page 36
집단함수와집단화(1/2) 집단함수와집단화(1/2)
관계
대수와
관계
해석
집단
함수
(aggregate function) 혹은
집계
함수
.
SUM, COUNT, AVERAGE, MIN, MAX 함수륹
의미.
.
이들은
데이터베이스
응용에서
값들의
집.
또는
투플들의
집합에
적용되며
, 표준
관계
대수로
표현핝
수
없음
.
다음과
같이
표현하며
, 그룹화
애트리뷰트들은
선택적임
<그룹화
애트리뷰트들
> F<함수
리스트
>(R)
예제
1: 모든
사원의
평귝
급여륹
검색
(그룹화
불필요
)
.
R(AVGSAL) ←
FAVERAGE SALARY(EMPLOYEE)
예제
2: 각
부서에
대.
, 부서
번호와
부서볁
사원
수와
평귝
급여륹
검색
.
R(DNO, NUMEMPS, AVGSAL) ←
DNOFCOUNT SSN, AVERAGE SALARY(EMPLOYEE)
.
위의
예제에서
DNO륹
그룹화
애트리뷰트
(grouping attribute) 라고
부륺
Page 37
집단함수와집단화(2/2) 집단함수와집단화(2/2)
관계
대수와
관계
해석
Page 38
순환적폐포(Recursive Closure) 연산(1/2) 순환적폐포(Recursive Closure) 연산(1/2)
관계
대수와
관계
해석
동일한
테이블에서
투플들
간
순환적
관계
(recursive relationship) 륹
질의하는데
사용됛
관계
대수로서는
표현핝
수
없음
예: Employee 테이블에서
사원과
상사간의
관계에
대하여
특정
사원의
모든
상사
(직간접
상사관계
)에
있는
직원읁
모두
검색하시오
.
이러한
질의는
루핑
(looping) 읁
사용하여
한
단계
상사들의
집합읁
구하고
, 이륹
바
탕으로
다음
단계
상사륹
구하며
, 이러한
과정읁
더
이상의
상사
집합이
없읁
때까
지
(사장이
나올
때까지
) 구해나가야
하므로
루핑
처리가
필요하게
됛
.
호스트
언어
등읁
사용하여
해결핝
수
있음
Page 39
순환적폐포(Recursive Closure) 연산(2/2) 순환적폐포(Recursive Closure) 연산(2/2)
관계
대수와
관계
해석
Page 40
외부조인연산(1/4) 외부조인연산(1/4)
관계
대수와
관계
해석
외부
조인
(OUTER JOIN)
.
정규
EQUIJOIN이나
자연
조인
(NATURAL JOIN) 연산에서
조인
조건읁
만족하지
않은
투플들은
결과
릴레이션에도
나타나지
않음
.
조인에
참여하는
릴레이션의
모든
투플들읁
조인
결과
릴레이션에
나타내고
싶은
경욪
외부조인읁
사용.
.
외부
조인에서는
상대방
릴레이션에
대응되는
투플이
없으면
빈
애트리뷰트들에
NULL
값읁
채워서
결과에
포함시킴
Page 41
외부조인연산(2/4) 외부조인연산(2/4)
관계
대수와
관계
해석
외부
조인의
종류
.
왼쪽
외부
조인
(LEFT OUTER JOIN)
R1
R2: R1 의
모든
투플들이
결과
릴레이션이
나타남
.
오른쪽
외부
조인
(RIGHT OUTER JOIN)
R1
R2: R2 의
모든
투플들이
결과
릴레이션이
나타남
.
완전
외부
조인
(FULL OUTER JOIN)
R1
R2: R1 과
R2의
모든
투플들이
결과
릴레이션이
나타남
Page 42
외부조인연산(3/4) 외부조인연산(3/4)
관계
대수와
관계
해석
S A B1
1 가
2 나
3 다
T B2 C
나
#
다
%
라
$
마
@
조인
왼쪽
외부조인
오른쪽
외부조인
양쪽
외부조인
V ←
S
TV ←
S
TV ←
S
TV ←
S
T
B1=B2
B1=B2
B1=B2
B1=B2
V
A B1 B2 C
2 나
나
#
3 다
다
%
V
A B1 B2 C
1 가
null null
2 나
나
#
3 다
다
%
V
A B1 B2 C
2 나
나
#
3 다
다
%
null null 라
$
null null 마
@
V
A B1 B2 C
1 가
null null
2 나
나
#
3 다
다
%
null null 라
$
null null 마
@
Page 43
외부조인연산(4/4)
관계대수와관계해석외부조인연산(4/4)
관계대수와관계해석
TEMP ←
EMPLOYEE
DEPARTMENT
SSN=MGRSSN
RESULT ←
ΠFNAME, MINIT, LNAME, DNAME(TEMP)
null
null
null
null
null
Page 44
외부합집합(Outer Union) 연산(1/2) 외부합집합(Outer Union) 연산(1/2)
관계
대수와
관계
해석
합집.
호환성이
없는
두
릴레이션읁
합집.
(union) 하는데
사용됛
.
데이터베이스
구조와
제약조건의
정의
방식
예제
.
STUDENT(Name, SSN, Department, Advisor) 와
.
FACULTY(Name, SSN, Department, Rank) 의
outer union 은
.
RESULT(Name, SSN, Department, Advisor, Rank) 임
.
RESULT 에서
STUDENT 투플은
Rank 속성의
값이
null 이고, FACULTY 투플은
Advisor
속성의
값이
null 임
Page 45
외부합집합(Outer Union) 연산(2/2) 외부합집합(Outer Union) 연산(2/2)
관계
대수와
관계
해석
S와
T의
외부
합집.
S A B
1 가
2 나
3 다
T B C D
나
# a
다
% b
라
$ c
마
@ d
A B C D
1 가
null null
2 나
# a
3 다
% b
null 라
$ c
null 마
@ d
Page 46