관계대수와 관계해석
1. 개요
관계대수(Relational Algebra)와 관계해석(Relational Calculus)은 관계형 데이터베이스에서 원하는 데이터를 검색하고 조작하는 방법을 정의하는 두 가지 중요한 언어이다. 두 언어 모두 동일한 질의(Query)를 표현할 수 있지만, 관계대수는 절차적(Procedural) 언어인 반면, 관계해석은 비절차적(Non-procedural) 언어라는 근본적인 차이가 있다.
2. 관계대수 (Relational Algebra)
관계대수는 원하는 결과를 얻기 위해 데이터베이스에서 수행할 연산의 순서와 절차를 명확하게 명시하는 언어이다. 연산자는 피연산자로 릴레이션(테이블)을 받고, 연산 결과로 새로운 릴레이션을 반환한다. 관계대수는 집합 연산과 순수 관계 연산으로 구성된다.
(1) 집합 연산
집합 연산은 수학적 집합론을 기반으로 하며, 두 릴레이션(테이블)을 대상으로 연산을 수행한다. 연산이 적용되는 두 릴레이션은 합병 가능한(Union-compatible) 상태여야 한다. 즉, 속성의 수가 같고, 대응하는 속성의 도메인(데이터 타입)이 같아야 한다.
- 합집합(Union, ∪): 두 릴레이션의 모든 튜플(행)을 합친다. 중복되는 튜플은 한 번만 포함된다.
- 교집합(Intersection, ∩): 두 릴레이션에 공통으로 존재하는 튜플을 반환한다.
- 차집합(Difference, -): 첫 번째 릴레이션에 존재하지만, 두 번째 릴레이션에는 존재하지 않는 튜플을 반환한다.
- 카티션 곱(Cartesian Product, ×): 두 릴레이션의 모든 튜플 쌍을 결합하여 새로운 릴레이션을 만든다. 각 튜플은 한 릴레이션의 튜플과 다른 릴레이션의 튜플을 결합한 것이다. 결과 튜플의 수는 두 릴레이션 튜플 수의 곱과 같다.
※ 집합 연산의 제약조건
집합 연산 (합집합, 교집합, 차집합)을 수행하기 위해서는 다음 두 가지의 조건을 만족해야 한다:
① 두 릴레이션의 차수가 같다 (속성 개수가 같다)
② 두 릴레이션에서 서로 대응되는 속성의 도메인이 같다
(2) 순수 관계 연산
순수 관계 연산은 관계형 데이터베이스의 독특한 연산자로, 하나의 릴레이션 또는 두 릴레이션을 대상으로 한다.
- 셀렉션(Selection, σ): 릴레이션에서 특정 조건을 만족하는 튜플(행)을 선택한다. 예를 들어, σ(age>30)(Students)는 나이가 30보다 많은 학생들의 튜플을 선택한다.
- 프로젝션(Projection, π): 릴레이션에서 특정 속성(열)만을 선택한다. 중복되는 튜플은 자동으로 제거된다. 예를 들어, π(name, major)(Students)는 학생들의 이름과 전공 속성만을 보여준다.
- 조인(Join, ⋈): 두 릴레이션을 결합하여 새로운 릴레이션을 만든다. 특히 자연 조인(Natural Join)은 두 릴레이션 간의 공통 속성을 기준으로 결합하며, 중복되는 공통 속성은 한 번만 표시한다. 이는 카티션 곱보다 더 의미 있는 결과를 제공한다.
- 디비전(Division, ÷): 두 릴레이션 간의 연산으로, 한 릴레이션의 모든 튜플에 대해 다른 릴레이션의 모든 튜플과 관련된 튜플을 반환한다. 주로 'A를 가진 모든 B'와 같은 질의에 사용된다. 예를 들어, "어떤 학생이 특정 과정 집합을 모두 수강하였는가?"를 찾아낼 수 있다.
3. 관계해석 (Relational Calculus)
관계해석은 원하는 결과를 얻기 위한 조건만을 명시하는 비절차적 언어이다. 사용자는 원하는 데이터가 무엇인지(What)만 정의하고, 시스템이 데이터를 어떻게 가져올지(How)는 스스로 결정한다. 관계 해석에는 튜플 관계 해석, 도메인 관계해석이 있다.
- 튜플 관계해석(Tuple Relational Calculus): 결과 튜플의 조건을 명시한다. (SQL의 WHERE 절과 유사)
- 도메인 관계해석(Domain Relational Calculus): 결과 속성 값의 조건을 명시한다.
4. 결론
관계대수와 관계해석은 관계형 데이터베이스의 이론적 기반을 형성하는 두 가지 핵심 개념이다. 관계대수는 데이터 검색의 효율성을 분석하는 데 유용하고, 관계해석은 사용자가 쉽게 질의를 작성할 수 있는 SQL의 기반이 되었다. 현대의 데이터베이스 시스템은 관계해석으로 작성된 질의를 내부적으로 관계대수로 변환하여 실행하는 방식으로 동작한다.
'IT Tech.' 카테고리의 다른 글
| (컴퓨터시스템) IPC 개념/목적 및 주요기법 (0) | 2025.09.29 |
|---|---|
| (컴퓨터시스템) 페이징 기법과 세그멘테이션 기법 (0) | 2025.09.26 |
| (AI) 과대적합 및 과소적합 (feat. 편향-분산 트레이드오프) (0) | 2025.09.25 |
| (AI) 앙상블 학습과 랜덤 포레스트 (0) | 2025.09.23 |
| (컴퓨터시스템) 동적 메모리 할당 및 메모리 누수 문제 해결 방안 (0) | 2025.09.22 |