47
데이터베이스 데이터베이스 (Database) (Database) 관계 관계 대수와 대수와 관계 관계 해석 해석 관계 관계 대수와 대수와 관계 관계 해석 해석 (Part 1) (Part 1) (Part 1) (Part 1) 문양세 문양세 강원대학교 강원대학교 IT IT특성화대학 특성화대학 컴퓨터과학전공 컴퓨터과학전공

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

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

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