관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf ·...

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

Transcript of 관계대수와관계해석 (Part2)(Part 2)ysmoon/courses/2009_2/db/07.pdf ·...

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