본문 바로가기
공부/데이터베이스

6. 관계 데이터 연산 / 02 관계 대수

by 라이티아 2025. 9. 8.

1. 관계 대수의 개념과 연산자

관계 대수

원하는 결과를 얻기 위해 렐레이션을 처리하는 과정을 순서대로 기술하는 언어

연산자들의 집합으로도 정의할 수 있다

 

일반적으로 연산에는 연산자와 함께 대상은 피연산자가 존재한다

관계 대수에서는 릴레이션이 피연산자이다. 즉, 관계 대수는 릴레이션을 연산한다

피연산자인 릴레이션 연산자를 적용해 얻은 결과도 릴레이션이다

 

이러한 관계 대수의 특성을 폐쇄 특성 Colsure Property이라 한다

 

관계 대수에 속하는 대표적인 연산자 8개는 특성에 따라 일반 집합 연산자와 순수 관계 연산자로 분류된다

 

  • 관계 대수 연산자
    • 일반 집합 연산자 Set Operation
      • 합집합
      • 교집합
      • 차집합
      • 카티션 프로덕트
    • 순수 관계 연산자 Relational Operation
      • 셀렉트
      • 프로젝트
      • 조인
      • 디비전

일반 집합 연산자는 릴레이션이 투플의 집합이라는 개념을 이용한다

 

연산자 기호 의미 조건

합집합 두 릴레이션에 속한 모든 튜플
교집합 두 릴레이션에 공통으로 속한 튜플
차집합 한 릴레이션에 속하지만 다른 릴레이션에는 속하지 않은 튜플
카티전 곱 × 두 릴레이션의 튜플을 모두 조합

 

연산자 기호 의미 설명

선택 (Selection) σ (시그마) 조건을 만족하는 튜플만 선택
투영 (Projection) π (파이) 지정한 속성만 추출
합성곱 (Join) 두 릴레이션을 공통 속성을 기준으로 결합
나누기 (Division) ÷ 특정 속성에 대해 모든 값을 만족하는 튜플 추출

 

 

2. 일반 집합 연산자

앞서 꼭 알아두어야 할 제약조건이 있음

  1. 두 릴레이션의 차수가 같다. 즉, 두 릴레이션은 속성 개수가 같다
  2. 2개의 릴레이션에서 서로 대응되는 속성의 도메인이 같다. 단, 도메인이 같으면 속성의 이름은 달라도 된다

다만, 2의 규칙은 정말로 연산의 조건이지 현실적인 의미가 같은지는 고려되지 않는다

 

합집합

합집합 연산을 한 후 얻게 되는 결과 릴레이션의 차수는 피연산자인 렐레이션 R과 S의 차수와 같다

카디널리티 = 투플의 전체 개수는 중복이 없기 때문에 릴레이션 R, S의 투플 개수를 더한 것과 같거나 적어진다

 

합집합에는 교환적 특징이 있다

릴레이션 R, S에 합집합 연산을 수행하면 R∪S, S∪R의 결과 릴레이션은 같다

결합적 특징도 있다

3개든 4개든 어떤 합집합 연산을 우선시 하는가에 관계 없이 결과는 같다

 

교집합

R∩S로 표현한다

 

릴레이션 R, S에 공통적으로 속하는 투플로 결과 릴레이션을 구성한다

 

교집합 연산을 한 후 얻게 되는 결과 릴레이션의 차수는 피연산자인 릴레이션 R과 S의 차수와 같다

카디널리티는 릴레이션 R, S의 어떤 카디널리티보다 크지 않다 = 같거나 적다

 

교환적 특징, 결합적 특징이 있다

 

차집합

R-S로 표현한다

R 릴레이션에는 존재하지만 릴레이션 S에는 존재하지 않는 투플들로 결과 릴레이션을 구성한다

카디널리티는 릴레이션 R이나 S의 카디널리티와 같거나 적다

 

차집합은 피연산자의 순서에 따라 결과 릴레이션이 달라지기 때문에 교환적 특징은 물론 결합적 특징도 없다

 

카디션 프로덕트

R×S

릴레이션 R에 속한 각 투플과 릴레이션 S에 속한 각 투플을 모두 연결하여 만들어진 새로운 투플로 결과 릴레이션을 구성한다

곱연산 처럼 작동한다

 

두 릴레이션이 합병은 불가능한 경우에도 카티션 프로덕트 연산은 가능하다

 

연산 결과의 속성에 각 릴레이션이 어디 소속이였는지 표기한다

두 릴레이션이 같은 속성 이름을 가질 수 있기에 이를 구별하기 위한 방법이다

 

카티션 프로덕트 연산을 한 후 얻게되는 결과 릴레이션의 차수는 피연산자인 R과 S의 차수를 더한것과 같다

카디널리티는 R, S의 카디널리티를 곱한것과 같다

 

교환적 특징, 결합적 특징이 있다

 

3. 순수 관계 연산자

릴레이션의 구조와 특성을 이용하는 연산자임

관계 데이터 모델에서 새로 제시된 것임

 

릴레이션에 저장되어 있는 데이터를 다양하게 처리하는 데 자주 사용되므로, 개념을 이해하고 이를 이용한 질의 표현 방법을 익힐 필요가 있다

 

셀렉트

릴레이션에서 주어진 조건을 만족하는 투플만 선택하여 결과 릴레이션을 구성한다

결과 릴레이션은 주어진 릴레이션을 수평으로 절단한 모양이 된다

수평적 부분집합을 생성한 것과 같다

 

셀렉트 연산은 하나의 릴레이션을 대상으로 수행한다

조건식을 비교식 또는 프레디킷 Predicate라고도 한다

 

조건식을 속성과 상수의 비교나 다른 속성들 간의 비교로 표현할 수 있다

조건식을 속성과 상수의 비교로 구성할때는 상수의 데이터 타입이 속성의 도메인과 일치해야 한다

논리 연산자를 사용해 조건식을 좀 더 복잡하게 구성할 수도 있다

 

릴레이션 where 조건식

 

셀렉트 연산에는 교환적 특징이 있다

 

프로젝트

릴레이션에서 선택한 속성에 해당하는 값으로 결과 릴레이션을 구성한다

결과 릴레이션이 주어진 릴레이션의 일부 열로만 구성되어 해당 릴레이션에서 수직적 부분집합을 생성하는것과 같다

 

릴레이션[속성리스트]

 

프로젝트는 릴레이션의 모든 속성 중 일부분만 선택한다

속성은 릴레이션 열에 해당되므로 프로젝트는 대상 릴레이션의 수직접 부분집합으로 결과 릴레이션을 구성하는 수직적 연산자라고 할 수 있다

 

조인

릴레이션 하나로 원하는 데이터를 얻을 수 없어 관계가 있는 여러 릴레이션을 함께 사용해야 하는 경우 이용

 

조인 속성을 이용해 두 릴레이션을 조합하여 하나의 결과 릴레이션을 구성한다

 

// 조인 속성

두 릴레이션이 공통적으로 가지고 있는 속성, 두 릴레이션이 관계가 있음을 나타낸다

조인 연산한 결과 릴레이션은 피연산자 릴레이션에서 조인 속성의 값이 같은 투플만 연결하여 만든 새로운 투플을 포함한다

 

좀 더 정확히 분류하면 동등 조인임

다른 조인으로 세타 조인이 있음

 

// 세타 조인

주어진 조인 조건을 만족하는 두 릴레이션의 모든 투플을 연결한 새로운 투플로 결과 릴레이션을 구성한다

 

디비전

R÷S는 릴레이션 S의 모든 투플과 관련 있는 릴레이션 R의 투플로 결과 릴레이션을 구성한다

단, 릴레이션 R이 릴레이션 S의 속성을 포함하고 있어야 연산이 가능하다

이는 릴레이션 S의 모든 속성과 도메인이 같은 속성을 릴레이션 R이 포함하고 있어야 한다