[Database] 7. 관계대수와 관계논리
REF: fundamentals of database systems 7th edition
Relational Algebra
정의
- 전체 relation을 조작하는 operation의 집합
set operations
(union, intersection, difference, cartesian product)relational
operation(select, project, join)
Relational Operation
에 대해 공부해보자.
Unary Operation
Select
- selection condition을 만족하는
tuple만 선택
하는 작업 𝛔
- 표현 :
𝛔<선택조건>...(relation 이름)
- 선택조건 : 참/거짓 으로만 나타난다.
- 여러개의 선택 조건을 사용할 수 있다.
𝛔<선택조건><boolean operator><선택조건>...(relation 이름)
부서 4 직원 중 월급이 25000원 이상인 직원이나 부서5 직원 중 월급이 30000이상인 직원 선택
𝛔 <dno == 4 and salary >= 25000> or <dno == 5 and salary> 30000 >(EMP)
- 특징
⭐️Unary operations
: one operand relation, 1개 relation만 피연산자로 필요⭐️Commutative
: select 순서가 바뀌어도 동일한 결과⭐️독립적 비교
: 각 tuple이 선택조건에 독립적으로 비교⭐️결과 tuple의 개수 <= 원본 relation의 tuple 개수
⭐️Selectivity of condition
- select 작업에의해 tuple이 선택되는 비율
- query optimization에 사용된다.
- SQL의 WHERE 절에 대응된다.
Project
- Select(𝛔)가 row를 선택한다면,
⭐️Project(π)
는column(속성)
을 선택한다.
- 각 직원의 이름과, 성, 월급을 구하라
- πLNAME, FNAME, SALARY (EMPLOYEE)
- 특징
⭐️Not Commutative
: π순서에따라 다른 결과를 가져온다.⭐️결과 tuple의 개수 <= 원본 relation의 원래 tuple 개수
πSEX, SALARY (EMPLOYEE)
-> relation에서는 중복을 표현하지 않음.
Renaming
nested operation => multiple expression
소속부서가 5인 직원의 이름, 월급을 출력하라
- π FNAME, LNAME, SALARY (σ DNO = 5 EMPLOYEE)
=>- DEP5_EMPS <- σ DNO = 5 EMPLOYEE
- RESULT <- π FNAME, LNAME, SALARY (DEPT5_EMPS)
- π FNAME, LNAME, SALARY (σ DNO = 5 EMPLOYEE)
⭐️Renaming attribute
- TEMP <- σ DNO = 5 (EMPLOYEE)
- R(FIRSTNAME, LASTNAME, SALARY) <- π FNAME, LNAME, SALARY (TEMP)
Set Operation
binary operation
Union
- 부서 5에서 근무하는 직원이나, 부서 5에서 근무하는 직원을 관리하는 직원의 주민번호를 찾아라.
- DEPT5_EMP <- (σ DNO = 5 (EMPLOYEE))
- RESULT1 <- π SSN (DEPT5_EMP)
- RESULT2 <- π SUPERSSN (DEPT5_EMP)
- RESULT <- RESULT1 UNION RESULT2
⭐️Union compatibility
⭐️degree(속성의 갯수)가 같아야한다.
⭐️대응되는 속성의 domain이 모두 같아야한다.
댓글남기기