관계형 데이터 모델과 관계 대수
관계형 데이터 모델(Relational Data Model)은 전 세계적으로 가장 널리 사용되는 기본 데이터 모델입니다. 이 모델은 구조가 단순하면서도 데이터를 효율적으로 저장하고 처리하는 데 필요한 모든 속성과 기능을 갖추고 있어, 오늘날 대부분의 데이터베이스 시스템의 이론적 기반이 되고 있습니다.
관계 대수(Relational Algebra)에는 선택(Selection), 추출(Projection), 합집합(Union), 차집합(Difference), 카티션 곱(Cartesian Product) 같은 기본 연산자가 있습니다. 여기에 더해 실제 질의를 표현하기 편리하도록 만들어진 확장 연산자(Extended Operators)가 있으며, 크게 다음 세 가지 유형으로 나눌 수 있습니다.
- 교집합(Intersection)
- 조인(Join)
- 나누기(Division)
1. 교집합(Intersection) 연산
교집합 연산은 두 개의 릴레이션 R1과 R2에 대해 수행되는 특수한 연산으로, 두 릴레이션 모두에 존재하는 튜플만을 결과로 반환합니다. 즉, R1 ∩ R2는 R1에도 있고 R2에도 있는 튜플들의 집합입니다.
참고로 교집합은 차집합 연산을 이용해 R1 ∩ R2 = R1 − (R1 − R2)와 같이 표현할 수도 있습니다.
2. 조인(Join) 연산
조인은 두 개 이상의 릴레이션을 공통 속성이나 특정 조건을 기준으로 하나로 결합하는 연산입니다. 조건의 적용 방식에 따라 여러 종류로 나뉩니다.
조건 조인(Conditional Join)
조건 조인은 두 개 이상의 릴레이션을 결합할 때, 결합 방식이 특정 조건(예: A.x > B.y)에 의해 지배되는 조인입니다. 세타 조인(Theta Join)이라고도 부르며, 비교 연산자를 포함한 임의의 조건을 사용할 수 있습니다.
자연 조인(Natural Join)
자연 조인은 두 릴레이션의 모든 공통 속성에 대해 동등 조건(equality condition)이 성립할 때 수행되는 조인입니다. 공통 속성 값이 일치하는 튜플들만 결합하며, 결과에서 중복된 공통 속성 열은 한 번만 나타납니다.
왼쪽 외부 조인(Left Outer Join)
왼쪽 외부 조인은 왼쪽 릴레이션의 모든 요소를 포함하고, 주어진 조건을 만족하는 오른쪽 릴레이션의 튜플과 결합하는 조인입니다. 조건에 맞는 상대 튜플이 없는 경우 해당 자리는 NULL 값으로 채워집니다.
오른쪽 외부 조인(Right Outer Join)
오른쪽 외부 조인은 왼쪽 외부 조인과 반대로, 오른쪽 릴레이션의 모든 요소를 포함하고, 조건을 만족하는 왼쪽 릴레이션의 튜플과 결합하는 조인입니다. 마찬가지로 매칭되지 않는 부분은 NULL로 표시됩니다.
완전 외부 조인(Full Outer Join)
완전 외부 조인은 왼쪽과 오른쪽 릴레이션 양쪽의 모든 요소를 모두 포함하는 조인입니다. 어느 한쪽에만 존재하는 튜플도 결과에 포함되며, 짝이 되는 값이 없는 속성은 NULL로 채워집니다.
3. 나누기(Division) 연산
나누기 연산은 릴레이션 A의 속성 집합에 대해 B가 A의 진부분집합(proper subset)일 때만 적용할 수 있습니다. 결과 릴레이션의 속성은 A의 속성에서 B의 속성을 뺀 것(A − B)이며, B의 모든 값과 연관된 A의 튜플들이 반환됩니다.
예를 들어 '모든 과목을 수강한 학생'을 찾는 질의처럼, '전체(all)'라는 의미가 필요한 질의를 표현할 때 나누기 연산이 유용하게 사용됩니다.