The Relational Algebra and Relational Calculus(관계 대수 및 관계 해석)

2020. 10. 27. 12:03데이터베이스/이론

Relational Data Operation

데이터 베이스에서 원하는 데이터를 얻기위해 필요한 query문을 실행하는 것이다. 즉 데이터 언어이며 데이터 언어에는 아래와 같은 두가지가 있다. 

 

관계 대수: 절차식 언어 원하는 데이터를 얻기위해 데이터 처리를 순서대로 기술한다. 주로 얻고자 하는 정보와 그 정보를 어떻게 유도하였는가를 나타낸다.

관계 해석: 비절차식 언어, 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지 기술한다.(도메인 관계, 튜플 관계를 해석) 

 

 

위의 방법들을 사용해서 원하는 데이터를 쉽고 빠르게 얻을 수 있으며 모든 query를 만들 수 있다.

 

 

Relational Algebra

  1. Relation을 다루는 연산이다. query문을 사용한다. 
  2. 절차식 언어이다. 
  3. 간단하며 명시적 표현을 사용한다. 
  4. 폐쇄특성을 가진다. 

할수있는 연산은 총 8개로 집합 연산 4개 단항 관계 연산 4개가 있다. 

 

집합 연산자

수학의 집합연산으로 쉽게 표기하여 사용한다. 사용하기 위해선 필요한 조건들도 있는데 필드와 속성 수가 같고 도메인의 순서또한 동일해야한다. 

 

Union   R ∪ S R과 S의 합집합
Intersection R ∩ S R과 S의 교집합
Difference  - R - S R과 S의 차집합
Cartesian Product x R x S R과 S의 각 튜플 연결 

 

Union

 

결과 사이즈 차수  특징
|R ∪ S| <= |R| + |S| R과 S의 차수가 같다  교환/결합법칙 성립

 

Intersection

 

 

결과 사이즈 차수 특징
|R ∩ S| <= MIN{|R|, |S|} R과 S가 차수가 같다 교환/결합법칙 성립

 

Difference

Cartesian Product Operation

결과 사이즈 차수 특징
|R - S| <= |R| R과 S가 차수가 같다 교환/결합법칙 불가

 

Cartesian Product

Cartesian Product

결과 사이즈 차수 특징
|R*S| <= |R| * |S| R과 S가 차수를 더한 값 교환/결합법칙 성립

 

 

단항 관계 연산자

단항 관계 연산자의 경우에는 Relataion의구조와 특성을 이용하는 연산입니다. 위와 다른 집합 연산과 달리 다양한 기호를 사용해서 표시합니다. 

 

연산자 기호 표현 의미
Selection σ σ조건(R) 조건을 만족하는 튜플을 반환
Projection π π칼럼(R) R에서 주어진 Column으로만 구성된 tuples 반환
Join R ⊳⊲ S R과 S의 특정 column을 비교하여 조건에 알맞는 컴포넌트가 있다면 그 컴포넌트들을  tuple로 반환
Division ÷ R ÷ S 릴레이션 S의 모든 tuple과 관련이 있는 릴레이션 R의 tuple반환

 

Selection

조건을 지정하여 원하는 튜플을 가져온다. 아래 튜플의 경우 suburb가 Bundoora인 tuple만 가져왔다. 

 

Projection 

Projection의 경우 Name과 Dept로 지정된 칼럼만을 가져옵니다. 

Join

두 칼럼을 비교해서 조건이 일치하다면 데이터를 반환하는 연산이다. 

 

Join에도 여러가지 종류가 있는데

Equi 조인 세타 연산자가 =일때 Equi 조인이라고한다. 
Natural 조인 Relation 하나만으로 원하는 데이터를 얻지못해서 여러 Relation을 참조할때 Natural 조인이라고 한다. 
theta 조인 세타(조건)을 부여해서 만족하는 튜플가져온다. 

 

Division Operation

Division 연산을 실행해서 BCS와 MCS를 둘다 들고 있는 Database가 반환되었습니다. 단순히 뒤에 값으로 나누기 형식으로 만족을 하는 데이터를 반환하면 됩니다. 

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

Database Index  (0) 2021.01.03
DB Transaction  (0) 2020.12.05
6장 Basic SQL  (0) 2020.10.07
Database System Concepts and Architecture  (0) 2020.09.10