28. 관계 대수(Relation Algebra)

관계 대수(Relation Algebra)
원하는 데이터를 얻기 위해 어떻게 질의를 수행할 것인지를 기술하는 절차적 언어
참고) 관계 해석(Relation Calculus)은 수학의 Predicate Calculus을 기반으로 관계 데이터베이스를 처리하는 기능과 능력면에서 관계대수와 동등합니다. 튜플 해석과 도메인 관계 해석이 있고 관계대수와 대표적인 차이점은 비절차적 특성입니다.

일반집합 연산자
합집합, 교집합, 차집합, 교차곱 연산이 있음

합집합(UNION)
두 개의 릴레이션 중에 하나의 릴레이션에라도 튜플들로 구성
R U S = { t | t∈R V t∈S }
|R U S| <= |R| + |S|

교집합(INTERSECTION)
두 개의 릴레이션에 모두 속하는 튜플들로 구성
R ∩ S = { t | t∈R ∧ t∈S }
|R ∩ S| <= MIN{|R| , |S|}

차집합(DIFFERENCE)
하나의 릴레이션에는 있지만 다른 릴레이션에는 없는 튜플들로 구성
R – S = { t | t∈R ∧ NOT t∈S }
|R-S| <= |R|

교차곱(CARTESIAN PRODUCT)
RXS = { rs | r∈R ∧ s∈S }
|RXS| <= |R|X|S|

순수 관계 연산자
Select, Project, Join, Division 연산이 있음

Select
릴레이션에서 조건에 만족하는 튜플을 구하는 연산
σ(시그마)로 표현
σ age>20(회원)  : 회원 릴레이션에서 나이가 20 초과인 튜플을 선택

Project
릴레이션에서 원하는 속성만을 추출하는 연산
π(파이)로 표현
π 아이디, 이름(회원) : 회원 릴레이션에서 아이디와 회원 속성을 추출

Join
두 개의 릴레이션의 공통 속성으로 합쳐서 하나의 릴레이션을 생성하는 연산
▷◁ 로 표현
회원 ▷◁ No=No 부가정보 : 회원 릴레이션과 부가정보 릴레이션을 No를 기준으로 합병
자연조인: 조인 연산 결과에서 동일한 속성은 하나만 나타내는 것

Division
두 개의 릴레이션에 모두 있는 속성을 가진 튜플에서 우항에 있는 속성만 구하는 연산
÷(나누기 기호)로 표현
회원 no ÷ no 출석 : 회원 릴레이션에서 출석 릴레이션에 있는 회원 번호를 구함