[데이터베이스] 데이터베이스개론 CH6
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 연산이 가능하다.
- 교환적 특징이 있다.
- 관계 해석
- 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 언어다.
- 수학의 프레디킷 해석에 기반을 둔다.
- 투플 관계 해석과 도메인 관계 해석으로 분류된다.
- 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 언어다.
[참조] 데이터베이스개론 (저자: 김연희)