데이터베이스 제10강

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

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

카티전 곱(X, cartesian product)

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

  • 속성 수의 합 : 2 + 2 = 4

  • 투플 수의 곱 : 3 * 5 = 15

  • 유용한 정보(중복 속성 제거)

  • 유용하지 않은 정보

  • 카티션 곱을 따로 쓰는 경우는 거의 없다.

  • 자연 조인을 하기 위한 중간 과정으로 많이 쓰인다.


관계 대수: 그 밖의 연산(additional operations)

  • 다섯개의 연산으로, 관계 대수가 할 수 있는 어떤 질의도 할 수 있다.
  • 기본 연산으로는 나타낼 수 없던 질의를, 추가적인 연산을 씀으로써 나타낼 수 있는 질의는 전혀 없다.
  • 추가적인 연산: 질의를 짤막하게 나타낼 수 있게 해 줄 뿐임
    (1) 교집합(∩, set intersection)
    (2) 자연 조인(⋈, natural join)

교집합( ∩, set intersection)

  • 입력 테이블 2개, 결과 테이블 1개

  • (R1 ∩ R2) = (R2 ∩ R1)

  • 교집합에서도 입력 테이블 두 개는 호환성이 있어야 한다.

  • 추가적인 연산은 모두 기본 연산으로 나타낼 수 있다.

  • 교집합 연산은 차집합 연산을 두 번 써서 나타낼 수 있다.

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

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


자연 조인(⋈, natural join)

  • 관계형 데이터베이스에서 너무나도 자주 사용되는 연산
  • 입력 테이블 2개, 결과 테이블 1개
  • 스키마 정규화, 스키마 나누기 등과 아주 밀접하게 관련되어 있음

(보기)
학생(학번, 이름)과 수강(학번, 과목번호) 테이블에서 홍길동 학생이 듣는 과목번호는?

자연 조인 과정

  • 학생과 수강 사이의 자연 조인

0개의 댓글