Transcript
Page 1: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

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

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

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

Page 2: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

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

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

집합 이론과 관계 대수 연산

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

추가적인 관계 연산

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

투플 관계 해석

도메인 관계 해석

Database by Yang-Sae MoonPage 2

Page 3: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

관계관계 대수대수 질의의질의의 예예 (1/7)(1/7)관계 대수와 관계 해석

질의 1 : ‘Research’ 부서에서 일하는 모든 사원의 이름과 주소를 검색하라.

Database by Yang-Sae MoonPage 3

Page 4: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

관계관계 대수대수 질의의질의의 예예 (2/7)(2/7)관계 대수와 관계 해석

질의 2 : ‘Stafford’ 에 위치한 모든 프로젝트에 대하여 프로젝트 번호와 관리 부서

번호, 부서 관리자의 성, 주소, 생년월일을 나열하라. 부서 리자의 주 나 하라

Database by Yang-Sae MoonPage 4

Page 5: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

관계관계 대수대수 질의의질의의 예예 (3/7)(3/7)관계 대수와 관계 해석

질의 3 : 번호 5인 부서가 관리하는 모든 프로젝트에서 근무하는 사원들의 이름을찾아라. 

Database by Yang-Sae MoonPage 5

Page 6: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

관계관계 대수대수 질의의질의의 예예 (4/7)(4/7)관계 대수와 관계 해석

질의 4: 성이 ‘Smith’인 사원이 직원(worker)이나 관리자(manager)로 근무하는부서가 관리하는 프로젝트의 프로젝트 번호들을 나열하라. 

Database by Yang-Sae MoonPage 6

Page 7: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

관계관계 대수대수 질의의질의의 예예 (5/7)(5/7)관계 대수와 관계 해석

질의 5: 두 명 이상의 부양 가족을 가진 사원의 이름을 나열하라.(집단 함수 COUNT를 사용하여 질의를 표현한다.)

Database by Yang-Sae MoonPage 7

Page 8: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

관계관계 대수대수 질의의질의의 예예 (6/7)(6/7)관계 대수와 관계 해석

질의 6: 부양 가족이 없는 사원의 이름을 나열하라.

Database by Yang-Sae MoonPage 8

Page 9: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

관계관계 대수대수 질의의질의의 예예 (7/7)(7/7)관계 대수와 관계 해석

질의 7: 부양 가족이 적어도 한 명 이상인 관리자(manager)들의 이름을 나열하라.

Database by Yang-Sae MoonPage 9

Page 10: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

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

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

집합 이론과 관계 대수 연산

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

추가적인 관계 연산

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

투플 관계 해석 (tuple relational calculus)

도메인 관계 해석

Database by Yang-Sae MoonPage 10

Page 11: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

관계관계 해석해석 개요개요 (1/2)(1/2)관계 대수와 관계 해석

관계 해석 (Relational Calculus)

• “어떻게 검색할 것인가” 보다 “무엇을 검색할 것인가” 만을 기술하는 선언적 표현법을 사• 어떻게 검색할 것인가 보다 무엇을 검색할 것인가 만을 기술하는 선언적 표현법을 사

용하는 비절차적 질의어

• SQL을 포함한 많은 상업용 관계 언어들이 관계 해석에 기반을 두고 있음SQL을 포함한 많은 상업용 관계 언어들이 관계 해석에 기반을 두고 있음

• 투플 관계 해석(tuple relational calculus)와 도메인 관계 해석 (domain relational calculus)

으로 구분됨

관계 대수와의 차이점

• 관계 해석은 하나의 선언적(declarative) 해석식으로 검색 질의를 명시하며, 비절차적인관계 해석은 하나의 선언적(declarative)  해석식으로 검색 질의를 명시하며, 비절차적인

언어임

• 관계 대수에서는 연산들을 순차적으로 사용하므로 절차적인 성질을 가짐

• 두 언어의 표현력(expressive power)은 동등함

Database by Yang-Sae MoonPage 11

Page 12: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

관계관계 해석해석 개요개요 (2/2)(2/2)관계 대수와 관계 해석

관계적 완전성(relationally completeness)

• 어떤 관계 질의어 L이 있을 때 L이 관계 해석(또는 관계 대수)으로 표현 가능한 어떤 질의• 어떤 관계 질의어 L이 있을 때, L이 관계 해석(또는 관계 대수)으로 표현 가능한 어떤 질의

도 표현할 수 있으면 L은 “관계적으로 완전(relationally complete)하다”라고 한다.

• 대부분의 관계 질의어들은 관계적으로 완전(해야)하며, 집단 함수(aggregate functions),대부분의 관계 질의어들은 관계적으로 완전(해야)하며, 집단 함수(aggregate functions), 

그룹화(grouping), 순서화(ordering) 등의 연산들을 제공하므로 관계 해석보다 표현력이

강해진다.

Database by Yang-Sae MoonPage 12

Page 13: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

투플투플 변수와변수와 범위범위 릴레이션릴레이션 (1/2)(1/2)관계 대수와 관계 해석

투플 변수

• 릴레이션의 투플들을 범위(range)로 가지는 변수이다• 릴레이션의 투플들을 범위(range)로 가지는 변수이다.

예제: 봉급이 $50,000를 넘는 모든 사원을 검색하라.

{t | EMPLOYEE(t) and t.SALARY > 50000}{ ( ) }

여기서, EMPLOYEE(t)는 투플 변수 t가 릴레이션 EMPLOYEE의 투플들을 범위로 함을

나타낸다.

• 투플 t에 대하여 t.SALARY > 50000을 만족하는 투플 만이 검색된다.

• 투플 t의 모든 애트리뷰트 값들이 리턴된다. 

Database by Yang-Sae MoonPage 13

Page 14: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

투플투플 변수와변수와 범위범위 릴레이션릴레이션 (2/2)(2/2)관계 대수와 관계 해석

프로젝션의 표현

• t의 일부 애트리뷰트 만을 검색하려면 다음과 같이 작성한다• t의 일부 애트리뷰트 만을 검색하려면 다음과 같이 작성한다. 

{t.FNAME, t.LNAME | EMPLOYEE(t) and t.SALARY > 50000}

이는 다음 SQL 질의와 동일한 의미를 가진다. (표현력이 동일하다) 이는 다음 Q 질의와 동일한 의미를 가진다 ( 현력이 동일하다)

SELECT T.FNAME, T.LNAME

FROM EMPLOYEE   T

WHERE T.SALARY > 50000;

Database by Yang-Sae MoonPage 14

Page 15: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

투플투플 관계관계 해석의해석의 표현과표현과 식식 (1/2)(1/2)관계 대수와 관계 해석

투플 관계해석의 일반식 형태

{t A t A t A | COND(t t t t t t )}{t1.A1, t2.A2, ..., tn.An | COND(t1, t2, ..., tn, tn+1, tn+2, ..., tn+m)}

• t1, t2, ..., tn, tn+1, tn+2, ..., tn+m은 투플 변수

• 각Ai는 ti가 범위로 하는 릴레이션의 애트리뷰트• 각Ai는 ti가 범위로 하는 릴레이션의 애트리뷰트

• COND는 조건 또는 투플 관계 해석의 식(formula)

식(fo ula)은 다음과 같은 원자(ato )들로 이루어짐식(formula)은 다음과 같은 원자(atom)들로 이루어짐

• Ri(ti)는 ti의 범위가 Ri임을 명시 (예: EMPLOYEE(t))

(t A t B) 는 비교 연산자 ( < ≤ ) (예 t FNAME t SNAME)• (ti.A op tj.B), op는 비교 연산자 (=, <, ≤, ...)   (예: t1.FNAME = t1.SNAME)

• (ti.A op c) 또는 (c op tj.B), c는 상수 (예: t.SALARY > 50000)

각 원자는 특정한 투플들의 합에 대해서 참( ) 는 거짓(f l )각 원자는 특정한 투플들의 조합에 대해서 참(true) 또는 거짓(false)으로

계산되며, 계산된 결과값을 원자의 진리값이라 부름

Database by Yang-Sae MoonPage 15

Page 16: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

투플투플 관계관계 해석의해석의 표현과표현과 식식 (2/2)(2/2)관계 대수와 관계 해석

식(formula): and, or, not으로 연결된 원자들

• 모든 원자들은 식이다• 모든 원자들은 식이다.

• F1과 F2가 식이면 (F1 and F2), (F1 or F2), not(F1), not(F2)도 식이다.

• 예: EMPLOYEE(t) and t.SALARY > 50000

Database by Yang-Sae MoonPage 16

Page 17: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

존재존재 정량자와정량자와 전체전체 정량자정량자관계 대수와 관계 해석

정량자(quantifiers)가 식에 사용될 수 있음

• 전체 정량자(universal quantifier) (∀) (for all이라 읽음)• 전체 정량자(universal quantifier)  (∀) (for all이라 읽음)

• 존재 정량자(existential quantifier) (∃) (their exists라 읽음)

자유(f ) 투플 변수와 속박(b d) 투플 변수자유(free) 투플 변수와 속박(bound) 투플 변수

• (간단히 설명해서) 투플 변수 t가 (∃t)나 (∀t)절에 나타나면, t는 속박되는 것을 의미하며, 

그렇지 않으면 자유롭다는 것을 의미한다그렇지 않으면 자유롭다는 것을 의미한다.

• 정형적 정의는 교재 p. 186 참조 (강의에서는 생략)

예제예제:

F1: d.DNAME = ‘Research’

F2: (∃t)(d.DNUMBER = t.DNO)

• 변수 d는 F1과 F2 모두에서 자유롭다

Database by Yang-Sae MoonPage 17

• 변수 t는 F2에서∃정량자에 속박된다

Page 18: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

정량자가정량자가 포함된포함된 식의식의 진리값진리값 계산계산관계 대수와 관계 해석

F가 식이면, (∃t)(F)도 식이다.

F 내의 t의 자유 어커런스들에 할당된 “적어도 하나의 투플”에 대해서 F가 참으로F 내의 t의 자유 어커런스들에 할당된 적어도 하나의 투플 에 대해서 F가 참으로

계산되면, 식 (∃t)(F)는 참이고, 그렇지 않으면 거짓이다.

F가 식이면 (∀t)(F)도 식이다F가 식이면, (∀t)(F)도 식이다.

F 내의 t의 자유 어커런스들에 할당된 “모든 투플”에 대해서 F가 참으로 계산되면

식 (∀t)(F)는 참이고 그렇지 않으면 거짓이다식 (∀t)(F)는 참이고, 그렇지 않으면 거짓이다.

F가 참이 되게 하는 어떤 투플 t가 “존재”하면 (∃t)(F)가 참이므로, ∃를 존재 정량

자라 부른다자라 부른다.

“모든” 투플들이 F를 참이 되도록 해야 (∀t)(F)가 참이므로, ∀를 전체 정량자라 부

른다.

Database by Yang-Sae MoonPage 18

Page 19: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

존재존재 정량자를정량자를 이용한이용한 질의질의 예예 (1/4)(1/4)관계 대수와 관계 해석

질의 1: ‘Research’ 부서에서 일하는 모든 사원의 이름과 주소를 검색하라.

Q1: {t FNAME t LNAME t ADDRESS | EMPLOYEE(t) andQ1: {t.FNAME, t.LNAME, t.ADDRESS | EMPLOYEE(t) and

(∃d) (DEPARTMENT(d) and d.DNAME = ‘Research’ and

d.DNUMBER = t.DNO)}

• 관계 해석 식에서 자유 투플 변수들만 막대 ( | ) 왼쪽에 나타낸다.

• 막대 ( | )는 “such that”이라 읽는다

• EMPLOYEE(t), DEPARTMENT(d)는 t와 d의 범위 릴레이션을 명시한다.

• d.DNAME = ‘Research’는 선택 조건(selection condition)임

(관계 대수의 SELECT에 해당함)

• d.DNUMBER = t.DNO는 조인 조건(join condition)임

(관계 대수의 EQUI‐JOIN과 유사한 목적으로 사용됨)

Database by Yang-Sae MoonPage 19

Page 20: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

존재존재 정량자를정량자를 이용한이용한 질의질의 예예 (2/4)(2/4)관계 대수와 관계 해석

질의 2: ‘Stafford’에 위치한 모든 프로젝트에 대하여, 프로젝트 번호, 관리 부서의

번호와 부서 관리자의 성 생일 그리고 주소를 나열하라번호와 부서 관리자의 성, 생일, 그리고 주소를 나열하라.

Q2: {p.PNUMBER, p.DNUM, m.LNAME, m.BDATE, m.ADDRESS | 

PROJECT(p) and EMPLOYEE(m) and p PLOCATION = ‘Staffordʹ andPROJECT(p) and EMPLOYEE(m) and p.PLOCATION =  Stafford  and

((∃d)(DEPARTMENT(d) and p.DNUM = d.DNUMBER and 

d.MGRSSN = m.SSN))}d.MGRSSN  m.SSN))}

질의 8: 각 사원에 대하여 그 사원의 이름과 성 그리고 직속 상사의 이름과 성을 검질의 8: 각 사원에 대하여, 그 사원의 이름과 성, 그리고 직속 상사의 이름과 성을 검

색하라.

Q8: {e FNAME e LNAME s FNAME s LNAME | EMPLOYEE(e) andQ8: {e.FNAME, e.LNAME, s.FNAME, s.LNAME | EMPLOYEE(e) and

EMPLOYEE(s) and e.SUPERSSN = s.SSN}

Database by Yang-Sae MoonPage 20

Page 21: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

존재존재 정량자를정량자를 이용한이용한 질의질의 예예 (3/4)(3/4)관계 대수와 관계 해석

질의 3’: 부서 5에 의해 관리되는 프로젝트에 참여하는 모든 사원의 이름을 찾아라.

Q3ʹ: {e.LNAME, e.FNAME | EMPLOYEE(e) and ((∃x) (∃w) 

(PROJECT(x) and WORKS_ON(w) and x.DNUM = 5 and w.ESSN = e.SSN  and

x.PNUMBER = w.PNO))}

Database by Yang-Sae MoonPage 21

Page 22: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

존재존재 정량자를정량자를 이용한이용한 질의질의 예예 (4/4)(4/4)관계 대수와 관계 해석

질의 4: ‘Smith’라는 성을 가진 사원이 직원이나 관리자로서 관여된 프로젝트들을

나열하라나열하라.

Q4: {p.PNAME | PROJECT(p) and 

(((∃e)(∃w)(EMPLOYEE(e) and WORKS_ON(w) and ((( )( )( ( ) ( )

w.PNO = p.PNUMBER and e.LNAME = ‘Smith’ and e.SSN = w.ESSN)) 

or

((∃m)(∃d)(EMPLOYEE(m) and DEPARTMENT(d) and  

p.DNUM = d.DNUMBER and d.MGRSSN = m.SSN and 

m LNAME = ‘Smith’)))}m.LNAME =  Smith )))}

AND/OR/NOT

• 관계 대수의 UNION은 관계 해석의 o 연결자에 대응함• 관계 대수의 UNION은 관계 해석의 or 연결자에 대응함

• INTERSECTION은 and 연결자에 대응함

• not 연결자는 전체 정량자와 존재 정량자를 동등한 식으로 변환하는 데에 사용될 수 있음

Database by Yang-Sae MoonPage 22

• not 연결자는 전체 정량자와 존재 정량자를 동등한 식으로 변환하는 데에 사용될 수 있음

Page 23: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

전체전체 정량자와정량자와 존재존재 정량자정량자 사이의사이의 변환변환관계 대수와 관계 해석

수학적 논리로부터 유래된 잘 알려진 변환법

(∀ ) (P( )) ( ot∃ ) ( ot(P( )))(∀x) (P(x)) ≡ (not∃x) (not(P(x)))

(∃x) (P(x)) ≡ not(∀x) (not(P(x)))

(∀x) (P(x) and Q(x)) ≡ (not∃x) (not(P(x)) or not(Q(x)))(∀x) (P(x) and Q(x))   (not x) (not(P(x)) or not(Q(x)))

(∀x) (P(x) or Q(x)) ≡ (not∃x) (not(P(x)) and not(Q(x)))

(∃x) (P(x) or Q(x)) ≡ not(∀x) (not(P(x)) and not(Q(x)))

(∃x) (P(x) and Q(x)) ≡ not(∀x) (not(P(x)) or not(Q(x)))

다음 식들이 성립함 (⇒는 내포(implies)를 나타냄)

(∀x) (P(x)) ⇒ (∃x) (P(x)) 

(not∃x) (P(x)) ⇒ not(∀x) (P(x))

그러나, 다음은 성립하지 않음

not(∀x) (P(x)) ⇒ (not∃x) (P(x))

Database by Yang-Sae MoonPage 23

Page 24: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

전체전체 정량자의정량자의 사용사용 (1/3)(1/3)관계 대수와 관계 해석

전체 정량자 사용 시, 식이 의미를 갖도록 하기 위하여 몇 가지 규칙을 따라야 함

다음 질의 3을 통해 규칙을 살펴보자다음 질의 3을 통해 규칙을 살펴보자

질의 3: 5번 부서에 의해 관리되는 모든 프로젝트들에 참여하는 사원들의

이름을 찾아라이름을 찾아라.Q3: {e.LNAME, e.FNAME | EMPLOYEE(e) and

((∀x) (not (PROJECT(x)) or (not (x.DNUM = 5) or

((∃w) (WORKS_ON(w) and w.ESSN = e.SSN and x.PNUMBER = w.PNO)))))}

Q3의 기본 구성요소들

Q3: {e.LNAME, e.FNAME | EMPLOYEE(e) and F’}

F’ = (∀x) (not(PROJECT(x)) or F1)

F1 = (not(x.DNUM = 5) or F2)

F2 = (∃w) (WORKS ON(w) and wESSN = e SSN and x PNUMBER = wPNO)

Database by Yang-Sae MoonPage 24

F2 = (∃w) (WORKS_ON(w) and w.ESSN = e.SSN and x.PNUMBER = w.PNO)

Page 25: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

전체전체 정량자의정량자의 사용사용 (2/3)(2/3)관계 대수와 관계 해석

Q3에서 사용한 규칙 설명

1 Q3의 결과로 구해지는 사원 e는 5 번 부서에서 관리하는 모든 프로젝트에 근무해야 한다1. Q3의 결과로 구해지는 사원 e는 5 번 부서에서 관리하는 모든 프로젝트에 근무해야 한다.

이러한 투플을 찾기 위하여 관심 없는 모든 투플들을 전체 정량자로부터 제외시켜야 한다.

2. F’에서, not(PROJECT(x))는 관심있는 릴레이션 “PROJECT”에 없는 모든 투플들에 대해 x에서 ( J ( ))는 관심있는 릴레이션 J 에 없는 든 투플들에 대해

를 참으로 만든다.

3. F1에서, not(x.DNUM = 5)는 관심없는 PROJECT 투플들, 즉 “DNUM이 5가 아닌 투플들”

에 대해 x를 참으로 만든다.

4. F2는 나머지에 대해 만족되어야 할 조건, 즉 “5번 부서에 의해 관리되는 모든 PROJECT 투

플들”을 명시한다.

Q3: {e.LNAME, e.FNAME | EMPLOYEE(e) and F’}Q3: {e.LNAME, e.FNAME | EMPLOYEE(e) and F }

F’ = (∀x) (not(PROJECT(x)) or F1)

F1 = (not(x.DNUM = 5) or F2)

Database by Yang-Sae MoonPage 25

F2 = (∃w) (WORKS_ON(w) and w.ESSN = e.SSN and x.PNUMBER = w.PNO)

Page 26: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

전체전체 정량자의정량자의 사용사용 (3/3)(3/3)관계 대수와 관계 해석

추가적인 예제들

• 질의 6: 부양가족이 없는 사원들의 이름을 찾아라• 질의 6: 부양가족이 없는 사원들의 이름을 찾아라.Q6: {e.FNAME, e.LNAME | EMPLOYEE(e) and (not(∃d) (DEPENDENT(d) and e.SSN = d.ESSN))}

전체 정량자를 사용하기 위하여 Q6를 Q6’으로 변환하면

Q6’: {e.FNAME, e.LNAME | EMPLOYEE(e) and  

((∀d) (not(DEPENDENT(d)) or not(e.SSN = d.ESSN)))}

• 질의 7: 부양가족이 적어도 한 명 있는 관리자들의 이름을 나열하라.Q7: {e.FNAME, e.LNAME | EMPLOYEE(e) and ((∃d) (∃p)

(DEPARTMENT(d) and DEPENDENT(p) and e.SSN = e.MGRSSN

and  p.ESSN = e.SSN))}

Database by Yang-Sae MoonPage 26

Page 27: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

관계관계 해석에서해석에서 안전식안전식 (Safe Expression)(Safe Expression)관계 대수와 관계 해석

결과로서 유한(finite) 개 투플들을 생성하는 것이 보장된 식

불안전식은 한( f ) 개 플들을 생성할 있 플들의 타입이불안전식은 무한(infinite) 개 투플들을 생성할 수 있고, 투플들의 타입이

서로 다를 수 있음

불안전한 식의 예제: {t | not(EMPLOYEE(t))}

• 가능한 모든 투플들 중에서 EMPLOYEE가 아닌 모든 투플들을 생성함

• 이러한 투플들은 무한 개 투플들로 구성되며, 투플의 타입이 상이할 수 있음

• 따라서 위의 식은 불안전한 식이 됨

Database by Yang-Sae MoonPage 27

Page 28: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

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

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

집합 이론과 관계 대수 연산

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

추가적인 관계 연산

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

투플 관계 해석

도메인 관계 해석

Database by Yang-Sae MoonPage 28

Page 29: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

도메인도메인 관계관계 해석해석 개념개념 (1/2)(1/2)관계 대수와 관계 해석

투플 변수 대신 도메인 변수(domain variables)를 사용하는 관계 해석

메인 변 한 애 리 의 메인을 범위 가짐도메인 변수는 한 애트리뷰트의 도메인을 범위로 가짐

• 투플 관계 해석에서는? 투플의 도메인을 범위로 가졌음

• 투플 관계 해석에서는 투플이 중심인 반면, 도메인 관계 해석에서는

애트리뷰트가 중심임

차수가 n인 릴레이션의 경우 n 개의 도메인 변수를 사용함

Database by Yang-Sae MoonPage 29

Page 30: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

도메인도메인 관계관계 해석해석 개념개념 (2/2)(2/2)관계 대수와 관계 해석

예제:

• 질의 0: 이름이 ‘John B Smith’인 사원의 생일과 주소를 검색하라• 질의 0: 이름이 John B. Smith’인 사원의 생일과 주소를 검색하라.

Q0: {uv | (∃q) (∃r) (∃s) (EMPLOYEE(qrstuvwxyz) 

and q = ‘John’ and r = ‘B’ and s = ‘Smith’)}q J )}

EMPLOYEE의 각 애트리뷰트들을 위한 열 개의 도메인 변수들: qrstuvwxyz

BDATE를 위한 변수 u, ADDRESS를 위한 v

조건에 참여하는 변수들 q(FNAME), r(MINIT), s(LNAME)

조건에 참여하는 변수들 (q, r, s)만 존재 정량자로 속박함

• 또 다른 표기법(QBE에서 사용): Q0’: {uv | EMPLOYEE(‘John’, ‘B’,‘Smith’,t,u,v,w,x,y,z)}

Database by Yang-Sae MoonPage 30

Page 31: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

도메인도메인 관계관계 해석해석 질의질의 예제예제 (1/2)(1/2)관계 대수와 관계 해석

질의 1: ‘Research’ 부서에서 일하는 모든 사원들의 이름과 주소를 검색하라.

Q1: {qsv | (∃z) (EMPLOYEE(qrstuvwxyz) and (∃l) (∃m) 

(DEPARTMENT(lmno) and l = ‘Research’ and m = z))}

(m = z)는 조인 조건

(l = ‘Research’)는 선택 조건

질의 2: ‘Stafford’에 위치한 모든 프로젝트에 대해서 프로젝트 번호와 부서 번호, 

그리고 부서 관리자의 성, 생일, 주소를 나열하라.

Q2: {iksuv | (∃j) (PROJECT(hijk) and (∃t)(EMPLOYEE(qrstuvwxyz) and (∃m) (∃n) (DEPARTMENT(lmno) and k = m and n = t and j = ‘Stafford’)))}

Database by Yang-Sae MoonPage 31

Page 32: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

도메인도메인 관계관계 해석해석 질의질의 예제예제 (2/2)(2/2)관계 대수와 관계 해석

질의 6: 부양가족이 없는 사원들의 이름을 찾아라.

Q6: {qs | (∃t) (EMPLOYEE(qrstuvwxyz) and 

(not (∃l) (DEPENDENT(lmno) and t = l)))}

질의 7: 적어도 한명의 부양가족이 있는 관리자들의 이름을 나열하라.

Q7: {sq | (∃t) (EMPLOYEE(qrstuvwxyz) and ((∃j) 

(DEPARTMENT(hijk) and( ( j )

((∃l) (DEPENDENT(lmno) and t = j and l = t)))))}

Database by Yang-Sae MoonPage 32

Page 33: 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf · 관계관계해석해석개요개요(1/2)(1/2) 관계대수와관계해석 관계해석(Relational Calculus)

요약요약관계 대수와 관계 해석

기본 관계대수 연산

• 선택(SELECT) 프로젝트(PROJECT) 합집합(UNION) 차집합(SET DIFFERNECE)• 선택(SELECT), 프로젝트(PROJECT), 합집합(UNION), 차집합(SET DIFFERNECE), 

카티션 프로덕트(Cartesion product)

추가적인 관계연산추가적인 관계연산

• 집계함수, 그루핑 연산, 외부조인 연산

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

투플‐관계 해석

• 투플 변수와 정량자 (존재 정량자와 전체 정량자) 

• 안전식

도메인 관계 해석

Database by Yang-Sae MoonPage 33


Recommended