관계 데이터 연산(Relational data operation)
- 관계 데이터 모델을 대상으로 원하는 데이터를 얻기 위해 연산 수행
- 관계 대수: 원하는 결과를 얻기 위해 데이터 처리 과정을 순서대로 기술
- 관계 해석: 원하는 결과 얻기위해 처리를 원하는 데이터가 무엇인지만 기술
- 데이터 언어의 유용성 검증에 이용
- 관계대수, 관계 해석으로 작성할 수 있는 모든 처리 요구를 작성가능한 데이터 언어를 관계적으로 완전하다고 정의
관계 대수(Relational Algebra)
- 절차언어
- 릴레이션을 처리하는 연산자들의 모임: 일반 집합 연산자, 순수 관계 연산자
- 폐쇄 특성: 피연산자도 연산 결과도 모두 릴레이션
관계 대수의 연산자
- 일반 집합 연산자
- 릴레이션이 투플이 집합이라는 개념 이용
- 합집합, 교집합, 차집합, 카디션 프로젝트(X)
- 피연산자가 2개 필요
- 합집합, 교집합, 차집합 수행 위해서는 피연산자로 지정되는 두 릴레이션이 합병 가능 조건을 만족해야 함.
- 합병가능조건
- 두 릴레이션의 차수(릴레이션 속성 개수) 같아야 한다.
- 두 릴레이션의 서로 대응되는 속성의 도메인이 같아야 한다.
일반 집합 연산자 | 합집합 | 교집합 | 차집합(R-S) | 카티션 프로젝트X |
결과 릴레이션의 특성 | 차수는 R,S의 차수와 같다. 카디널리티는 R+S보다 같거나 작다. |
차수는 R,S의 차수와 같다. 카디널리티는 R,S 어느것보다 크지 않다 |
R에는 존재하지만 S에는 존재하지 않는 투플. 차수는 R,S의 차수와 같다. 카디널리티는 같거나 작다 |
릴레이션 각각에 속한 각 투플을 모두 연결해 새로운 투플을 만들어서 결과 릴레이션 구성. 차수는 RS의 차수 더한 것 카디널리티는 RS의 카디널리티 곱한 것 |
교환적 특징 | ㅇ | ㅇ | X | ㅇ |
결합적 특징 | ㅇ | ㅇ | X | ㅇ |
- 순수 관계 연산자
- 릴레이션의 구조와 특성 이용하는 연산자
- 셀렉트, 프로젝트, 조인, 디비전
셀렉트 | 프로젝트 | 조인 | 디비전 | |
수학적 표현법 | 시그마sub(조건)(R) | 파이sub(속성리스트)(R) | R나비넥타이S | R나누기S |
기능 | R에서 조건에 맞는 투플들을 반환 | 주어진 속성리스트의 속성으로만 구성된 투플 반환 | 공통 속성 이용해 R과 S 투플들 연결하여 만든 새로운 투플 반환 | S의 모든 투플과 관련있는 R의 투플 반환 |
데이터 언어적 표현법 | 릴레이션 where 조건식 | 릴레이션[속성리스트] | ||
교환적 특징 | 조인 속성의 값이 같은 투플만 연결하여 생성된 투플을 결과 릴레이션에 포함 | R이 S의 모든 속성을 포함하고 있어야 함 |
조인의 종류
자연 조인: 기본적인 조인 연산
세타 조인: 주어진 조인 조건을 만족하는 두 릴레이션의 모든 투플을 연결하여 생성된 새로운 투플로 결과 릴레이션 구성. 결과 릴레이션의 차수는 두 릴레이션의 차수를 더한 것과 같음
동일 조인: 세타 조인의 유형 중 하나로 연산자가 "="인 세타조인
세미조인
- 릴레이션1 세미조인 릴레이션2
- 릴레이션2를 조인 속성으로 프로젝트 연산
- 릴레이션1에 자연 조인하여 결과릴레이션 구성
- 불필요한 속성 미리 제거> 연산비용 감소
- 교환적 특징 없음
외부조인: 자연 조인 연산에서 제외되는 투플도 결과 릴레이션에 포함시킴
관계 해석(관계 논리)
관계 모델에서 처리를 원하는 데이터가 무엇인지만 기술하는 비절차적 언어
투플 관계 해석
도메인 관계 해석
'학교수업 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 7.4 뷰(View) (0) | 2022.06.14 |
---|---|
SQL (0) | 2022.04.21 |
5. 관계 데이터 모델 (0) | 2022.04.21 |
4. 데이터 모델링 (0) | 2022.04.21 |
3. 데이터베이스 시스템(DBS) (0) | 2022.04.20 |