Chapter 6 관계 데이터 연산

  • 관계 데이터 연산의 개념

    • 관계 대수
      • 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어
    • 관계 해석
      • 원하는 결과를 얻기 위해 처리하는 데이터가 무엇인지만 기술하는 비절차 언어

  • 관계 대수

    • 릴레이션을 연산한다.
    • 폐쇄 특성(=closure property)
    • 관계 대수 연산자
      • 알반 집합 연산자 : 릴레이션이 투플의 집합이라는 개념을 이용한다.
        • 합집합(∪)
        • 교집합(∩)
        • 차집합(-)
        • 카티션 프로덕트(X)
      • 순수 관계 연산자
        • 셀렉트(σ)
        • 프로젝트(π)
        • 조인(⋈)
        • 디비전(÷)

  • 일반 집합 연산자
    • 피연산자 2개가 필요하다
    • 피연산자인 2개의 릴레이션이 합병 가능해야한다.
      • 두 릴레이션의 차수(=속성 개수)가 같아야한다.
      • 두 릴레이션에서 서로 대응되는 속성의 도메인(ex. CHAR())이 같다. (도메인이 같으면 속성의 이름은 달라도 된다.)

    a. 합집합

    • 합병이 가능한 두 릴레이션 R과 S의 합집합은 R∪S로 표현된다.
    • 중복 투플이 존재할 수 없다.
    • 교환적 특징이 있다. R∪S와 S∪R이 같다.

    b. 교집합

    • 합병이 가능한 두 릴레이션 R과 S의 교집합은 R∩S로 표현된다.
    • 교환적 특징이 있다.

    c. 차집합

    • 합병이 가능한 두 릴레이션 R과 S의 차집합은 R-S로 표현된다.
    • 교환적 특징도, 결합적 특징도 없다.

    d. 카티션 프로덕트

    • R X S로 표현된다.
    • 두 릴레이션이 합병 불가능한 경우에도 카티션 프로덕트 연산은 가능하다.
    • 교환적 특징이 있다.

  • 순수 관계 연산자
    • 릴레이션의 구조와 특성을 이용하는 연산자이다.

    a. 셀렉트

    • 릴레이션에서 주어진 조건을 만족하는 투플만 선택하여 결과 릴레이션을 구성한다.
    • 결과 릴레이션은 주어진 릴레이션을 수평으로 절단한 모양이 된다.
    • 비교 연산자와 논리 연산자로 조건식을 좀 더 복잡하게 구성할 수 있다.
    • 논리 연산자 ∧(and), ∨(or), ¬(not)
    • where문을 이용해 일반적인 데이터 언어의 형식으로도 표현할 수 있다. (릴레이션 where 조건식)
    • ex1. σ등급 = ‘gold’(고객) or 고객 where 등급=’gold’
    • ex2. σ등급 = ‘gold’ ∧ 적립금 >= 2000 (고객)

    b. 프로젝트

    • 릴레이션에서 선택한 속성에 해당하는 값으로 결과 릴레이션을 구성한다.
    • 결과 릴레이션은 해당 릴레이션에서 수직적 부분집합을 생성하는 것과 같다.
    • 데이터 언어의 형식으로 릴레이션[속성리스트] 이렇게 표현한다.
    • ex1. π고객이름,등급,적립금(고객) or 고객[고객이름,등급,적립금]
    • ex2. π등급(고객) or 고객[등급]

    c. 조인

    • 릴레이션 하나로 원하는 데이터를 얻을 수 없어 관계가 있는 여러 릴레이션을 함께 사용해야하는 경우 조인 연산을 이용한다.
    • 릴레이션1 ⋈ 릴레이션2
      • 세타 조인 : 주어진 조인 조건을 만족하는 두 릴레이션의 모든 투플을 연결한 새로운 투플로 결과 릴레이션을 구성한다.

    d. 디비전

    • R÷S는 릴레이션 S의 모든 투플과 관련 있는 릴레이션 R의 투플로 결과 릴레이션을 구성한다.
    • 단, 릴레이션 R이 릴레이션 S의 모든 속성을 포함하고 있어야 R÷S 연산이 가능하다.
    • 교환적 특징이 있다.

  • 관계 해석
    • 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 언어다.
      • 수학의 프레디킷 해석에 기반을 둔다.
      • 투플 관계 해석과 도메인 관계 해석으로 분류된다.

[참조] 데이터베이스개론 (저자: 김연희)