디지털 너구리 : 게임, IT 정보 및 다양한 지식 공유드립니다.

안녕하세요 엘빈입니다. 데이터 베이스를 다루는 데에는 쿼리 언어를 사용합니다. 이 쿼리 언어중 관계를 설계할 때 가장 많이 사용되는 것은 관계 대수(Relational Algebra)라는 것인데요. 이번 포스팅에서는 관게 대수에 대해서 알아보겠습니다.

 

 

 


Relational Algebra

 

데이터 베이스의 관계를 좀 더 편하게 표현하기 위한 기호를 맗나다. 관계 대수는 절차적 언어에 속하며 6개의 연산자 기호가 있다.

 

이 연산자들은 하나 또는 두개의 관계를 입력받아 결과적으로 새로운 관계를 생성합니다.

 

 

 

 

 

1. Selection 연산자

 

Selection의 정의는 이렇습니다.  p를 Selection의 조건이라고 생각하시면 쉽습니다. p는 seleciton predicate라고 불리며 p의 조건식에는 다음의 기호들을 사용할 수 있습니다.

위의 연산자는 다른 곳에서 쓰이는 기능과 똑같습니다. and는 두 조건 모두 만족해야 참이고 or은 둘 중 하나만 만족시키면 참, not은 해당 조건식의 조건을 반대로 바꾸는 역할을 합니다.

 

 

Selection의 예시 입니다. Relation r이 있을때 Selection의 조건은 A와 B가 같아야 하며 D의 값은 5보다 커야 합니다. 해당 조건을 모두 만족한 튜플들이 재구성되 새로운 릴레이션을 만듭니다.

 

 

 

 

2. Project 연산자

 

Project 연산자는 조건에 명시되는 애트리뷰트(attribute)의 튜플들을 뽑아내는 연산자 입니다. A1,A2는 뽑아내야할 애트리뷰트를 의미하며 옆에 괄호 안에 r은 대상이 되는 릴레이션을 뜻합니다.

 

애트리튜브 A,B,C로 구성된 릴레이션 r이 있을때 위와 같은 조건으로 프로젝트 연산자를 수행 시 A,C 애트리뷰트만 뽑아냅니다. 모든 릴레이션은 중복을 없앱니다.

 

 

 

 

3. Union

 

유니온은 같은 에트리뷰트를 가진 관계 r,s에서 튜플들을 합치는 연산자입니다. 튜플이 겹칠 경우 연산자 결과로 한개만 표시합니다.

 

릴레이션 r과 s가 존재할 때 동일한 애트리뷰트가 있다는 가정하에 두개 릴레이션의 튜플들을 합칩니다. 동일한 튜플인 {알파,2}(기호가 안나오네요 ㅠ)는 하나로 표현한 것을 알 수 있습니다.

 

 

 

4. Set Difference Operation

 

Difference Operation은 쉽게 말해 빼기라고 생각하시면 됩니다. 릴레이션 r에서 릴레이션 s와 교집합인 부분을 모두 제거한다는 뜻이죠.

 

r과 s 릴레이션 두개가 있을 때 r-s 연산자를 수행하면 교집합인 {알파,2}가 제외되어 결과로 나온것을 볼 수 있습니다.

 

 

 

5. Cartesian-Product Operation

 

Cartesian-Product 연산자는 두개의 릴레이션을 합치는 연산자 입니다. 합칠때도 각 릴레이션의 모든 튜플이 반영되도록 하기 때문에 릴레이션의 규모가 엄청나게 커집니다.

 

애트리뷰트가 다른 두개의 릴레이션 r,s가 있고 rxs를 수행한 결과로 모든 튜플들이 반영되어 규모가 커진 릴레이션이 결과값으로 나옵니다. 조합법은 {알파,1}과 s 릴레이션의 4개의 튜플을 조합하고 {베타,2}와 s 릴레이션의 4개의 튜플을 조합하면 총 8개의 튜플쌍이 나온다.

 

 

 

# Composition of Operation

 

지금까지 배운 관계 대수 5개중 2개이상 조합되었을때 Composition of Operation라고 표현합니다. 해당 문제들은 주어진 관계 대수 순서대로 데이터 베이스를 뽑으면 됩니다.

 

 

 

6. Rename Operation

 

E의 릴레이션 결과값을 x라는 이름으로 바꾼다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band