티스토리 뷰
목차
데이터베이스 공부하다 관계대수와 SQL 사이에서 헤매고 계신가요? 두 개념을 연결하지 못하면 실무에서도, 시험에서도 절반의 이해만 가능합니다. 5분만 투자하면 이론과 실무를 완벽하게 연결하는 변환 방법을 마스터할 수 있습니다.
관계대수 기본 연산자 완벽정리
관계대수는 8가지 핵심 연산자로 구성되며, 각각이 SQL의 특정 구문과 1:1 매칭됩니다. Selection(σ)은 WHERE절, Projection(π)은 SELECT절, Join(⋈)은 JOIN 구문으로 직접 변환되므로 연산자의 의미를 정확히 이해하면 SQL 작성이 자동으로 됩니다. 특히 Set 연산(합집합, 교집합, 차집합)은 UNION, INTERSECT, EXCEPT로 변환되는 규칙만 알면 복잡한 쿼리도 쉽게 작성할 수 있습니다.



3단계로 완성하는 변환방법
1단계: 관계대수 식 구조 분석
주어진 관계대수 식에서 가장 안쪽(내부) 연산부터 식별합니다. 중첩된 σ와 π를 찾아 실행 순서를 정하고, 어떤 테이블(릴레이션)에 어떤 조건이 적용되는지 파악합니다. 예를 들어 π(name)(σ(age>20)(Student))는 Student 테이블에서 나이가 20 초과인 행을 먼저 선택한 후 이름만 추출하는 순서입니다.
2단계: 연산자별 SQL 구문 매핑
Selection(σ)의 조건은 WHERE절로, Projection(π)의 속성 목록은 SELECT절로 직접 옮깁니다. Join 연산자는 FROM절의 테이블 뒤에 JOIN ON 구문으로 변환하고, Cartesian Product(×)는 쉼표로 구분된 테이블 나열로 표현합니다. 연산 순서에 따라 서브쿼리가 필요한지 판단하며, 대부분의 경우 안쪽 연산이 서브쿼리가 됩니다.
3단계: SQL 문법 규칙 적용 및 검증
작성한 SQL 쿼리의 구문 순서를 SELECT-FROM-WHERE-GROUP BY-HAVING-ORDER BY 순으로 재배치합니다. 테이블명과 컬럼명에 별칭을 부여하고, 조인 조건이 누락되지 않았는지 확인합니다. 마지막으로 샘플 데이터로 실행해보며 관계대수 식의 결과와 동일한지 검증하면 완료입니다.



실무에서 바로 쓰는 변환 패턴
실무에서 가장 많이 사용되는 패턴은 "조건부 필터링 + 특정 컬럼 추출"입니다. π(A,B)(σ(조건)(R)) 형태는 SELECT A, B FROM R WHERE 조건으로 즉시 변환되며, 조인이 포함된 π(속성)(R ⋈ S)는 SELECT 속성 FROM R JOIN S ON 조인조건 형태가 됩니다. 집계 함수가 필요한 경우 γ(그룹속성, 집계함수)(R)는 SELECT 그룹속성, 집계함수 FROM R GROUP BY 그룹속성으로 변환하면 됩니다. 이 세 가지 패턴만 익혀도 실무 쿼리의 90% 이상을 작성할 수 있습니다.



초보자가 자주 틀리는 함정
변환 과정에서 가장 흔한 실수는 연산 순서를 무시하고 SQL을 작성하는 것입니다. 관계대수는 안쪽부터 실행되지만 SQL은 FROM-WHERE-SELECT 순으로 실행되므로, 이 차이를 이해하지 못하면 잘못된 결과가 나옵니다. 또한 Natural Join(⋈)을 단순 JOIN으로 변환할 때 공통 속성을 명시하지 않거나, Projection 후 중복 제거가 필요한 경우 DISTINCT를 누락하는 실수가 많습니다.
- Selection 조건에서 AND/OR 논리 연산자를 관계대수 기호(∧, ∨)와 혼동하지 않기
- Cartesian Product는 조인 조건 없이 테이블만 나열하므로 실무에서는 거의 사용하지 않음
- Division 연산(÷)은 직접 대응되는 SQL 구문이 없어 NOT EXISTS 서브쿼리로 복잡하게 변환해야 함
- Rename 연산(ρ)은 AS 키워드로 간단히 처리되지만 서브쿼리에서는 필수로 지정해야 에러가 없음



연산자별 SQL 변환표
관계대수 8대 연산자와 SQL 구문의 정확한 대응 관계를 한눈에 확인할 수 있습니다. 각 연산자의 기호와 의미, 실제 변환되는 SQL 문법을 비교하면서 학습하면 변환 속도가 3배 이상 빨라집니다.
| 관계대수 연산자 | 기호 및 의미 | SQL 변환 구문 |
|---|---|---|
| Selection | σ(조건)(R) - 행 선택 | WHERE 조건 |
| Projection | π(속성)(R) - 열 선택 | SELECT 속성 |
| Union | R ∪ S - 합집합 | UNION |
| Intersection | R ∩ S - 교집합 | INTERSECT |
| Difference | R - S - 차집합 | EXCEPT 또는 MINUS |
| Join | R ⋈ S - 자연조인 | JOIN ON 조건 |
| Cartesian Product | R × S - 곱집합 | FROM R, S (쉼표 구분) |
| Rename |


