[방송통신대 컴퓨터과학과] 2019년 2학기 전공 데이터베이스 설계 및 구현 과제물

 정보

  • 업무명     : 데이터베이스 설계 및 구현 프로그래밍 과제물

  • 작성자     : 이상호

  • 작성일     : 2019-12-17

  • 설   명      :

  • 수정이력 :

 

 

 내용

[개요]

  • 안녕하세요? 웹 개발 및 연구 개발을 담당하고 있는 해솔입니다.

  • 오늘 포스팅은 데이터베이스 설계 및 구현 프로그래밍 과제물을 소개드리고자 합니다.

 

 

[특징]

  • 데이터베이스 설계 및 구현 과제물에 대한 이해를 돕기위해 작성

 

[기능]

  • 과제물 지시사항

  • 과제물 작성요령

 

[활용자료]

  • 인터넷 검색

[과제물 작성 요령]

  • 과제물 작성 계획 세우기

    • 과제물 작성을 위하여 계획 및 준비, 글쓰기, 제출과 같이 3 단계로 구성

    • 1 단계는 우선 계획 및 준비로서 공고 확인, 제출 기간 확인, 과제물 문제를 파악

    • 2단계의 경우 글쓰기로서 자료 검색 수집 및 개요 작성 그리고 본문 쓰기 및 수정

    • 끝으로 제출 마감일뿐만 아니라 파일 용량 검사 및 온라인시스템 제출

  • 과제물 문제 파악 요령

    • 과제물 문제에서 교수님의 지시사항을 정확히 간파하여 작성 

    • 특히 제출 파일의 양식/용량 및 스타일 형식 그리고 작성 분량에 유의

  • 나만의 글쓰기 전략

    • 앞서 작성 계획에서와 같이 단계별로 수행이 필연

    • 추가로 각 과제물마다 한글 또는 워드 양식에서 각자만의 스타일을 바탕으로 글의 내용 작성

    • 또한 각종 인터넷 검색 및 도서를 참조하여 내용을 제시할 뿐만 아니라 그에 따른 판단의 근거에 대한 명확한 인용 및 출처가 정확하게 표시

  • 학술 검색을 위한 유용한 방법

    • 인터넷은 1950대에 컴퓨터의 개발과 더불어 너무 많은 정보의 바다에서 살고 있기 때문에 자신에게 필요한 정보 발굴 능력 요구 

    • 인터넷 검색이 익숙하지 않을 경우 네이버 검색을 추천하고 익숙하면 구글 검색이 유용

    • 그러나 일반적으로 네이버 또는 구글로 검색할 경우 다수의 블로그에서 중복되는 정보를 확인할 수 있고 이러한 정보들은 대부분 복사 붙여넣기로 인해 남용되고 있는 실정

    • 따라서 이 보다는 전 세계 검색엔진 2위를 차지한 Yahoo! JAPAN (https://www.yahoo.co.jp)에서 검색하여 구글 번역할 경우 원하는 정보를 쉽게 얻음

    • 연구 보고서 또는 SCI/SCIE 논문을 보기 위해서 대학교에서 저널을 구독하는 것이 일반적이나 모든 저널을 구독하기에는 상당한 경제적 부담이 되기 때문에 SCI-HUB (https://sci-hub.tw/)를 통해 보는 것을 추천

 

[사용법]

  • 과제물 서식을 바탕으로 작성

 

[사용 OS]

  • Windows 10

 

[사용 언어]

  • MySQL

  • 한글 2018

 

 과제물 문제

 

 소스 코드

[명세]

-- 1) 배우의 이름, 성별, 출생지를 출력하시오.
SELECT 이름
			, 성별
			, 출생지
FROM ex_schema.배우;

-- 2) 2015년에 제작된 영화의 제목, 제작국가, 상영시간, 제작사를 출력하시오.
SELECT 제목
			, 제작국가
            , 상영시간
            , 제작사
FROM ex_schema.영화
WHERE 영화.제작년도 = STR_TO_DATE('2015', "%Y");

-- 3) 현재 날짜를 기준으로 최근 3년 안에 제작된 영화의 제목, 제작국가, 개봉일, 제작사, 배급사를 출력하시오.
SELECT 제목
			, 제작국가
            , 개봉일자 AS 개봉일
            , 제작사
            , 배급사
FROM ex_schema.영화
WHERE 제작년도 > YEAR(NOW() - INTERVAL 3 YEAR);

-- 4) 이름이 명감독인 감독이 촬영한 영화의 제목을 출력하시오.
SELECT A.제목
FROM ex_schema.영화 A
		   , ex_schema.감독 B
		   , ex_schema.영화_has_감독 C
WHERE A.영화코드 = C.영화_영화코드
			AND B.등록번호 = C.감독_등록번호
			AND B.이름 = '명감독';
	
-- 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.이름;

        

;
CREATE INDEX 감독_INDEX ON ex_schema.감독 (이름)
;
CREATE INDEX 배우_INDEX ON ex_schema.배우 (이름)
;
SHOW INDEX FROM ex_schema.감독
;
SHOW INDEX FROM ex_schema.배우
;

-- 감독 테이블
INSERT INTO ex_schema.감독
  (등록번호, 이름, 성별, 출생일, 출생지, 학력사항)
VALUES
  (1, '감독01', '남', '2001-01-01', '출생지01', '학력01')
  , (2, '감독02', '남', '2002-01-01', '출생지02', '학력02')
  , (3, '감독03', '남', '2003-01-01', '출생지03', '학력03')
  , (4, '감독04', '남', '2004-01-01', '출생지04', '학력04')
  , (5, '감독05', '남', '2005-01-01', '출생지05', '학력05')
  , (6, '감독06', '남', '2006-01-01', '출생지06', '학력06')
  , (7, '감독07', '남', '2007-01-01', '출생지07', '학력07')
  , (8, '감독08', '남', '2008-01-01', '출생지08', '학력08')
  , (9, '감독09', '여', '2009-01-01', '출생지09', '학력09')
  , (10, '감독10', '여', '2010-01-01', '출생지10', '학력10')
  , (11, '명감독', '남', '2018-01-01', '출생지11', '학력11')
  , (12, '명감독', '여', '2019-01-01', '출생지12', '학력12');
  
-- 배우 테이블
INSERT INTO ex_schema.배우
  (배우코드, 생년월일, 이름, 성별, 출생지, 키, 몸무게, 혈액형, 감독_등록번호)
VALUES
  (1, '2001-01-01', '배우01', '남', '출생지01', 170, 50, 'A ', 1)
  , (2, '2002-01-01', '배우02', '남', '출생지02', 171, 51, 'A ', 1)
  , (3, '2003-01-01', '배우03', '남', '출생지03', 172, 52, 'A ', 1)
  , (4, '2004-01-01', '배우04', '남', '출생지04', 173, 53, 'A ', 2)
  , (5, '2005-01-01', '배우05', '남', '출생지05', 174, 54, 'B ', 2)
  , (6, '2006-01-01', '배우06', '남', '출생지06', 175, 55, 'B ', 2)
  , (7, '2007-01-01', '배우07', '남', '출생지07', 176, 56, 'B ', 2)
  , (8, '2008-01-01', '배우08', '남', '출생지08', 177, 57, 'AB', 4)
  , (9, '2009-01-01', '배우09', '남', '출생지09', 178, 58, 'AB', 5)
  , (10, '2010-01-01', '배우10', '여', '출생지10', 179, 59, 'O ', 6)
  , (11, '2019-01-01', '명감독', '여', '출생지12', 180, 60, 'A ', 12);

-- 장르 테이블
INSERT INTO ex_schema.장르
  (장르코드, 장르명)
VALUES
  (1, '장르01')
  , (2, '장르02')
  , (3, '장르03');

-- 영화 테이블
INSERT INTO ex_schema.영화
  (영화코드, 제목, 제작년도, 제작국가, 상영시간, 개봉일자, 제작사, 배급사, 장르_장르코드)
VALUES
  (1, '영화01', '2001', '대한민국', '02:10:00', '2001-01-01', '제작사01', '배급사01', 1)
  , (2, '영화02', '2002', '대한민국', '02:10:00', '2002-01-01', '제작사02', '배급사02', 1)
  , (3, '영화03', '2003', '대한민국', '02:10:00', '2003-01-01', '제작사03', '배급사03', 1)
  , (4, '영화04', '2004', '대한민국', '02:10:00', '2004-01-01', '제작사04', '배급사04', 1)
  , (5, '영화05', '2005', '대한민국', '02:10:00', '2005-01-01', '제작사05', '배급사05', 2)
  , (6, '영화06', '2006', '대한민국', '02:10:00', '2006-01-01', '제작사06', '배급사06', 2)
  , (7, '영화07', '2007', '대한민국', '02:10:00', '2007-01-01', '제작사07', '배급사07', 2)
  , (8, '영화08', '2008', '대한민국', '02:10:00', '2008-01-01', '제작사08', '배급사08', 2)
  , (9, '영화09', '2009', '대한민국', '02:10:00', '2009-01-01', '제작사09', '배급사09', 3)
  , (10, '영화10', '2010', '대한민국', '02:10:00', '2010-01-01', '제작사10', '배급사10', 3)
  , (11, '영화11', '2017', '대한민국', '02:10:00', '2017-01-01', '제작사11', '배급사11', 1)
  , (12, '영화12', '2018', '대한민국', '02:10:00', '2018-01-01', '제작사12', '배급사12', 2)
  , (13, '영화13', '2019', '대한민국', '02:10:00', '2019-01-01', '제작사13', '배급사13', 3)
  , (14, '영화14', '2015', '대한민국', '02:10:00', '2018-01-01', '제작사14', '배급사14', 3);

-- 영화_has_감독
INSERT INTO ex_schema.영화_has_감독
  (영화_영화코드, 감독_등록번호)
VALUES
  (1, 1)
  , (1, 2)
  , (1, 3)
  , (13, 11)
  , (12, 12);

 

[GitHub Gist]

 

 관련 자료

[제출본]

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com