1. 관계 대수 개념과 연산자
1) 관계 대수 개념
• 관계 데이터 모델에서 릴레이션 조작을 위한 기본 연산
• 관계 대수(relational algebra)와 관계 해석(relational calculus)으로 구분됨
• 관계 대수는 수학적 대수 연산을 이용하여 원하는 결과를 질의하는 절차적 언어
• 하나 이상의 릴레이션에 연산을 수행하여 결과 릴레이션을 도출하는 과정 제공
2) 관계의 수학적 의미
• 집합: 숫자, 문자, 사람 등 객체의 모임
• 두 개의 집합 A, B가 있을 때,
- A = {1, 3}, B = {2, 4, 6}
- A × B = {(1,2), (1,4), (1,6), (3,2), (3,4), (3,6)}
- 카티션 프로덕트 A × B는 A 원소와 B 원소의 순서쌍 집합을 의미함
• 릴레이션 R은 카티션 프로덕트의 부분집합으로 정의됨
- 예: R1 = {(1,2), (1,4)}, R2 = {(3,2), (3,4), (3,6)}, R3 = 전체 집합 등
• A × B에서 생성할 수 있는 릴레이션의 개수는 2^(|A|×|B|)
- 예: |A| = 2, |B| = 3 → 2^6 = 64개의 릴레이션 가능
3) 관계 대수의 연산
• 데이터베이스에서 원하는 결과를 얻기 위해 릴레이션 처리 과정을 순서대로 기술하며 쿼리로 작성 가능
• 데이터 조작, 제약 조건 설정, 무결성 유지 등에 활용
• 연산자는 총 8개로 폐쇄성을 가짐 (입력과 출력이 모두 릴레이션)
4) 관계 연산자 종류
• 합집합 (union)
• 교집합 (intersection)
• 차집합 (difference)
• 카티션 프로덕트 (Cartesian product)
• 셀렉트 (select)
• 프로젝트 (project)
• 조인 (join)
• 디비전 (division)
2. 일반 집합 연산자
1) 무결성 제약의 이해
• 릴레이션의 튜플 개념을 이용한 연산
• 포함되는 연산자: 합집합, 교집합, 차집합, 카티션 프로덕트
2) 연산자 종류
합집합 (union)
• 두 테이블의 모든 튜플을 선택하는 연산
• 중복된 튜플은 제거됨
• 기호: ∪, 표기 형식: R ∪ S
• 차수는 동일, 카디널리티는 R과 S의 합 이하
교집합 (intersection)
• 두 테이블에서 공통으로 존재하는 튜플을 선택
• 기호: ∩, 표기 형식: R ∩ S
• 차수 동일, 카디널리티는 R과 S 중 작은 값 이하
차집합 (difference)
• R에는 있지만 S에는 없는 튜플을 반환 (또는 반대)
• 기호: -, 표기 형식: R - S
• 차수 동일, 카디널리티는 원래 릴레이션과 같거나 작음
카티션 프로덕트 (Cartesian product)
• R과 S의 모든 튜플을 조합하여 새로운 튜플을 생성
• 기호: ×, 표기 형식: R × S
• 차수는 R과 S의 차수 합, 카디널리티는 곱한 값
3. 순수 관계 연산자
1) 개요
• 관계 데이터 모델에서 제시된 연산자로 릴레이션 구조와 특성을 이용함
• 포함되는 연산자: 셀렉트, 프로젝트, 조인, 디비전
2) 연산자 종류
셀렉트 (selection)
• 특정 조건을 만족하는 튜플을 선택하는 연산
• 수평 연산이라고도 함
• 기호: σ, 표기 형식: σ(조건)(R)
(2) 프로젝트 (project)
• 특정 속성을 선택하여 새로운 릴레이션을 구성 (중복 제거)
• 수직 연산이라고도 함
• 기호: π, 표기 형식: π(속성 리스트)(R)
(3) 조인 (join)
• 두 개 이상의 테이블을 연결하여 새로운 릴레이션 생성
• 기호: ⋈, 표기 형식: R ⋈(조건) S
조인 종류
• 세타 조인 (theta join, 조건 지정 필요)
• 자연 조인 (natural join, 공통 속성을 기반으로 중복 속성 제거)
• 동등 조인 (equijoin, 중복 허용)
• 세미 조인 (semijoin, 한 릴레이션의 결과만 반환)
• 외부 조인 (outer join, 일치하지 않는 튜플도 포함)
- 왼쪽 외부 조인 (Left Join)
- 오른쪽 외부 조인 (Right Join)
- 완전 외부 조인 (Full Join)
• 교차 조인 (Cross Join, 모든 조합을 생성)
(4) 디비전 (division)
• 릴레이션 S의 모든 튜플과 관련된 R의 튜플을 반환
• R의 속성이 S의 속성을 포함해야 연산 가능
• 기호: ÷, 표기 형식: R ÷ S
4. 연산자 분류
1) 필수 연산자
• 셀렉션(σ): 특정 조건을 만족하는 튜플 선택 (단항)
• 프로젝션(π): 특정 속성을 추출 (단항)
• 합집합(∪): 두 릴레이션의 모든 튜플 결합 (이항)
• 차집합(-): 한 릴레이션에서 다른 릴레이션을 제외 (이항)
• 카티션 프로덕트(×): 모든 튜플을 조합하여 새로운 튜플 생성 (이항)
• 교집합(∩): 공통된 튜플만 선택 (이항)
• 세타 조인(⋈): 비교 연산자로 두 릴레이션 결합 (이항)
2) 유도 연산자
• 동등 조인(⋈): 세타 조인에서 = 연산자만 사용
• 자연 조인(*): 동등 조인에서 중복 속성 제거
• 세미 조인(⋉): 자연 조인 후 한쪽 릴레이션만 반환
• 디비전(÷): 특정 릴레이션과 관련된 튜플만 추출
이 내용은 휴넷사회복지평생교육원의 데이터베이스 강의를 듣고 정리한 것입니다.
'CS > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 11. SQL 소개 (1) (0) | 2025.04.05 |
---|---|
[데이터베이스] 10. 관계 데이터 연산 (2) (1) | 2025.03.23 |
[데이터베이스] 8. 관계 데이터 모델 (2) (0) | 2025.03.13 |
[데이터베이스] 7. 관계 데이터 모델 (1) (0) | 2025.03.12 |
[데이터베이스] 6. 데이터 모델링과 데이터 모델 (2) (0) | 2025.02.09 |