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

   

  • 제출 안내사항: 숙제 파일 (hw4_[your student id].doc 또는 hw4_[your student id].hwp)을 온라인 Uclass 강의실에 업로드해주세요. 답안은 한국어나 영어로 자유롭게 작성하실 수 있습니다.
  • 과제 제출 마감 : 12월 19일 화요일 오후 2시

       

과제와 관련하여 질문이 있는 경우 Ed Discussion 플랫폼에 자유롭게 올려주세요. 만약 개인적으로 질문하고 싶은 내용이 있는 경우 저 또는 조교님께 이메일을 보내주세요.

   

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

   


  1. (2점) 다음 용어에 대한 정의를 기술하세요:
    • 인덱싱 필드(indexing field)
    • 기본 키 필드(primary key field)
    • 클러스터링 필드(clustering field)
    • 보조 키 필드(secondary key field)
    • 블록 앵커(block anchor)
    • 밀집 인덱스(dense index)
    • 희소 인덱스(sparse index)

  1. (2점) NOSQL 시스템의 주요 분류에 대해서 나열하고 각 분류의 특징, 장점, 단점을 설명하세요. 마지막으로 각 분류에 해당하는 몇 가지 대표적인 NOSQL 시스템을 나열하고 각 시스템의 특징을 설명하세요.

   


  1. (3점) 다음 정렬-병합(sort-merge) 알고리즘은 일반 JOIN 연산을 효율적으로 수행하는 방법을 기술하고 있습니다. 이 알고리즘을 확장하여 LEFT OUTER JOIN 연산을 수행하는 방법을 설명하세요.

sortmerge

   


  1. (3점) 다음 두 SQL 쿼리를 보고 다음 질문에 답하세요.
SELECT E.FNAME, E.LNAME, S.FNAME, S.LNAME
FROM EMPLOYEE E, EMPLOYEE S
WHERE E.SUPERSSN = S.SSN
SELECT FNAME, LNAME, 1.1*SALARY
FROM EMPLOYEE, WORKS_ON, PROJECT
WHERE SSN = ESSN AND PNO = PNUMBER AND PNAME = 'ProductX'

(a) 두 SQL 쿼리에 대해 초기 쿼리 트리를 그려보세요.

(b) 수업 시간에 배운 쿼리 최적화 휴리스틱을 활용하여 두 초기 쿼리 트리가 어떻게 최적화될 수 있는지 보여주세요.

(c) 각각의 쿼리에 대해, 초기 쿼리 트리와 최적화된 쿼리 트리를 비교해보고 왜 최적화된 쿼리 트리가 더 효율적인지 설명하세요.