07

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 33

데이터베이스 (Database)

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

문양세
강원대학교 IT
IT특성화대학
특성화대학 컴퓨터과학전공
관계 대수 및 관계 해석 강의 요약
관계 대수와 관계 해석

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

집합 이론과 관계 대수 연산

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

추가적인 관계 연산

관계 대수 질의의 예

투플 관계 해석

도메인 관계 해석

Page 2 Database by Yang-Sae Moon


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

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

Page 3 Database by Yang-Sae Moon


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

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


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

Page 4 Database by Yang-Sae Moon


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

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


찾아라. 

Page 5 Database by Yang-Sae Moon


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

질의 4: 성이 ‘Smith’인 사원이 직원(worker)이나 관리자(manager)로 근무하는


부서가 관리하는 프로젝트의 프로젝트 번호들을 나열하라. 

Page 6 Database by Yang-Sae Moon


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

질의 5: 두 명 이상의 부양 가족을 가진 사원의 이름을 나열하라.


(집단 함수 COUNT를 사용하여 질의를 표현한다.)

Page 7 Database by Yang-Sae Moon


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

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

Page 8 Database by Yang-Sae Moon


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

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

Page 9 Database by Yang-Sae Moon


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

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

집합 이론과 관계 대수 연산

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

추가적인 관계 연산

관계 대수 질의의 예

투플 관계 해석 (tuple relational calculus)

도메인 관계 해석

Page 10 Database by Yang-Sae Moon


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

관계 해석 (Relational Calculus)
• “어떻게
어떻게 검색할 것인가
것인가” 보다 “무엇을
무엇을 검색할 것인가
것인가” 만을 기술하는 선언적 표현법을 사
용하는 비절차적 질의어
• SQL을 포함한 많은 상업용 관계 언어들이 관계 해석에 기반을 두고 있음

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


으로 구분됨

관계 대수와의 차이점
• 관계 해석은 하나의 선언적(declarative)  
(declarative) 해석식으로 검색 질의를 명시하며, 
, 비절차적인
언어임
• 관계 대수에서는 연산들을 순차적으로 사용하므로 절차적인 성질을 가짐

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

Page 11 Database by Yang-Sae Moon


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

관계적 완전성(relationally completeness)
• 어떤 관계 질의어 L이 있을 때, L
L이 관계 해석(또는 관계 대수)으로 표현 가능한 어떤 질의
도 표현할 수 있으면 L은 “관계적으로 완전(relationally complete)하다”라고 한다.
• 대부분의 관계 질의어들은 관계적으로 완전(해야)하며, 
, 집단 함수(aggregate functions), 
(aggregate functions),
그룹화(grouping), 순서화(ordering) 등의 연산들을 제공하므로 관계 해석보다 표현력이
강해진다.

Page 12 Database by Yang-Sae Moon


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

투플 변수
• 릴레이션의 투플들을 범위(range)로 가지는 변수이다.
예제: 봉급이 $50,000를 넘는 모든 사원을 검색하라.
{{t | EMPLOYEE(t) and t.SALARY
() > 50000}}
여기서, EMPLOYEE(t)는 투플 변수 t가 릴레이션 EMPLOYEE의 투플들을 범위로 함을
나타낸다.
• 투플 t에 대하여 t.SALARY > 50000을 만족하는 투플 만이 검색된다.

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

Page 13 Database by Yang-Sae Moon


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

프로젝션의 표현
• 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;

Page 14 Database by Yang-Sae Moon


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

투플 관계해석의 일반식 형태
{t1.A
A1, tt2.A
A2, ..., ttn.A
An | COND(t
| COND(t1, tt2, ..., ttn, ttn+1, ttn+2, ..., ttn+m)}

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

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

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

식(formula)
(fo ula)은 다음과 같은 원자(atom)
(ato )들로 이루어짐
• Ri(ti)는 ti의 범위가 Ri임을 명시 (예: EMPLOYEE(t))

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

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

각 원자는 특정한 투플들의 조합에 ( ) 또는


합에 대해서 참(true)  는 거짓(false)
(f l )으로
계산되며, 계산된 결과값을 원자의 진리값이라 부름

Page 15 Database by Yang-Sae Moon


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

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


• 모든 원자들은 식이다.

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

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

Page 16 Database by Yang-Sae Moon


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

정량자(quantifiers)가 식에 사용될 수 있음
• 전체 정량자(universal quantifier)  (∀) (for all
(universal quantifier) (∀) (for all이라 읽음)

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

자유(free) 
(f ) 투플 변수와 속박(bound) 
(b d) 투플 변수
• (간단히 설명해서) 투플 변수 t가 (∃t)나 (∀t)절에 나타나면, t는 속박되는 것을 의미하며, 
그렇지 않으면 자유롭다는 것을 의미한다.
• 정형적 정의는 교재 p. 186 참조 ( 강의에서는 생략)

예제:
F1: d.DNAME = ‘Research’
F2: (∃t)(d.DNUMBER = t.DNO)
• 변수 d는 F1과 F2 모두에서 자유롭다

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

Page 17 Database by Yang-Sae Moon


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

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

F 내의 t의 자유 어커런스들에 할당된 “적어도


F 적어도 하나의 투플
투플”에
에 대해서 F가 참으로
계산되면, 식 (∃t)(F)는 참이고, 그렇지 않으면 거짓이다.
F가 식이면, (∀t)(F)
(∀t)(F)도 식이다.

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


식 (∀t)(F)는 참이고, 그렇지 않으면 거짓이다.
F가 참이 되게 하는 어떤 투플 t가 “존재”하면 (∃t)(F)가 참이므로, ∃를 존재 정량
자라 부른다.
“모든” 투플들이 F를 참이 되도록 해야 (∀t)(F)가 참이므로, ∀를 전체 정량자라 부
른다.

Page 18 Database by Yang-Sae Moon


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

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


Q1: {t FNAME t LNAME t ADDRESS | EMPLOYEE(t) and
Q1: {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과 유사한 목적으로 사용됨)

Page 19 Database by Yang-Sae Moon


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

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


번호와 부서 관리자의 성, 생일, 그리고 주소를 나열하라.
Q2: {p.PNUMBER, p.DNUM, m.LNAME, m.BDATE, m.ADDRESS | 
PROJECT(p) and EMPLOYEE(m) and p PLOCATION = 
PROJECT(p) and EMPLOYEE(m) and p.PLOCATION = ‘Staffordʹ
Stafford  and
and
((∃d)(DEPARTMENT(d) and p.DNUM = d.DNUMBER and 
d.MGRSSN = m.SSN))}
m.SSN))}

질의 8: 
8: 각 사원에 대하여, 그 사원의 이름과 성, 그리고 직속 상사의 이름과 성을 검
색하라.
Q8: {e FNAME e LNAME s FNAME s LNAME | EMPLOYEE(e) and
Q8: {e.FNAME, e.LNAME, s.FNAME, s.LNAME | EMPLOYEE(e) and
EMPLOYEE(s) and e.SUPERSSN = s.SSN}

Page 20 Database by Yang-Sae Moon


존재 정량자를 이용한 질의 예 (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))}

Page 21 Database by Yang-Sae Moon


존재 정량자를 이용한 질의 예 (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 = 
m.LNAME = ‘Smith’)))}
Smith )))}

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

• INTERSECTION은 and 연결자에 대응함

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

Page 22 Database by Yang-Sae Moon


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

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


(∀ ) (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) (P(x) and Q(x))  (not∃x)
x) (not(P(x)) or not(Q(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))

Page 23 Database by Yang-Sae Moon


전체 정량자의 사용 (1/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 w ESSN = e.SSN and x.PNUMBER
F2 = (∃w) (WORKS_ON(w) and w.ESSN = e SSN and x PNUMBER = w.PNO)
= w PNO)

Page 24 Database by Yang-Sae Moon


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

Q3에서 사용한 규칙 설명
1 Q3의 결과로 구해지는 사원 e는 5 
1. 5 번 부서에서 관리하는 모든 프로젝트에 근무해야 한다.
이러한 투플을 찾기 위하여 관심 없는 모든 투플들을 전체 정량자로부터 제외시켜야 한다.
2. F’에서, not(PROJECT(x))
( J ( ))는 관심있는 릴레이션 “PROJECT”
J 에 없는 모든
든 투플들에 대해 x
를 참으로 만든다.
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)
F2 = (∃w) (WORKS_ON(w) and w.ESSN = e.SSN and x.PNUMBER = w.PNO)

Page 25 Database by Yang-Sae Moon


전체 정량자의 사용 (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))}

Page 26 Database by Yang-Sae Moon


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

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

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

불안전한 식의 예제: {t | not(EMPLOYEE(t))}
• 가능한 모든 투플들 중에서 EMPLOYEE가 아닌 모든 투플들을 생성함

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

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

Page 27 Database by Yang-Sae Moon


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

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

집합 이론과 관계 대수 연산

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

추가적인 관계 연산

관계 대수 질의의 예

투플 관계 해석

도메인 관계 해석

Page 28 Database by Yang-Sae Moon


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

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

도메인
메인 변수는
변 한 애트리뷰트의
애 리 의 도메인을
메인을 범위로
범위 가짐
• 투플 관계 해석에서는?  투플의 도메인을 범위로 가졌음

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


애트리뷰트가 중심임

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

Page 29 Database by Yang-Sae Moon


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

예제:
• 질의 0: 
0: 이름이 ‘John B. Smith’
John B Smith’인 사원의 생일과 주소를 검색하라.
Q0: {uv | (∃q) (∃r) (∃s) (EMPLOYEE(qrstuvwxyz) 
q J )}
and q = ‘John’ and r = ‘B’ and s = ‘Smith’)}

 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)}

Page 30 Database by Yang-Sae Moon


도메인 관계 해석 질의 예제 (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’)))}

Page 31 Database by Yang-Sae Moon


도메인 관계 해석 질의 예제 (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)))))}

Page 32 Database by Yang-Sae Moon


요약
관계 대수와 관계 해석

기본 관계대수 연산
• 선택(SELECT), 
(SELECT) 프로젝트(PROJECT), 
(PROJECT) 합집합(UNION), 
(UNION) 차집합(SET DIFFERNECE), 
(SET DIFFERNECE)
카티션 프로덕트(Cartesion product)

추가적인 관계연산
• 집계함수, 그루핑 연산, 외부조인 연산

관계 대수 질의의 예

투플‐관계 해석
• 투플 변수와 정량자 (존재 정량자와 전체 정량자) 

• 안전식

도메인 관계 해석

Page 33 Database by Yang-Sae Moon

You might also like