[DB] 관계대수, 관계해석이란?

관계 대수란?

관계 대수는 관계형 데이터베이스에서 원하는 정보를 검색하기 위해 어떻게 유도하는가(how)를 기술하는 절차적인 언어이다. 즉, 관계 대수는 릴레이션을 처리하기 위해 연산자와 연산 규칙을 제공하는 언어로, 피연산자가 릴레이션이고 결과 또한 릴레이션이다. 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다. 대표적으로 순수 관계 연산자와 일반 집합 연산자가 있다.

 

1. 순수 관계 연산자

순수 관계 연산자란 관계 데이터 베이스에 적용할 수 있도록 특별히 개발한 관계 연산자를 말한다. 아래와 같은 연산자들이 존재한다.

 

1) Select

select는 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만든다. 릴레이션의 행에 해당하는 튜플을 구하는 것이므로 수평 연산이라고도 한다.

 

2) Project

project는 주어진 릴레이션에서 속성 List에 제시된 속성만을 추출하는 연산이다. 릴레이션의 열에 해당하는 속성을 추출하는 것이므로 수직 연산자라고도 한다.

 

3) Join

join은 두 개의 릴레이션이 공통으로 가지고 있는 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐 새로운 릴레이션을 만드는 연산이다. 두 개의 릴레이션의 연관된 튜플들을 결합한다. 

 

4) Division

division은 두 개의 릴레이션이 있을 때 하나의 속성(A)이 다른 하나의 속성(B) 값을 모두 가진 튜플에서 B가 가진 속성을 제외한 속성만을 구하는 연산이다.

 

2. 일반 집합 연산자

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

일반 연산 집합자 중 합집합, 교집합, 차집합은 합병조건이 가능해야 한다. 일반 집합 연산자는 아래와 같다.

 

1) Union (합집합)

union은 두 개의 릴레이션의 합이 추출되고, 중복은 제거된다.

 

2) Intersection (교집합)

intersection은 두 개의 릴레이션의 중복되는 값들만 추출한다.

 

3) Difference (차집합)

difference는 한 릴레이션에서 다른 릴레이션에 중복되지 않는 값들만 추출한다.

 

4) Cartesian Product (교차 곱)

Cartesian Product는 두 릴레이션의 가능한 모든 튜플들의 집합, 차수(Degree)는 더하고, 카디널리티(Cardinality)는 곱해서 값을 구한다.

 

* 차수 : 속성의 개수, 카디널리티 : 튜플의 개수

 

관계 해석이란?

관계해석은 원하는 정보가 무엇(What)이라는 것만 정의하는 비절차적 특성을 지닌다. 기본적으로 관계 해석과 관계 대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등하다. 관계 대수로 표현한 식은 관계 해석으로도 표현할 수 있다. 관계 해석은 튜플 관계 해석과 도메인 관계 해석이 있다. 관계 해석은 질의어로 표현한다. 

반응형

댓글

Designed by JB FACTORY