[데이터베이스 개론 6장] 관계 데이터 연산

Mh_Go·2021년 1월 11일
0

관계 데이터 연산(relationship data operation)

  • 관계 데이터 모델에서 연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것
    데이터 시스템의 구성 요소 중 데이터 언어의 역할

  • 관계 대수
    원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술 / 절차 언어

  • 관계 해석
    원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술 / 비절차 언어

데이터를 처리하는 기능과 처리를 요구하는 표현력에서 관계 대수와 관계 해석은 능력이 동등
데이터에 대한 처리 요구를 일반적으로 질의(query)라고 한다.

관계 대수와 관계 해석을 공부하는 이유
새로운 데이터 언어가 제안되면 데이터 언어의 유용성 검증의 기준

관계 대수

원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술 (연산자들의 집합)
피연산자가 릴레이션, 즉 관계 대수는 릴레이션을 연산함
폐쇄 특성(closure property) - 릴레이션에 연산자를 적용해 얻은 결과도 릴레이션
대표적인 연산자 8개 존재하며 일반 집합 연산자, 순수 관계 연산자로 구분

일반 집합 연산자

  • 피연산자가 2개가 필요
    합집합, 교집합, 차집합은 2개의 릴레이션이 합병 가능 해야 함 (카티션 프로덕트는 예외)

    릴레이션 합병 가능
    - 두 릴레이션의 차수가 같다
    - 서로 대응되는 속성의 도메인이 같다

합집합(union)

  • R⋃S, 릴레이션 R에 속하거나 릴레이션 S에 속하는 모든 투플의 결과 릴레이션을 구성
    교환적 특징, 결합적 특징

교집합(intersection)

  • R∩S, 릴레이션 R과 S에 공통으로 속하는 투플로 결과 릴레이션을 구성
    교환적 특징, 결합적 특징

차집합(difference)

  • R-S, 릴레이션 R에는 존재하지만 릴레이션 S에는 존재하지 않는 투플들로 결과 릴레이션을 구성
    교환적, 결합적 특징이 없음

카티션 프로덕트(cartesian product)

  • R⨉S, 릴레이션 R과 릴레이션 S에 속한 각각의 투플을 모두 연결하여 결과 릴레이션을 구성
    교환적 특징, 결합적 특징

순수 관계 연산자

  • 릴레이션의 구조와 특성을 이용
    릴레이션에 저장되어 있는 데이터를 다양하게 처리하는 데 자주 사용

셀렉트

  • 릴레이션에서 주어진 조건을 만족하는 투플만 선택하여 결과 릴레이션을 구성, 수평적 연산자

    σ 조건식(릴레이션)

    하나의 릴레이션을 대상으로 수행하며, 조건식은 비교 연산자를 이용해 구성
    조건식을 속성과 상수의 비교나 다른 속성들 간의 비교로 표현 가능 (데이터 타입이나 도메인이 일치해야 함), 교환적 특징

프로젝트

  • 릴레이션에서 선택한 속성에 해당하는 값으로 결과 릴레이션을 구성, 수직적 연산자

    π속성리스트(릴레이션)

    프로젝트 연산을 한 결과는 릴레이션의 모든 속성 중 일부분만 선택으로 볼 수 있음

조인

  • 데이터를 얻기 위해 관계가 있는 여러 릴레이션을 함께 사용해야하는 경우 이용
    조인 속성(join attribute)을 이용해 두 릴레이션을 조합하여 하나의 결과 릴레이션을 구성

    조인 속성 - 두 릴레이션이 공통으로 가지고 있는 속성

    결과 릴레이션은 조인 속성의 값이 같은 투플만 연결하여 만들어짐

    릴레이션1 ⋈ 릴레이션2

    두 릴레이션을 조인하는 이유 - 조건에 맞는 투플을 찾기 위해서

  • 자연 조인(natural join)
    가장 많이 사용되기 때문에 조인이라고 하면 자연 조인을 의미

  • 세타 조인(theta join)
    주어진 조인 조건을 만족하는 두 릴레이션의 모든 투플을 연결

    릴레이션1 ⋈AθB 릴레이션2

    AθB는 조인 조건으로, A는 릴레이션1의 속성이고 B는 릴레이션2의 속성, θ는 비교 연산자
    A와 B는 같은 도메인으로 정의
    θ 연산자가 '='인 세타 조인을 동일 조인(equi-join)이라고 함
    자연 조인과 달리 동일 조인의 결과 릴레이션에는 속성이 중복되어 나타남
    ex) 고객 ⋈고객아이디=주문고객 주문 연산 시, 결과 릴레이션에 고객아이디와 주문고객 둘 다 나타남

디비전(division)

  • R÷S, 릴레이션 S의 모든 투플과 관련 있는 릴레이션 R의 투플로 결과 릴레이션을 구성
    정수의 나눗셈과 유사

확장된 관계 대수 연산자

세미 조인(semi join)

  • R⋉S, 릴레이션 S의 조인 속성으로만 구성한 릴레이션을 릴레이션 R에 자연 조인하는 것
    R에서 자연 조인 연산에 참여할 수 있는 투플만 선택하여 결과 릴레이션을 구성
    검색에 불필요한 속성을 미리 제거하여 조인 연산의 비용을 줄일 수 있다는 장점
    교환 특성이 없음

외부 조인(outer-join)

  • R⋈+S, 자연 조인 연산을 수행할 때 조인 속성 값이 같은 투플이 상대 릴레이션에 존재하지 않아도 포함
    존재하지 않는 값은 널 값으로 처리

관계 해석

  • 원하는 데이터가 무엇인지만 기술하는 비절차 언어, 관계 데이터 연산의 한 종류, 프레디킷 해석에 기반
    투플 관계 해석과 도메인 관계 해석으로 분류

출처 - 김연희저자의 데이터베이스 개론 2판 - 한빛 아카데미

profile
능력있는 DBA가 되고자하는 초짜 DBA

0개의 댓글