관계 대수
기본 연산
- Selection(σ)
조건을 만족하는 튜플을 고른다.
- Projection(π)
원하는 속성만을 가져온다.
- Cartesian(Cross)-product(×)
두 개의 릴레이션을 곱한다.
- Set-difference(−)
A 릴레이션에서 B릴레이션을 뺀 것이다.
- Union(∪)
A 릴레이션과 B릴레이션의 합집합이다.
- Renaming(ρ)
릴레이션의 필드의 이름을 바꾼다.
부가 연산
- Intersection(∩)
A릴레이션과 B릴레이션의 교집합.
- Join(⨝)
두 개 이상의 릴레이션을 합한다.
- Division(÷)
A릴레이션에서 B릴레이션에 있는 필드를 제외한 나머지 필드를 가진 릴레이션을 구한다.
부가 연산은 필수가 아니지만 유용하다.
관계 대수의 결과는 릴레이션이기 때문에 관계 대수들을 여러 번 사용하여 원하는 결과를 얻을 수 있다.
Projection
Projection 리스트에 없는 애트리뷰트들을 삭제한다.
Projection 결과로 나온 릴레이션이 가지는 애트리뷰트는 Projection 연산에서 입력한 애트리뷰트만을 가지게 된다.
Projection 연산자는 중복을 제거한다. 그러나 실제 시스템에서는 따로 명시하지 않는 이상 중복을 제거하지 않는다. distinct로 중복 제거가 가능하다.
Union, Intersection, Set-Difference
Union, Intersection, Set-Difference 연산들은 모두 두 개의 릴레이션을 입력받습니다.
해당 연산들의 결과에는 중복이 없습니다.
Cartesian(Cross)-Product
A 릴레이션의 각 행이 B 릴레이션의 각 행과 연결되어 결과로 나타나는 것.
Join
Cartesian-Production에 Select를 한 결과이다.
- Equi Join
두 테이블의 특정 열 값이 같을 때만 결과에 포함
- Natural Join
두 테이블의 공통된 열 값이 같을 때만 결과에 포함
- Outer Join
Join은 매칭되지 않은 열은 제외시키나 Outer Join은 그렇지 않다.
Full Outer Join과 One-Sided outer Join이 있다.
Divide
릴레이션 A와 B가 있을 때 A에서 B의 모든 튜플을 가지고 있는 속성을 가져온다.
Rename
릴레이션(테이블)이나 속성(컬럼)의 이름을 바꾸는 연산
Assignment
값을 할당하는 연산자
SQL에서 집계 함수
sum, min, max, sum, count 등