데이터베이스 제9강

Sunhee·2024년 5월 23일
0
post-thumbnail

관계 대수: 기본연산(Primitive or fundamental ops)

선택연산과 속성 추출 연산을 연속 연산 하는 경우.

  • 수강 테이블에서 CS200과목을 듣는 학생의 학번만 찍어내려면?

합집합(U, union)

  • 입력 테이블 2개, 결과 테이블 1개
  • 합집합은, 두 테이블 가운데 적어도 한 군데에만 있어도 모두 결과 테이블에 나온다.
  • R1과 R2의 합집합을 구하는 연산

R1과 R2의 속성이 같고, 도메인이 같아야 한다.

  • 아래의 R3과 R4는 합집합 R3UR4는 정의되지 않는다.

  • R5UR6도 정의 되지 않음.

  • 위에서 (R3 U R4)와 (R5 U R6)는 정의되지 않았지만, 다음은 정의 됨.


합집합은 언제 사용하면 좋을까?

  • 아래 수강 테이블에서 CS100 과목을 수강하거나 또는 CS300과목을 수강하는 학생의 학번을 구하시오.

합집합을 하려면 입력 테이블 두 개가 호환성이 있어야함(compatible)

  • R1의 속성 수와 R2의 속성 수가 가탇.
  • R1.A1과 R2.A1의 도메인이 같고, R1.A2와 R2.A2의 도메인이 같고,...R1.An과 R2.An의 도메인이 같아야 한다.

일반적으로 합집합 연산의 입력 테이블 두 개의 순서를 바꾸어도 결과는 같다

  • (R1 U R2) 와 (R2 U R1)의 결과값은 같다.

차집합 연산(-, set difference): R1 - R2

  • 입력 테이블 2개, 결과 테이블 1개
  • 첫째 테이블에 있는 투플 가운데, 둘째 테이블에도 있는 투플을 뺀 나머지 투플만 결과 테이블에 나온다.
  • 둘째 테이블에만 있는 투플은 결과에 나오지 않음

합집합과 마찬가지로 호환성이 있어야 한다.

차집합은 언제 사용하면 좋을까?

  • 아래 수강 테이블에서 CS200 과목을 수강하는 학생중에서 CS300과목을 수강하지 않는 학생의 학번을 구하시오.


카티전 곱(X, cartesian product)

  • 입력 테이블 2개, 결과 테이블 1개
  • 보통 자연 조인을 위한 중간 과정으로 아주 많이 씀
    (보기) 학생 X 수강

  • 속성 수의 합 : 2 + 2 = 4
  • 투플 수의 곱 : 3 * 5 = 15

0개의 댓글