1. 관계대수의 확장
1.1 관계 연산자들의 기능
- 주요 연산: 실렉션, 프로젝션, 합집합, 교집합, 차집합, 카티션 곱, 디비전 등.
1.2 관계대수의 한계
- 제한사항:
- 산술 연산 불가.
- 집단 함수(집계 함수) 미지원.
- 데이터 수정 불가.
- 중복된 튜플 처리 불완전.
- 결과 정렬 불가.
1.3 관계대수의 확장
- 새로운 연산:
- 세미조인: 연결 관계 일부만 반환.
- 외부조인: NULL 포함 관계 처리.
- 외부 합집합: 차수 확장으로 이질 릴레이션 결합.
- 집단 함수:
- SUM, AVG, COUNT, MAX, MIN.
- 예: AVG(SALARY)는 급여 평균 계산.
- 그룹화:
- 속성(애트리뷰트)값으로 그룹 나누고 집단 함수 적용.
- 예: DNO 별로 평균 급여 계산.
2. 관계 해석
2.1 개념
- 프레디킷 논리 기반의 선언적 언어.
- 비절차적 질의:
- 데이터를 어떻게 조회할지보다 무엇을 조회할지 명시.
- 투플 관계 해석: 투플을 기준으로 데이터 조회
- 도메인 관계 해석: 속성을 기준으로 데이터 조회
2.2 기본 기호
- ∃ (There exists): 존재.
- ∀ (For all): 전칭.
- ∈: 원소 포함.
- ∪: 합집합.
2.3 투플 관계 해석
- 구성 요소:
- 투플 변수: 특정 릴레이션의 투플만 가짐.
- 원자(atom): R(t), t.Aθ u.B, t.A θ c
- 정형식(WFF): 원자+불리언 연산자+정량자 조합.
- 표현 예:
- 특정 급여 조건:
셀렉트 연산 { t | EMPLOYEE(t) and t.SALARY > 50000 } - 특정 속성 조회:
프로젝트 연산 { t.FNAME, t.LNAME | EMPLOYEE(t) }
- 특정 급여 조건:
2.4 도메인 관계 해석
- 구성 요소:
- 도메인 변수: 속성값(도메인)의 특정 원소만 가짐.
- 원자(atom): R(x1, x2, ..., xn), x θ y, x θ c.
- 정형식(WFF): 원자+불리언 연산자+정량자 조합.
- 표현 예:
- 급여 90점 이상 학생: { x학번, x이름 | (학생(x학번, x이름, x학년, x학과) ∧ (∃x기말성적) (x기말성적 ≥ 90)) }
주요 사례
- 특정 사원의 이름 조회:
{ e.EMPNAME | EMPLOYEE(e) ∧ e.EMPNO = '2106' } - 특정 과목(C413) 등록한 학생의 이름과 학과:
{ s.이름, s.학과 | 학생(s) ∧ (∃e)(등록(e) ∧ s.학번 = e.학번 ∧ e.과목번호 = 'C413') } - 기말 성적 90점 이상 학생:
{ x학번, x이름 | (학생(x학번, x이름, x학년, x학과) ∧ (∃x기말성적) (x기말성적 ≥ 90)) }
핵심 요약
- 관계대수는 데이터 조회 연산의 기초지만 한계가 있음.
- 확장된 연산(집단 함수, 외부조인 등)과 관계 해석(투플/도메인 해석)을 통해 복잡한 질의 처리 가능.
- 선언적 언어는 사용자가 "무엇"을 원하는지 표현하도록 하여, 내부 수행 방법은 데이터베이스가 담당.