관계형데이터베이스는 비절차적 질의를 절차적 언어로 변환하는 작업을 수행한다
즉, DB가 실질적으로 다루는 언어는 절차적 언어인 것이다
관계 대수(Relational Algebra)
= 절차적 언어 <-> 비절차적 질의는 관계 해석(relational calculus)이라고 한다
* 두 방법은 표현과 기능면에서 동등하기 때문에 DB에 비절차적 질의를 사용한다
DB의 데이터인 Relation(tuple의 집합)이 관계 대수의 피연산자이며 다양한 연산이 가능하다
일반 집한 연산자
순수 관계 연산자
SELECT 연산
* 선택되는 tuple의 비율을 선택도(selectivity)라고 하는데 이 경우 3/5이니까 60%다
PROJECT 연산
DIVISION 연산
RENAME 연산
중간 처리 결과 relation이나 attribute의 이름을 적당히 변경하는 것을 개명(RENAME) 연산이라고 한다
기본 연산과 복합 연산
기본 연산(primitive operations): 다른 연산으로 대체할 수 없는 논리적 기능을 수행하는 연산
복합 연산(composite operations): 기본 연산들로 대체할 수 있는 연산 (표현보다 연산중시)
조인(join)
거대한 relation은 보통 이상현상을 방지하기위해 연결고리를 기준으로 분리되어 있다
이러한 relation을 카티션 프로덕트 하고 연결고리의 공통 요소만 걸러낸 것을 동일 조인(equijoin)한다고 한다
동일 조인의 결과에서 연결고리인 중복 attribute를 제거한 것이 자연 조인(natural join)이다
조인의 조건이 = 뿐만 아니라 <, > 등의 부등호가 오는 모든 조인을 세타 조인이라고 한다
relation S와 자연 조인이 가능한 R의 tuple의 집합을 세미 조인(semijoin)이라고 한다
relation에 대응되는 tuple 값이 없을 경우 null로 결과에 포함시키는 조인을 외부 조인(outerjoin)이라고 한다
아예 합병이 불가능한 두 relation을 억지로 합쳐 null로 표현한 경우는 외부 합집합이다
관계 대수에 다양한 연산을 적용하는 집계(aggregation) 연산이 가능하다
관계 대수 예제
'Computer Science > Database, SQL' 카테고리의 다른 글
[HUFS/데이터베이스] #8 QBE & SQLite (0) | 2021.09.29 |
---|---|
[HUFS/데이터베이스] #7 관계 해석 (0) | 2021.09.29 |
[HUFS/데이터베이스] #5 무결성 제약 (4) | 2021.09.15 |
[HUFS/데이터베이스] #4 관계 데이터 모델 (0) | 2021.09.15 |
[HUFS/데이터베이스] #3 데이터베이스 시스템의 구성 (0) | 2021.09.08 |