[Database] - 관계 데이터 연산

오동훈·2021년 3월 23일
0

Database

목록 보기
3/39

1. 관계 데이터 연산이란 🔔

  • 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것.
  • 대표적으로 관계 대수와 관계 해석이 있다.

2. 관계 대수 👨‍🏫

  • 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어(Procedural language)다.
  • 연산자들의 집합으로도 정의할 수 있다.

2.1. 일반 집합 연산자

- 합집합, 교집합, 차집합은 피연산자인 두 릴레이션이 합병 가능해야 함

  • 합병 가능(union-compatible) 조건
    - 두 릴레이션의 차수가 같아야 함
    - 두 릴레이션에서 서로 대응되는 속성의 도메인이 같아야 함
연산자대상기호표현의미
합집합이항R ∪ S릴레이션 R과 S의 합집합을 반환
교집합이항R ∩ S릴레이션 R과 S의 교집합을 반환
차집합이항-R - S릴레이션 R과 S의 차집합을 반환
카티션 프로던트이항xR x S릴레이션 R의 각 투플과 릴레이션 S의
각 투플을 모두 연결하여 만들어진 새로운 투플 반환

2.1.1 합집합

  • 합병 가능한 두 릴레이션 R과 S의 합집합: R∪S
    - 릴레이션 R에 속하거나 릴레이션 S에 속하는 모든 투플로 결과 릴레이션 구성
  • 결과 릴레이션의 특성
    - 차수는 릴레이션 R과 S의 차수와 같음
    - 카디널리티는 릴레이션 R과 S의 카디널리티를 더한 것과 같거나 적어짐
  • 교환적 특징이 있음
    - R∪S = S∪R
  • 결합적 특징이 있음
    - (R∪S)∪T = R∪(S∪T)

정답: 도서A ∪ 도서B

2.2.2 교집합

  • 합병 가능한 두 릴레이션 R과 S의 교집합: R∩S
    - 릴레이션 R과 S에 공통으로 속하는 투플로 결과 릴레이션 구성
  • 결과 릴레이션의 특성
    - 차수는 릴레이션 R과 S의 차수와 같음
    - 카디널리티는 릴레이션 R과 S의 어떤 카디널리티보다 크지 않음
  • 교환적 특징이 있음
    - R∩S = S∩R
  • 결합적 특징이 있음
    - (R∩S)∩T = R∩(S∩T)

    정답: 도서A ∩ 도서B

2.2.3 차집합

  • 합병 가능한 두 릴레이션 R과 S의 차집합: R–S
    - 릴레이션 R에는 존재하지만 릴레이션 S에는 존재하지 않는 투플로 결과 릴레이션 구성
  • 결과 릴레이션의 특성
    - 차수는 릴레이션 R과 S의 차수와 같음
    - R–S의 카디널리티는 릴레이션 R의 카디널리티와 같거나 적음
    - S–R의 카디널리티는 릴레이션 S의 카디널리티와 같거나 적음
  • 교환적, 결합적 특징이 없음

    정답: 도서A - 도서B

2.2.4 카티션 프로던트 x

  • 두 릴레이션 R과 S의 카티션 프로덕트: RS
    - 릴레이션 R에 속한 각 투플과 릴레이션 S에 속한 각 투플을 모두 연결하여 만들어진 새로운 투플로 결과 릴레이션을 구성
  • 결과 릴레이션의 특성
    - 차수는 릴레이션 R과 S의 차수를 더한 것과 같음
    - 카디널리티는 릴레이션 R과 S의 카디널리티를 곱한 것과 같음
  • 교환적 특징이 있음
    - RxS = SxR
  • 결합적 특징이 있음
    - (RxS)xT = Rx(SxT)


2.2 순수 관계 연산자

연산자대상기호표현의미
셀렉트단항σσ조건(R)릴레이션 R에서 조건을 만족하는 투플들을 반환
프로젝트단항ππ속성리스트(R)릴레이션 R에서 주어진 속성들의 값으로만 구성된 투플들을 반환
조인이항R ⋈ S공통 속성을 이용해 릴레이션 R과 S의 투플들을 연결하여 만들어진
새로운 투플들을 반환
디비전이항÷R ÷ S릴레이션 S의 모든 투플과 관련이 있는 릴레이션 R의 투플들을 반환

2.2.1 셀렉트 σ

  • 릴레이션에서 조건을 만족하는 투플만 선택하여 결과 릴레이션을 구성
  • 하나의 릴레이션을 대상으로 연산을 수행
  • 조건의 교환법칙이 성립됨

1. 다음과 같은 문제가 있을 때, 안에 들어갈 조건을 구해본다면?

정답: σ(가격<=8000) (도서)

2. 가격이 8,000원 이하이고, 도서번호가 3 이상인 책을 찾아 보라면 조건이 어떻게 들어가야 될까?

정답: σ(가격<=8000 ∧ 도서번호 >=3) (도서)

2.2.2 프로젝트 π

  • 릴레이션에서 선택한 속성의 값으로 결과 릴레이션을 구성
  • 하나의 릴레이션을 대상으로 연산을 수행

1. 다음과 같은 문제가 있을 때, 안에 들어갈 조건을 구해본다면?

정답: 𝜋이름, 주소, 핸드폰(고객)

2.2.3 조인 ⋈

  • 두 릴레이션의 공통 속성을 기준으로 속성 값이 같은 투플을 수평으로 결합하는 연산
  • 조인을 수행하기 위해서는 두 릴레이션의 조인에 참여하는 속성이 서로 동일한 도메인으로 구성되어야 함
  • 조인 연산의 결과는 공통 속성의 속성 값이 동일한 투플만을 반환함

형식: R C S = σc (R×S) (R과 S는 릴레이션, c 는 조인조건)

조인 연산의 구분
– 기본연산: 세타조인( ⋈𝜃 ), 동등조인(⋈), 자연조인( ⋈𝑁 )
– 확장된 조인 연산: 세미조인( ), 외부조인( )

2.2.4 디비전 ÷

  • 릴레이션2의 모든 투플과 관련이 있는 릴레이션1의 투플로 결과 릴레이션을 구성
    - 단, 릴레이션1이 릴레이션2의 모든 속성을 포함하고 있어야 연산이 가능함
    ===> 도메인이 같아야 한다는 의미

3. 관계 해석 📚

  • 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 비절차 언어(Nonprocedural language)다.
profile
삽질의 기록들🐥

0개의 댓글