Ch06-2.md
관계 대수의 개념과 연산자
개념
원하는 결과를 얻기 위해 릴레이션을 처리하는 과정을 순서대로 기술하는 언어
연산
연산자과 피연산자로 구성
폐쇄특성
관계대수의 연산: 릴레이션
피연산자인 릴레이션에 연산자를 적용해 연산한 결과: 릴레이션
관계 대수 연산자
일반 집합 연산자(set operation)
합집합 (Union)
교집합 (Intersection)
차집합 (Difference)
카디션 프로덕트 (Cartesian Product)
순수 관계 연산자(relational operation)
셀렉트 (Select)
프로젝트 (Project)
조인 (Join)
디비전 (Division)
일반 집합 연산자
수학의 집합 연산자와 비슷
일반 집합 연산자의 제약조건
연산을 위해 피연산자(릴레이션)가 2개 필요하다.
합집합, 교집합, 차집합은 피연산자인 2개의 릴레이션이 합병 가능(union-compatible)해야 한다.
릴레이션의 합병 가능 조건
두 릴레이션의 차수(속성 개수)가 같다.
2개의 릴레이션에서 서로 대응되는 속성의 도메인(데이터 타입)이 같다.
단, 도메인이 같으면 속성의 이름은 달라도 된다.
카디션 프로덕트의 경우 제약조건 2번에 해당하는 합병가능 여부에 상관없이 연산이 가능하다.
합집합(Union)
표현
R U S
연산 결과의 차수 = 피연산자의 차수
연산 결과의 카디널리티 <= 각 튜플의 카디널리티 합
특징
교환적 특징
R U S == S U R
결합적 특징
(R U S) U T == R U (S U T)
교집합(Intersection)
표현
R ∩ S
연산 결과의 차수 = 피연산자의 차수
연산 결과의 카디널리티 <= 피연산자의 카디널리티
특징
교환적 특징
R ∩ S == S ∩ R
차집합(Difference)
표현
R - S
연산 결과의 차수 = 피연산자의 차수
연산 결과의 카디널리티 <= 피연산자의 카디널리티
특징
없음
피연산자의 순서에 따라 결과 릴레이션이 달라지기 때문에 교환적 특성과 결합적 특성 모두 존재하지 않는다
카디션 프로덕트(Cartesian Product)
표현
R X S
위의 결과 릴레이션의 속성은 '릴레이션.속성이름'형식으로 표기되었는데, 이는 각 릴레이션에서 동일한 이름의 번호 속성이 존재하기 때문에 원래 어느 릴레이션 소속인지 나타내기 위한 표기법이다.
연산 결과의 차수 = 각 피연산자의 차수의 합
연산 결과의 카디널리티 = 각 피연산자 카디널리티의 곱
특징
두 릴레이션의 합병이 불가능한 경우에도 카티션 프로덕트 연산은 가능
교환적 특징
R X S == S X R
결합적 특징
(R X S) X T == R X (S X T)
순수 관계 연산자
셀렉트 (Select)
릴레이션에서 주어진 조건을 만족하는 튜플만 선택하여 결과 릴레이션을 구성
표현
릴레이션 where 조건식
ORσ등급=‘gold’(고객)
결과 릴레이션은 수평적 부분집합(horizontal subset)과 같음
조건식
릴레이션의 모든 튜플 중 조건식을 참으로 만드는 일부분의 튜플들만 선택하여 출력
비교 연산자를 이용해 구성
비교식 / 프레디킷(predicate)
상수와 비교: 상수의 데이터 타입이 속성의 도메인과 일치해야 함
다른 속성과 비교: 해당 속성의 도메인이 같아야 비교할 수 있음
비교연산자와 함께 논리 연산자(AND, OR, NOT)를 사용하여 더 복잡한 조건식을 구성할 수 있음
교환적 특징 존재
프로젝트 (Project)
릴레이션에서 선택한 속성에 해당하는 값으로 결과 릴레이션을 구성
표현
𝝿속성리스트(릴레이션)
or릴레이션[속성리스트]
결과 릴레이션은 주어진 일부 열로만 구성되기 때문에 수직적 부분 집합(vertical subset)과 같음
조인 (Join)
분류
자연 조인(natural join)
세타 조인(theta join)
이중조인
세미조인
외부조인
조인의 개념
릴레이션 하나로 원하는 데이터를 얻을 수 없어 관계가 있는 여러 릴레이션을 함께 사용해야하는 경우
조인 속성(join attribute)을 이용해 두 릴레이션을 조합하여 하나의 결과 릴레이션을 구성
조인 속성: 두 릴레이션이 공통으로 가지고 있는 속성
자연조인
표현
릴레이션1 ⋈ 릴레이션2
두 릴레이션을 조인 할 때에는 조인 속성의 값이 같은 튜플만 연결하여 결과 릴레이션을 구성
세타조인
표현
릴레이션1 ⋈(속성[비교연산자]속성) 릴레이션2
비교연산이 가능하도록 같은 도메인의 속성을 비교해야함
동일 조인 (equi join)
조인 조건의 비교 연산자가
=
인 세타 조인
세미조인(semi join)
개념
개념
두 릴레이션에 자연 조인 연산을 수행할 때 조인 속성 값이 같은 튜플이 상대 릴레이션에 존재하지 않아 조인 연산에서 제외된 모든 튜플을 결과 릴레이션에 포함
두 릴레이션에 존재하지 않았던 속성은 널 값으로 처리
디비전 (Division)
개념
릴레이션 S의 모든 튜플과 관련 있는 릴레이션 R의 튜플로 결과 릴레이션 구성
릴레이션 S의 모든 속성과 도메인이 같은 속성을 릴레이션 R이 포함하고 있어야함
표현
Last updated