Frinee의 코드저장소

관계 데이터 연산

by Frinee
이 글은 김연희 저 - "데이터베이스 개론 3판"을 공부하고 정리하여 작성하였습니다.

 

 

1. 관계 데이터 연산의 개념

  • 관계 데이터 모델에서 연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것
  • 관계 데이터 연산
    • 관계 대수
      • 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술
      • 절차 언어
    • 관계 해석
      • 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술
      • 비절차 언어

 

2. 관계 대수

2.1. 관계 대수의 개념과 연산자

  • 관계 대수는 원하는 결과를 얻기 위해 릴레이션을 처리하는 과정을 순서대로 기술하는 언어
  • 관계 대수에서는 피연산자가 릴레이션
  • 일반 집합 연산자  
    연산자  기호  표현 의미
    교집합 R ∩ S 릴레이션 R과 S의 교집합을 반환
    차집합 R - S 릴레이션 R과 S의 차집합을 반환
    카디션
    프로젝트
    × R x S 릴레이션 R의 각 튜플과 릴레이션 S의 각 튜플을 모두 연결하여 만든 새로운 튜플 반환
    합집합 R ∪ S 릴레이션 R과 S의 합집합을 반환
  • 순수 관계 연산자   
    연산자 기호 표현 의미
    셀렉트 σ $\sigma_{\text{조건}}$(R) 릴레이션 R에서 조건을 만족하는 튜플들을 반환
    프로젝트 π $\pi_{\text{속성리스트}}$(R) 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플들을 반환
    조인 $\Join$ R $\Join$ S 공통 속성을 이용해 릴레이션 R과 S의 튜플들을 연결하여 만든 새로운 튜플들을 반환
    디비전 ÷ R ÷ S 릴레이션 S의 모든 튜플과 관련이 있는 릴레이션 R의 튜플들을 반환

 

2.2. 일반 집합 연산자

  • 집합 연산자를 쓰기 위한 제약 조건
    • 일반 집합 연산자는 연산을 위해 피연산자 2개가 필요함
    • 2개의 릴레이션이 합병 가능해야 함.
      • 두 릴레이션의 차수가 같아야 함.
      • 2개의 릴레이션에서 서로 대응되는 속성의 도메인이 같다
  • 합집합
    • 릴레이션 R에 속하거나 릴레이션 S에 속하는 모든 튜플로 결과 릴레이션을 구성
  • 교집합
    • 릴레이션 R과 릴레이션 S에 공통으로 속하는 튜플로 결과 릴레이션을 구성
  • 차집합
    • 릴레이션 R에는 존재하지만 릴레이션 S에는 존재하지 않는 튜플들로 결과 릴레이션을 구성
  • 카디션 프로덕트
    • 릴레이션 R에 속한 각 튜플과 릴레이션 S에 속한 튜플을 모두 연결하여 만들어진 새로운 튜플로 결과 릴레이션을 구성

2.3. 순수 관계 연산자

  • 릴레이션의 구조와 특성을 이용하는 연산자
  • 셀렉트
    • 릴레이션에서 주어진 조건을 만족하는 튜플만 선택하여 결과 릴레이션을 구성
    • 표기: $\sigma_{\text{조건식}}$(릴레이션)
    • 데이터 언어 형식: 릴레이션 where 조건식
    • 조건식은 비교 연산자를 이용해 구성하는데 이를 비교식 또는 프레디킷(predicate)라 함
    • 교환적 특징을 가짐
    • $\sigma_{\text{조건식1}}(\sigma_{\text{조건식2}}(릴레이션)) = \sigma_{\text{조건식2}}(\sigma_{\text{조건식1}}(릴레이션)) = \sigma_{\text{조건식1∧조건식2}}(릴레이션)$
  • 프로젝트
    • 릴레이션에서 선탟한 속성에 해당하는 값으로 결과 릴레이션을 구성
    • 표기: $\pi_{\text{속성리스트}}$(릴레이션)
    • 데이터 언어 형식: 릴레이션[속성리스트]
  • 조인
    • 조인 속성을 이용해 두 릴레이션을 조합하여 하나의 결과 릴레이션을 구성
    • 표기: 릴레이션1 $\Join$ 릴레이션2
    • 일반적으로 동등 조인의 표기로 사용되며 그 외의 조인은 조금씩 다르게 표기
    • 세타 조인(theta-join)
      • 주어진 조인 조건을 만족하는 두 릴레이션의 모든 튜플을 연결한 새로운 튜플로 결과 릴레이션 구성
      • 표기: 릴레이션1 $\Join_{\text{AθB}}$ 릴레이션2
      • θ(theta)에는 비교연산자가 들어가는데 θ 연산자가 =인 조인이 동등 조인
    • 자연 조인(Natural-join)
      • 동등 조인의 결과 릴레이션에서 조인 속성이 중복되지 않고 한 번만 표현
      • 표기: 릴레이션1 $\Join_{\text{N}}$ 릴레이션2
  • 디비전
    • S의 모든 튜플과 관련 있는 릴레이션 R의 튜플로 결과 릴레이션을 구성
    • 릴레이션 R이 릴레이션 S의 모든 속성을 포함하고 있어야 연산이 가능

2.4. 확장된 관계 대수 연산자

  • 세미 조인($R \ltimes S$ )
    • 릴레이션 S의 조인 속성으로만 구성한 릴레이션을 릴레이션 R에 자연 조인
    • 결과적으로 자연 조인 연산에 참여할 수 있는 튜플만 선택해 결과 릴레이션 구성
    • 세미 조인을 활용하면 검색에 불필요한 속성을 미리 제거하여 비용을 줄일 수 있음
  • 외부 조인($R \Join_{\text{outer}} S$ )
    • 두 릴레이션에 자연 조인 연산을 수행할 때 조인 속성 값이 같은 튜플이 상대 릴레이션에 존재하지 않아 조인 연산에서 제외된 모든 튜플을 결과 릴레이션에 포함
    • 완전 외부 조인을 사용하면 두 릴레이션에 있는 모든 튜플을 릴레이션에 포함시킴

 

3. 관계 해석

  • 관계해석은 처리를 원하는 데이터가 무엇인지만 기술하는 비절차적 언어이고 관계 데이터 연산의 한 종류
  • 데이터를 처리하는 기능과 처리를 요구하는 표현력에서의 능력은 관계 대수와 동일
  • 관계 데이터 모델의 제안자인 코드가 수학의 프레디킷 해석에 기반을 두고 제안
  • 튜플 관계 해석과 도메인 관계 해석으로 분류

 

자료

  • 데이터베이스 개론 3판 (김연희 저, 2024.1)

'[컴퓨터 과학자 스터디] > 데이터베이스' 카테고리의 다른 글

데이터베이스 설계  (2) 2024.11.27
데이터베이스 언어 SQL  (0) 2024.11.25
관계 데이터 모델  (0) 2024.11.21
데이터 모델링  (1) 2024.11.17
데이터베이스 시스템  (1) 2024.11.16

블로그의 정보

프리니의 코드저장소

Frinee

활동하기