티스토리 뷰

반응형
관계 대수(Relational Algebra)란?

🔍 관계 대수(Relational Algebra)란?

데이터를 수학처럼 다루는 질의 언어




✅ 관계 대수란?

관계 대수(Relational Algebra)
데이터베이스에 저장된 테이블(=릴레이션)
수학적인 연산을 통해 원하는 데이터를 절차적으로 추출하는 언어입니다.

💡 “어떤 데이터를 어떻게 얻을 것인지”
순서대로 연산을 적용해서 결과를 만드는 방식



🧠 관계 대수의 핵심 특징

항목 설명
절차적 언어 연산의 수행 순서를 명시해야 함
연산 중심 데이터를 자르고, 골라내고, 합치고 하는 방식
입출력 모두 릴레이션 연산에 들어가는 것도, 나오는 것도 테이블 형태
수학적인 연산자 사용 기호와 논리적 방식으로 표현



📂 관계 대수 연산의 종류

1️⃣ 일반 집합 연산

(수학의 집합 연산 그대로)

연산 기호 설명
합집합 두 릴레이션의 모든 행 결합
교집합 공통된 행만 추출
차집합 A에 있고 B에는 없는 행
× 두 릴레이션의 모든 조합 (카티션 곱)



2️⃣ 순수 관계 연산

(데이터 질의 전용 연산)

연산 기호 의미
선택 σ 조건에 맞는 추출 (filter)
투영 π 필요한 만 추출 (column 선택)
조인 두 릴레이션을 조건에 따라 연결
나누기 ÷ 특정 조건 만족하는 모든 행 추출 (ALL 조건 처리)



🧪 예제로 이해하는 관계 대수

📁 테이블: 학생(Student)

이름 학번 학과
철수 1001 컴퓨터
영희 1002 수학
민수 1003 컴퓨터



반응형

 


✅ 예시 1: "컴퓨터학과 학생만 보고 싶다"


SELECT * FROM 학생 WHERE 학과 = '컴퓨터';

σ 학과='컴퓨터' (학생)

→ 선택 연산: 조건에 맞는 행만 추출




✅ 예시 2: "이름만 뽑고 싶다"


SELECT 이름 FROM 학생;

π 이름 (학생)

→ 투영 연산: 열(column)을 선택




✅ 예시 3: "컴퓨터학과 학생 이름만 추출"


SELECT 이름 FROM 학생 WHERE 학과 = '컴퓨터';

π 이름 (σ 학과='컴퓨터' (학생))

선택 후 투영: 순서 중요!




✅ 예시 4: "학생과 수강 정보를 합쳐서 보고 싶다"

📁 테이블: 수강(Course)

학번 과목
1001 자료구조
1002 선형대수
1003 운영체제

학생 ⨝ 학생.학번 = 수강.학번

→ 학번을 기준으로 두 릴레이션을 연결 (Inner Join과 유사)




✅ 예시 5: "모든 과목을 수강한 학생 구하기"

이럴 땐 나누기 연산(÷)을 사용합니다.

예: “자료구조, 운영체제를 모두 들은 학생 찾기”


수강 ÷ 과목목록

→ 조건을 모두 만족하는 튜플만 추출
→ SQL의 NOT EXISTS, ALL 같은 의미를 표현




🎯 요약 정리

개념 설명
관계 대수란? 테이블 데이터를 수학적 연산으로 조작하는 질의 언어
언어 유형 절차적 (연산 순서 직접 지정)
입출력 연산 전후 모두 릴레이션(테이블)
주요 연산 선택(σ), 투영(π), 조인(⨝), 나누기(÷), 집합 연산



🧠 기억하기 쉬운 핵심 문장

관계 대수는, 데이터를 '어떻게 처리할지'를
연산 순서로 정확히 지시하는 수학 기반의 질의 방식입니다.



반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함