본문 바로가기
  • 실행력이 모든걸 결정한다
DB/DB Concept

Algebraic(대수) Query Language

by 김코더 김주역 2022. 1. 27.
반응형

1. Algebraic Query Language란?

- 원하는 정보를 어떻게 유도하는가를 기술하는 절차적인 질의 언어
- 릴레이션을 처리하기 위한 연산의 집합
- 기존 릴레이션으로부터 새 릴레이션을 구축할 수 있음

 

 

2. Algebraic Query Language의 연산

1) 집합 연산

- 합집합, 교집합, 차집합(-)

- 두 요소는 동일한 attributes set 및 순서를 가지고 있어야 함

 

 

2) projection 연산(ㅠ) - 컬럼 선택 연산

- ㅠL(R) 또는 ㅠA1,A2,...,An(R) 로 표기

- A=Attribute

 

 

3) selection 연산(σ) - 튜플 선택 연산

- σC(R) 로 표기

- C=Condition

 

 

4) Cartesian product 연산(x) - All attributes에 대한 조합, 튜플 쌍에 대한 집합

- R x S 로 표기

 

 

5) Natural Join 연산(⋈) - Common attributes에 대한 조합

- R  S 로 표기

- ㅠL[σC(R x S)] 와 같음

- dangling tuples : Join에 참여하지 못한 튜플들

※ 겹치는 attributes가 없다면 R ⋈ S = R x S -> 선택 조건이 없기 때문에

 

 

6) Theta-Join 연산

- R ⋈C S 로 표기

- σC(R x S) 와 같음

- Cartesian product 연산에 조건(C)를 추가한 것

- Natural Join 연산에 조건(C)를 추가한 것

- Natural Join과 달리, 두 속성값이 같지 않은 경우도 고려될 수 있음

- 중복 컬럼은 제거되지 않음

 

 

7) Renaming 연산(ρ)

- ρs(A1,A2,...)(R) 로 표기

 

 

8) 예시

(1) 일반 응용

 

(2) Query optimizer : 가장 효율적인 연산을 찾음

 

(3) 대입 연산 가능

 

 

 

3. Relational algebra의 제약 조건

- 교집합, 합집합, 차집합 외에도 제약 조건을 걸기 위해 공집합, 부분집합을 사용할 수 있다.

- 참조적 무결성 제약 조건 : 참조 대상이 존재 해야한다는 조건

- Key 제약 조건 : 기본키가 있어야 하며, 두 튜플의 기본키의 값이 같으면 나머지 속성 값들은 동일함

- 추가 조건 : 속성값이 반드시 A 또는 B여야 할 때(Male, Female) 등등..

 

(예시) 한 스튜디오의 사장이 되려면 순 재산이 천만불 이상이어야 함

※ 천만불이 넘었어도 스튜디오의 사장이 아닐 수 있음

 

 

 

4. Bags

1) Bag이란?

- 중복을 허용하며, 순서도 불규칙적임

- multiset 이라고도 함

- 릴레이션이 bag이라면 중복 튜플이 생김

- 중복 제거 연산이 필요 없으니 합집합, projection, selection 연산은 효율적일 수 있다.

 

2) Bag에 대한 집합

- 합집합 : R={2,2,3}과 S={2,3,3}에 대한 합집합 -> {2,2,2,3,3,3}

- 교집합 : {2,2,3}과 {2,3,3}에 대한 교집합 -> {2,3}

- 차집합 : {2,2,3} - {2,3,3} -> {2}

- 이해가 안되면 벤다이어그램을 직접 그려보도록!

- 교집합, 차집합은 Set일 때와 같지만, 합집합은 Set일 때와 다르다. 예) {1,2}와 {1,2}

 

3) Bag에 대한 Projection

- 각 튜플은 독립적으로 처리되기 때문에, 이 과정에서 서로 같은 튜플들이 새로 생겨날 수도 있다.

예) t1={1,2,5}, t2={1,2,7} -> ㅠA,B -> {1,2}, {1,2}

 

4) Bag에 대한 Selection

- Selection 역시 각 튜플이 독립적으로 처리된다.

 

5) Bag에 대한 Product

- 중복을 허용하는 상태로 Product 연산을 수행한다.

 

6) Bag에 대한 Join

- 중복을 허용하는 상태로 Join 연산을 수행한다.

 

 

 

5. Algebra의 확장 연산자

1) 중복 제거 연산자

- δ(R) 로 표기

- Bag을 Set으로 변환함

 

 

2) 확장된 Projection

- 예) ㅠ A,B+C->X (R)

- 위의 예의 경우 컬럼은 A, X로만 표시됨

- 대입 역할

 

 

3) Aggregation(집합체) 연산자

- AVG(평균), SUM, COUNT(튜플 수), MIN, MAX가 있음

 

 

4) Grouping 연산자

- γL(R) 로 표기 -> 예) γ studioName, SUM(length)->lengthSum (Movies)

※ L = grouping attribute + aggregated attributes

- 튜플을 그룹으로 묶어 Aggregation 연산자를 이용하여 통계를 낼 때 사용함

(ex2)

 

5) Sorting 연산자

- τL(R) 로 표기

※ L = 정렬 기준 attributes, 앞에 있을 수록 우선 정렬

 

6) outerjoin 연산자

- 아래와 같은 기호로 표시

- Nature join에 참여하지 못한 dangling 튜플들도 참여함 (Nature join의 결과에 dangling 튜플들을 그대로 추가)

- dangling 튜플들의 값들도 알고 싶을 때 사용함

- ㅗ(NULL)값도 존재하게 됨

- Left outerjoin = Nature join + left dangling tuples, 위 연산자 우측 하단에 L표기

- Right outerjoin = Nature join + right dangling tuples, 위 연산자 기호 우측 하단에 R표기

- Theta-outerjoin : Theta join의 outerjoin 버전으로, 기호 하단에 조건을 작성하는 형태임. NULL일 경우에는 조건을 따지지 않고 그대로 표기

 

반응형

'DB > DB Concept' 카테고리의 다른 글

함수적 종속과 정규화  (0) 2022.01.31
SQL(2) - DDL  (0) 2022.01.30
제약 조건과 트리거  (0) 2022.01.29
SQL(1) - DML  (1) 2022.01.28
E/R Model  (0) 2022.01.26

댓글