관계 데이터 연산
관계 데이터 연산의 개념
- 관계 데이터 모델에서의 연산 : 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행
- 관계 대수 : 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술
- 관계 해석 : 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술
- 질의 : 데이터에 대한 처리 요구
관계 대수
관계 대수의 개념과 연산자
- 피연산자 : 릴레이션, 결과 : 릴레이션 -> 폐쇄 특성 (릴레이션을 연산한다)
일반 집합 연산자
- 제약조건
- 연산을 위해 피연산자가 두 개 필요하다 (두 릴레이션을 연산)
- 합, 교, 차집합은 피연산자인 두 개의 릴레이션이 합병 가능해한다
- 합병 가능
- 두 릴레이션의 차수가 같다. (= 속성 개수가 같다)
- 두 개의 릴레이션에서 서로 대응되는 속성의 도메인이 같다.
도메인이 같으면 속성의 이름은 달라도 된다.
- 합집합 (R∪S)
- 중복되지 않고 한번만 나타난다. (릴레이션의 기본 특징 유지)
- 교집합 (R∩S)
- 차집합 (R-S)
- 카티션 프로덕트 (R×S)
- 튜플을 모두 연결하여 만들어진 새로운 튜플이 연산 결과인 릴레이션
- 합병은 불가능해도 카티션 프로덕트는 가능하다
- 릴레이션이름.속성이름으로 표기
- 차수는 두 릴레이션의 차수 더한 것, 카디널리티는 두 릴레이션의 카디널리티 곱한 것
순수 관계 연산자
- 셀렉트 : σ(조건식)(릴레이션) / 릴레이션 where 조건식
- 주어진 조건을 만족하는 튜플만 선택하여 결과 릴레이션을 구성
- 수평적 부분집합을 생성하는 것과 같다
- 하나의 릴레이션을 대상으로 수행
- 조건식 = 비교식 = 프레디킷 : 비교 연산자를 이용해 구성, 도메인 일치
- 교환적 특징
- 프로젝트 : π(속성리스트)(릴레이션) / 릴레이션[속성리스트]
- 선택한 속성에 해당하는 값으로 결과 릴레이션을 구성
- 수직적 부분집합을 생성
- 조인 : 릴레이션1▷◁릴레이션2
- 두 릴레이션이 공통으로 가지고 있는 속성, 두 릴레이션이 관계가 있음을 나타낸다.
- 조인 속성의 값이 같은 튜플만 연결하여 만들어진 새로운 튜플을 포함
- 세타조인 : 모든 튜플을 연결한 새로운 튜플
- 동일조인 : 세타조인에서 연산자가 '='인 경우의 조인. 속성이 중복되어 나타남
- 디비전 : R ÷ S
- S의 모든 튜플과 관련 있는 R의 튜플로 결과 릴레이션을 구성
확장된 관계 대수 연산자
- 세미 조인
- S의 조인 속성으로만 구성한(프로젝트한) 릴레이션을 R에 자연 조인
- 교환적 특성 없음
- 외부 조인
- 조인 속성 값이 같은 튜플이 상대 릴레이션에 존재하지 않아 조인 연산에서 제외된 모든 튜플을 경과 릴레이션에 포함
- 널 값 처리
관계 해석
📍 조인