2010학년도 2학기 데이타베이스설계 프로젝트 DEMO2010학년도 2학기 데이타베이스설계 프로젝트 DEMO

Posted at 2010. 12. 9. 20:23 | Posted in Computer Science/데이타베이스설계



  2010년 12월 9일 오후 06시부터 데이타베이스설계 과목 프로젝트 DEMO가 있었다. 우리 조는 5번째였으며 언제 시작하였는지 정확한 시간은 기록하지 않았다. 다만  오후 08시 20분에 종료 되었다.

  먼저 DEMO를 할 때 신기훈 조교 선생님 한분만 계셨다. 조교 선생님과 함께 시연을 하면서 몇 가지 부분을 지적받았다. 먼저 데이터베이스의 테이블을 생성할 때 정확한 타입을 사용했는지였다. 지적 받은 사항을 요약하면 다음과 같다.

1. 프로젝트에서 사용한 DBMS를 PPT에 명시하지 않았다.
2. 프로젝트에서 사용한 ISQL 도구를 명시하지 않았다.
3. 소의 성별이 경우 VCHAR2(4)를 사용하였는데 '암컷'과 '수컷' 밖에 없기 때문에 CHAR(4)를 쓰는 것이 좋다.
4. 한글의 경우 한 글자가 2 Bytes를 차지 하기 때문에 VCHAR2뒤에 값이 짝수 같이 오는 것이 좋다.

  해당 데이터베이스의 사용자에 대해 설명하고 각 테이블의 DESC과 데이터 값을 몇 개씩 선택하여 보여드렸다. 마지막으로 자연질의어와 집계 함수를 사용한 SQL 문장을 입력하여 값을 확인하였다.

  벌크 데이터의 수량이 많았다면 추가 점수를 받을 수 있었는데 많이 준비하지 못해 아쉬웠다. 조교 선생님도 이 부분을 지적하셨다.

  설명 중 우리가 사용한 Triger에 대해서 설명드렸다. 소 테이블에 소가 추가될 때(INSERT INTO) 농장의 소마리수에 1씩 값이 증가한다.

  마지막 확인은 소테이블에 세 마리의 소를 추가하고 트리거의 동작 유무와 집계 함수의 동작 유무였다. 물론 조교 선생님이 다른 조를 채점하고 있는 동안 SQL 문장을 작성하였고 조교 선생님이 오시고 나서 기존 값을 보여드리고 변경된 값을 보여드렸다. 집계 함수를 사용하는 SQL 문장은 2010년에 소가 가장 많이 태어난 달을 구하는 것이였는 이것 역시 트리거와 함께 잘 동작하였다.

※ 프로젝트 DEMO시 작성한 SQL 문장은 다음과 같다.

INSERT INTO 소(소ID, 생일, 나이, 성별, 중량, 품종, 상태, 농장허가번호, 농장등록일)
VALUES(소ID.NEXTVAL, TO_DATE('2010-12-01', 'YYYY-MM-DD'), 1, '암컷', 236, '한우', '사육', 10060 , TO_DATE('2010-12-01', 'YYYY-MM-DD') );

INSERT INTO 소(소ID, 생일, 나이, 성별, 중량, 품종, 상태, 농장허가번호, 농장등록일)
VALUES(소ID.NEXTVAL, TO_DATE('2010-12-02', 'YYYY-MM-DD'), 1, '수컷', 266, '브라만종', '사육', 10060 , TO_DATE('2010-12-02', 'YYYY-MM-DD') );

INSERT INTO 소(소ID, 생일, 나이, 성별, 중량, 품종, 상태, 농장허가번호, 농장등록일)
VALUES(소ID.NEXTVAL, TO_DATE('2010-12-03', 'YYYY-MM-DD'), 1, '암컷', 300, '한우', '사육', 10060 , TO_DATE('2010-12-03', 'YYYY-MM-DD') );

 

//