📢본 연습문제의 저작권은 http://www.kocw.net/home/search/kemView.do?kemId=1163794에 있으므로 무단 복제 및 배포를 금합니다.

우리는 관계 대수 연산자에 포함되는 다양한 일반 집합 연산자와 순수 관계 연산자를 학습하였다. 이제 위의 연습문제를 풀어보자.
π_과목이름(과목)π_학번 ∧ 이름(σ_학년 = '1학년'(학생))π_학번, 과목번호, 학점(σ_중간성적 ≥ 80 ∧ 기말성적 ≥ 70(학생⋈과목⋈수강)π_학번(σ_과목번호(과목⋈학생))π_이름, 학년(σ_과목번호=3 ∧ 학점 = 'A0'(과목⋈수강⋈학생))π_과목이름(과목)
π_학번, 이름(σ_학년 = '1학년'(학생))
👉속성은 논리 연산자가 아니라 콤마를 사용!
π_학번, 과목번호, 학점(σ_중간성적 ≥ 80 ∧ 기말성적 ≥ 70(수강)
👉수강 릴레이션에 학번, 과목번호, 학점이 있기 때문에 굳이 조인 연산 할 필요 x
👉프로젝트를 기준으로 해서 먼저 찾았기 때문에 이런 오류가 발생하였음. 따라서, clockwise 순서로 릴레이션 -> 셀렉트 -> 프로젝트 순으로 표현하는 것이 바람직하다.
π_학번, 과목번호(수강) ÷ π_과목번호(과목)
👉셀렉트에 대한 표현법 미숙지로 인한 오답!
👉디비전은 R이 S의 모든 속성을 포함하고 있어야 연산이 가능하기 때문에 과목이름이 아니라 과목번호를 프로젝트하였다.
π_이름, 학년(σ_과목번호=3 ∧ 학점 = 'A0'(학생⋈수강))

π_판매자번호, 이름(σ_수수료 < 0.05(판매자))π_이름, 수수료(σ_고객번호='C001' ∧ 제품번호='P003'(판매자⋈주문))π_판매자번호(σ_거주도시='부산'(주문⋈고객))π_이름(고객) - π_이름(σ_판매자번호='A003'(고객⋈주문))π_판매자번호, 고객번호(주문) ÷ π_고객번호(σ_거주도시='부산'(고객)σ_거주도시='부산'π_고객번호 && 주문을 받은 판매자의 번호 -> π_판매자번호(주문)π_과목이름(과목) ≒ π_고객번호(σ_거주도시='부산'(고객)) (∵고객번호가 key라 훨씬 identifiable함)π_판매자번호, 고객번호(주문)을 고려한다면:π_판매자번호, 고객번호(주문) ÷ π_고객번호(σ_거주도시='부산'(고객))🤔차집합과 디비전 개념이 익숙하지 않으므로 개념 복습만은 하되, 어짜피 실무에서는 관계 해석을 기반한 SQL 쿼리문을 주로 사용하기 때문에 너무 deep하게 공부할 필요는 없음!