정보처리기사

★ 026 논리 데이터베이스 설계[관계대수 및 관계해석]

로춘남 2020. 6. 4. 23:00
728x90

1. 관계대수의 개요

- 관계대수는 관계형 DB에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 절차적인 언어

- 관계대수는 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어로, 피연산자가 릴레이션이고, 결과도 릴레이션

- 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시

- 관계 DB에 적용하기 위해 특별히 개발한 순수 관계 연산자와 수학적 집합 이론에서 사용하는 일반 집합 연산자가 있음

1) 순수 관계 연산자: Select, Project, Join, Division

2) 일반 집합 연산자: UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱)

 

2. Select

- 릴레이션에 존재하는 튜플 중 선택 조건을 만족하는 튜플의 부분집합을 구해 새로운 릴레이션을 생성하는 연산

- 릴레이션의 행에 해당하는 튜플을 구하는 것이기 때문에 수평 연산이라고도함

- 연산자 기호 : σ(시그마)

- 표기 형식 : σ<조건>(릴레이션명)

- 조건에는 등호, 부등호 등의 기호를 사용한 비교 연산이 허용되며, 논리 연산자를 사용하여 여러 개의 조건들을 하나의 조건으로 결합시킬 수도 있음.

3. Project

- 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산

- 단, 연산 결과에 중복이 발생하면 중복이 제거

- 릴레이션의 열에 해당하는 튜플을 구하는 것이므로 수직 연산이라고도함

- 연산자 기호 : π(파이)

- 표기 형식 : π<속성리스트>(릴레이션명)

4. Join

- 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐 새로운 릴레이션을 만드는 연산

- Join 결과로 만들어진 릴레이션 차수는 조인된 두 릴레이션 차수를 합한 것과 같다.

- Join 결과는 교차곱 수행 후 Select를 수행한 것과 같다.

- 연산자 기호 :

- 표기 형식 : 릴레이션R⋈<키속성r=키속성s>릴레이션S

5. Division

- X⊃Y인 두 개의 릴레이션 R(x)와 S(y)가 있을 때, R의 속성이 S의 속성 값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산

- 연산자 기호 : ÷ (시그마)

- 표기 형식 : 릴레이션R[속성r÷속성s]릴레이션S

 

6. 일반 집합 연산자

일반 집합 연산자는 수학적 집합 이론에서 사용하는 연산자로, 릴레이션 연산에도 적용

합집합,

(UNION)

두 릴레이션에 존재하는 튜플의 합집합을 구하되, 중복 튜플은 제거

합집합의 카디널리티는 두 릴레이션 카디널리티의 합보다 크지 않다

교집합,

(INTERSECTION)

두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산

교집합의 카디널리티는 두 릴레이션 중 카디널리티가 적은 릴레이션의 카디널리티보다 크지 않다

차집함, -

(DIFFERENCE)

두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산

차집합의 카디널리티는 리렐이션 R의 카디널리티보다 크지 않다.

교차곱, x

(CARTESIAN PRODUCT)

두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산

교차곱은 두 릴레이션의 카디널리티를 곱한 것과 같다

7. 관계 해석(Relational Calculus)

- 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때 계산 수식을 사용

- 원하는 정보가 무엇인지 정의하는 비절차적 특성

- 튜플 관계해석과 도메인 관계 해석이 있다.

- 기본적으로 관계해석과 관계대수는 관계 DB를 처리하는 기능과 능력면에서 동등하며, 관계대수로 표현한 식은 관계해석으로 표현할 수 있다.

- 질의어로 표현

728x90