티스토리 뷰

728x90
SMALL

관계 데이터 연산의 개념

관계 데이터 모델에서 연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것으로, 데이터베이스 시스템의 구성 요소 중 데이터 언어의 역할을 한다. 대표적인 관계 데이터 연산으로 관계 대수와 관계 해석이 있다.

관계 대수 : 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어

관계 해석 : 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 비절차 언어

데이터에 대한 처리 요구를 일반적으로 질의(query)라 한다.

관게 대수와 관계 해석은 상용화된 관계 데이터베이스에서는 실제로 사용되지 않는다. 새로운 데이터 언어가 제안되면 해당 데이터 언어의 유용성을 검증해야 하는데 검증의 기준 역할을 하는 것이 관계 대수와 관계 해석이다.

상용화된 데이터 언어를 공부하기 전에 관계 데이터 언어부터 이해하는 것이 도움된다. 

관계 대수

관계 대수는 연산자들의 집합으로도 정의할 수 있다. 일반적으로 연산자와 함께 연산의 대상이 되는 피연산자가 존재하기 마련인데 관계 대수에서는 피연산자가 릴레이션이다. 즉, 관계 대수는 릴레이션을 연산한다. 피연산자인 릴레이션에 연산자를 적용해 얻은 결과도 릴레이션이다. 이러한 관계 대수의 특성을 폐쇄 특성이라 한다.

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

일반 집합 연산자는 릴레이션이 투플의 집합이라는 개념을 이용하는데 이는 수학의 집합 관련 연산자를 차용한 것이다.

합집합, 교집합, 차집합, 카디션 프로덕트

순수 관계 연산자는 릴레이션의 구조와 특성을 이용하는 것으로 관계 데이터 모델에서 새로 제시된 연산자다.

셀렉트 : 릴레이션 R에서 조건을 만족하는 투플들을 반환

프로젝트 : 릴레이션 R에서 주어진 속성들의 값으로만 구성된 투플들을 반환

조인 : 공통 속성을 이용해 릴레이션 R과 S의 투플들을 연결하여 만들어진 새로운 투플들을 반환

디비전 : R/S  릴레이션 S의 모든 투플과 관련이 있는 릴레이션 R의 투플들을 반환

일반 집합 연산자

일반 집합 연산자에는 제약조건이 있다.

1. 일반 집합 연산자는 연산을 위해 피연산자가 2개 필요하다. 즉, 일반 집합 연산자는 2개의 릴레이션을 연산한다.

2. 합집합, 교집합, 차집합은 피연산자인 2개의 릴레이션이 합병 가능해야 한다. 다음 조건을 만족해야 2개의 릴레이션은 합병이 가능하다.

  ㄱ. 두 릴레이션의 차수가 같다. 즉, 두 릴레이션은 속성 개수가 같다.

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

합집합, 교집합, 차집합, 카디션 프로덕트

합병 불가능한 경우에도 카디션 프로덕트는 가능하다.

순수 관계 연산자

셀렉트 : σ조건식(릴레이션)  or 릴레이션 where 조건식

프로젝트 : π속성리스트(릴레이션)  or 릴레이션[속성리스트]

조인 : 릴레이션1 릴레이션2

자연 조인 : 일반적인 조인

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

릴레이션1  A θ B릴레이션2

A는 릴레이션 1의 속성이고 B는 릴레이션2의 속성이다. 그리고 θ는 비교 연산자다.

동일 조인 : 세타 연산자가 =인 세타 조인

동일 조인의 결과 릴레이션에서 중복된 속성을 제거하면 자연 조인의 결과 릴레이션이 된다.

디비전 : R / S 는 릴레이션 R이 릴레이션 S의 모든 속성을 포함하고 있어야 가능하다.

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

관계 대수를 이용한 질의 표현

사용자의 질의가 단순하여 앞서 살펴본 예처럼 한 가지 연산자만으로 표현이 가능한 경우도 있지만 대부분 여러 연산자를 함께 사용해 복잡하게 표현되는 경우가 많다.

확장된 관계 대수 연산자

관계 대수가 처음 발표된 후 기본으로 제공되는 연산자를 확장한 연산자들이 계속 제안되었다. 이중에서 조인 연산을 확장한 세미 조인과 외부 조인을 살펴보자

세미 조인 : R S : 릴레이션 S의 조인 속성으로만 구성한 릴레이션을 릴레이션 R에 자연 조인하는 것이다.

 

외부 조인 : R S : 두 릴레이션에 자연 조인 연산을 수행할 때 조인 속성 값이 같은 투플이 상대 릴레이션에 존재하지 않아 조인 연산에서 제외된 모든 투플을 결과 릴레이션에 포함시킨다.

 

관계 해석

데이터를 처리하는 기능과 처리를 요구하는 표현력에서 관계 대수와 관계 해석은 능력이 모두 동일하다. 실제 사용법은 7장에서 대푲거 비절차 언어인 SQL을 통해 이해하자

728x90
LIST

' > 데이터베이스개론' 카테고리의 다른 글

8. 데이터베이스 설계  (5) 2020.12.06
7. 데이터베이스 언어 SQL  (0) 2020.12.05
5. 관계 데이터 모델  (0) 2020.12.04
4. 데이터 모델링  (0) 2020.12.03
3. 데이터베이스 시스템  (0) 2020.12.02
댓글
공지사항