민규의 흔적

[오라클 DB] 질의에 대한 관계 대수식 표현 예제 본문

데이터베이스

[오라클 DB] 질의에 대한 관계 대수식 표현 예제

민규링 2023. 10. 18. 22:15

Q. 다음 릴레이션 스키마를 보고 질의에 관계 대수식으로 표현하시오.

CUSTOMER(CUSTOMER_ID, NAME, ADDRESS, PHONE)

VIDEO(VIDEO_ID, TITLE, GENRE)

RESERVED(CUSTOMER_ID, VIDEO_ID, DATE)

 

Q1. 제목이 ‘Avartar’인 비디오 테이프의 장르를 검색하시오.

 

 

비디오 릴레이션에서 제목이 'Avartar'인 영화를 추출해 결과 릴레이션을 도출하고, 해당 결과 릴레이션의 장르 애트리뷰트로 구성된 튜플을 구하면 된다.

 

 


 

 

Q2. 예약되지 않은 비디오 테이프의 ID를 검색하시오.

 

 

비디오 릴레이션에서 VIDEO_ID 애트리뷰트로 구성된 모든 튜플을 뽑은 릴레이션에서, 예약 릴레이션에 존재하는 모든 VIDEO_ID 애트리뷰트로 구성된 모든 튜플을 뽑은 릴레이션차집합 연산하면 결과 릴레이션은 예약되지 않은 비디오 ID로 구성된 릴레이션이 남을 것이다.

 

 


 

 

Q3. 비디오 테이프를 예약한 고객의 이름과 전화번호를 검색하시오.

 

 

손님 릴레이션과 예약 릴레이션을 자연 조인한 결과 릴레이션은 예약한 손님들에 대한 튜플 정보들의 집합인 릴레이션일 것이다.

해당 결과 릴레이션에서 NAME과 PHONE 애트리뷰트로 구성된 튜플을 구하면 비디오 테이프를 예약한 고객의 이름과 전화번호 정보로 구성된 릴레이션이 남을 것이다.

 

 

 


 

 

Q4. 장르가 'Action'인 비디오 테이프를 예약한 고객의 주소를 검색하시오.

 

이번 문제는 단위 문제로 접근하였다.

 

 

R1 릴레이션 : 장르가 ACTION인 비디오 릴레이션

 

 

R2 릴레이션 : 장르가 액션인 비디오를 예약한 데이터 릴레이션

 

 

 

R3 릴레이션 : 장르가 액션인 비디오를 예약한 고객 데이터 및 예약 데이터 릴레이션

 

 

R4 릴레이션 : 장르가 액션인 비디오를 예약한 고객 데이터 및 예약 데이터 릴레이션에서, ADDRESS 애트리뷰트 값을 프로젝션한 튜플들의 집합 릴레이션