1. 관계대수의 개념

- 관계형 DB에서 원하는 정보와 그 정보를 유도하는 방법을 기술하는 절차적 언어

- 하나 또는 두 개의 릴레이션을 입력으로 받아들여 결과로 새 릴레이션 생성하는 연산들의 집합

- 기본 연산 / 집합 연산 등

 

2. 순수 관계 연산자

- 조건에서는 비교 연산 허용 ➁∟(NOT) (AND) (OR) 논리 연산 허용

1) SELECT

- 릴레이션에 존재하는 튜플들 중 특정 조건을 만족하는 튜플들의 부분집합을 구하여 새 릴레이션 생성

- 수평 연산 : 릴레이션의 행에 해당하는 튜플을 구함

- 표기 형식 : 시그마 σ 

2) PROJECT

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

- 연산 결과에 중복 발생 시 중복 제거

- 수직 연산 : 릴레이션에서 열에 해당하는 속성을 추출하는 것

- 표기 형식 : 파이 π 

3) JOIN

- 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐서 새로운 릴레이션 생성

- JOIN 연산의 결과로 만들어진 릴레이션의 차수 = 두 릴레이션 차수의 합

- JOIN의 연산 결과 = CARTENSIAN PRODUCT(교차곱) 연산 후 SELECT 연산 수행한 결과

- 표시 형식 : ▷◁     

- 세타 조인(θ-JOIN) : 비교 연산자를 θ로 일반화 하여 θ로 표현될 수 있는 조인

- 동일 조인(Equi JOIN) : θ‘=’인 동일 조인

- JOIN 조건이 = EO 동일 속성이 2번 나타나게 됨 (이름 = 이름 중복되는 속성 도메인 값..) 자연 조인 : 중복된 속성의 제거하여 같은 속성 1번만 나오게 하는 연산

4) DIVISION

두 릴레이션 사이에 서로 관계가 있는 속성들을 추출하되, 앞 릴레이션 속성에서 뒤 릴레이션 속성을 뺀 나머지 속성 값을 추출하여 새 릴레이션 생성

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

R의 속성 r S의 속성 s 그리고 r = s


3. 일반 집합 연산자

- 합병 조건 : 합병하려는 두 릴레이션 간에 속성의 수가 같고, 대응되는 속성별로 도메인이 같아야 함

연산자

기능 및 수학적 표현

카디널리티

합집합

UNION

중복되는 튜플은 제거됨

- RS ={t | tR tS}

|RS| |R| + |S|

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

교집합

INTERSECTION

- RS ={t | tR tS}

|RS| Min{|R|,|S|}

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

차집합

DIFFERNCE -

- R-S ={t | tR tS}

|R-S| |R|

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

교차곱

CARTENSIAN

PRODUCT ×

두 릴레이션에 존재하는 튜플들의 결합된 정보를 구하는 연산

R×S ={rs| rR sS}

|R×S| = |R| * |S|

카티시언 프로덕트의 카디널리티는 두 릴레이션의 카디널리티를 곱한 것과 같다.

(모든 속성들 사이의 속성 값들을 각각 다 곱하는 거 같더라)

 

4. 관계 해석

- 관계 데이터 모델의 제안자인 코드(E. F Codd)가 수학의 술어해석에 기반을 두고 제안

- 관계 데이터의 연산을 표현하는 방법

- 원하는 정보를 정의할 때는 계산 수식을 사용

- 원하는 정보가 무엇이라는 것만 정의하는 비절차적 언어

- 튜플 관계 해석 / 도메인 관계 해석

- 관계 해석과 관계 대수는 관계 DB 처리 기능과 능력 면에서 동등

- 관계 대수로 표현한 식은 관계 해석으로 표현 가능

- 질의어로 표현

+ Recent posts