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