관계 대수(Relational Algebra) - 추가 연산자(additional operations)
1. 교집합 연산(set-intersection operation):
호환 가능(compatible)한 두 개의 입력 릴레이션에 모두 출현하는 튜플을 찾는 연산이다.
표기법(notation): $ r \cap s $
예시)
$ r \cap s $ : r과 s에 동시에 출현하는 튜플을 포함하는 릴레이션을 반환한다.
2. 자연 조인 연산(natural-join operation):
선택 연산(select operation)과 카티션 곱 연산(cartesian-product operation)을 하나로 합친 연산이다.
두 개의 입력 릴레이션이 중복된 attribute가 존재하지 않는다면, 자연 조인 연산의 결과는 카티션 곱 연산의 결과와 동일하다. ($ r \Join s $ = $ r \times s $)
자연 조인 연산은 결합 법칙과 교환 법칙이 성립한다.
표기법(notation): $ r \Join s $
예시)
$ r \Join s $ : $ \prod _{r.A, r.B, r.C, r.D, s.E}(\sigma _{(r.B = s.B) \wedge (r.D = s.D)}(r \times s)) $
3. 배정 연산(assignment operation):
프로그래밍 언어의 배정(assignment)과 비슷하다.
배정 연상을 이용함으로써 질의는 일련의 배정 연산으로 구성된 순차 프로그램으로 작성될 수 있다.
표기법(notation): ←
예시) 2017년 가을에도 개설되고 2018년 봄에도 개설된 수업을 찾는 질의
$ courses.fall.2017 \leftarrow \prod _{course.id}(\sigma _{semester = "Fall" \wedge year=2017}(section)) $
$ courses.spring.2018 \leftarrow \prod_{course.id}(\sigma_{semester = "Spring" \wedge year=2018}(section)) $
$ courses.fall.2017 \cup courses.spring.2018 $
4. 외부 조인(outer join):
조인 연산의 결과 한 릴레이션의 튜플이 다른 릴레이션과 매치되지 않더라도(조건문을 만족하지 않더라도) 출력 릴레이션에 포함시키는 연산이다.
null 값을 사용한다.
이때, null 값은 해당하는 값을 알 수 없거나 존재하지 않는다는 것을 의미힌다.
또한 null을 포함한 비교(comparison)는 정의상 false이다.
- 외부 조인의 종류
1) 왼쪽 외부 조인(left outer join):
왼쪽 릴레이션의 튜플은 조건을 만족하지 않더라도 모두 결합된다.
표기법(notation): r ⟕ s
2) 오른쪽 외부 조인(right outer join):
오른쪽 릴레이션의 튜플은 조건을 만족하지 않더라도 모두 결합된다.
표기법(notation): r ⟖ s
3) 완전 외부 조인(full outer join):
양쪽 릴레이션의 튜플 모두 조건을 만족하지 않더라도 결합된다.
표기법(notation): r ⟗ s
예시)
1) 왼쪽 외부 조인:
2) 오른쪽 외부 조인:
3) 완전 외부 조인:
관계 대수(Relational Algebra)의 확장(Extension)
1. 일반화된 추출 연산(generalized projection operation):
추출 리스트(projection list)에서 산술 함수(arithmetic functions)를 사용할 수 있도록 확장한 연산이다.
표기법(notation): $ \prod_{F_{1}, F_{2}, ..., F_{n}}(E) $
E는 관계 대수식이고,
F1, F2, ..., Fn 각각은 E의 스키마의 속성(attributes)과 상수(constants)를 포함하는 산술 연산이다.
예시) $ \prod_{ID, name, dept_name, salary/12}(instructor) $
2. 그룹 연산(aggregate operation):
- 그룹 함수(aggregate functions)
: 값의 collection을 받아서 결과로 하나의 값을 반환하는 함수이다.
예시)
avg: average value
min: minimum value
max: maximum value
sum: sum of values
count: number of values
- 그룹 연산(aggregate functions)
표기법(notation): $ _{G_{1}, G_{2}, ..., G_{n}} \mathcal{G} _{F_{1}(A)_{1}, F_{2}(A_{2}, ..., F_{n}(A_{n}))}(E) $
G1, G2, ..., Gn은 그룹화할 속성(attribute)의 리스트이다.
$ F_{i} $는 그룹 함수이다.
$ A_{i} $는 속성 이름이다.
예시)
$ \mathcal{G} _{sum(c)}(r) $ :
'전공 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] SQL - (2) (0) | 2021.10.19 |
---|---|
[데이터베이스] SQL - (1) (0) | 2021.10.18 |
[데이터베이스] 관계형 모델 - (3) (0) | 2021.09.16 |
[데이터베이스] 관계형 모델 - (2) (0) | 2021.09.15 |
[데이터베이스] 관계형 모델 - (1) (0) | 2021.09.13 |