201502IC1AP-1 DB 구축 2015 학년도 2 학기 프로젝트특강보고서 프로젝트명 : DB 구축 ( DB ) 2015 년 11 월 20 일 지도교수 : 황치곤교수님 학과 : 정보통신공학과 1팀제출자 : 역할성명학번 조장 조재석 2015671001 조원 송찬호 2015671014 조원 김현종 2015671010 광운대학교정보과학교육원 정보통신공학과 61
조재석 / 송찬호 / 김현종 201502IC1AP-1 목차 1. 프로젝트팀원소개 1 2. 프로젝트개요 2 2.1. 프로젝트소개 2 2.2. 프로젝트목적 2 2.3. 프로젝트내용 3 2.4. 프로젝트기대효과 3 2.5. 팀구성및역할 4 2.6. H/W, S/W 요구사항 4 3. 프로젝트설계 5 3.1. 프로젝트설계 ( 구성 ) 도 5 3.2. 프로젝트세부설계 ( 구성 ) 도 6 3.3. 프로젝트세부알고리즘 ( 설명서 ) 7 4. 프로젝트구현 8 4.1. 초기화면 8 4.2. 실행화면 (1) 8 4.3. 실행화면 (2) 9 4.4. 실행화면 (3) 9 5. 결론 10 62 광운대학교정보과학교육원
201502IC1AP-1 DB 구축 1. 프로젝트팀원소개 Ÿ 간단한자기소개 Ÿ 조장, Ÿ DB구축을담당 Ÿ 보고서작성 Ÿ Ÿ ERD 작성 보고서작성 조장 : 조재석 팀원 : 송찬호 팀원 : 김현종팀원 : 팀원 : 팀원 : 팀원 : 팀원 : 정보통신공학과 63
조재석 / 송찬호 / 김현종 201502IC1AP-1 2. 프로젝트개요 2.1 프로젝트소개 인터넷서점을사용하는고객의개인정보 (ID, 이름, 생년월일, 등 ), 직원의개인정보 ( 직원이름, 연락처, 등 ), 제품의상태 ( 제품이름, 제품번호, 재고량, 가격등 ) 등을최대한중복되는것이없이각개체가연결관계 ( 구매, 배송, 환불, 등 ) 를통해서로의행동의상호작용하며그상호작용의결과 ( 구매항목, 배송항목, 환불항목 ) 물을정리하여데이터베이스로작성하여원하는데이터를골라낼수있도록데이터베이스를정리한다. 2.2 프로젝트목적 데이터베이스를작성하기위해각개체별로필요한항목을만들어데이터가 체계적으로작성되도록제약을걸어서중복을피하고원하는데이터를 검색가능하게데이터베이스를만들고검색이가능하게한다. 64 광운대학교정보과학교육원
201502IC1AP-1 DB 구축 2. 프로젝트개요 2.3 프로젝트내용 인터넷서점에서사용할고객의개인정보, 직원의개인정보, 제품정보, 고객이 구매한항목, 환불한항목, 직원이배송한항목등을데이터베이스로작성하여 검색이용이하게한다. 2.4 프로젝트기대효과 각정보를체계적으로데이터베이스로만들어고객은각제품에대해좀더시각적으로원하는제품의정보를얻을수있어시간절약을할수있고직원의입장에서는고객이구매한제품과고객의개인정보및배송주소등이보기쉽게정리되어일처리를더효율적으로처리할수있으며, 또한배송한제품의대한정보를정리해놓아서상품을주문한손님또한자신이주문한물품이배송되었는지확인이가능하다. 정보통신공학과 65
조재석 / 송찬호 / 김현종 201502IC1AP-1 2. 프로젝트개요 2.5 팀구성원및역할 Ÿ Ÿ 조재석 : DB 구축, table 작성 송찬호 : erd 작성, 보고서작성 2.6 H/W, S/W 요구사항 H/W Ÿ cpu-듀얼코어이상 Ÿ ram 1기가이상 SW Ÿ 운영체제 : Windows 7 데이터베이스툴 : MYSQL Workbench 6.3 CE DB server : MYSQL Server 5.6.26 데이터모델링도구 : STARUML 2.5.1 66 광운대학교정보과학교육원
201502IC1AP-1 DB 구축 3. 프로젝트설계 3.1 프로젝트개념적 ERD 정보통신공학과 67
조재석 / 송찬호 / 김현종 201502IC1AP-1 3. 프로젝트설계 3.2 프로젝트세부설계 ( 구성 ) 도 (1) 68 광운대학교정보과학교육원
201502IC1AP-1 DB 구축 3. 프로젝트설계 3.3 프로젝트세부알고리즘 ( 데이터베이스및테이블생성 ) create schema BOOKDB; use BOOKDB; CREATE TABLE `customer` ( `cid` int(11) NOT NULL, `cname` char(4) NOT NULL, `cbirth` int(11) NOT NULL, `cadd` varchar(40) DEFAULT NULL, `ctel` int(11) NOT NULL, PRIMARY KEY (`cid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `staff` ( `sid` int(11) NOT NULL, `sname` char(10) NOT NULL, `stel` int(11) NOT NULL, `partname` varchar(20) NOT NULL, PRIMARY KEY (`sid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `item` ( `ino` char(5) NOT NULL, `iname` char(20) NOT NULL, `iprice` int(11) NOT NULL, `istock` int(11) NOT NULL, PRIMARY KEY (`ino`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `deliver` ( `dno` int(11) NOT NULL, `dam` int(11) NOT NULL, PRIMARY KEY (`dno`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `buy` ( `cid` int(11) NOT NULL, `ino` char(5) NOT NULL, `buydate` date DEFAULT NULL, `iname` char(20) NOT NULL, PRIMARY KEY (`cid`,`ino`), KEY `fk_buy_ino_idx` (`ino`), CONSTRAINT `fk_buy_customer` FOREIGN KEY (`cid`) REFERENCES `customer` (`cid`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_buy_ino` FOREIGN KEY (`ino`) REFERENCES `item` (`ino`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 정보통신공학과 69
조재석 / 송찬호 / 김현종 201502IC1AP-1 4. 프로젝트구현 4.1 프로젝트실행화면 ( 테이터삽입및질의수행 ) insert into customer(cname, cid, cbirth, ctel, cadd) values(' 최현우 ', 123456, 880508, 010-4451-5553, ' 인천광역시 '); insert into customer(cname, cid, cbirth, ctel, cadd) values(' 이서경 ', 112246, 871210, 010-4841-4312, ' 서울특별시 '); insert into customer(cname, cid, cbirth, ctel, cadd) values(' 김우종 ', 123445, 941006, 010-6578-1234, ' 서울특별시 '); insert into customer(cname, cid, cbirth, ctel, cadd) values(' 이상한 ', 243312, 920708, 010-6648-4213, ' 대전광역시 '); insert into customer(cname, cid, cbirth, ctel, cadd) values(' 공기범 ', 225677, 980311, 010-3125-5468, ' 대구광역시 '); -> select cid,cname from customer where cadd = ' 서울특별시 ' order by cid asc; *asc-> 내림차순 cid cname >112246 이서경 >123445 김우종 insert into staff(sname, sid, stel, partname) values(' 유상호 ', 3215, 010-4872-6654, ' 영업부 '); insert into staff(sname, sid, stel, partname) values(' 이유정 ', 3112, 010-7342-4421, ' 영업부 '); insert into staff(sname, sid, stel, partname) values(' 김시우 ', 5543, 010-8112-3326, ' 재고관리부 '); ->select sname, sid from staff where partname = ' 영업부 ' order by sid asc; sname sid > 이유정 3112 > 유상호 3215 70 광운대학교정보과학교육원
201502IC1AP-1 DB 구축 4. 프로젝트구현 4.2 프로젝트실행화면 ( 테이터삽입및질의수행 ) insert into item(ino, iname, iprice, istock) values('a123', ' 클린세탁 ', 6000, 1000); insert into item(ino, iname, iprice, istock) values('a213', ' 향긋한비누 ', 500, 3000); insert into item(ino, iname, iprice, istock) values('b312', ' 오리털잠바 ', 230000, 120); insert into item(ino, iname, iprice, istock) values('c221', ' 레고장난감 ', 23000, 150); insert into item(ino, iname, iprice, istock) values('d412', ' 로봇청소기 ', 480000, 80); ->select ino, iprice from item where ino = 'A123'; ino iprice > A123 6000 insert into buy(cid, ino, buydate, iname) values(123456, 'A123', '2015-09-08', ' 클린세탁 '); insert into buy(cid, ino, buydate, iname) values(112246, 'A213', '2015-10-03', ' 향긋한비누 '); insert into buy(cid, ino, buydate, iname) values(123445, 'B312', '2015-11-10', ' 오리털잠바 '); insert into buy(cid, ino, buydate, iname) values(243312, 'C221', '2015-10-23', ' 레고장난감 '); insert into buy(cid, ino, buydate, iname) values(225677, 'D412', '2015-11-13', ' 로봇청소기 '); ->select cid, ino from buy where buydate = '2015-09-08' cid ino >123456 A123 정보통신공학과 71
조재석 / 송찬호 / 김현종 201502IC1AP-1 5. 결론 결론 DB 를구축을하여데이터가많을때검색을하여좀더쉽고정확하면서자신이 원하는순서대로정보를얻을수있다. [ 하고싶은말 ] 조재석 : 더많은데이터가있을때에도간단하게 DB구축을해보고싶다. 송찬호 : 이프로젝트를통해데이터구축및개체관계구조도를작성해볼수있어새로운것을배울수있었고 mysql과 staruml 프로그램을사용해볼수있는계기가되었다. 72 광운대학교정보과학교육원