Learning
토픽 172 / 201·SQL 및 데이터베이스 객체

관계 대수 (Relational Algebra)

관계 대수 (Relational Algebra)

관계형 데이터베이스의 이론적 기반이 되는 절차적 질의 언어로, 릴레이션(테이블)에 대한 연산을 정의하며 SQL의 수학적 토대를 제공하는 집합 기반 연산 체계

목적: 질의 표현의 형식화, SQL의 이론적 기반, 쿼리 최적화 기초, 관계형 모델 검증

특징: 절차적(How), 집합 기반 연산, 폐쇄 성질(릴레이션→릴레이션), 순수 수학적 모델

일반 집합 연산

  • 합집합(Union, ∪): 두 릴레이션의 모든 튜플, 중복 제거, 합집합 호환 필요
  • 교집합(Intersection, ∩): 두 릴레이션의 공통 튜플
  • 차집합(Difference, −): R에는 있지만 S에는 없는 튜플
  • 카티션 프로덕트(Cartesian Product, ×): 두 릴레이션 모든 조합, |R|×|S| 튜플

순수 관계 연산

  • 선택(Selection, σ): 조건에 맞는 행(튜플) 추출, σ_{조건}(R), WHERE절에 대응
  • 투영(Projection, π): 특정 열(속성) 추출, π_{속성목록}(R), SELECT절에 대응
  • 조인(Join, ⋈): 두 릴레이션의 공통 속성 기반 결합, R ⋈_{조건} S
  • 디비전(Division, ÷): R÷S는 S의 모든 튜플과 결합되는 R의 튜플, "모든~인" 질의

조인 종류

  • 세타 조인(θ-Join): 임의 조건으로 결합, R ⋈_{R.A θ S.B} S
  • 동등 조인(Equi-Join): 동등 조건(=)으로 결합
  • 자연 조인(Natural Join, ⋈): 공통 속성 자동 매칭, 중복 속성 제거
  • 외부 조인(Outer Join): 매칭 안 되는 튜플도 NULL로 포함, ⟕(좌)/⟖(우)/⟗(완전)
  • 세미 조인(Semi-Join, ⋉): 조인 가능한 R의 튜플만 반환, 분산 DB 최적화

관계 해석(Relational Calculus)

  • 비절차적(What), "무엇을 원하는지"만 기술
  • 튜플 관계 해석(TRC): {t | P(t)}, 튜플 변수 사용
  • 도메인 관계 해석(DRC): { | P(x1,x2,...)}, 도메인 변수 사용

관계 대수 vs 관계 해석: 대수(절차적/How/연산순서) vs 해석(비절차적/What/조건만), 표현력 동등(관계적으로 완전)

SQL과의 대응: σ→WHERE, π→SELECT, ×/⋈→FROM+JOIN, ∪→UNION, −→EXCEPT, ∩→INTERSECT

쿼리 최적화 활용: 선택 먼저 수행(σ 하강), 투영 먼저 수행(π 하강), 카티션 프로덕트→조인 변환, 결합 법칙·교환 법칙 활용

연관: SQL, 쿼리 최적화, 옵티마이저, 정규화, 관계형 모델