728x90
반응형
SMALL
관계대수 (Relational Algebra) — 절차적(Procedural)
“어떻게 구할지”를 연산 순서로 명시
순수 관계 연산자 (Relational / Special Operators)
| 연산 | 기호/표기 | 의미 |
| 선택(Selection) | `σ_조건(R)` | 행(튜플) 필터 |
| 투영(Projection) | `π_속성들(R)` | 열(속성) 선택 |
| 조인(Join) | `R ▷◁_θ S` | 조건에 맞게 결합 |
| 나눗셈(Division) | `R ÷ S` | S의 값들을 모두 가진 R의 항목 선택 |
| 이름변경(Rename) | `ρ_{새이름/새속성}(R)` | 릴레이션/속성 이름 바꾸기 |
일반 집합 연산자 (General Set Operators)
| 연산 | 기호 | 의미 | 합집합 가능 조건 |
| 합집합 | R ∪ S | R 또는 S의 튜플(중복 제거) | 두 릴레이션의 차수 동일, 각 열 도메인 호환 |
| 교집합 | R ∩ S | R과 S 공통 튜플 | 위와 동일 |
| 차집합 | R − S | R엔 있고 S엔 없는 튜플 | 위와 동일 |
| 카티션 곱 | R × S | 모든 조합(스키마 결합) | 조건 없음(결과 차수=합) |
* 합집합 가능 조건(Union-compatibility): 속성 수와 각 위치별 도메인이 같아야 함.
관계 해석 (Relational Calculus) — 비절차적(Non-procedural / Declarative)
“무엇을 만족하는 결과가 필요한지” 조건(논리식) 으로만 명시
| 구분 | 기호 | 설명 |
| 연산자 | V | OR 연산 |
| ∧ | AND 연산 | |
| ㄱ | NOT 연산 | |
| 정량자 | ∀ | 모든 가능한 튜플 "For All" |
| ∃ | 어떤 튜플 하나라도 존재 |
1) 튜플 관계 해석 (TRC: Tuple Relational Calculus)
- 형식: { t | P(t) }
- t는 튜플 변수, P(t)는 논리식(조건)
- 예시
- R(D1,D2)에서 D2 = 1인 튜플의 D1만 구하기
- 관계대수: π_{D1}(σ_{D2=1}(R))
- TRC: { t.D1 | t ∈ R ∧ t.D2 = 1 }
2) 도메인 관계 해석 (DRC: Domain Relational Calculus)
- 형식: { <x1, x2, …, xn> | P(x1, x2, …, xn) }
- 각 xi는 속성 값(도메인 변수)
- 예시
- R(D1,D2)에서 D2 = 1인 (D1,D2) 쌍
- DRC: { <a, b> | ∃t (t ∈ R ∧ t.D1 = a ∧ t.D2 = b) ∧ b = 1 }
암기
- “σ→π→▷◁ 처럼 연산 순서를 적어야 하는 건?” → 관계대수(절차적)
- “{ t | 조건 }처럼 결과 조건만 쓰는 건?” → 관계해석(비절차적)
728x90
반응형
LIST