[데이터베이스] #4 관계 대수

September 18, 2023


관계대수

  • 관계대수에는 순수 관계 연산자와 수학적 집합 이론에서 사용하는 일반 집합 연산자가 존재합니다.

  • 순수 관계 연산자 : Select, Project, Join, Division

  • 일반 집합 연산자 : UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱)

요약

image

1. Select

릴레이션에 존재하는 튜플들 중에서 특정 조건을 만족하는 튜플들의 부분집합을 구하여 새로운 릴레이션을 만듦

  • 릴레이션의 행에 해당하는 튜플을 구하는 것, 수평 연산
  • σ(조건)(릴레이션)
  • σ 학생나이=23 (R)

2. Project

주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만든다. 단, 연산 결과에 중복이 발생하면 중복이 제거됨

  • 릴레이션에서 열에 해당하는 속성을 추출하는 것, 수직 연산
  • π(속성 리스트)(릴레이션)
  • π A1, A2, ..., Ar(R)

Account 테이블에서 잔고가 $600 이상인 계좌의 번호와 잔고?

→ π account-number, balance(σ balance > 600(Account))

Union

합집합, 연산할 R과 S는 동일한 스키마를 가져야 한다.

Set Difference

차집합, 연산할 R과 S는 동일한 스키마를 가져야 한다.

Cartesian Product

여러 릴레이션의 레코드들을 조합(곱 연산)해서 나오는 모든 경우를 원소로 가지는 새로운 릴레이션을 만드는 연산

  • 릴레이션 R과 S의 레코드들의 모든 가능한 조합으로 구성된 새로운 릴레이션을 생성

Join

공통 속성을 중심으로 두개의 릴레이션을 하나로 합쳐 새로운 릴레이션을 만드는 연산

Join끼리 비교

algebra-operators-join-n

Division

릴레이션 B의 모든 튜플과 관련이 있는 릴레이션 A의 튜플들을 추출

  • X ⊃ Y 인 두 릴레이션 R(X), S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산

Profile picture

이재원

이해하기 쉬운 코드를 작성하려 고민합니다.


© 2024 Won's blog Built with Gatsby