47
데데데데데데 (Database) 데데 데데데 데데 데데 (Part 1) 데데데 데데데데데 IT 데데 데데데데데데데

06. 관계 대수와 관계 해석 - Part 1

  • Upload
    vantu

  • View
    243

  • Download
    2

Embed Size (px)

Citation preview

Page 1: 06. 관계 대수와 관계 해석 - Part 1

데이터베이스 (Database)

관계 대수와 관계 해석(Part 1)

문양세강원대학교 IT 대학 컴퓨터과학전공

Page 2: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 2

관계 대수 및 관계 해석 강의 요약

단항 관계 연산 : 실렉트와 프로젝트

집합 이론과 관계 대수 연산

이항 관계 연산 : 조인과 디비전 연산

추가적인 관계 연산

관계 대수 질의의 예

투플 관계 해석

도메인 관계 해석

관계 대수와 관계 해석

Page 3: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 3

관계 대수 (Relational Alge-bra)

데이터 모델의 구성요소• 데이터베이스 구조와 제약조건의 정의

• 데이터를 다루기 위한 연산들의 집합

관계 대수란 ?• 릴레이션들을 다루는 연산들

• 검색 요구 ( 질의 ) 를 기술하는 데에 사용함

• 릴레이션에 대한 연산의 결과도 릴레이션임

관계 대수 연산의 종류• 수학적 집합 연산 : 합집합 , 교집합 , 차집합 , 카티션 프로덕트

• 관계 데이터베이스를 위한 특별 연산 : 실렉트 , 프로젝트 , 조인

관계 대수와 관계 해석

Page 4: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 4

실렉트 (Select) 연산 (1/2)

릴레이션 R 에서 어떤 선택조건을 만족하는 투플들을 선택함

결과 릴레이션은 R 과 동일한 애트리뷰트들을 가짐 ( 릴레이션 차수

동일 )

결과 릴레이션은 r(R) 의 투플 중 애트리뷰트 값들이 선택조건을

만족하는 투플들로 구성됨

연산 형식 관계 대수란 ?

• σ< 선택조건 >(R)

선택조건은 R 의 애트리뷰트들에 대한 부울식 (Boolean equation) 임• < 애트리뷰트 이름 > < 비교연산자 > < 상수값 > ( 예 : Age ≥ 18)

• < 애트리뷰트 이름 > < 비교연산자 > < 애트리뷰트 이름 > ( 예 : Emp.ID = Manag-er.ID)

• 비교연산자 : =, <, ≤, >, ≥, ≠, SUBSTRING_OF ( 문자열 연산시 이용 )

관계 대수와 관계 해석

Page 5: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 5

실렉트 (Select) 연산 (2/2)

예제 :• σDNO=4 (EMPLOYEE)

• σSALARY>30000 (EMPLOYEE)

• σ(DNO=4 AND SALARY>25000) OR DNO=5 (EMPLOYEE)

관계 대수와 관계 해석

Page 6: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 6

실렉트 연산의 실행 예제관계 대수와 관계 해석

σ(DNO=4 AND SALARY>25000) OR (DNO=5 AND SALARY>30000) (EMPLOYEE)

Page 7: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 7

실렉트 연산의 성질

논리연산자 이용• AND, OR, NOT 등 논리연산자 이용 가능

교환법칙 성립

• σ< 조건 1>(σ< 조건 2>(R)) = σ< 조건 2>(σ< 조건 1>(R))

결합법칙 성립

• σ< 조건 1>(σ< 조건 2>(...(σ< 조건 n>(R))...)) = σ< 조건 1>AND< 조건 2>...AND< 조건

n>(R)

관계 대수와 관계 해석

Page 8: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 8

프로젝트 (Project) 연산 (1/2)

PROJECT 연산 (Π 로 표기 )• 릴레이션 R 에서 애트리뷰트 리스트에 명시된 애트리뷰트들만 선택함

• 연산 형식 : Π< 애트리뷰트 리스트 >(R)• 결과 릴레이션은 애트리뷰트 리스트에 명시된 R 의 애트리뷰트들만 가짐

• 결과 릴레이션의 투플수는 원래 릴레이션의 투플수보다 작거나 같음

( 작을 수 있는 이유 : 릴레이션은 중복 투플을 인정하지 않음 → 중복 투플의 제거 )

• 애트리뷰트 리스트가 원래 릴레이션의 수퍼키를 포함하면 결과 릴레이션과 원래

릴레이션의 투플수는 동일함 ( 왜 ? 수퍼키를 포함하여 중복되지 않기 때문 )

• 예제 : ΠFNAME, LNAME, SALARY(EMPLOYEE)

관계 대수와 관계 해석

Page 9: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 9

프로젝트 (Project) 연산 (2/2)

PROJECT 연산은 결과 릴레이션이 수학적 집합이므로 중복된 투플들을

제거함

• 예제 : ΠSEX, SALARY(EMPLOYEE) 봉급이 25000 원인 여자 사원들이 여러 명이더라도 결과 릴레이션에는 단지 하나의

<F, 25000> 투플만이 포함되며 , 나머지는 제거됨

관계 대수와 관계 해석

Page 10: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 10

프로젝트 연산의 실행 예제관계 대수와 관계 해석

ΠFNAME, LNAME,

SALARY(EMPLOYEE)ΠSEX, SALARY (EMPLOYEE)

Page 11: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 11

연산 순서와 이름 변경 연산 (1/4)

다수의 연산을 결합하여 관계 대수식 ( 질의 ) 을 형성할 수 있음• 예제 : 부서 5 에서 일하는 사원들의 이름과 월급을 검색

• ΠFNAME, LNAME, SALARY(σDNO=5(EMPLOYEE))

관계 대수와 관계 해석

질문 : 상기 질의 예에서 연산 순서를 바꾸면 어떻게 되지 ?

Page 12: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 12

연산 순서와 이름 변경 연산 (2/4)

중간 단계의 임시 릴레이션에 이름을 부여할 수도 있음

• DEPT4_EMPS ← σDNO=5(EMPLOYEE)

• RESULT ← ΠFNAME, LNAME, SALARY(DEPT4_EMPS)

관계 대수와 관계 해석

DEPT4_EMPS

RESULT FNAME

LNAME

질문 : 상기 질의 예에서 임시 릴레이션의 애트리뷰트 이름을 바꾸려면 ?

Page 13: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 13

연산 순서와 이름 변경 연산 (3/4)

결과 릴레이션의 애트리뷰트 이름은 재명명 할 수도 있음

• TEMP ←σDNO=5(EMPLOYEE)

• R(FIRSTNAME, LASTNAME, SALARY) ← ΠFNAME, LNAME, SALARY(TEMP)

관계 대수와 관계 해석

질문 : 상기 두 개의 질의를 하나로 합하면 ?

Page 14: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 14

연산 순서와 이름 변경 연산 (4/4)

이름 변경 연산

• DEPT4_EMPS ← σDNO=5(EMPLOYEE)

• S(B1, B2, …, Bn)(R): 릴레이션 이름과 애트리뷰트 이름을 모두 변경

S: 새로운 릴레이션의 이름

B1, B2, …, Bn: 새로운 애트리뷰트의 이름

• S(R): 릴레이션 이름을 변경

• (B1, B2, …, Bn)(R): 애트리뷰트 이름을 변경

관계 대수와 관계 해석

Page 15: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 15

관계 대수 및 관계 해석 강의 요약

단항 관계 연산 : 실렉트와 프로젝트

집합 이론과 관계 대수 연산

이항 관계 연산 : 조인과 디비전 연산

추가적인 관계 연산

관계 대수 질의의 예

투플 관계 해석

도메인 관계 해석

관계 대수와 관계 해석

Page 16: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 16

합집합 , 교집합 , 차집합 연산 (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 17: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 17

합집합 , 교집합 , 차집합 연산 (2/4)

연산 ∪ , ∩, – 의 결과 릴레이션은 피연산자 릴레이션 R1 과 동일한

애트리뷰트 이름들을 가짐 ( 관례적으로 )

합집합과 교집합은 교환법칙과 결합법칙이 성립됨

( 차집합은 ?)

관계 대수와 관계 해석

Page 18: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 18

합집합 , 교집합 , 차집합 연산 (3/4)

5 번 부서에서 일하거나 5 번 부서에서 근무하는 사원들을 직접

감독하는

모든 사원의 주민등록번호를 검색

• DEP5_EMPS ← σDNO=5(EMPLOYEE)

• RESULT1 ← ΠSSN(DEP5_EMPS)

• RESULT2(SSN) ← ΠSUPERSSN(DEP5_EMPS)

• RESULT ← RESULT1 ∪ RESULT2

관계 대수와 관계 해석

Page 19: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 19

합집합 , 교집합 , 차집합 연산 (4/4)관계 대수와 관계 해석

STUDENT ∪ INSTRUCTOR STUDENT ∩ INSTRUCTOR

STUDENT - INSTRUCTOR INSTRUCTOR - STUDENT

Page 20: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 20

카티션 곱 ( 또는 크로스 프로덕트 ) 연산 (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 21: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 21

카티션 곱 ( 또는 크로스 프로덕트 ) 연산 (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 22: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 22

카티션 곱 ( 또는 크로스 프로덕트 ) 연산 (3/3) 관계 대수와 관계 해석

FENAME_EMPS ← σSEX=F(EMPLOYEE)EMPNAMES ← ΠFNAME, LNAME, SSN(FENAME_EMPS)EMP_DEPENDENTS ← EMPNAMES × DEPENDENTACTUAL_DEPENDENTS ← σSSN=ESSN(EMP_DEPENDENTS)RESULT ← ΠFNAME, LNAME,

DEPENDENT_NAME(ACTUAL_DEPENDENTS)3 ×7 = 21

Page 23: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 23

관계 대수 및 관계 해석 강의 요약

단항 관계 연산 : 실렉트와 프로젝트

집합 이론과 관계 대수 연산

이항 관계 연산 : 조인과 디비전 연산

추가적인 관계 연산

관계 대수 질의의 예

투플 관계 해석

도메인 관계 해석

관계 대수와 관계 해석

Page 24: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 24

조인 (Join) 연산 (1/2)

Join 연산• 두 릴레이션으로부터 관련있는 투플을 결합하여 하나의 투플로 생성함

• 관련성의 여부를 조건으로 표시하며 , 이를 조인 조건이라고 함

• R < 조인조건 > S

조인 조건• < 조건 > AND < 조건 > AND … AND < 조건 >

• 각 조건의 형태는 AiΘBj 이며 , Ai 는 R 의 애트리뷰트 , Bj 는 S 의 애트리뷰트임

• Θ = {=, <, ≤, >, ≥, ≠}

• 조인 조건에 사용된 속성 (Ai 와 Bj 를 조인속성이라고 부름 )

Theta Join• 일반적인 조인 조건 (=, <, ≤, >, ≥, ≠) 을 가진 조인 연산

관계 대수와 관계 해석

Page 25: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 25

조인 (Join) 연산 (2/2)관계 대수와 관계 해석

DEPT_MGR ← DEPARTMENT MGRSSN=SSNEMPLOYEE

Page 26: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 26

동등 조인 (Equi-Join)

조인 조건에서 동등 비교 (equality comparison) 만을 사용하는 조인

EQUIJOIN 사용 예제 :모든 DEPARTMENT 의 이름과 그 관리자의 이름을 검색하라 :

관계 대수와 관계 해석

T ← DEPARTMENT MGRSSN=SSN EMPLOYEERESULT ← ΠDNAME,FNAME,LNAME(T)

Page 27: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 27

자연 조인 (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 28: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 28

자연 조인 (Natural Join) (2/4)관계 대수와 관계 해석

PROJ_DEPT ← PROJECT DEPT

DEPT DNUM

DNUM

DNUM

Page 29: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 29

자연 조인 (Natural Join) (3/4)관계 대수와 관계 해석

DEPT_LOCS ← DEPT_LOCATIONS DEPARTMENT

DNUMBER

DNUMBER

DNUMBER

Page 30: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 30

자연 조인 (Natural Join) (4/4)

주의 사항

• 자연 조인에서는 조인 애트리뷰트들이 양쪽의 릴레이션에서 동일한 이름을 가져야 하며 , 그렇지 않는 경우 조인 속성의 이름을 먼저 동일하게 변경해야 함

• 두 릴레이션에서 하나 이상의 조인 애트리뷰트 쌍이 존재하는 경우 주의가 요망됨

예제 : “ 모든 EMPLOYEE 의 이름과 그가 일하는 DEPARTMENT 의 이름을

검색하라” 에 대한 자연 조인은 다음과 같이 작성함

DEPT(DNAME, DNUM, MGRSSN, MGRSTARTDATE) ← DEPARTMENTPROJ_DEPT ← PROJECT DEPT // DUNM 이 조인속성임 ;

// MGRSSN 은 조인속성이 아님

관계 대수와 관계 해석

Page 31: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 31

셀프 조인 (Self Join)

하나의 릴레이션에 대한 조인

Self join 은 한 릴레이션의 서로 다른 두 사본을 조인하는 것으로 간주함

이 경우 , 사본 릴레이션에서는 원본 애트리뷰트 이름을 재명명 (renaming)하는 것이 유용함

예제 : 모든 EMPLOYEE 의 이름과 그의 SUPERVISOR 의 이름을 검색하라 .

관계 대수와 관계 해석

SUPERVISOR(SSSN,SFN,SLN) ← ΠSSN,FNAME,LNAME(EMPLOYEE)

T ← EMPLOYEE SUPERSSN=SSSN SUPERVISOR

RESULT ← ΠFNAME,LNAME,SFN,SLN(T)

Page 32: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 32

조인 선택율 (selectivity)

선택율 = 결과 투플의 수 / 전체 가능한 투플의 수

조인 선택율 = 조인 결과로 선택된 투플의 개수 / [(R 의 투플수 ) × (S 의 투플수 )]

관계 대수와 관계 해석

왼편의 조인 선택율은 ?

Page 33: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 33

관계 대수 연산의 완전 집합

최소한의 연산자 집합• 지금까지 소개한 모든 연산자는 선택 (SELECT), 프로젝트 (PROJECT), 합집합

(UNION), 차집합 (SET DIFFERNECE), 카티션 프로덕트 (CARTESIAN PRODUCT) 연산들

만의

조합으로 표현할 수 있음

• 연산자 집합 {σ, Π, ∪, , ×} 를 관계대수 연산자의 완전 집합 (complete set) 이라

부름

• 이 연산자 집합과 동등한 모든 질의 언어들은 관계적으로 완전하다 (relationally com-plete) 라고 정의함

기타 연산자의 표현

• R ∩ S = (R ∪ S) – ((R – S) ∪ (S – R))

• R < 조건 >S = σ< 조건 >(R×S)

관계 대수와 관계 해석

Page 34: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 34

디비전 연산 (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 S A T Ba1 b1 a1 b1a2 b1 a2 b4a3 b1 a3a4 b1a1 b2a3 b2a2 b3a3 b3a4 b3a1 b4a2 b4a3 b4

=

T1 = ΠB(R)

T2 = ΠB(( S × T1) – R)

T = T1 – T2

Page 35: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 35

디비전 연산 (2/3)관계 대수와 관계 해석

T ← R S

T1 = ΠB(R)T2 = ΠB((S × T1) – R)T = T1 – T2

=T1

b1

b2

b3

b4

a1, a2, a3 와의 모든 조합이 있는 놈 : b1, b4

S×T1

a1

a1

a1

a1

b1

b2

b3

b4

a2

a2

a2

a2

b1

b2

b3

b4

a3

a3

a3

a3

b1

b2

b3

b4

S×T1- Ra1

a2

b3

b2

B BA BA

T2

b2

b3

B

Tb1

b4

B

Page 36: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 36

디비전 연산 (3/3)

질의 : Smith 가 근무하는 모든 프로젝트에서 근무하는 사원들의 이름을

검색하라 .

관계 대수와 관계 해석

=SMITH ← σFNAME=‘John’ AND

LNAME=‘Smith’(EMPLOYEE)

SMITH_PNOS ← ΠPNO(WORKS_ON

ESSN=SSNSMITH)

SSN_PNOS ← ΠESSN, PNO(WORKS_ON)

SSNS(SSN) ← SSNPNOS SMITH_PNOS

RESULT ← ΠFNAME, LNAME(SSNS * EMPLOYEE)

Page 37: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 37

관계 대수 및 관계 해석 강의 요약

단항 관계 연산 : 실렉트와 프로젝트

집합 이론과 관계 대수 연산

이항 관계 연산 : 조인과 디비전 연산

추가적인 관계 연산

관계 대수 질의의 예

투플 관계 해석

도메인 관계 해석

관계 대수와 관계 해석

Page 38: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 38

집단 함수와 집단화 (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 39: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 39

집단 함수와 집단화 (2/2)관계 대수와 관계 해석

Page 40: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 40

순환적 폐포 (Recursive Closure) 연산 (1/2)

동일한 테이블에서 투플들 간 순환적 관계 (recursive relationship) 를

질의하는데 사용됨

관계 대수로서는 표현할 수 없음

예 : Employee 테이블에서 사원과 상사간의 관계에 대하여 특정 사원의 모든

상사

( 직간접 상사관계 ) 에 있는 직원을 모두 검색하시오 .

이러한 질의는 루핑 (looping) 을 사용하여 한 단계 상사들의 집합을 구하고 , 이를 바탕으로 다음 단계 상사를 구하며 , 이러한 과정을 더 이상의 상사 집합이

없을 때까지 ( 사장이 나올 때까지 ) 구해나가야 하므로 루핑 처리가 필요하게 됨

호스트 언어 등을 사용하여 해결할 수 있음

관계 대수와 관계 해석

Page 41: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 41

순환적 폐포 (Recursive Closure) 연산 (2/2)관계 대수와 관계 해석

Page 42: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 42

외부 조인 연산 (1/4)

외부 조인 (OUTER JOIN)• 정규 EQUIJOIN 이나 자연 조인 (NATURAL JOIN) 연산에서 조인 조건을 만족하지

않은 투플들은 결과 릴레이션에도 나타나지 않음

• 조인에 참여하는 릴레이션의 모든 투플들을 조인 결과 릴레이션에 나타내고 싶은 경우

외부조인을 사용함

• 외부 조인에서는 상대방 릴레이션에 대응되는 투플이 없으면 빈 애트리뷰트들에 NULL 값을 채워서 결과에 포함시킴

관계 대수와 관계 해석

Page 43: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 43

외부 조인 연산 (2/4)

외부 조인의 종류• 왼쪽 외부 조인 (LEFT OUTER JOIN)

R1 R2: R1 의 모든 투플들이 결과 릴레이션이 나타남

• 오른쪽 외부 조인 (RIGHT OUTER JOIN)R1 R2: R2 의 모든 투플들이 결과 릴레이션이 나타남

• 완전 외부 조인 (FULL OUTER JOIN)R1 R2: R1 과 R2 의 모든 투플들이 결과 릴레이션이 나타남

관계 대수와 관계 해석

Page 44: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 44

외부 조인 연산 (3/4)관계 대수와 관계 해석

S123

A가나다

B1 T나다

B2#%

C

V ← S B1=B2T V ← S B1=B2T V ← S B1=B2T V ← S B1=B2T

V

23

A나다

B1

라 $마 @

나다

B2#%

C A B1 B2 CV

123

가나다

나다

#%

null nullA B1 B2 CV

나다

#%

라 $마 @

23

나다

null nullnull null

A B1 B2 CV

나다

#%

라 $마 @

23

나다

null nullnull null

1 가 null null

조인 왼쪽 외부조인 오른쪽 외부조인 양쪽 외부조인

Page 45: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 45

외부 조인 연산 (4/4)관계 대수와 관계 해석

TEMP ← EMPLOYEE SSN=MGRSSNDEPARTMENTRESULT ← ΠFNAME, MINIT, LNAME, DNAME(TEMP)

null

null

null

nullnull

Page 46: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 46

외부 합집합 (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 47: 06. 관계 대수와 관계 해석 - Part 1

Database by Yang-Sae MoonPage 47

외부 합집합 (Outer Union) 연산 (2/2)관계 대수와 관계 해석

S123

A가나다

B T나다

B#%

C

라 $마 @

A B C

#%$@

23

나다

nullnull

1 가 null

S 와 T 의 외부 합집합

라마

ab

D

cd

ab

D

cd

null