데이터베이스 기말과제 보고서
문서 내 토픽
  • 1. 개념 모델링[ERD] 수정사항
    기말과제 제안서에서 제안했던 ERD에서는 박람회의 참가하는 참가기업과 행사업체를 각각의 개체로 저장하였다. 하지만 두 개체의 속성이 비슷하다는 것을 알게 되었고, 행사업체는 저장되는 인스턴스가 적을 수 있다. 따라서, 두 개체를 참가기업 한 개의 개체로 통일시키고 참가구분이라는 속성을 추가하였다. 이럴 경우 저장공간의 낭비도 줄이면서 복잡성을 최소화할 수 있었다고 생각한다. 또한 ERD상에서 잘못 생각했던 차수들이 눈에 보였기 때문에 배정과 상품지원 관계에서 차수를 수정하였다.
  • 2. 속성 추가
    기말과제 제안서 이후에 배우지 않았던 기술 중 RANK, DENSE_RANK 등의 개념을 사용하고 싶어 참가기업 개체의 매출액이라는 속성을 추가하였다. 그리고 ERD 검토 후 관리 시스템의 취지에 맞게 수정하였다. 참가자의 학교 정보는 참가기업이 참고할 수 있는 중요 정보이므로 참가자개체의 학교 속성을 추가하였고, 참가자가 기업부스에 참여하는 일시를 참여관계의 속성으로 추가하였다. 또한 관계자의 관리 관계를 상품에 연결시켜 상품을 관리하는 직원이 있도록 설정하였다.
  • 3. 요구사항 분석 및 개념 모델링[주제]
    2022년 서울 코엑스에서 취업박람회가 열린다고 한다. 해당 취업박람회를 통해 기업은 홍보효과를 얻을 수 있으며 취업준비생은 기업의 정보와 취업기회를 얻을 수 있다. 이번 박람회는 3일동안 개최되며 다양한 기업과 많은 수의 참가자가 참여할 것으로 기대된다. 따라서, 운영 측은 효율적인 운영을 위해 많은 정보를 저장하고 활용해야 할 필요성을 느끼게 되었다. 참가하는 기업, 인사담당자, 운영자, 참가자, 학교등의 정보를 저장하고 추후에도 활용하기 위해 데이터베이스를 운영하기로 결정하였고, 이를 위해 요구사항과 모델링 등을 수행하기로 하였다.
  • 4. 논리 모델링[테이블 정의서]
    참가자(고유번호, 이름, 성별, 주소, 학교, 전공), 참가자관심분야(고유번호(FK), 관심분야), 참가기업(고유번호, 기업이름, 주소, 담당자연락처, 연봉, 참가구분, 부스고유번호(FK)), 부스(부스번호, 부스위치, 면적, 담당관계자번호(FK)), 관계자(관계자번호, 이름, 성별, 연락처), 상품(고유번호, 상품명, 수령참가자번호(FK), 관리직원번호(FK), 지원업체번호(FK), 부모상품번호), 지원업체(고유번호, 담당자연락처, 업체이름, 업체주소), 참여(참가자고유번호(FK), 참가기업고유번호(FK), 참여시각)
  • 5. 구현[실행 SQL - 삽입]
    참가자, 관심분야, 참가기업, 관계자, 부스, 지원업체, 상품, 참여 등의 테이블에 데이터를 삽입하는 SQL 문을 작성하였다.
  • 6. 구현[실행 SQL - 날짜 표시 변환]
    참여(attend) 테이블의 참여시각 속성이 sysdate를 통해 현재시간을 저장하도록 설계되었으나, 년/월/일만 표시되는 문제가 발생하여 날짜 형식을 'YYYY/MM/DD HH24:MI:SS'로 변경하였다.
  • 7. 구현[실행 SQL - 수정]
    참가자 번호 22005의 관심분야를 '교육'으로 수정하고, '품질'을 '품질관리'로 수정하는 SQL 문을 작성하였다.
  • 8. 구현[실행 SQL - 삭제]
    참가자 중 번호가 22006인 참가자의 데이터를 삭제하는 SQL 문을 작성하였다.
  • 9. 구현[실행 SQL - 검색]
    다양한 조건을 활용하여 데이터를 검색하는 SQL 문을 작성하였다. 예를 들어 '에스케이씨엔씨' 기업의 부스를 관리하는 관계자의 이름과 성별, 부스에 참여한 참가자의 이름과 참여 횟수, 한번도 참가자의 참여가 없었던 부스번호와 기업이름, 참가기업의 이름과 연봉, 매출액에 따른 순위 등을 검색하였다.
  • 10. 기타[테이블 정규화 정도]
    참가자(participant) - BCNF 정규형, 관심분야(interest) - BCNF 정규형, 참가기업(company) - 제2 정규형, 부스(booth) - BCNF 정규형, 관계자(official) - BCNF 정규형, 지원업체(support_company) - BCNF 정규형, 상품(goods) - BCNF 정규형, 참여(attend) - BCNF 정규형으로 정규화되어 있다. 참가기업 테이블에서 이행함수종속이 발견되어 참가기업연봉 테이블을 추가로 생성하여 정규화하였다.
Easy AI와 토픽 톺아보기
  • 1. 주제2: 속성 추가
    데이터베이스 설계 과정에서 속성 추가는 매우 중요한 작업입니다. 새로운 요구사항이 발생하거나 기존 데이터 구조의 한계가 발견되면 속성 추가가 필요할 수 있습니다. 속성 추가 시에는 데이터 무결성, 성능, 확장성 등을 고려해야 합니다. 새로운 속성이 기존 데이터와 어떤 관계를 가지는지, 어떤 데이터 타입과 제약 조건이 적절한지 등을 면밀히 검토해야 합니다. 또한 속성 추가에 따른 기존 코드와 문서의 변경 사항도 함께 관리해야 합니다. 이를 통해 데이터베이스 설계의 일관성과 유지보수성을 높일 수 있습니다.
  • 2. 주제4: 논리 모델링[테이블 정의서]
    논리 모델링 단계에서 작성되는 테이블 정의서는 데이터베이스 설계의 핵심 산출물 중 하나입니다. 테이블 정의서에는 테이블 구조, 데이터 타입, 제약 조건, 관계 등 데이터베이스 구현에 필요한 모든 정보가 포함됩니다. 이 문서는 개발자, 운영자, 관리자 등 다양한 이해관계자들이 참조하게 되므로, 정확성과 완성도가 매우 중요합니다. 테이블 정의서 작성 시에는 데이터 무결성, 성능, 확장성 등을 고려해야 하며, 관련 문서와의 일관성도 유지해야 합니다. 또한 테이블 정의서는 데이터베이스 유지보수와 변경 관리에 핵심적인 역할을 하므로, 지속적인 관리와 업데이트가 필요합니다.
  • 3. 주제6: 구현[실행 SQL - 날짜 표시 변환]
    데이터베이스에서 날짜 및 시간 데이터의 표현과 처리는 매우 중요합니다. 실행 SQL 코드에서 날짜 표시 변환은 사용자 인터페이스와 데이터베이스 간의 데이터 일관성을 유지하는 데 필수적입니다. 날짜 표시 변환 쿼리 작성 시에는 데이터베이스의 날짜 및 시간 데이터 타입, 타임존 처리, 계산 로직 등을 고려해야 합니다. 또한 이 쿼리는 향후 데이터 검색, 분석, 보고 등 다양한 용도로 활용될 수 있으므로 가독성과 유지보수성이 높아야 합니다. 날짜 표시 변환 쿼리의 정확성과 효율성은 데이터베이스 시스템의 전반적인 품질에 큰 영향을 미칠 수 있습니다.
  • 4. 주제8: 구현[실행 SQL - 삭제]
    데이터베이스 구현 단계에서 데이터 삭제 쿼리는 매우 중요한 역할을 합니다. 데이터 삭제 쿼리는 더 이상 필요하지 않은 데이터를 제거하여 데이터베이스의 효율성과 성능을 높이는 데 사용됩니다. 삭제 쿼리 작성 시에는 데이터 무결성 제약 조건, 트랜잭션 처리, 백업 및 복구 전략 등을 고려해야 합니다. 또한 삭제 쿼리는 향후 데이터 변경 및 관리를 위해 체계적으로 관리되어야 합니다. 이를 통해 데이터베이스의 안정성과 신뢰성을 높일 수 있습니다.
  • 5. 주제10: 기타[테이블 정규화 정도]
    데이터베이스 설계에서 테이블 정규화는 매우 중요한 개념입니다. 정규화는 데이터 중복을 제거하고 데이터 무결성을 보장하는 데 도움을 줍니다. 정규화 정도는 데이터베이스의 성능, 확장성, 유지보수성에 큰 영향을 미칩니다. 적절한 정규화 수준을 결정하기 위해서는 데이터 모델, 요구사항, 사용 패턴 등을 종합적으로 고려해야 합니다. 과도한 정규화는 복잡성을 증가시켜 성능 저하를 초래할 수 있으며, 부족한 정규화는 데이터 중복과 무결성 문제를 야기할 수 있습니다. 따라서 데이터베이스 설계 시 정규화 정도를 적절히 조절하는 것이 중요합니다.
데이터베이스 기말과제 보고서
본 내용은 원문 자료의 일부 인용된 것입니다.
2023.04.20
연관 리포트도 확인해 보세요!