TEAM 2 FINAL PRESENTATION
Giscielle Carlisa
Kelly Chien
Suman Koirala
Bowen Ni
Heidy Jimenez Pinto
Michael Signorotti
Kunal Shalia
Hiromichi Yamamoto
Database design
CONTENT:
I. Introduction
II. Database Design
III. Database Implementation: Queries
IV. Database Normalization
What is SAIT?
Student Affairs Information
Technologies (SAIT) is a shared service center with consolidated technological resources and support.
Overview:
Maintains campus IT Systems
Manages security and infrastructure of IT Services
What does SAIT do?
Receives project requests from campus departments
Defines project’s:
costs
risks feasibility
Manages project’s development
Provides resources for project development
Step by step
CONTENT:
I. Introduction
II. Database Design
III. Database Implementation: Queries
IV. Database Normalization
Simplified EER – Database design
1.
2.
5.
6.
7.
3.
4.
Project ( ProjectID, PName, ClientID 9 )
Task (TaskID, Start_Date, Expectedend_Date, Description, Priority_Level,
ClientID 9 , ResidentID 6 , EmployeeID 13b , EmployeeID 13 , immediate_predecessor)
Project_Log (ProjectID 1 , Start_Date, Expected_End_Date, Status, Comment,
Actual_End_Date, To-Do-List)
Service_Evaluation(SE_ID, ClientID 9 , Comments, Overall_Satisfaction,
Date_Evaluated)
Supplier(SupplierID, SName, SAddress, SEmail, Phone, Primary_Contact)
Resident (ResidentID, R_Fname, MI, R_Lname, Email, Resident_Type, Phone)
Insurance(PolicyID, Company, Start_Date, End_Date, Type,
Company_Description, Contact)
8.
9.
10.
11.
12.
Equipment(EquipmentID, quantity, location, condition) a. Software(EquipmentID 8 , name, version) b. Hardware(EquipmentID 8 , brand, name, model_num) c. Tool(EquipmentID 8 , model)
Client(ClientID, CName, CAddress, Email, Phone, DepartmentID 14 )
Skill (SkillID, Skill_Name) a. Tech_Skill (SkillID 10 ) b. Non-Tech_Skill (SkillID 10 )
Expenditure_Log(EL_ID, ProjectID 1 , budget_estimate, budget_actual, cost_description, comment, employee_cost, resource_cost)
Employee_Evaluates_Employee(EEID, overall_score, comment, date_evaluated, technical_performance, customer_service, professionalism,
Employee_EvaluatorID 13 , Employee_EvaluatedID 13 )
**Based on assumption any employee can evaluate any other employee..
13.
Employee (EmployeeID, Email, FName, MI, LName, Date_of_Birth, Pay_Rate,
PhoneNumber, PolicyID 7 , DepartmentID 14 ) a.
b.
c.
PMO (EmployeeID 13 )
TeamLead (EmployeeID 13 )
Contractor (EmployeeID 13 , Company_Name) d.
e.
Staff (EmployeeID 13 , TL_EmployeeID 13b )
Student (EmployeeID 13 , TL_EmployeeID 13b )
**(d) and (e) represent “Supervises” relationship between Team Lead and Employees
14.
Department(DepartmentID, DName, College, Division, Office_Address_Room,
15.
16.
Office_Address_Building, Office_Address_City, Office_Address_State,
Office_Address_ZIP, department_head, division_head, primary_contact, phone)
Type_of_Project(Type)
Warranty(WarrantyID, description, warranty_end_date, SupplierID 5 )
17.
Assessment (ProjectID 1 , EmployeeID 13 , ClientID 9 , Scope_Score, Cost_Score,
Recurring_Cost_Score,TimeLine_Score, Collaborative_Scope, Required_Score,
18.
19.
20.
Current_State_Score,Overall_Score, Accepted_Y/N)
Time_Slot(Start_Time, End_Time)
Order (OID, Order_Details, SupplierID 5 , EmployeeID 13
)
Project_has_a_Type_of_Project (ProjectID 1 , Type 15 )
21.
22.
Type_of_Project_requires_Equipment (EquipmentID 8 , Type 15 )
Employee_works_during (EmployeeID 13 ,Start_Time 18 , End_Time 18 ,Date)
23.
24.
25.
26.
27.
Employee_is_Available (EmployeeID 13 ,Start_Time 18 , End_Time 18 , Date)
Teamlead_specializesIn (Type 15 , EmployeeID 13 )
Project_uses_equipment (PID 1 , EquipmentID 8 )
Project_requires_skill (PID 1 , SkillID 10 )
Project_requires_skill (PID 1 , SkillID 10 )
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
TypeOfProject_requires_skill (Type 15 , SkillID 10 , level_Of_Skill)
Skill_relates_equipment (SkillID 10 , EquipmentID 8 )
Employee_Has_Skill(EmployeeID 13 , SkillID 10 ,Skill_Level)
Employee_worksOn_Project (EmployeeID 13 , PID 1 )
Employee_completes_task (EmployeeID 13 , TaskID 2 )
Employee_checks_equipment (EmployeeID 13 , EquipmentID 8 )
ProjectManager_assigns_TeamLead(PMO_EmployeeID 13a , TL_EmployeeID 13b , assignDate, taskID, projectID)
ProjectManager_hires_Contractor(PMO_EmployeeID 13a , C_EmployeeID 13c , date, projectID)
Project_Active_Item(ProjectID 1 subtaskID, Subtask, Start_Date, End_Date,
Expected_Duration(m), Pessimistic_Duration(b), Optimistic_Duration(a), Comments,
Immediate_predecessor, DUration, Cost)
Project_Log_Detail (PID 1 , Date, Day, Cost_to_date, Percentage_completion, comments)
CONTENT:
I. Introduction
II. Database Design
III. Database Implementation: Queries
IV. Database Normalization
Forecast the demand for project types, using weighted moving average forecasting model.
Help SAIT estimate number of incoming project requests.
SAIT will benefit by improving its capacity planning strategy.
IEOR Concepts
Moving
Average
Forecasting
Weighted
Moving
Average
Forecasting
• To minimize
Forecast Error
SELECT PT.Type, PL.Year, PL.Month_Name, PL.Month,
Count(PL.ProjectID) AS Count_Projects
FROM Project_has_a_Type_of_Project AS PT, Project_Log AS PL
WHERE (((PT.ProjectID)=[PL].[ProjectID]))
GROUP BY PT.Type, [PL.Year], PL.Month_Name, PL.Month
ORDER BY PT.Type, [PL.Year], PL.Month;
Use optimal weights calculated to forecast demand for project(s) using weighted moving average forecasting model.
Predict whether a project will be accepted or rejected by the
Technology Conference.
Assist SAIT in determining if a particular set of project intake form scores will result in project acceptance.
IEOR Concepts
Machine
Learning
SELECT Overall_Score, Cost_Score
FROM Assessment
WHERE ProjectID >=[input_1] AND ProjectID<=[input_2];
Model is based only around overall and cost score
Projects to be tested have adjacent ProjectID’s
Overview
Simple machine learning algorithm used for classification of state.
Output is in the form of a state which is decided based on the known states of k-nearest neighbors.
How it works
For predicting the state of an unknown data point, kNN looks at the states of the closest k data points with known states and assigns a state based on majority vote. The closest states are calculated through Euclidean distances.
Fitting the model.
Legend
Red : Accepted
Black : Rejected
Used for determining the best value k for minimizing the probability of misclassification.
Choose k=12
Used for performance evaluation.
33 random points of project intake overall and cost scores.
Performance metric of 24% misclassification.
Legend
Filled Red: Correct
Classification of acceptance
Filled Black: Correct
Classification of rejection
Filled Orange: Missed
Classification of
Acceptance
Filled Yellow: Missed
Classification of
Rejection
Determine which employees are available during a certain time to work on a specific type of project and rank the respective employees by their experience.
Help SAIT to determine employee availabilities for certain projects.
Enable SAIT to continually update employee experience levels based on past experiences.
Find the employees
(Employee IDs) of workers able to code in
Python (Skill ID #31) who are able to work on 1/2/2014 between
2:00PM and 3:00PM.
List the results, by descending order, of the total number of hours worked so far as well as their skill level
(1 as introductory and
5 as professional).
SELECT Employee_is_Available.EmployeeID,
Sum(DateDiff("h",[Employee_works_during.Start_Time],[Employee_works_during.En
d_Time])) AS hours_worked, Employee_has_Skill.Skill_Level
FROM (Employee_is_Available INNER JOIN Employee_has_Skill ON
Employee_is_Available.EmployeeID = Employee_has_Skill.EmployeeID) INNER
JOIN Employee_works_during ON Employee_is_Available.EmployeeID =
Employee_works_during.EmployeeID
GROUP BY Employee_is_Available.EmployeeID, Employee_has_Skill.Skill_Level,
Employee_has_Skill.SkillID, Employee_is_Available.Date_Worked,
Employee_is_Available.Start_Time, Employee_is_Available.End_Time
HAVING (((Employee_has_Skill.SkillID)=31) AND
((Employee_is_Available.Date_Worked)=#1/2/2014#) AND
((Employee_is_Available.Start_Time)<=#12/30/1899 14:00:00#) AND
((Employee_is_Available.End_Time)>=#12/30/1899 15:00:00#))
ORDER BY hours_worked DESC , Employee_has_Skill.Skill_Level DESC;
Employee Availability Employee Work log
IEOR Concepts:
Optimization of Staffing methods.
Use Critical Path Method/PERT to determine critical subtasks required to complete project on time.
Organize all subtasks in a sequential order based on the respective predecessor.
Determine the start date, end date, slack, and duration of each subtask.
Identify Critical Subtask(s).
IEOR Concepts
Critical
Path
Method
Subtask’s duration calculated from 6 Sigma
Beta Distribution
SELECT p.ProjectID, p.subtaskID, p.subtask, p.Cost, p.Start_Date, p.End_Date, p.immediate_predecessor, p.Duration
FROM Project_Log_List AS p
ORDER BY Start_Date;
Take into consideration factors such as scope, cost, and schedule to asses the performance of a project.
After baseline costs and a schedule is outlined, actual performance is measured compared to the baseline values.
SELECT p.Start_Date, p.Expected_End_Date, p.Actual_End_Date, e.budget_estimate, e.budget_actual, d.cost_to_date, d.day, d.percentage_completion
FROM Project_Log AS p, Expenditure_Log AS e,
Project_Log_Detail as d
WHERE p.ProjectID = e.ProjectID and d.ProjectID = p.ProjectID;
Project 2
Project 20
PV (Planned Value) = (total expected cost of the project apportioned by the number of expected days to complete the project) * (actual duration of project to date)
EV (Earned Value) = (percentage of project actually completed) * (total expected cost of the project)
AC (Actual Cost) = Cost to date
SPI (Schedule Performance Index, time efficiency) = (EV/PV)
CPI (Cost Performance Index, cost efficiency) = (EV/AC)
CR (Critical Ratio, indicator) = (SPI * CPI)
CR < 1 means poor project performance
CR = 1 means project performance is on target
CR > 1 means good project performance
CONTENT:
I. Introduction
II. Database Design
III. Database Implementation: Queries
IV. Database Normalization
Current Schema:
Project_Log (ProjectID 1 , Start_Date, Expected_End_Date, Status, Comment,
Actual_End_Date, To-Do-List )
Multivalued attribute To-Do-List because there might be multiple subtasks in to-dolist.
Normalizing to 1NF and 2NF:
Project_Action_Item (ProjectID 1 subtaskID, Subtask, Start_Date, End_Date,
Expected_Duration(m), Pessimistic_Duration(b), Optimistic_Duration(a), Comment,
Immediate_predecessor, Duration, Cost)
Project_Log (ProjectID 1 , Start_Date, Expected_End_Date, Status, Comment,
Actual_End_Date)
Current Schema:
Project_Action_Item(ProjectID 1 subtaskID, Subtask, Start_Date, End_Date,
Expected_Duration(m), Pessimistic_Duration(b), Optimistic_Duration(a), Comment,
Immediate_predecessor , Duration, Cost)
Multivalued attribute Immediate_predecessor .
Normalizing to 1NF and 2NF:
Project_Action_Item(ProjectID 1 subtaskID, Subtask, Start_Date, End_Date,
Expected_Duration(m), Pessimistic_Duration(b), Optimistic_Duration(a), Comment,
Duration, Cost)
SubtaskPredecessor (Immediate_predecessor, subtaskID 35 )
Current Schema:
Project_Action_Item(ProjectID 1 , SubtaskID, Subtask, Start_Date, End_Date,
Expected_Duration(m), Pessimistic_Duration(b), Optimistic_Duration(a),
Comments, Immediate_predecessor, Duration, Cost)
Subtask can be derived from SubtaskID
Normalizing to 1NF and 2NF:
Project_Action_Item(ProjectID 1 , subtaskID 2 , End_Date,
Expected_Duration(m), Pessimistic_Duration(b), Optimistic_Duration(a),
Comment, Duration, Cost)
Subtask (SubtaskID, Subtask)
Current Schema:
Insurance(PolicyID, Company , Start_Date, End_Date, Type, Company_Description,
Contact)
Assumption: Companies do not have the same name.
There exists a non-prime pair, Company , Company_Description :
Company → Company_Description
Normalizing to 3NF:
Insurance(PolicyID, Company 2 , Start_Date, End_Date, Type)
Insurance_Company (Company, Company_Description, Contact)
All related entities are now in 3NF (There exists no non-prime pair A,B: A →B)
Current Schema:
Equipment(EquipmentID, quantity, location, condition)
b. Hardware(EquipmentID 8 , brand, name, model_num )
Assumption: EquipmentID for a hardware piece can be traced with the model_num (i.e. wire) model_num → Hardware EquipmentID
Normalization to BCNF:
HardwareDetail (model_Num, brand, Name)
Hardware(EquipmentID 8 , model_Num HardwareDetail )