관계대수relational_algebra

관계대수relational_algebra (rev. 1.11)


원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어(procedural language).[1]
연산자의 집합으로도 정의할 수 있음.
피연산자는 릴레이션. 연산자를 적용한 결과도 릴레이션. (폐쇄 특성, closure property)
즉, 관계대수릴레이션relation을 연산함.

대표적 연산자 8개는 특성에 따라 두 가지로 분류 가능.
관계 대수 연산자들:
{
실렉트select σ
(셀렉트, 실렉트, 선택) 연산

릴레이션relation에서, 주어진 조건을 만족하는 튜플tuple만 선택하여, 결과 릴레이션을 만든다.

unary operator: relation ↦ relation

형식:
σ조건식(릴레이션relation)
데이터 언어의 형식:
릴레이션 where 조건식

조건식을 비교식 또는 프레디킷(predicate)이라고도 한다. (술어predicate?)
조건식에는 비교연산자(>, ≥, <, ≤, =, ≠), 논리연산자(∧, ∨, ¬) 등이 들어감.

ex. 고객 relation에서 등급이 gold인 tuple을 검색하기
σ등급 = 'gold'(고객)
고객 where 등급 = 'gold'

ex2. 고객 relation에서 등급이 gold, 적립금이 2000 이상인 tuple검색
σ등급 = 'gold' ∧ 적립금 ≥ 2000(고객)
고객 where 등급 = 'gold' and 적립금 ≥ 2000

특성: commutative.
σ조건식1조건식2(릴레이션))
= σ조건식2조건식1(릴레이션))
= σ조건식1 ∧ 조건식2(릴레이션)

Up: 관계데이터연산relationship_data_operation > 관계대수relational_algebra 관계연산 관계연산자 relational operation
Ref. [https]DB개론: 셀렉트

프로젝트project π
프로젝트 연산

릴레이션relation에서 선택한 속성attribute에 해당하는 값으로 결과 relation을 구성.
즉, 주어진 relation의 일부 열로만 구성된, 수직적 부분집합(vertical subset)이 결과 relation으로 됨.

unary operator: relation ↦ relation

수학적 표현:
π속성리스트(릴레이션)
데이터 언어 형식 표현:
릴레이션[속성리스트]

ex. 고객 릴레이션에서 등급을 검색
π등급(고객)
고객[등급]
ex. 고객 릴레이션에서 고객이름, 등급, 적립금을 검색
π고객이름,등급,적립금(고객)
또는
고객[고객이름, 등급, 적립금]

QQQ 이름을 보니... 사영, 프로젝션, VG:사영,projection, VG:사상,mapping 이런거와 관련이 있나?



조인 join 연산

join 속성attribute을 이용해, 두 릴레이션relation을 조합하여 하나의 결과 릴레이션을 구성.
join attribute란: 두 relation이 공통으로 가지고 있는 attribute.

binary operator: (relation, relation) ↦ relation


자연 조인 natural join ⨝N
가장 많이 사용되는 조인.


세타 조인 theta join ⨝AθB
자연 조인보다 더 일반화된 조인.
표현
릴레이션1 ⨝AθB 릴레이션2
에서, AθB는 조인 조건으로, A는 릴레이션1의 속성attribute이고 B는 릴레이션2의 속성. θ는 비교연산자(>, ≥, <, ≤, =, ≠). 비교 연산이 가능하도록, A와 B는 같은 도메인domain으로 정의되어야 함.
θ 연산자가 =인 경우, 특별히 동일 조인(equi-join)이라 함.

세미 조인과 외부 조인:
{
세미조인semijoin : ⋉ ⋊
외부조인outer_join
left outer join ⟕
right outer join ⟖
full outer join ⟗

[https]DB개론: 확장된 관계 대수 연산자
[https]DB개론: 세미 조인
[https]DB개론: 외부 조인
outer-join으로 표현
R ⨝+ S 로 표현
}

Up: 관계데이터연산relationship_data_operation > 관계대수relational_algebra 관계연산 관계연산자 relational operation



디비전 division 연산

릴레이션relation R과 S의 디비전(division) 연산은 R ÷ S로 표현.
릴레이션 S의 모든 튜플tuple과 관련있는 릴레이션 R의 tuple로 결과 relation이 구성됨.
다만, R이 S의 모든 속성attribute을 포함하고 있어야 연산이 가능.

binary operator: (relation, relation) ↦ relation

Up: 관계데이터연산relationship_data_operation > 관계대수relational_algebra 관계연산 관계연산자 relational operation
Ref. [https]DB개론: 디비전 <--- 다시 읽어볼 것!!!
}