3장: 관계 대수 1

관계 대수


관계 대수의 기본 연산자

Selection: 조건에 맞는 튜플(행)만 고르기

Projection: 조건에 맞는 열만 고르기

Cartesian-product: 곱집합 구하기

set-difference: 차집합 구하기 (-)

Union: 합집합 구하기 (or)

Renaming: 속성(필드)의 이름 수정하기


관계 대수의 부가 연산자

Intersection: 교집합 구하기 (and)

Join: 두 개이상의 릴레이션으로부터 정보를 결합 (Cartesian-product+selection)

Division: 이름 찾기

(ex) 모든 배들을 보존하고 있는 항해사의 이름을 찾으시오.


예시 (Projection 연산)


예시 (Selection 연산)


예시 (Selection + Projection 연산)


Union-Compatible이란?

합집합, 교집합, 차집합을 하려면 호환성이 있어야만 한다. 호환성이 있어야 한다는 것은 릴레이션에서 필드의 개수와 타입이 같아야 한다는 것이다.


예시 (Union, Intersection, Set-Difference)

S1 릴레이션과 S2 릴레이션은 Union-compatible하다.

따라서 합집합을 해서 튜플을 늘릴 수도 있고, 교집합을 해서 공통된 튜플만 가질 수도 있고 차집합을 해서 공통된 튜플을 뺄 수도 있는 것이다.

예시 (Cartesian-product)


예시 (Join 연산)

곱집합한 뒤 조건을 만족하는 튜플을 선택한다.


예시 (Equi-Join 연산)

곱집합한 뒤 적힌 속성에 해당하는 중복된 튜플을 선택한다.


예시 (Natural-Join 연산)

 곱집합한 뒤 공통된 속성을 확인한다. 이후 중복된 튜플을 선택하는데, 공통된 속성은 하나만 선택해서 출력한다.


Natural-Join 연산의 다른 예제


예시 (Outer-Join 연산)

Right Outer Join: 오른쪽 릴레이션에 있는 튜플들 중 매칭이 안 된 것을 결과에 포함시킴

Left Outer Join: 왼쪽 릴레이션에 있는 튜플들 중 매칭이 안 된 것을 결과에 포함시킴

Full Outer Join: Right Outer Join + Left Outer Join

(매칭이 안 됐다: Natural Join을 한 결과에 해당 튜플이 없다)


예시 (Left-Outer-Join 연산)

일단 Natural Join하고 왼쪽(Offering)에 있는 튜플들 중 매칭이 안 된 것을 결과에 포함시킴


예시 (Right-Outer-Join 연산)

일단 Natural Join하고 오른쪽(Faculty)에 있는 튜플들 중 매칭이 안 된 것을 결과에 포함시킴

예시 (Full-Outer-Join 연산)

일단 Natural Join하고 왼쪽(Offering), 오른쪽(Faculty)에 있는 튜플들 중 매칭이 안 된 것을 결과에 포함시킴


예시 (Division 연산)

S가 P를 공급한다고 할 때 P1과 P2를 모두 공급하는 S는 무엇인가요?

정답: S3


S가 P를 공급한다고 할 때 P1,P2,P3를 모두 공급하는 S는 무엇인가요?

정답: S2


예시 (all disqualified x values 연산)


예시 (assignment 연산)

복잡한 수식을 간단하게 줄일 때 사용함

Disqualified를 temp2에 넣으면서 all disqualified x values 연산을 진행할 수 있음

Leave a Reply

Your email address will not be published. Required fields are marked *