728x90
Relational Algebra and Relational Calculus
Relational Algebra
- 관계 대수(Relational Algebra)란?
- 릴레이션들을 다루는 연산들
- 검색 요구(질의)를 기술하는 데에 사용함
- 질의 결과도 릴레이션임
단항 관계 연산
- 실렉트(SELECT) 연산과 프로젝트(PROJECT) 연산
실렉트(SELECT) 연산
- 릴레이션 R에서 어떤 선택조건 c를 만족하는 투플들을 선택함
- 연산 형식 $\sigma_c(R)$
- 조건 c는 R의 애트리뷰트들에 대한 임의의 불리언 식임
- 결과 릴레이션은 R과 동일한 애트리뷰트들을 가짐
- 결과 릴레이션은 r(R)의 투플 중 애트리뷰트 값들이 조건 를 만족하는 투플들로 구성됨
- 예제:
PROJECT 연산
-
$\pi$로 표기
-
릴레이션 R에서 애트리뷰트 리스트 L에 명시된 애트리뷰트들만 선택함
-
연산 형식: $\pi_L(R)$
-
결과 릴레이션은 L에 명시된 R의 애트리뷰트들만 가짐
-
예제:$$\pi_{Fnam,Lname,Salary}()$$
-
PROJECT 연산은 결과 릴레이션이 수학적 집합이므로 중복된 투플들을 제거함
-
예제: $$\pi_{Sex,Salary}(EMPLOYEE)$$
- 봉급이 1,000,000원인 남자 사원들이 여러명 이더라도 결과 릴레이션에는 단지 하나의 <M, 1000000> 투플만이 포함되며, 나머지는 제거됨
연산의 순서와 이름 변경 연산
- 다수의 연산을 결합하여 관계 대수식(질의)을 형성할 수 있음
- 예제: 부서 4에서 일하는 사원들의 이름과 봉급을 검색하라.
$$\pi_{Fname,Lname,Salary}(\sigma_{Dno=4}(EMPLOYEE))$$
- 각 중간 단계의 임시 릴레이션에 이름을 부여할 수도 있음
$$DEPT4_EMPS ← \sigma{Dno=4}(EMPLOYEE)$$
$$R ← πFname,Lname,Salary(DEPT4_EMPS)$$
-
결과 릴레이션의 애트리뷰트 이름은 재명명 할 수도 있음
$$DEPT4_EMPS ← \sigma{Dno=4}(EMPLOYEE)$$
$$R(FIRSTNAME, LASTNAME, SALARY) ← \pi_{Fname,Lname,Salary}(DEPT4_EMPS)$$
집합 이론과 관계 대수 연산
-
합집합, 교집합, 차집합 연산
-
합집합: $R_1 ∪ R_2$
-
교집합: $R_1 ∩ R_2$
-
차집합: $R_1 - R_2$
-
- 카티션 곱(Cartesian Product) (또는, Cross Product, Cross Join) 연산
- 카티션 곱: $R_1 × R_2$
합집합, 교집합, 차집합 연산
- 연산 ∪, ∩, - 에서의 호환성
- 피연산자 릴레이션 $R_1(A_1,A_2,...,A_n)$과 $R_2(B_1,B_2,...,B_n)$는 애트리뷰트들의 갯수가 동일하고, 대응되는 애트리뷰트들의 도메인이 호환성을 가져야 함; 즉, i = 1,2,...,n에 대하여 $dom(A_i) = dom(B_i)$ 이어야 함
- 이 조건을 합집합 호환성(union compatibility)이라 부름
- 연산 ∪, ∩, - 의 결과 릴레이션은 피연산자 릴레이션$R_1$ 과 동일한 애트리뷰트 이름들을 가짐 (관례적으로)
728x90
'데이터 베이스' 카테고리의 다른 글
데이터베이스 ch4 : Relational Model & Relational Database Constraints (0) | 2020.10.02 |
---|---|
데이터베이스 ch2 : Database system & architecture (0) | 2020.10.01 |