[DB] 5. 관계대수, 관계해석

2024. 2. 14. 22:37cs및 소프트스킬/데이터베이스

728x90
반응형
SMALL

1. 관계 데이터 모델에 지원하는 정형적 언어

- 관계대수 / 관계해석

 

 

2. 관계대수

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

- 릴레이션을 처리하기 위해 연산자와 연산 규칙 제공

- 피연산자와 연산 결과가 모두 릴레이션으로 분류

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

 

 

3. 관계대수의 관계 연산자 종류

- 순수 관계 연산자 : Select(δ - 시그마) / Project (π - 파이) / Join(⋈) / Division(÷)

- 일반 집합 연산자 : 합집합(UNION) - ∪ / 교집합(INTERSECTION) - ∩ /

                          차집합(DIFFERENCE) - - / 교차곱(CARTESIAN PRODUCT) - ×

 

 

4. 순수 관계 연산자 각 특징들

- Select(δ - 시그마)

  => 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산

  => 릴레이션의 행에 해당하는 튜플(Tuple)을 구하는 것이므로 수평 연산이라고 함

- Project (π - 파이)

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

  => 릴레이션의 열에 해당하는 속성을 추출하는 것, 수직 연산자라고 함

- Join(⋈) 

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

  => Join 결과 : Cartesian Product(교차곱)을 수행한 후 Select 수행한 것과 같다.

- Division(÷)

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

 

 

 

5. 일반 집합 연산자

- 합집합(UNION) ∪

  => 두 릴레이션에 존재하는 튜플의 합집합을 구하되 결과로 생성된 릴레이션에서 중복되는 튜플은 제거되는 연산

- 교집합(INTERSECTION)  ∩

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

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

- 차집합(DIFFERENCE) - 

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

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

- 교차곱(CARTESIAN PRODUCT) ×

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

  => 교차곱의 디그리(Degree)는 두 릴레이션의 디그리를 더한 것과 같고, 카디널리티(Cardinality)는 두 릴레이션의 카디널리티를 곱한 것과 같다.

 

 

 

6. 관계해석

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

- 관계 데이터 모델의 제안자 : 코드(E, F. Codd)

- 수학의 술어 해석(Predicate Calculus)에 기반을 두고 관계 DB를 위해 제안

- 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 가짐

- 원하는 정보를 정의 시 계산 수식 활

 

 

7. 튜플 관계해석

- 튜플을 기준으로 데이터 조회

- 참조 : https://itwiki.kr/w/%EA%B4%80%EA%B3%84%ED%95%B4%EC%84%9D

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr

 

 

8. 도메인 관계해석

- 속성을 기준으로 데이터 조회

- 참조 : https://itwiki.kr/w/%EA%B4%80%EA%B3%84%ED%95%B4%EC%84%9D

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr

 

 

9. 관계 해석 기호

- ∃: 존재한다(There exist)
- ∈: t가 r에 속함( t ∈ r )
- ∀: 모든 것에 대하여(for all)
- ∪: 합집합

728x90
반응형
LIST