개발자꿈나무
관계대수 및 관계해석 본문
관계대수의 개요
- 관계대수는 관계형 데이터베이스에 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적 언어
- 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어로 피연산자가 릴레이션이고, 결과도 릴레이션
- 관계 데이터베이스에 적용하기 위해 특별히 개발한 순수 관계 연산자와 수학적 집합 이론에서 사용하는 일반 집합 연산자 존재
일반 집합 연산자
- 수학적 집합 이론에서 사용하는 연산자로서 릴레이션 연산에도 그대로 적용할 수 있음
- 단, 카티션 프로덕트를 제외한 합집합, 교집합, 차집합 연산은 합병 조건을 만족해야 함
* 합병 조건 : 합병하려는 두 릴레이션의 차수가 같고, 대응 애트리뷰트 별 도메인이 같아야 함
- 합집합 (UNION = ∪)
- 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거되는 연산
- |R ∪ S| <= |R| + |S| (합집합의 카디널리티는 두 릴레이션 카디널리티의 합보다 크지 않음) - 교집합 (INTERSECTION = ∩)
- 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
- |R ∩ S| <= MIN {|R|, |S|} (교집합의 카디널리티는 두 릴레이션 중 카디널리티가 적은 릴레이션의 카디널리티보다 크지 않음) - 차집합 (DIFFERENCE = -)
- 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
- |R - S| <= |R| (차집합의 카디널리티는 릴레이션 R의 카디널리티보다 크지 않음) - 교차곱 (CARTESIAN PRODUCT = X)
- 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
- |R X S| = |R| X |S| (교차곱의 디그리는 두 릴레이션의 디그리를 더한 것과 같고, 카디널리티는 두 릴레이션의 카디널리티를 곱한 것과 같음)
순수 관계 연산자
- 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자
- Select (σ)
- 선택 조건을 만족하는 릴레이션의 수평적 부분 집합
σ <선택조건> (릴레이션)
- Project (π)
- 수직적 부분 집합으로 중복된 투플은 제거
π <선택조건> (릴레이션)
- Join (⋈)
- 두 관계로부터 관련된 투플들을 하나의 투플로 결합하는 연산 - Division (÷)
- 동시에 포함하는 속성으로 나누어지는 R의 차수는 (M+N)이고 나누는 릴레이션 S의 차수가 N일 때, 이 디비전의 결과릴레이션의 차수는 M
728x90
'CS > 데이터베이스론' 카테고리의 다른 글
병렬 데이터베이스 분할 기법 (0) | 2024.03.07 |
---|---|
관계 데이터 모델 (2) | 2024.02.29 |
데이터베이스 시스템 (0) | 2024.02.25 |
데이터베이스 관리 시스템 (DBMS) (2) | 2024.02.25 |
데이터베이스 개요 (0) | 2024.02.12 |