업데이트:

태그: , ,

카테고리:

REF: fundamentals of database systems 7th edition

Relational Algebra

정의

  • 전체 relation을 조작하는 operation의 집합
    1. set operations(union, intersection, difference, cartesian product)
    2. relational operation(select, project, join)

Relational Operation에 대해 공부해보자.

스크린샷 2022-09-28 오전 2 18 16

스크린샷 2022-09-28 오전 2 13 08


Unary Operation

Select

  • selection condition을 만족하는 tuple만 선택하는 작업
  • 𝛔


  • 표현 : 𝛔<선택조건>...(relation 이름)
  • 선택조건 : 참/거짓 으로만 나타난다.
  • 여러개의 선택 조건을 사용할 수 있다.
    • 𝛔<선택조건><boolean operator><선택조건>...(relation 이름)


  • 부서 4 직원 중 월급이 25000원 이상인 직원이나 부서5 직원 중 월급이 30000이상인 직원 선택
    • 𝛔 <dno == 4 and salary >= 25000> or <dno == 5 and salary> 30000 >(EMP)
  • 특징
    1. ⭐️Unary operations : one operand relation, 1개 relation만 피연산자로 필요
    2. ⭐️Commutative : select 순서가 바뀌어도 동일한 결과
    3. ⭐️독립적 비교 : 각 tuple이 선택조건에 독립적으로 비교
    4. ⭐️결과 tuple의 개수 <= 원본 relation의 tuple 개수


  • ⭐️Selectivity of condition
    • select 작업에의해 tuple이 선택되는 비율
    • query optimization에 사용된다.


  • SQL의 WHERE 절에 대응된다.



Project

  • Select(𝛔)가 row를 선택한다면,
  • ⭐️Project(π)column(속성)을 선택한다.


  • 각 직원의 이름과, 성, 월급을 구하라
    • πLNAME, FNAME, SALARY (EMPLOYEE)


  • 특징
    1. ⭐️Not Commutative : π순서에따라 다른 결과를 가져온다.
    2. ⭐️결과 tuple의 개수 <= 원본 relation의 원래 tuple 개수
      • πSEX, SALARY (EMPLOYEE) -> relation에서는 중복을 표현하지 않음.



Renaming

  • nested operation => multiple expression


  • 소속부서가 5인 직원의 이름, 월급을 출력하라
    • π FNAME, LNAME, SALARY (σ DNO = 5 EMPLOYEE)
      =>
      1. DEP5_EMPS <- σ DNO = 5 EMPLOYEE
      2. RESULT <- π FNAME, LNAME, SALARY (DEPT5_EMPS)


  • ⭐️Renaming attribute
  1. TEMP <- σ DNO = 5 (EMPLOYEE)
  2. R(FIRSTNAME, LASTNAME, SALARY) <- π FNAME, LNAME, SALARY (TEMP)



Set Operation

  • binary operation

Union

  • 부서 5에서 근무하는 직원이나, 부서 5에서 근무하는 직원을 관리하는 직원의 주민번호를 찾아라.
    1. DEPT5_EMP <- (σ DNO = 5 (EMPLOYEE))
    2. RESULT1 <- π SSN (DEPT5_EMP)
    3. RESULT2 <- π SUPERSSN (DEPT5_EMP)
    4. RESULT <- RESULT1 UNION RESULT2


  • ⭐️Union compatibility
    1. ⭐️degree(속성의 갯수)가 같아야한다.
    2. ⭐️대응되는 속성의 domain이 모두 같아야한다.


댓글남기기