원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어(procedural language).[1]
연산자의 집합으로도 정의할 수 있음.
피연산자는 릴레이션. 연산자를 적용한 결과도 릴레이션. (폐쇄 특성, closure property)
즉, 관계대수는 릴레이션relation을 연산함.
연산자의 집합으로도 정의할 수 있음.
피연산자는 릴레이션. 연산자를 적용한 결과도 릴레이션. (폐쇄 특성, closure property)
즉, 관계대수는 릴레이션relation을 연산함.
대표적 연산자 8개는 특성에 따라 두 가지로 분류 가능.
관계 대수 연산자들:
실렉트select σ
(셀렉트, 실렉트, 선택) 연산
관계 대수 연산자들:
- 일반 집합 연산자 (set operation)
- 합집합union ∪
- 교집합intersection ∩
- 차집합difference −
- Cartesian product ×
- 합집합union ∪
- 순수 관계 연산자 (relational operation)
- 실렉트select σ
- 프로젝트project π
- 조인join ⨝
- 디비전division ÷
- 실렉트select σ
실렉트select σ
(셀렉트, 실렉트, 선택) 연산
unary operator: relation ↦ relation
조건식을 비교식 또는 프레디킷(predicate)이라고도 한다. (술어predicate?)
조건식에는 비교연산자(>, ≥, <, ≤, =, ≠), 논리연산자(∧, ∨, ¬) 등이 들어감.
조건식에는 비교연산자(>, ≥, <, ≤, =, ≠), 논리연산자(∧, ∨, ¬) 등이 들어감.
ex. 고객 relation에서 등급이 gold인 tuple을 검색하기
σ등급 = 'gold'(고객)
고객 where 등급 = 'gold'
ex2. 고객 relation에서 등급이 gold, 적립금이 2000 이상인 tuple검색
σ등급 = 'gold' ∧ 적립금 ≥ 2000(고객)
고객 where 등급 = 'gold' and 적립금 ≥ 2000
특성: commutative.
σ조건식1(σ조건식2(릴레이션))
Ref. DB개론: 셀렉트
σ조건식1(σ조건식2(릴레이션))
= σ조건식2(σ조건식1(릴레이션))
= σ조건식1 ∧ 조건식2(릴레이션)
Up: 관계데이터연산relationship_data_operation > 관계대수relational_algebra 관계연산 관계연산자 relational operation= σ조건식1 ∧ 조건식2(릴레이션)
Ref. DB개론: 셀렉트
릴레이션relation에서 선택한 속성attribute에 해당하는 값으로 결과 relation을 구성.
즉, 주어진 relation의 일부 열로만 구성된, 수직적 부분집합(vertical subset)이 결과 relation으로 됨.
즉, 주어진 relation의 일부 열로만 구성된, 수직적 부분집합(vertical subset)이 결과 relation으로 됨.
unary operator: relation ↦ relation
수학적 표현:
π속성리스트(릴레이션)데이터 언어 형식 표현:
릴레이션[속성리스트]
ex. 고객 릴레이션에서 등급을 검색
π등급(고객)ex. 고객 릴레이션에서 고객이름, 등급, 적립금을 검색
고객[등급]
π고객이름,등급,적립금(고객)또는
고객[고객이름, 등급, 적립금]
Up: 관계데이터연산relationship_data_operation > 관계대수relational_algebra 관계연산 관계연산자 relational operation
Ref. DB개론: 프로젝트
Ref. DB개론: 프로젝트
조인join ⨝
조인 join 연산
join 속성attribute을 이용해, 두 릴레이션relation을 조합하여 하나의 결과 릴레이션을 구성.
join attribute란: 두 relation이 공통으로 가지고 있는 attribute.
join attribute란: 두 relation이 공통으로 가지고 있는 attribute.
binary operator: (relation, relation) ↦ relation
자연 조인 natural join ⨝N
θ 연산자가 =인 경우, 특별히 동일 조인(equi-join)이라 함.
가장 많이 사용되는 조인.
세타 조인 theta join ⨝AθB자연 조인보다 더 일반화된 조인.
표현릴레이션1 ⨝AθB 릴레이션2
에서, AθB는 조인 조건으로, A는 릴레이션1의 속성attribute이고 B는 릴레이션2의 속성. θ는 비교연산자(>, ≥, <, ≤, =, ≠). 비교 연산이 가능하도록, A와 B는 같은 도메인domain으로 정의되어야 함.θ 연산자가 =인 경우, 특별히 동일 조인(equi-join)이라 함.
Ref. DB개론: 조인
디비전 division 연산
두 릴레이션relation R과 S의 디비전(division) 연산은 R ÷ S로 표현.
릴레이션 S의 모든 튜플tuple과 관련있는 릴레이션 R의 tuple로 결과 relation이 구성됨.
다만, R이 S의 모든 속성attribute을 포함하고 있어야 연산이 가능.
릴레이션 S의 모든 튜플tuple과 관련있는 릴레이션 R의 tuple로 결과 relation이 구성됨.
다만, R이 S의 모든 속성attribute을 포함하고 있어야 연산이 가능.
binary operator: (relation, relation) ↦ relation
Up: 관계데이터연산relationship_data_operation > 관계대수relational_algebra 관계연산 관계연산자 relational operation
Ref. DB개론: 디비전 <--- 다시 읽어볼 것!!!
}
Ref. DB개론: 디비전 <--- 다시 읽어볼 것!!!
}
Up: database