Relational algebra

youngwiki
Pinkgo (토론 | 기여)님의 2025년 3월 17일 (월) 17:21 판

상위 문서: Relational Query Languages

개요

Relational algebra는 procedural 언어에 해당하며 하나 혹은 두개의 relation을 입력으로 받고 새로운 relation을 출력하는 여러 연산자로 구성된다. 이러한 Relational algebra는 SQL Query Languages의 이론적인 토대를 형성한다.


Six Basic Operator

아래에서 수식에 쓰이는 r은 relation 인스턴스를 의미한다.

instructor and department

select: σ

  • σp(r)

위에서 select 연산은 주어진 조건(p)을 만족하는 tuple 만을 골라내어서 relation을 새로 구성한다.

예를 들어서 "Physics" department에 속하는 instructor들이 속하는 tuple들의 relation은 다음과 같이 만들 수 있다.

  • Query: σdept_name = "Physics"</math>(instructor)</math>

project:

  • A1,A2,A3,...Ak(r)

project operation은 A1,A2,A3,...Ak에 속하는 속성들 만을 나타내는 k개의 column들로 이뤄진 relation을 만든다. 이때 중복되는 값이 있다면 relation은 기본적으로 집합이기 때문에 삭제된다.

예를 들어 dept_name 속성을 instructor에서 제거한 relation을 얻고 싶다면 다음과 같이 만들 수 있다.

  • Query: ID,name,salary(instructor)

union:

set difference: -

cartesian product: x

rename: ρ