Transcript
Page 1: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

데이터베이스데이터베이스 (Database)(Database)

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

문양세문양세강원대학교강원대학교 ITIT특성화대학특성화대학 컴퓨터과학전공컴퓨터과학전공

Page 2: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

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

집합 이론과 관계 대수 연산

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

추가적인 관계 연산

관계 대수 질의의 예관계 대수 질의의 예

투플 관계 해석

도메인 관계 해석

Database by Yang-Sae MoonPage 2

Page 3: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

관계관계 대수대수 (Relational Algebra)(Relational Algebra)관계 대수와 관계 해석

데이터 모델의 구성요소

데이터베이스 구조와 제약조건의 정의• 데이터베이스 구조와 제약조건의 정의

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

관계 대수란?관계 대수란?

• 릴레이션들을 다루는 연산들

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

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

관계 대수 연산의 종류

• 수학적 집합 연산: 합집합, 교집합, 차집합, 카티션 프로덕트

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

Database by Yang-Sae MoonPage 3

Page 4: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

실렉트실렉트(Select)(Select) 연산연산 (1/2)(1/2)관계 대수와 관계 해석

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

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

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

투플들로 구성됨

연산 형식 관계 대수란?연산 형식 관계 대수란

• σ<선택조건>(R)

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

애트리뷰트 이름 비교연산자 애트리뷰트 이름 (예 E ID M ID)• <애트리뷰트 이름> <비교연산자> <애트리뷰트 이름> (예: Emp.ID = Manager.ID)

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

Database by Yang-Sae MoonPage 4

Page 5: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

실렉트실렉트(Select)(Select) 연산연산 (2/2)(2/2)관계 대수와 관계 해석

예제:

• σDNO 4 (EMPLOYEE)• σDNO=4 (EMPLOYEE)

• σSALARY>30000 (EMPLOYEE)

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

Database by Yang-Sae MoonPage 5

Page 6: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

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

Database by Yang-Sae MoonPage 6

Page 7: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

실렉트실렉트 연산의연산의 성질성질관계 대수와 관계 해석

논리연산자 이용

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

교환법칙 성립

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

결합법칙 성립

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

Database by Yang-Sae MoonPage 7

Page 8: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

프로젝트프로젝트(Project) (Project) 연산연산 (1/2)(1/2)관계 대수와 관계 해석

PROJECT 연산 (Π로 표기)

• 릴레이션 R에서 애트리뷰트 리스트에 명시된 애트리뷰트들만 선택함• 릴레이션 R에서 애트리뷰트 리스트에 명시된 애트리뷰트들만 선택함

• 연산 형식: Π<애트리뷰트 리스트>(R)

• 결과 릴레이션은 애트리뷰트 리스트에 명시된 R의 애트리뷰트들만 가짐

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

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

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

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

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

Database by Yang-Sae MoonPage 8

Page 9: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

프로젝트프로젝트(Project) (Project) 연산연산 (2/2)(2/2)관계 대수와 관계 해석

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

제거함제거함

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

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

Database by Yang-Sae MoonPage 9

Page 10: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

ΠFNAME LNAME SALARY(EMPLOYEE) ΠSEX SALARY (EMPLOYEE)ΠFNAME, LNAME, SALARY(EMPLOYEE) ΠSEX, SALARY (EMPLOYEE)

Database by Yang-Sae MoonPage 10

Page 11: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

연산연산 순서와순서와 이름이름 변경변경 연산연산 (1/4)(1/4)관계 대수와 관계 해석

다수의 연산을 결합하여 관계 대수식(질의)을 형성할 수 있음

• 예제: 부서 5에서 일하는 사원들의 이름과 월급을 검색• 예제: 부서 5에서 일하는 사원들의 이름과 월급을 검색

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

Database by Yang-Sae MoonPage 11

Page 12: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

연산연산 순서와순서와 이름이름 변경변경 연산연산 (2/4)(2/4)관계 대수와 관계 해석

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

DEPT4 EMPS (EMPLOYEE)• DEPT4_EMPS←σDNO=5(EMPLOYEE)

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

DEPT4_EMPS

RESULT FNAME LNAME

Database by Yang-Sae MoonPage 12

Page 13: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

연산연산 순서와순서와 이름이름 변경변경 연산연산 (3/4)(3/4)관계 대수와 관계 해석

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

TEMP (EMPLOYEE)• TEMP←σDNO=4(EMPLOYEE)

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

Database by Yang-Sae MoonPage 13

Page 14: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

연산연산 순서와순서와 이름이름 변경변경 연산연산 (4/4)(4/4)관계 대수와 관계 해석

이름 변경 연산

DEPT4 EMPS (EMPLOYEE)• DEPT4_EMPS←σDNO=5(EMPLOYEE)

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

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

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

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

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

Database by Yang-Sae MoonPage 14

Page 15: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

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

집합 이론과 관계 대수 연산

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

추가적인 관계 연산

관계 대수 질의의 예관계 대수 질의의 예

투플 관계 해석

도메인 관계 해석

Database by Yang-Sae MoonPage 15

Page 16: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

수학적 집합 이론에서의 이진 연산

데이터베이스 구조와 제약조건의 정의 방식• 데이터베이스 구조와 제약조건의 정의 방식

• 합집합: R1 ∪ R2

• 교집합: R1 ∩ R2• 교집합: R1 ∩ R2

• 차집합: R1 – R2

연산 ∪, ∩, – 에서의 호환성

피연산자 릴레이션 R (A A A )과 R (B B B )는 애트리뷰트들의 갯수가 동일하• 피연산자 릴레이션 R1(A1,A2, ..., An)과 R2(B1, B2, ..., Bn)는 애트리뷰트들의 갯수가 동일하

고, 대응되는 애트리뷰트들의 도메인이 호환성을 가져야 함; 즉, i = 1, 2, ..., n에 대하여

dom(Ai) = dom(Bi)이어야 함( i) ( i)이어야 함

• 이 조건을 합집합 호환성(union compatibility)이라 부름

Database by Yang-Sae MoonPage 16

Page 17: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

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

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

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

(차집합은?)

Database by Yang-Sae MoonPage 17

Page 18: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

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

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

• DEP5_EMPS ← σDNO=5(EMPLOYEE)

RESULT1← Π (DEP5 EMPS)• RESULT1 ← ΠSSN(DEP5_EMPS)

• RESULT2(SSN) ← ΠSUPERSSN(DEP5_EMPS)

RESULT← RESULT1 ∪ RESULT2• RESULT ← RESULT1 ∪ RESULT2

Database by Yang-Sae MoonPage 18

Page 19: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

STUDENT INSTRUCTOR STUDENT ∩ INSTRUCTORSTUDENT ∪ INSTRUCTOR STUDENT ∩ INSTRUCTOR

STUDENT - INSTRUCTOR INSTRUCTOR - STUDENT

Database by Yang-Sae MoonPage 19

Page 20: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

카티션 곱 (CARTESIAN PRODUCT)

R(A A A B B B )← R (A A A ) × R (B B B )R(A1, A2, ...,Am, B1, B2, ..., Bn) ← R1(A1, A2, ..., Am) × R2(B1, B2, ..., Bn)

• R의 투플 t는 R1의 투플 t1과 R2의 투플 t2로 분리됨

즉 t[A A A ] t 그리고 t[B B B ] t• 즉, t[A1,A2, ..., Am] = t1 그리고 t[B1, B2, ..., Bn] = t2

• R1이 n1개의 투플을, R2가 n2개의 투플을 갖는다면, 

R은 n1×n2개의 투플을 가지게 됨R은 n1×n2개의 투플을 가지게 됨

• 카티션 곱은 그 자체로는 큰 의미가 없는 연산이지만

적절한 SELECT 연산과 함께 사용되면 두 릴레이션에서

서로 관련이 있는 투플들을 생성하는데 사용될 수 있음

Database by Yang-Sae MoonPage 20

Page 21: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

모든 여자사원들에 대해 그들의 부양가족들의 이름을 검색

• FENAME EMPS← σ (EMPLOYEE)• FENAME_EMPS ← σSEX=F(EMPLOYEE)

• EMPNAMES ← ΠFNAME, LNAME, SSN(FENAME_EMPS)

• EMP DEPENDENTS← EMPNAMES × DEPENDENT• EMP_DEPENDENTS ← EMPNAMES × DEPENDENT

• ACTUAL_DEPENDENTS ← σSSN=ESSN(EMP_DEPENDENTS)

• RESULT← Π (ACTUAL DEPENDENTS)• RESULT ← ΠFNAME, LNAME, DEPENDENT_NAME(ACTUAL_DEPENDENTS)

Database by Yang-Sae MoonPage 21

Page 22: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

카티션카티션 곱곱 ((또는또는 크로스크로스 프로덕트프로덕트) ) 연산연산 (3/3)(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, 

(AC UA E E E S)DEPENDENT_NAME(ACTUAL_DEPENDENTS)

3 ×7 = 21 

Database by Yang-Sae MoonPage 22

Page 23: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

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

집합 이론과 관계 대수 연산

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

추가적인 관계 연산

관계 대수 질의의 예관계 대수 질의의 예

투플 관계 해석

도메인 관계 해석

Database by Yang-Sae MoonPage 23

Page 24: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

Join 연산

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

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

R S• R      <조인조건> S

조인 조건

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

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

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

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

Theta Join

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

Database by Yang-Sae MoonPage 24

Page 25: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

DEPT_MGR ← DEPARTMENT      MGRSSN=SSNEMPLOYEE

Database by Yang-Sae MoonPage 25

Page 26: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

동등동등 조인조인 ((EquiEqui--Join)Join)관계 대수와 관계 해석

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

EQUI OI 사용 예제EQUIJOIN 사용 예제:

모든 DEPARTMENT의 이름과 그 관리자의 이름을 검색하라:

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

Database by Yang-Sae MoonPage 26

Page 27: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

EQUIJOIN의 결과에는 두 조인속성의 값이 중복되어 나타남

조인 결과에서 조인 속성 하나를 제거하여 중복된 값이 나타나지 않도록 한 조인을조인 결과에서 조인 속성 하나를 제거하여 중복된 값이 나타나지 않도록 한 조인을

자연조인이라고 함

표시법 R← R1 R2표시법:  R ← R1  (R1의 조인 애트리뷰트들), (R2의 조인 애트리뷰트들) R2

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

T EMPLOYEE DEPARTMENT• T ← EMPLOYEE  (DNO), (DNUMBER) DEPARTMENT

• RESULT ← ΠFNAME, LNAME, DNAME(T)

두 인 속성이 동일한 이름을 갖는다면 간단히 R R1 R2라 시함두 조인 속성이 동일한 이름을 갖는다면 간단히 R ← R1  R2라고 표시함

예제: 모든 EMPLOYEE의 이름과 그 상급자의 이름을 검색하라

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

• T ← EMPLOYEE  SUPERVISOR

Database by Yang-Sae MoonPage 27

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

Page 28: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

DNUM

DEPT DNUM

PROJ_DEPT ← PROJECT  DEPT

DNUM

Database by Yang-Sae MoonPage 28

Page 29: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

DNUMBER

DNUMBER

DEPT_LOCS ← DEPT_LOCATIONS  DEPARTMENT

DNUMBER

Database by Yang-Sae MoonPage 29

Page 30: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

주의 사항

• 자연 조인에서는 조인 애트리뷰트들이 양쪽의 릴레이션에서 동일한 이름을 가져야 하며• 자연 조인에서는 조인 애트리뷰트들이 양쪽의 릴레이션에서 동일한 이름을 가져야 하며, 

그렇지 않는 경우 조인 속성의 이름을 먼저 동일하게 변경해야 함

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

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

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

DEPT(DNAME, DNUM, MGRSSN, MGRSTARTDATE) ← DEPARTMENT

PROJ DEPT← PROJECT DEPT // DUNM이 조인속성임;

Database by Yang-Sae MoonPage 30

PROJ_DEPT  PROJECT  DEPT // DUNM이 조인속성임;// MGRSSN은 조인속성이 아님

Page 31: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

셀프셀프 조인조인(Self Join)(Self Join)관계 대수와 관계 해석

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

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

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

이 유용함이 유용함

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

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

T ← EMPLOYEE          SUPERSSN=SSSN SUPERVISORSUPERSSN SSSN

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

Database by Yang-Sae MoonPage 31

Page 32: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

조인조인 선택율선택율(selectivity)(selectivity)관계 대수와 관계 해석

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

인 선택율조인 선택율 = 

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

왼편의 조인 선택율은?왼편의 조인 선택율은?

Database by Yang-Sae MoonPage 32

Page 33: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

관계관계 대수대수 연산의연산의 완전완전 집합집합관계 대수와 관계 해석

최소한의 연산자 집합

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

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

조합으로 표현할 수 있음합 현할 수 있음

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

• 이 연산자 집합과 동등한 모든 질의 언어들은 관계적으로 완전하다(relationally complete)

라고 정의함

기타 연산자의 표현기타 자의

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

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

Database by Yang-Sae MoonPage 33

Page 34: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

T(Y) = R(Z)  S(X)는 다음과 같이 정의됨 (X ⊆ Z 이고, Y = Z – X임)

• T1 Π (R)• T1 = ΠY(R)

• T2 = ΠY((S × T1) - R)

• T = T1 T2• T = T1 – T2

예제 (과정은 다음 페이지 참조)

R   A B S  A T    Ba1 b1 a1 b1a2 b1 a2 b43 b1 3

=a3 b1 a3a4 b1a1 b2a3 b2 T1 = ΠB(R)a2 b3a3 b3a4 b3a1 b4

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

T = T1 – T2

Database by Yang-Sae MoonPage 34

a1 b4a2 b4a3 b4

Page 35: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

T1 S×T1 S×T1‐RB BA BA

= b1b2b3

a1a1a1

b1b2b3

a1a2

b3b2

T ← R  S

T = Π (R)

3b4 a1

3b4

a2a2

b1b2

T2b2B

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

a2a2a2

b2b3b4

a b

b2b3

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

a3a3a3

b1b2b3b

Tb1b

B

a3 b4 b4

Database by Yang-Sae MoonPage 35

Page 36: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

디비전디비전 연산연산 (3/3)(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

Database by Yang-Sae MoonPage 36

RESULT ← ΠFNAME, LNAME(SSNS * EMPLOYEE)

Page 37: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

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

집합 이론과 관계 대수 연산

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

추가적인 관계 연산

관계 대수 질의의 예관계 대수 질의의 예

투플 관계 해석

도메인 관계 해석

Database by Yang-Sae MoonPage 37

Page 38: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

집단 함수 (aggregate function) 혹은 집계 함수

• SUM COUNT AVERAGE MIN MAX 함수를 의미함• SUM, COUNT, AVERAGE, MIN, MAX 함수를 의미함

• 이들은 데이터베이스 응용에서 값들의 집합 또는 투플들의 집합에 적용되며, 표준 관계

대수로 표현할 수 없음대수로 표현할 수 없음

• 다음과 같이 표현하며, 그룹화 애트리뷰트들은 선택적임

<그룹화 애트리뷰트들>F<함수 리스트>(R)그룹화 애트리뷰트들   함수 리스트 ( )

예제 1: 모든 사원의 평균 급여를 검색 (그룹화 불필요)

• R(AVGSAL)← FAVERAGE SALARY(EMPLOYEE)• R(AVGSAL) ← FAVERAGE SALARY(EMPLOYEE)

예제 2: 각 부서에 대해, 부서 번호와 부서별 사원 수와 평균 급여를 검색

R(DNO NUMEMPS AVGSAL) F (EMPLOYEE)• R(DNO, NUMEMPS, AVGSAL) ← DNOFCOUNT SSN, AVERAGE SALARY(EMPLOYEE)

Database by Yang-Sae MoonPage 38

• 위의 예제에서 DNO를 그룹화 애트리뷰트(grouping attribute)라고 부름

Page 39: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

Database by Yang-Sae MoonPage 39

Page 40: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

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

사용됨사용됨

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

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

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

이러한 질의는 루핑(l i )을 사용하여 한 단계 상사들의 집합을 구하고 이를 바이러한 질의는 루핑(looping)을 사용하여 한 단계 상사들의 집합을 구하고, 이를 바

탕으로 다음 단계 상사를 구하며, 이러한 과정을 더 이상의 상사 집합이 없을 때까

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

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

Database by Yang-Sae MoonPage 40

Page 41: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

Database by Yang-Sae MoonPage 41

Page 42: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

외부 조인(OUTER JOIN)

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

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

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

외부조인을 사용함

• 외부 조인에서는 상대방 릴레이션에 대응되는 투플이 없으면 빈 애트리뷰트들에 NULL 

값을 채워서 결과에 포함시킴

Database by Yang-Sae MoonPage 42

Page 43: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

외부 조인의 종류

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

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

• 오른쪽 외부 조인 (RIGHT OUTER JOIN)오른쪽 외부 조인 (RIGHT OUTER JOIN)

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

• 완전 외부 조인 (FULL OUTER JOIN)

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

Database by Yang-Sae MoonPage 43

Page 44: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

S1A

가B1 T

나B2

#C

123

가나다

나다

#%

라 $마 @

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

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

V V V V

23

A나다

B1나다

B2#%

C A B1 B2 C12

가나 나 #

null nullA B1 B2 C

나다

#%

23

나다

A B1 B2 C

나 #2 나1 가 null null

3 다 다 % 23

나다

나다

#%

다 %라 $마 @

3 다null null

null null

나다

#%

라 $마 @

23

나다

null null

null null

Database by Yang-Sae MoonPage 44

마 @null null

Page 45: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

null

TEMP ← EMPLOYEE       MGRSSN=SSNDEPARTMENTRESULT← ΠFNAME MINIT LNAME DNAME(TEMP)

null

ll

null

RESULT ← ΠFNAME, MINIT, LNAME, DNAME(TEMP) nullnullnull

Database by Yang-Sae MoonPage 45

Page 46: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

합집합 호환성이 없는 두 릴레이션을 합집합(union)하는데 사용됨

• 데이터베이스 구조와 제약조건의 정의 방식• 데이터베이스 구조와 제약조건의 정의 방식

예제

• STUDENT(Name, SSN, Department, Advisor)와

• FACULTY(Name, SSN, Department, Rank)의 outer union은

RESULT(N SSN D Ad i R k) 임• RESULT(Name, SSN, Department, Advisor, Rank) 임

• RESULT 에서 STUDENT 투플은 Rank 속성의 값이 null이고, FACULTY 투플은 Advisor 

속성의 값이 null임속성의 값이 null임

Database by Yang-Sae MoonPage 46

Page 47: 관계대수와관계해석 (Part1)(Part 1)ysmoon/courses/2009_2/db/06.pdf · (Part1)(Part 1) 문양세 강원대학교강원대학교ITIT특성화대학특성화대학컴퓨터과학전공컴퓨터과학전공

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

S와 T의 외부 합집합

S1A

가B T

나B

#C A B C

1 가 null

S와 T의 외부 합집합

aD D

null23

나다

다 %라 $마 @

#%$

23

나다

null 라

bcd

abc마 $

@null라마 d

Database by Yang-Sae MoonPage 47