출처: https://3months.tistory.com/307 [Deep Play]

4-1/데이터베이스시스템

Chapter2 : Relational Algebra

코딩하는 랄뚜기 2022. 3. 18. 21:55

Relational Algebra

 

Procedural language는 다음과 같은 6개의 operation을 사용한다.

  • select : σ
  • project : ∏
  • union : ⋃
  • set difference : -
  • Cartesian product : ×
  • rename : 𝝆

 


 

Select Operation

 

Notation : σp (r)

여기서 p는 selection predicate라고 불리워진다.

 

※ 예시

 

Query는 instructor relation에서 depth_name이 "Physics"인 tuple을 골라오라는 의미이다.

 

=, ≥, ≤, ≠, >, <과 같은 비교연산자selection predicate에 사용할 수 있다.

 

∧(and), ∨(or), ¬(not)을 이용하여 selection predicate들을 조합할 수 있다.

 

※ 예시

&nbsp;

위의 예시는 instructor relation에서 depth_namePhysics이고 salary가 90,000보다 큰 tuple을 가져오라는 의미이다.

아래 예시는 department relation에서 depth_name building이 같은 tuple을 가져오라는 의미이다.

 


 

Project Operation

Relation에서 속성값을 제거할 때 사용하는 operation이다.

 

※ 예시

위 예시는 instructor relation에서 ID, name, salary 속성을 제외하고 모두 지우라는 의미이다.

 


Cartesian-Product Operation

두 개의 Relation을 합칠 때 사용한다.

연산이 많이 때문에 시간이 오래걸린다.

위 표는 instructor relationteaches relationCartesian-Product 연산을 한 것이다.

주의 할 점은 두 개의 relation에 ID라는 동일한 속성이 있기 때문에 구분을 해줘야 한다는 것이다.

 


Join Operation

JoinCartesian-Productselect을 합친 연산이다.

 

※ 예시

 

Join문자를 사용하고 𝝷는 predicate를 의미한다. 위의 예시는 모두 같은 말이다.

만약 강의 정보와 강사 정보를 한 번에 보고싶다면 위의 연산을 사용하면 될 것이다.

 


Union Operation

Union은 두 개의 relation을 합칠 때 사용한다.

두 개의 relation은 반드시 같은 속성의 개수(same arity)여야 하고 속성들의 domain이 같아야 한다.

 

 

※ 예시

위는 section relation에서 2017년도 여름과 2018년도 가을에 개강한 강의들만 선택해 달라는 의미이다.

 

Set-Intersection Operation(∪)은 Union Operaion의 반대이므로 설명은 생략...

 


 

Set Difference Operation

Set Difference Operation은 한 relation에서 다른 relation에 없는 정보를 추출할 때 사용한다.

Union operation을 할 때 처럼 두 개의 relation은 반드시 같은 속성의 개수(same arity)여야 하고 속성들의 domain이 같아야 한다.

 

 

※ 예시

위 예시는 2017년 가을과 2018년 봄에 개강한 강의 중, 2017년 가을 강의만 선택하겠다는 의미이다.

 


 

The Assignment Operation

Variable← 를 사용하여 expression을 저장할 수 있다.

표를 저장하는 것이 아니라 expression을 저장하는 것이다.

 

※ 예시

 


 

The Rename Operation

Relational-algebra expression으로 나온 결과에는 name이 없다.

따라서 Rename operation을 통하여 이름을 줘야 한다.

 

※ 예시

 


 

Equivalent Queries

 

위 두 개의 Query는 표현이 다르지만(not identical) database에서 같은 값을 가져온다. 이 두 쿼리를 equivalent 하다고 한다.

두 쿼리가 equivalent하더라도 연산 횟수의 차이가 있기 때문에 우리는 더 효율적인 쿼리를 이용해야 한다.

 

연산 횟수

  • Query 1 : 12
  • Query 2 : 12 +3

'4-1 > 데이터베이스시스템' 카테고리의 다른 글

Chapter 2 : Reduction to Relation Schemas  (0) 2022.03.28
Chapter 6 : ER Model  (0) 2022.03.21
Chapter 2 Relation, Key  (1) 2022.03.14