1. - 1 -
2019학년도 2학기 과제물시험 (중간)
❍ 교과목명 : 데이터베이스 설계 및 구현
❍ 학 번 : 201934-363698
❍ 성 명 : 이상호
❍ 연 락 처 : 010-4078-7412
l 과 제 명 : 교재 1장~5장까지 학습한 후 MySQL 서버와 MySQL 워크벤치를 사용하여 다음 조
건에 따라 데이터베이스를 설계하시오.
< 목 차 >
I. 각 문제에 따른 실행 결과 ························································································ 2
II. 참고문헌 ······················································································································ 4
2. - 2 -
I. 각 문제에 따른 실행 결과
Ÿ MySQL 워크벤치를 사용하여 ER 다이어그램을 작성한다.
그림 1. 모델링에 대한 캡쳐본.
3. - 3 -
Ÿ MySQL 워크벤치의 forward engineering 기능을 이용하여 스키마를 생성하고 MySQL Server에 적용한
다.
그림 2. review the SQL script에 대한 캡쳐본.
4. - 4 -
그림 3. forward engineer process에 대한 캡쳐본.
그림 4. 내비게이터 스키마에 대한
캡쳐본.
5. - 5 -
Ÿ 사용자 요구사항과 문 5)를 참고하여 각 테이블에 적용되어야할 한 개 이상의 인덱스를 생성한다.
- CREATE INDEX 감독_INDEX ON ex_schema.감독 (이름);
- CREATE INDEX 배우_INDEX ON ex_schema.배우 (이름);
표 3. 인덱스 생성 SQL문 목록.
그림 5. SQL 쿼리 패널에 대한 캡쳐본 (1).
그림 6. 그림 6. SQL 쿼리 패널에 대한 캡쳐본 (2).
9. - 9 -
Ÿ 다음 정보를 출력하기 위한 SQL문을 작성한다 (SQL문 제출 및 쿼리창 적용 화면 캡쳐하여 제출).
- 배우의 이름, 성별, 출생지를 출력하시오.
-- 1) 배우의 이름, 성별, 출생지를 출력하시오.
SELECT 이름
, 성별
, 출생지
FROM ex_schema.배우;
표 9. 문제 1에 대한 SQL문.
그림 8. 문제 1번에 대한 쿼리창 적용 캡쳐본.
10. - 10 -
- 2015년에 제작된 영화의 제목, 제작국가, 상영시간, 제작사를 출력하시오.
-- 2) 2015년에 제작된 영화의 제목, 제작국가, 상영시간, 제작사를 출력하시오.
SELECT 제목
, 제작국가
, 상영시간
, 제작사
FROM ex_schema.영화
WHERE 영화.제작년도 = STR_TO_DATE('2015', "%Y");
표 10. 문제 2에 대한 SQL문.
그림 9. 문제 2번에 대한 쿼리창 적용 캡쳐본.
11. - 11 -
- 현재 날짜를 기준으로 최근 3년 안에 제작된 영화의 제목, 제작국가, 개봉일, 제작사, 배급사를 출력
하시오.
-- 3) 현재 날짜를 기준으로 최근 3년 안에 제작된 영화의 제목, 제작국가, 개봉일, 제
작사, 배급사를 출력하시오.
SELECT 제목
, 제작국가
, 개봉일자 AS 개봉일
, 제작사
, 배급사
FROM ex_schema.영화
WHERE 제작년도 > YEAR(NOW() - INTERVAL 3 YEAR);
표 11. 문제 3에 대한 SQL문.
그림 10. 문제 3번에 대한 쿼리창 적용 캡쳐본.
12. - 12 -
- 이름이 ‘명감독’인 감독이 촬영한 영화의 제목을 출력하시오.
-- 4) 이름이 명감독인 감독이 촬영한 영화의 제목을 출력하시오.
SELECT A.제목
FROM ex_schema.영화 A
, ex_schema.감독 B
, ex_schema.영화_has_감독 C
WHERE A.영화코드 = C.영화_영화코드
AND B.등록번호 = C.감독_등록번호
AND B.이름 = '명감독';
표 12. 문제 4에 대한 SQL문.
그림 11. 문제 4번에 대한 쿼리창 적용 캡쳐본.
13. - 13 -
- 감독이 직접 출현한 영화의 제목, 제작국가, 상영시간을 출력하시오.
-- 5) 감독이 직접 출현한 영화의 제목과 제작국가, 상영 시간을 출력하시오.
SELECT AA.제목
, AA.제작국가
, AA.상영시간
FROM (
SELECT *
FROM ex_schema.영화 A
, ex_schema.감독 B
, ex_schema.영화_has_감독 C
WHERE A.영화코드 = C.영화_영화코드
AND B.등록번호 = C.감독_등록번호
) AA
, ex_schema.배우 D
WHERE AA.등록번호 = D.감독_등록번호
AND AA.이름 = D.이름;
표 13. 문제 5에 대한 SQL문.
그림 12. 문제 5번에 대한 쿼리창 적용 캡쳐본.
14. - 14 -
II. 참고문헌
1. 정재화와 이언배. (2014). “제 2장 데이터베이스 설계와 구현을 위한 도구”, 데이터베이스 설계 및 구
현, 한국방송통신대학교출판문화원.