Hi there!

I am a student studying computer science.

데이터 베이스

데이터베이스 ch7 : Relational Algebra & Calculus

만능성구 2020. 10. 6. 04:18
728x90

Relational Algebra and Relational Calculus

Relational Algebra

  • 관계 대수(Relational Algebra)란?
    • 릴레이션들을 다루는 연산들
    • 검색 요구(질의)를 기술하는 데에 사용함
    • 질의 결과도 릴레이션임

단항 관계 연산

  • 실렉트(SELECT) 연산과 프로젝트(PROJECT) 연산

실렉트(SELECT) 연산

  • 릴레이션 R에서 어떤 선택조건 c를 만족하는 투플들을 선택함
  • 연산 형식 $\sigma_c(R)$
  • 조건 c는 R의 애트리뷰트들에 대한 임의의 불리언 식임
  • 결과 릴레이션은 R과 동일한 애트리뷰트들을 가짐
  • 결과 릴레이션은 r(R)의 투플 중 애트리뷰트 값들이 조건 를 만족하는 투플들로 구성됨
  • 예제:

PROJECT 연산

  • $\pi$로 표기

  • 릴레이션 R에서 애트리뷰트 리스트 L에 명시된 애트리뷰트들만 선택함

  • 연산 형식: $\pi_L(R)$

  • 결과 릴레이션은 L에 명시된 R의 애트리뷰트들만 가짐

  • 예제:$$\pi_{Fnam,Lname,Salary}()$$

  • PROJECT 연산은 결과 릴레이션이 수학적 집합이므로 중복된 투플들을 제거함

  • 예제: $$\pi_{Sex,Salary}(EMPLOYEE)$$

    • 봉급이 1,000,000원인 남자 사원들이 여러명 이더라도 결과 릴레이션에는 단지 하나의 <M, 1000000> 투플만이 포함되며, 나머지는 제거됨

연산의 순서와 이름 변경 연산

  • 다수의 연산을 결합하여 관계 대수식(질의)을 형성할 수 있음
    • 예제: 부서 4에서 일하는 사원들의 이름과 봉급을 검색하라.

$$\pi_{Fname,Lname,Salary}(\sigma_{Dno=4}(EMPLOYEE))$$

  • 각 중간 단계의 임시 릴레이션에 이름을 부여할 수도 있음

$$DEPT4_EMPS ← \sigma{Dno=4}(EMPLOYEE)$$

$$R ← πFname,Lname,Salary(DEPT4_EMPS)$$

  • 결과 릴레이션의 애트리뷰트 이름은 재명명 할 수도 있음

    $$DEPT4_EMPS ← \sigma{Dno=4}(EMPLOYEE)$$
    $$R(FIRSTNAME, LASTNAME, SALARY) ← \pi_{Fname,Lname,Salary}(DEPT4_EMPS)$$

집합 이론과 관계 대수 연산

  • 합집합, 교집합, 차집합 연산

    • 합집합: $R_1 ∪ R_2$

    • 교집합: $R_1 ∩ R_2$

    • 차집합: $R_1 - R_2$

  • 카티션 곱(Cartesian Product) (또는, Cross Product, Cross Join) 연산
    • 카티션 곱: $R_1 × R_2$

합집합, 교집합, 차집합 연산

  • 연산 ∪, ∩, - 에서의 호환성
    • 피연산자 릴레이션 $R_1(A_1,A_2,...,A_n)$과 $R_2(B_1,B_2,...,B_n)$는 애트리뷰트들의 갯수가 동일하고, 대응되는 애트리뷰트들의 도메인이 호환성을 가져야 함; 즉, i = 1,2,...,n에 대하여 $dom(A_i) = dom(B_i)$ 이어야 함
    • 이 조건을 합집합 호환성(union compatibility)이라 부름
  • 연산 ∪, ∩, - 의 결과 릴레이션은 피연산자 릴레이션$R_1$ 과 동일한 애트리뷰트 이름들을 가짐 (관례적으로)
728x90