(2022.04.07)
데이터베이스 강의들으면서 정리하기 6탄
우선, 이번에 정리할 것을 큰 틀로 보면 아래와 같다.
관계연산 relation operation
- 관계형 데이터 모델에서 relation을 조작하기 위한 연산
- 관계형 데이터베이서 언어의 명세 형식, 내부 처리과정과 밀접한 연관성 있음
관계연산 2가지 표현방법
- 관계 대수 relation algebra : 절차적 표현방법 procedural (연산들의 적용 순서, 절차를 명세)
- 관계 해석 relation calculus : 비절차적 표현방법 nonprocedural / 선언적 declarative (연산들의 최종 결과만 명세)
-> 관계 대수와 관계 해석은 데이터 언어의 유용성을 검증하는 기준의 역할을 한다.
관계 대수 relational algebra
: 원하는 결과를 얻기 위해서 relation의 처리과정을 순서대로 기술하는 언어 - 절차 언어
- 일반 집합 연산자
- 순수 관계 연산자
1. 일반 집합 연산자 - relation이 tuple의 집합이라는 것을 이용하는 연산자
--> 피연산자가 2개 필요함
--> 합집합, 교집합, 차집합은 피연산자인 두 relation이 합병 가능해야함
합병 가능 조건 union-compatible 조건
- 두 relation의 차수가 같아야한다.
- 두 relation에서 서로 대응되는 속성의 domain이 같아야한다.
- 합집합 union
- 합병가능한 두 relation R 과 S의 합집합
- 교환적, 결합적 특징 있음
- 결과 릴레이션의 특성
- 차수: relation R과 S의 차수가 같음
- 카디널리티: relation R과 S의 카디널리티를 더한 것과 같거나 적음
- 교집합 intersection
- 합병가능한 두 relation R과 S의 교집합
- 교환, 결합적 특징 있음
- 결과 릴레이션의 특성
- 차수: relation R과 S의 차수가 같음
- 카디널리티: relation R과 S의 어떤 카디널리티보다 같거나 적음
- 차집합 difference
- 합병 가능한 두 relation R과 S의 차집합
- 교환, 결합적 특징 없음
- 결과 릴레이션의 특성
- 차수: relation R과 S의 차수가 같음
- 카디널리티: R-S 카디널리티는 relation R의 카디널리티와 같거나 적음
- 카디널리티: S-R 카디널리티는 relation S의 카디널리티와 같거나 적음
- 카티션 프로덕트 cartesian product
- relation R에 속한 tuple과 relation S에 속한 tuple을 모두 연결하여 만들어진 새로운 tuple로 결과 릴레이션을 구성
- 교환, 결합적 특징 있음
- 결과 릴레이션의 특성
- 차수: relation R과 S의 차수를 더한 것과 같음
- 카디널리티: relation R과 S의 카디널리티를 곱한 것과 같음
------> 최종 정리
2. 순수 관계 연산자 - relation의 구조와 특성을 이용하는 연산자
- select
- relation에서 조건을 만족하는 tuple만 선택하여 결과 relation 구성
- 하나의 relation을 대상으로 연산 수행
- 교환적 특징 있음
- 결과 릴레이션은 연산 대상 릴레이션의 수평적 부분집합
- project
- relation에서 선택한 속성의 값으로 결과 릴레이션을 구성
- 하나의 relation을 대상으로 연산 수행
- 결과 릴레이션에서 동일한 tuple은 중복되지 않고, 한 번만 나타남
- 결과 릴레이션은 연산 대상 릴레이션의 수직적 부분집합
- join
- 두 릴레이션을 조합하여 결과 릴레이션을 구성
- 두 릴레이션이 공통으로 가지고 있는 속성의 값이 같은 tuple만 연결하여 생성된 tuple을 결과 릴레이션에 포함함.
- natural join : join_조건식에 사용된 중복 속성을 자동제거한 조인 (한번만 나오도록)
- theta join : natural join에 비해 더 일반화된 조인 (주어진 join_조건을 만족하는 두 릴레이션의 모든 tuple 연결_
- equi-join : theta join에서 theta 연산자가 '='인 theta join을 의미
- devision
- 릴레이션 2의 모든 tuple과 관련있는 릴레이션 1의 tuple로 결과 릴레이션을 구성함
- 릴레이션 1이 릴레이션 2의 모든 속성을 포함하고 있어야 연산이 가능함 (도메인이 같아야함)
---> 최종 정리
++ 확장된 관계 대수 연산자
- 완전 외부 조인 full outer join (왼쪽과 오른쪽 모두)
- 왼쪽 외부 조인 left outer join (왼쪽 위주)
- 오른쪽 외부 조인 right outer join (오른쪽 위주)
- 외부 합집합 outer union (합병가능하지 않은 두 릴레이션 합병)
관계 대수의 활용
- 질의문의 관계 대수식 작성
- 복수의 관계 대수식 작성
- 질의 트리 작성
- 질의 트리 최적화
'Computer Science > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 정규화 (0) | 2022.07.06 |
---|---|
[데이터베이스] DB 설계 (0) | 2022.07.06 |
[데이터베이스] 관계형 데이터 모델 (0) | 2022.04.07 |
[데이터베이스] Data Modeling (0) | 2022.04.05 |
[데이터베이스] DataBase System (DBS) (0) | 2022.04.04 |