정보처리기사
📘 [7일차] 관계 대수와 관계 해석 완전 정리
news800905
2025. 5. 4. 12:22
728x90
💡 주제: 관계형 데이터베이스의 질의 기반 이론
🧩 오늘의 학습 목표
- 관계 대수(Relational Algebra)의 연산 종류를 이해한다
- 관계 해석(Relational Calculus)의 개념과 차이점을 파악한다
- 기출문제에서 자주 나오는 SELECT-PROJECT-JOIN 구조를 익힌다
🎯 이론 설명
✅ 1. 관계 대수 (Relational Algebra)
관계 대수는 관계형 데이터베이스의 데이터를 수학적으로 다루기 위한 절차적 질의 언어입니다.
즉, 무엇을 어떻게 가져올지 절차를 명시합니다.
🔹 주요 연산 종류
연산자설명
σ (시그마, SELECT) | 조건에 맞는 튜플(행) 선택 |
π (파이, PROJECT) | 특정 속성(열)만 추출 |
∪ (합집합) | 두 릴레이션의 모든 튜플을 합침 |
− (차집합) | 첫 릴레이션에만 존재하는 튜플 |
× (카티션 프로덕트) | 두 릴레이션의 모든 조합 생성 |
⋈ (조인, JOIN) | 두 릴레이션을 조건에 따라 연결 |
ρ (리네임, RENAME) | 릴레이션 또는 속성 이름 변경 |
📌 예시 문제 (관계 대수식)
부서가 "영업부"인 직원의 이름을 조회
σ 부서='영업부'(직원) → π 이름(σ 부서='영업부'(직원))
✅ 2. 관계 해석 (Relational Calculus)
관계 해석은 원하는 결과가 어떤 조건을 만족해야 하는지를 선언적으로 기술하는 언어입니다.
즉, 무엇을 원하는지를 기술하고 어떻게 구하는지는 시스템이 처리합니다.
🔹 종류
구분설명
튜플 관계 해석 (TRC) | 튜플 변수 사용: { T |
도메인 관계 해석 (DRC) | 도메인(필드값) 변수 사용: { <a1, a2> |
📌 예시 문제 (튜플 관계 해석식)
부서가 "영업부"인 직원의 이름
{ T.name | 직원(T) ∧ T.부서 = '영업부' }
✅ 3. 관계 대수 vs 관계 해석
항목관계 대수관계 해석
언어 유형 | 절차적 언어 | 비절차적 언어 |
의미 | 어떻게 구할지 서술 | 무엇을 구할지 서술 |
SQL과의 관계 | SQL의 절차적 구조의 기반 | SQL의 선언적 특성과 관련 |
📝 기출문제 예제
문제: 관계형 데이터베이스에서 "어떻게 처리할지"를 명시하는 질의 언어는?
① 관계 해석
② 관계 대수
③ 튜플 해석
④ 도메인 해석✅ 정답: ②
🧠 해설:
- **관계 대수(Relational Algebra)**는 질의의 **처리 방법(절차)**을 기술
- 반면 **관계 해석(Relational Calculus)**는 원하는 **조건(무엇)**만 명시함
💡 오늘의 정리 포인트
- 관계 대수는 절차 중심(SQL과 유사), σ(조건), π(속성 선택), ⋈(조인) 등 사용
- 관계 해석은 조건 중심, 수학적 표현식 사용
- SQL은 두 개념을 모두 조합한 구조이므로 이 둘의 개념은 꼭 이해해야 함
728x90