Relational Algebra vs SQL

SQL은 관계 대수를 바탕으로 하지만, 실무 기능을 더 많이 담습니다.

순수 관계 대수는 집합 기반의 질의 모델입니다. SQL은 그 위에 중복, NULL, 정렬, 집계 같은 실제 DBMS 기능을 얹은 질의 언어에 가깝습니다.

기본 관계 대수

σ, π, ∪, −, ×

→
확장 관계 대수

γ 집계, τ 정렬, 외부 조인

확장 연산은 SQL의 실무 기능을 관계 대수식으로 설명하기 위한 다리입니다.

중복
관계 대수

집합 기반이라 같은 튜플은 하나로 봅니다.

SQL

SELECT는 기본적으로 중복을 보존합니다.

정렬
관계 대수

릴레이션에는 순서가 없습니다.

SQL

ORDER BY가 있을 때 결과 순서를 요구합니다.

집계
관계 대수

기본 연산에는 COUNT, AVG가 없습니다.

SQL

GROUP BY와 집계 함수를 제공합니다.

NULL
관계 대수

고전 모델에서는 NULL을 핵심 요소로 다루지 않습니다.

SQL

TRUE, FALSE, UNKNOWN의 3값 논리를 사용합니다.

표현 방식
관계 대수

연산 순서를 식으로 드러냅니다.

SQL

원하는 결과를 선언하고 계획은 DBMS가 고릅니다.

γ Aggregation GROUP BY와 집계

학과별 COUNT, AVG처럼 그룹별 요약 결과를 릴레이션으로 만듭니다.

τ Sort ORDER BY

순서가 없는 릴레이션 모델에 SQL의 정렬 요구를 별도 연산으로 붙입니다.

Outer Join NULL을 포함한 조인

매칭 실패 행 보존과 NULL 채우기처럼 SQL 조인의 실무 동작을 설명합니다.

핵심: 관계 대수는 SQL의 논리적 뼈대이고, 확장 관계 대수는 SQL이 실제로 제공하는 집계, 정렬, NULL 처리 같은 기능을 함께 설명하기 위한 표현입니다.