티스토리 뷰

안녕하세요 강정호입니다. 오늘은 데이터베이스의 관계 대수(Relational Algebra)와 관계 논리(Relational Calculus)에 대해 공부해 볼게요.


오늘 공부할 내용은 다음과 같습니다.

- 단항 관계 연산

- 집합 이론을 기반한 관계 대수 연산

- 이항 관계 연산



단항 관계 연산


관계대수란?(Relational Algebra)

관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술한 절차적 정형언어


관계해석이란?(Relational Calculus)

튜플관계 해석과 도메인 관계 해석을 하는 비절차적 언어.



단항 연산 : SELECT, PROJECT


1. SELECT

- 릴레이션에서 주어진 조건을 만족하는 튜플을 선택하는 연산자.

- 결과 릴레이션의 차수 = 입력 릴레이션의 차수.

- 결과 릴레이션의 Cardinality <=원래 릴레이션의 Cardinality.

*Cardinality란? 튜플의 수를 뜻한다.

*Cardinality에 대한 링크

- 하나의 입력 릴레이션에 적용되므로 단항 연산자.


2. PROJECT

- 릴레이션에서 Attribute 리스트에 제시된 Attribute만을 추출하는 연산자.

- 한 릴레이션의 Attribute들의 부분집합

- 하나의 입력 릴레이션에 적용되므로 단항 연산자.

- **PROJECT 연산을 하면 중복이 제거 된다 --> PROJECT 연산의 결과는 중복이 제거된 distinctive한 튜플이다.




집합 연산 : UNION, INTERSECT, DIFFERENCE, CARTESIAN


1. 합집합(Union)

- 이항 연산으로 관계성이 있는 두개의 릴레이션을 합집합 하여 하나의 릴레이션을 만들어내는 연산.

- 즉 테이블을 합해서 추출


2. 교집합(Intersect)

- 이항 연산으로 관계성이 있는 두개의 릴레이션에서 중복되어 있는 내용을 선택하여 새로운 릴레이션을 만들어 내는 연산.

- 즉 겹치는 부분을 추출


3. 차집합(Difference)

- 이항 연산으로 관계성이 있는 두개의 릴레이션이 있을 때 그 중 하나의 릴레이션에서 또 다른 릴레이션의 내용과 겹치는 내용을 제거해서 새로운 릴레이션을 생성하는 연산.

- 즉, 중복된거 제거하고 결과값 추출


4. 카티션 프로덕트(Cartesian Product)

- 이항 연산으로 두 릴레이션의 현재 튜플로 구성 가능한 모든 조합 만듬. 

- 결과 릴레이션의 차수 = R의 차수 + S의 차수

- 결과 릴레이션의 카디널리티 = R의 카디널리티 * S의 카디널리티


단항 연산자, 집합 연산자 예시


 

종류

설명

합집합

<기준>

차집합(DIFFERENCE)

두 릴레이션의 차집합(difference)은 첫 번째 릴레이션에는   나타나지만 두 번째 릴레이션에는 나타나지 않는 투플들을  포함하는 세 번째 릴레이션이 된다.

두 릴레이션은 합병 가능 해야 한다

교집합(INTERSECTION)

두 릴레이션의 교집합(intersection)은 첫 번째와 두 번째   릴레이션에 모두 나타나는 투플들을 포함하는 세 번째 릴레이션이 된다. 여기서도 릴레이션들은 합병 가능해야 한다.

프로덕트(PRODUCT)

  • 두 릴레이션의 프로덕트(product,카티젼 프로덕트,cartesian product)는 첫 번째 릴레이션의 각 투플을 두 번째 릴레이션의 각 투플과 접속(concatenation)시킨 것이다.
  • m 투플을 갖는 릴레이션 A와 n 투플을 갖는 릴레이션 B의 프로덕트는 m × n 개의 투플을 갖게 된다.

   프로덕트는 A × B 또는 A TIMES B라고 표시한다.

프로젝션(PROJECTION)

프로젝션(projection)은 한 릴레이션에서 지정된 속성들을 선택하는 연산이다. 프로젝션의 결과는 선택된 속성을 포함하는 새로운 릴레이션이 된다.

즉, 프로젝션은 주어진 릴레이션에서 열들을 선택해낸다.

   그림 9-17    STUDENT 릴레이션의 프로젝션:

셀렉션(SELECTION)

  • 셀렉션(selection) 연산자는 릴레이션의 수평 부분 집합(행의 부분집합)을 만든다.
  •   셀렉션은 릴레이션 이름, 키워드 WHERE, 속성이 포함된 조건의 순으로 표시된다.
  •    그림 9-18  관계 대수의 셀렉션의 예:


오늘은 데이터베이스의 관계 대수에 대해 알아보았습니다.

다음 시간에는 JOIN 연산에 대해 다뤄 볼게요.

댓글