데이터베이스이해와활용 첫번째 과제

   

  • 제출 안내사항: 숙제 파일 (hw1_[your student id].doc 또는 hw1_[your student id].hwp)을 온라인 Uclass 강의실에 업로드해주세요. 답안은 한국어나 영어로 자유롭게 작성하실 수 있습니다.
  • 과제 제출 마감: 10월 6일 금요일 14:00 PM 10월 11일 수요일 18:00 PM
  • English version

       

TA: 이상민(sangmin.lee.ai@gmail.com)

   


  1. (1점) 통제된 중복성과 통제되지 않은 중복성의 차이점은 무엇인가요? 예를 들어 설명해주세요.

   


  1. (1점) 아래에 표시된 데이터베이스(교재 그림 1.2)에 적용해야 할 무결성 제약 조건의 예를 들어주세요.

Figure 1.2

   


  1. (3점) 학생의 성적을 기록하기 위해 사용되는 대학 데이터베이스에 대한 다음의 요구 사항들을 고려해보세요. 이는 교재의 그림 1.2에 표시된 데이터베이스와 비슷하지만 동일하지는 않습니다.

    (a) 대학은 각 학생의 이름, 학번, 주민등록번호, 현재 주소 및 전화번호, 영구 주소 및 전화번호, 생년월일, 성별, 학년 (신입생, 2학년, …, 대학원생), 주전공, 부전공 (해당되는 경우), 학위 프로그램 (B.A., B.S., …, Ph.D.)에 대한 정보를 추적합니다. 일부 사용자 애플리케이션은 학생의 영구 주소의 도시, 주, 우편번호 및 학생의 성에 대한 정보가 필요합니다. 주민등록번호와 학번은 각 학생에게 유일한 값을 갖습니다.

    (b) 각 학과는 이름, 학과 코드, 사무실 번호, 사무실 전화번호, 대학 이름으로 설명됩니다. 이름과 코드는 각 학과별로 유일한 값을 갖습니다.

    (c) 각 과목은 과목 이름, 설명, 과목 번호, 학기 학점 수, 레벨, 제공 학과에 대한 정보를 갖습니다. 과목 번호의 값은 각 과목별로 유일합니다.

    (d) 각 섹션은 강사, 학기, 연도, 과목, 섹션 번호에 대한 정보를 갖습니다. 섹션 번호는 동일한 학기/연도에 가르쳐지는 동일한 과목의 다른 섹션을 구별하는 데 사용되며, 그 값은 1, 2, 3, …으로, 각 학기에 가르쳐지는 섹션 수에 따라 결정됩니다.

    (e) 성적 보고서에는 학생, 섹션, 글자 성적, 숫자 성적 (F, D, C, B, A에 각각 0, 1, 2, 3, 4)이 포함됩니다.

    이 응용 프로그램에 대한 ER 스키마를 설계하고, DB 모델링 도구 [ERDCloud](https://erdcloud.com/)를 사용하여 해당 스키마에 대한 ER 다이어그램을 그려주세요. 각 엔터티 유형의 주요 속성과 각 관계 유형에 대한 구조적 제약을 지정합니다. 지정되지 않은 요구 사항을 참고하고, 사양을 완료하기 위해 적절한 가정을 합니다.

    이상민 조교님이 작성하신 가이드라인를 읽어보신 후 사용해보시기를 권유합니다. ERDCloud가 아닌 다른 DB 모델링 도구를 사용해도 좋습니다. 다른 도구를 사용하는 경우 ER 다이어그램을 PDF 형식으로 제출해주세요.

   


  1. (1점) 아래에 주어진 ER 다이어그램(교재 그림 3.21)을 고려하면, 항공 예약 시스템의 간단한 스키마를 보여줍니다. ER 다이어그램에서 이 스키마를 생성하기 위한 요구 사항과 제약 조건을 추출해주세요. 요구 사항과 제약 조건의 명세에서 가능한 한 정확해야 합니다.

    힌트: 요구 사항과 제약 조건을 작성하는 방법에 대해서는 문제 3을 참조하세요.

Figure 3.21

   


  1. (1점) 아래에 제시된 ER 다이어그램(교재 그림 3.22)을 고려하여 BANK 데이터베이스의 일부를 살펴보세요. 각 은행은 여러 지점을 가질 수 있으며, 각 지점은 여러 계좌와 대출을 가질 수 있습니다.

    (a) ER 다이어그램에서 강한 (비약한) 엔터티 유형을 나열하세요.

    (b) 약한 엔터티 유형이 있나요? 있다면, 그 이름, 부분 키, 그리고 식별 관계를 제시하세요.

    (c) 이 다이어그램에서 약한 엔터티 유형의 부분 키와 식별 관계는 어떤 제약사항을 지정하나요?

    (d) 모든 관계 유형의 이름을 나열하고, 관계 유형에서 엔터티 유형의 참여에 대한 (최소, 최대) 제약 조건을 지정하세요. 선택 사항을 정당화하세요.

Figure 3.22

   


  1. (1점) 아래에 제시된 그림(교재 그림 5.6)에서 보여지는 데이터베이스 상태에 직접 다음의 Update 연산이 적용된다고 가정하십시오. 각 연산에 의해 위반되는 모든 무결성 제약 조건을 논의하고, 이러한 제약 조건을 집행하는 다양한 방법에 대해 논의하십시오.

    (a) EMPLOYEE에 <’Robert’, ‘F’, ‘Scott’, ‘943775543’, ‘1972-06-21’, ‘2365 Newcastle Rd, Bellaire, TX’, M, 58000, ‘888665555’, 1> 삽입.

    (b) PROJECT에 <’ProductA’, 4, ‘Bellaire’, 2> 삽입.

    (c) DEPARTMENT에 <’Production’, 4, ‘943775543’, ‘2007-10-01’> 삽입.

    (d) WORKS_ON에 <’677678989’, NULL, ‘40.0’> 삽입.

    (e) DEPENDENT에 <’453453453’, ‘John’, ‘M’, ‘1990-12-12’, ‘spouse’> 삽입.

    (f) Essn = ‘333445555’인 WORKS_ON 튜플 삭제.

    (g) Ssn = ‘987654321’인 EMPLOYEE 튜플 삭제.

    (h) Pname = ‘ProductX’인 PROJECT 튜플 삭제.

    (i) Dnumber = 5인 DEPARTMENT 튜플의 Mgr_ssn과 Mgr_start_date를 각각 ‘123456789’와 ‘2007-10-01’로 수정.

    (j) Ssn = ‘999887777’인 EMPLOYEE 튜플의 Super_ssn 속성을 ‘943775543’로 수정.

    (k) Essn = ‘999887777’ 및 Pno = 10인 WORKS_ON 튜플의 Hours 속성을 ‘5.0’로 수정.

Figure 5.6

   


  1. (2점) 자동차 판매점의 자동차 판매에 대한 기록을 유지하는 데이터베이스에 대한 다음 관계를 고려하십시오 (OPTION은 자동차에 설치된 선택적 장비를 나타냅니다):

    • CAR(Serial_no, Model, Manufacturer, Price)
    • OPTION(Serial_no, Option_name, Price)
    • SALE(Salesperson_id, Serial_no, Date, Sale_price)
    • SALESPERSON(Salesperson_id, Name, Phone)

    먼저 이 스키마의 외래 키를 지정하고, 어떠한 가정을 하는지 명시하십시오. 다음으로, 몇 가지 샘플 튜플로 관계를 채우고, SALE 및 SALESPERSON 관계에 참조 무결성 제약 조건을 위반하는 삽입 예와 그렇지 않은 다른 삽입 예를 제시하십시오. 또한 이 문제를 해결하기 위해 `ERDCloud’ DB 모델링 도구를 사용해야 합니다. 도구 사용 방법은 문제 3을 참조하십시오.