2014-11-03 4 views
-1

조직의 관리 구조에 대한 rdbms를 개발하십시오. 각 직원은 특정 부서에 속해 있으며 여러 프로젝트와 연관되어 있습니다. 각 매니저는 여러 명의 직원뿐만 아니라 여러 프로젝트를 관리하는 직원입니다. 각 프로젝트는 일정 기간 동안 실행됩니다. 직원들은 특정 기간 동안 조직에 머물러 있습니다.디자인 데이터베이스 모델 및 관련 sql 쿼리

조회 :

  1. 이 근무하고 직원없이 찾기
  2. 'X'프로젝트에서 한 번에 작업 직원없이보다 관리하는 비생산적인 관리자를 찾을 최대 찾을
  3. 모든 프로젝트 지난 일년
  4. 5 프로젝트는 그 직원이 최근 1 년 최대 프로젝트를 처리 한 부서를 찾을

편집 :
나는 지난 3 쿼리 시간 제약을 처리하는 방법을 결정할 수 없습니다. 나는 3 개 테이블을 만든 : 속성

  • 직원 : EMP_ID, 이름, 부서를 MANAGER_ID EMP_ID는 기본 키이고 MANAGER_ID는 p_id, p_name와 자기 참조 외래 키
  • 프로젝트, MANAGER_ID p_id 차입니다 경우 EMP_ID와 키
  • 할당은, p_id 두 속성은 복합 기본 키

는 위의 나에게 첫 번째 질의에 응답 할 수 있도록 위치를하지만 내가 어떻게 쿼리의 나머지 부분에 대답하는 시간 제약 조건을 추가하려면 어떻게해야합니까. 날짜 - 시간 속성이 필요하거나 간단한 지속 시간 속성이 필요합니까? 아니면 여기에 다른 것이 필요합니까? 도와주세요.

+4

학생들을 기꺼이 도와 드리겠습니다.숙제 질문을 올리면 많은 도움을 얻지 못할 것입니다. 여러 가지 질문이 아닌 1 가지 질문을하십시오. 당신이 시도한 것을 보여주십시오. 당신이 갇혀있는 곳을 말해주십시오. –

+0

은 편집 @JustinCave –

답변

0

ALLOTMENT는 EMPLOYEE와 PROJECT 간의 교집합입니다. 그것은 프로젝트에 종사하는 직원을 기록합니다.

그러나 직원은 프로젝트 에 참여하고 프로젝트는으로 남겨 둡니다. 프로젝트는 자원 확보에있어 성장하고 줄어든다. 따라서 ALLOTMENT에는 START_DATE 및 END_DATE와 같이 특정 할당의 시간 범위를 나타내는 열이 필요합니다.

이러한 열을 추가하면 나머지 질문에 답변 할 수 있습니다. 그들 중 일부는 까다 롭습니다 (특히 2). 그러나 최소한 당신은 필요한 정보를 얻을 것입니다.

DEPARTMENT 테이블이 있어야하지만이 쿼리를 사용하지 않고이 쿼리를 작성할 수 있습니다. 또한 실생활에서 프로젝트는 시작일이 있고 완료일 (희망)이 있습니다. 그러나 그것들은 당신이 작성해야만하는 질의를 위해서도 필요하지 않습니다.

-2

project 테이블에서 두 개의 열을 추가하는 것을 고려하십시오 start_dateduration | 프로젝트의 End_date. 나는 이것이 당신이 마지막 3 개의 질문을 통해 일하기에 충분할 것이라고 생각합니다.

No_of_Employees_under_projectproject 테이블에있는 것으로 간주 할 수 있습니다.이 테이블은 정규화되어 있으며 프로젝트 참여 또는 퇴사 직원을 동적으로 반영합니다. 이 열은 에 대해 gain을 측정 한 후에 만 ​​추가해야합니다.

+0

음을 추가했습니다. 'No_of_Employees_under_project'라는 열은 파생 된 필드이므로 * 비 정규화 *입니다. 이것은 데이터웨어 하우스에서 유용하지만 OLTP 환경에서는 상당히 적습니다. 특히 다중 사용자 환경에서 직렬화를 포함하는 열 유지 관리의 오버 헤드가 값을 사전 계산하여 얻은 이득보다 중요하지 않음을주의해야합니다. 내가 선생님이라면 그런 일을 제안한 모든 학생을 표시 할 것입니다. – APC

+0

물론 이득은 정규화 비용과 비교하여 평가해야합니다. 나는 필요한 수정을했다. 감사 . – saikumarm

+0

또한 두 번째 쿼리의 구두점은 주어진 프로젝트에서 작업하는 직원의 수는 시간에 따라 다를 수 있음을 의미합니다. 귀하의 제안서는 그것을 반영하지 않으며, OP가 그 요구 사항을 충족시키는 것을 허용하지 않을 것입니다. – APC