개발자꿈나무

관계대수 및 관계해석 본문

CS/데이터베이스론

관계대수 및 관계해석

망재이 2024. 2. 29. 14:25
관계대수의 개요

 

  • 관계대수는 관계형 데이터베이스에 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적 언어
  • 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어로 피연산자가 릴레이션이고, 결과도 릴레이션
  • 관계 데이터베이스에 적용하기 위해 특별히 개발한 순수 관계 연산자와 수학적 집합 이론에서 사용하는 일반 집합 연산자 존재

 

 

 

 

일반 집합 연산자

 

- 수학적 집합 이론에서 사용하는 연산자로서 릴레이션 연산에도 그대로 적용할 수 있음

- 단, 카티션 프로덕트를 제외한 합집합, 교집합, 차집합 연산은 합병 조건을 만족해야 함

 

* 합병 조건 : 합병하려는 두 릴레이션의 차수가 같고, 대응 애트리뷰트 별 도메인이 같아야 함

 

  • 합집합 (UNION = ∪)
    - 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거되는 연산
    - |R ∪ S| <= |R| + |S| (합집합의 카디널리티는 두 릴레이션 카디널리티의 합보다 크지 않음)
  • 교집합 (INTERSECTION = ∩)
    - 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
    - |R ∩ S| <= MIN {|R|, |S|} (교집합의 카디널리티는 두 릴레이션 중 카디널리티가 적은 릴레이션의 카디널리티보다 크지 않음)
  • 차집합 (DIFFERENCE = -)
    - 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
    - |R - S| <= |R| (차집합의 카디널리티는 릴레이션 R의 카디널리티보다 크지 않음)
  • 교차곱 (CARTESIAN PRODUCT = X)
    - 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
    - |R X S| = |R| X |S| (교차곱의 디그리는 두 릴레이션의 디그리를 더한 것과 같고, 카디널리티는 두 릴레이션의 카디널리티를 곱한 것과 같음)

 

 

 

 

순수 관계 연산자

 

- 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자

 

  • Select (σ)
    - 선택 조건을 만족하는 릴레이션의 수평적 부분 집합
σ <선택조건> (릴레이션)

 

  • Project (π)
    - 수직적 부분 집합으로 중복된 투플은 제거
π <선택조건> (릴레이션)

 

  • Join (⋈)
    - 두 관계로부터 관련된 투플들을 하나의 투플로 결합하는 연산

  • Division (÷)
    - 동시에 포함하는 속성으로 나누어지는 R의 차수는 (M+N)이고 나누는 릴레이션 S의 차수가 N일 때, 이 디비전의 결과릴레이션의 차수는 M

 

728x90

'CS > 데이터베이스론' 카테고리의 다른 글

병렬 데이터베이스 분할 기법  (0) 2024.03.07
관계 데이터 모델  (2) 2024.02.29
데이터베이스 시스템  (0) 2024.02.25
데이터베이스 관리 시스템 (DBMS)  (2) 2024.02.25
데이터베이스 개요  (0) 2024.02.12