haas career management center database

35
Haas Career Management Center Database Samuel Lin | AlliZheng | Tao Luo | Yorke Lee | Carney Lu Justin Pao | Butian Li | AdibKashem IEOR 115 Ken Goldberg Final Presentation December, 10, 2011

Upload: lobo

Post on 25-Feb-2016

32 views

Category:

Documents


1 download

DESCRIPTION

Haas Career Management Center Database. IEOR 115 Ken Goldberg Final Presentation December, 10, 2011. Samuel Lin | AlliZheng | Tao Luo | Yorke Lee | Carney Lu Justin Pao | Butian Li | AdibKashem. Overview. Background. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Haas Career Management Center Database

Haas Career Management Center Database

Samuel Lin | AlliZheng | Tao Luo | Yorke Lee | Carney LuJustin Pao | Butian Li | AdibKashem

IEOR 115Ken Goldberg

Final PresentationDecember, 10, 2011

Page 2: Haas Career Management Center Database

Overview

Page 3: Haas Career Management Center Database

Haas School of Business Career Management Group

Provides candidates access to employersOrganizes on campus career eventsHandles 1000+ electronic job postings per yearRanked #4 by BusinessWeek surveyMaintains relationships with hiring managers and recruiters to track industry firm nights, career panels, corporate visits, alumni mixers and job fairs.Plans workshops, panels, networking events and receptions

Background

Page 4: Haas Career Management Center Database
Page 5: Haas Career Management Center Database
Page 6: Haas Career Management Center Database

Existing Database Support

Excel

Data stored in unrelated Excel spreadsheets

Custom reports formulated manually by tracking across many spreadsheets

• Extremely tedious and time consuming• Possibility of Human Errors

Background

Page 7: Haas Career Management Center Database

Clients Expectation

Ability to build customized reports instantly Ability to search for records with specific properties Ability to come up with intelligent

recommendations for events, job listings etc. for students.

Reduce time and stress involved in data entry and management

Reduce human errors 

Project Objective

Page 8: Haas Career Management Center Database

Database Objective

To provide ranking metrics to magazines such as US News

To provide all kinds of employment reports including, but not limited to:

Top Full-Time Employers Class-wise Full-Time Employment Report Employment By Industry/ Function

Advance functions Salary Forecast Class preferences based to career inclination Search alumni nearby

Project Objective

Page 9: Haas Career Management Center Database

EER Diagram

Page 10: Haas Career Management Center Database

EER Diagram

Page 11: Haas Career Management Center Database

Relational Schema

Page 12: Haas Career Management Center Database

Relational Schema

1. Person(pid,fname, lname, mi, street_address, apt_no, zip_code4, salutation, gender)a.       Student(sid,pid  1, date_of_admission, date_of_graduation, department7)b.      Professor(faculty_id,pid1)c.       Supervisor(pid1, cid2)d.      Staff(SSN,pid1)e.      Advisor(SSN, pid1, department7)f.        Philanthrophist(pid1)g.       Potential_applicant(pid1, sourced_through)h.       Subscriber(pid1)

2.     Company (cid, name, address, liaison_name, liaison_tel, liaison_email)2a.   Branch (cid2,branch no., address)3.    University (uid, name, university_location4, liaison_name,liaison_tel, liaison_email)4.     Location (zipcode, country, state, city, latitude, longitude)5.     Job_Listing (listingid, title, description, job_location4, uploaded_by_company2, salary_range)6.     Job_Offer (sid1, company_id2, position, job_location4, salary, bonus, stock_options, date, accepted_or_declined)7.     Department (did, name, head_of_department1b)8.     Course_instance (ccn, course_no8a, semester, instructor1b)8a.  Course(course_no, title, department7)

Page 13: Haas Career Management Center Database

Relational Schema

9.     Magazine_Publication (mid, name, address, liaison_name, liaison_tel, liaison_email)10.   Data_Request (drid, date, magazine_or_publication9, data_requested, handled_by_staff1d, deadline, fulfillment_status)11.   Ranking (rid, magazine_or_publication9, date, ranking_details)12.   Social_Media_Account (acc_id, profile_link, staff_in_charge1d, acc_email, acc_password)13.   Social_Media_Subscription(pid1, social_media_acc_id12, profile_email)14.   Announcement (aid, date, title, description, posted_by_staff1d, posted_on_account12)15.   Event (eid, created_by_staff1d, held_at_venue17, caterer_id16, title, date) a.       Workshop (eid15, advisor_in_charge1e)b.      Recruitment_Event (eid15, advisor_in_charge1e)c.       Alumni_Mixer (eid15)d.      Outreach_Event (eid15, hosted_by_university3)16.   Caterer (caterer_id, name, address, liaison_name, liaison_tel, liaison_email)17.   Venue (vid, building, room, contact_name, contact_tel, contact_email)18.   Donation (donation_id, donation_date, donation_amount, donated_by1, received_by1dspecial_notes) 

Page 14: Haas Career Management Center Database

Relational Schema•These are junction tables to help describe the n to nrelationships19.   Working_Experience(sid1a, company_worked_for2, type_of_employment, start_date, end_date)20.   Studied_At(sid1a, school_attended3, degree_type, field, start_date, end_date, GPA)21.   Supervisor_Recommendation(sid1a, supervisor_pid1, cid2, date, letter)22.   Professor_Recommendation(sid1a, professor_pid1, date, letter)23.   Event_Attendance(eid15, attendee_pid1)24.   Professor_In_Department(prof_pid1b, department7 )25.   Event_Invite(eid15, cid2)26.   Advisor_Hosts_Event(pid1,eid15) 27.   Venue_Booking(staff_in_charge1d, booking_for_event15, date_reserved, venue_booked17)28.   Caterer_Order(staff_in_charge1d, caterer_id16, date_of_order)29.   Applies_For(sid, listingid, date, application)30. Student Takes Course in Semester Course_Taken(sid1, ccn8,grade)31. Professor Teaches Course in Semester Course_Taught(prof_pid1b, ccn8)32. Email_Address(pid1, email_address)33. Contact_Number(pid1, contact_no)34. Student_In_Department(sid1, department7) 35. Advisor_In_Department(advisor_id1e, department7) 

 

Page 15: Haas Career Management Center Database

Normalization Analysis

Page 16: Haas Career Management Center Database

Normalization

Unnormalized Relation

1NF1. Person (pid,fname, lname, mi, street_address, apt_no, zip_code4, 

salutation, gender)1a.       Student(sid,pid  1, date_of_admission, date_of_graduation)1e.Advisor(advisor_id,SSN, pid1) 32. Email_Address(pid1, email_address)33. Contact_Number(pid1, contact_no)24. Student_In_Department(sid1, department7) 25. Advisor_In_Department(advisor_id1e, department7)

1.     Person (pid,fname, lname, mi, street_address, apt_no, city, state, country, zip_code, contact_no, email, salutation, gender)

1a.     Student(sid,pid  1, date_of_admission, date_of_graduation, department)

1e.     Advisor(SSN, pid1, department7)

Page 17: Haas Career Management Center Database

Normalization

Unnormalized Relation

2NF1. Person (pid,fname, lname, mi, street_address, apt_no, 

zip_code4, salutation, gender)     4.    Location (zipcode, country, state, city, latitude, longitude)

1.     Person(pid,fname, lname, mi, street_address, apt_no,  city, state, country, zip_code, contact_no, email, salutation,  gender) 

3NF (Not Implemented)4.    Location (zipcode, country, state, city)5. City_Location(Longitude,Latitude, City)

Page 18: Haas Career Management Center Database

Normalization

Unnormalized Relation

BCNF8.     Course_instance (ccn, course_no8a, semester, instructor1b)8a.  Course(course_no, title, department7) 

8. Course (course_id, title, department7, semester, instructor1b) 

Page 19: Haas Career Management Center Database

Queries

Page 20: Haas Career Management Center Database

Queries

Query 1: Salary forecastDescription: •Given a selected industry, predict the expected average salary for a new job position within that industry over the next X years•Useful to help job-seeking graduates easily visualize the salary trends for each industry

Page 21: Haas Career Management Center Database

Queries

Java Code: •Connects to Access database and executes the sql query:

select o.year_offered, avg(o.salary)from [Job Offer] as o, Company as c, Department as iwhere o.status = 'Accepted' and o.cid = c.cid and c.iid = <iid>group by o.year_offeredorder by o.year_offered ASC;

•This extracts the average salary for each year for the given industry.• The Java code performs a linear regression in order to determine the linear relationship between the year and expected salary, then creates a new table and inserts those predicted values (over the next X years) into the database

Page 22: Haas Career Management Center Database

Queries

Demo

Page 23: Haas Career Management Center Database

Queries

Query 2: Nearby alumniDescription: •Given a selected city, select all the alumni who are currently working within X km from that city•Used for current students to seek out seniors in the region (for advice, meet-ups), or to invite alumni to attend events that are being held in a certain city

Page 24: Haas Career Management Center Database

Queries

• Contains function needed to determine distance between two geographical coordinates

• Iterates through location database and determines which cities are within x km of given city using the haversine formula:

• Creates and populates NearbyCities table with list of cities

VBA Code:

To retrieve all alumni working in nearby cities:

SELECT s.SID, c.city, p.First_Name, p.Last_Name, o.positionFROM [Job Offer] AS o, nearbyCities AS c, Student AS s, Person AS pWHERE o.sid=s.SID And o.job_location=c.LID And p.pid=s.pid;

Page 25: Haas Career Management Center Database

Queries

Demo

Page 26: Haas Career Management Center Database

Queries

Query 3: Donation Capacity

Description•Ranks alumni by their donation capacity•The donation capacity of each alumni is calculated by a weighted combination of several factors: salary, years out of school, donation history•The weights of these factors were researched and simplified from research papers) to result in the following formula:

Donation_Capacity = 0.26 * salary/10000 + 0.17 * years_out_of_school + 0.64 * sum_of_previous_donations/5000

Page 27: Haas Career Management Center Database

Queries

Retrieve the last recorded salary of each studentSQL: SELECT s.sid, o.salaryFROM student AS s, [Job Offer] AS oWHERE o.sid = s.sid and o.status = 'Accepted' and o.[date accepted] in (select max(o2.[date accepted])from [Job Offer] o2where s.sid = o2.sid);

Retrieve the sum of all donations made by each studentSQL: SELECT s.pid, Sum(d.donation_amount) AS total_donationsFROM student AS s, donation AS dWHERE d.donated_by=s.pidGROUP BY s.pid;

Page 28: Haas Career Management Center Database

Queries

SQL:

SELECT DISTINCT s.sid, p.First_name, p.Last_Name, ((0.26*ls.salary)/10000+(0.64*ds.total_donations)/5000+0.17*((Date()-s.[date of graduation])/365)) AS Donation_CapacityFROM person AS p, student AS s, donation AS d,

(SELECT s2.pid, Sum(d2.donation_amount) AS total_donations FROM student AS s2, donation AS d2 WHERE d2.donated_by=s2.pid GROUP BY s2.pid) AS ds,

(SELECT s3.sid, o3.salary FROM student AS s3, [Job Offer] AS o3 WHERE o3.sid = s3.sid and o3.status = 'Accepted' and o3.date accepted in ( select max(o2.[date accepted]) from [Job Offer] o2 where s3.sid = o2.sid )) AS ls

WHERE s.sid=ls.sid And s.pid=p.pid And s.pid=ds.pidORDER BY ((0.26*ls.salary)/10000+(0.64*ds.total_donations)/5000+0.17*((Date()-s.[date of graduation])/365)) DESC;

Page 29: Haas Career Management Center Database

Queries

Query 3: Donation Capacity

Page 30: Haas Career Management Center Database

Queries

Query 4: Magazine Influence

Description •Rank each business magazine/publication rankings by their influence on the number of job offers our graduates get•Help the career management center prioritize data requests from each magazine/publication•Perform a linear regression to obtain the coefficient of determination for each magazine

Page 31: Haas Career Management Center Database

Queries

Query 4: Magazine InfluenceJava Code•Connects to Access database and executes the dynamically created SQL query for each magazine in the table:

SELECT Count(*) AS Offer_Count, r.ranking, o.year_offeredFROM [Job Offer] AS o, ranking AS r, [Magazine Publication] AS mpWHERE (((r.magazine_or_publication)=mp.mid) And ((o.year_offered)=r.year) And ((mp.mid)=<selected mid>))GROUP BY o.year_offered, r.ranking;

•This extracts a pairing of the number of offers received by graduates together with how highly we were ranked by that magazine that year. With these data pairs•Performs a regression to calculate the correlation factor between number of job offers received and our ranking in the magazine•Writes these correlation factors back into the database under a table called Influence

Page 32: Haas Career Management Center Database

Queries

Query 4: Magazine InfluenceSQL Code to retrieve magazines sorted by influence:

SELECT i.mid, m.name, i.influence_factorFROM [Magazine Publication] AS m, Influence AS iWHERE m.mid=i.midORDER BY i.influence_factor DESC;

Page 33: Haas Career Management Center Database

Queries

Query 5: Course RecommendationsDescription•Suggest recommended courses a student should take if he wants to enter a specific industry•Ranks each class by the number of times they were enrolled in by students who end up receiving offers from companies in a particular industry

SQL SELECT c.course_id, c.title, Count(*) AS course_countFROM course AS c, student AS s, [Job Offer] AS o, course_taken AS ct, company AS comWHERE o.sid=s.sid And ct.sid=s.sid And ct.course_id=c.course_id And o.cid=com.cid And com.iid= <selected industry>GROUP BY c.course_id, c.titleORDER BY Count(*) DESC;

Page 34: Haas Career Management Center Database

Queries

Query 5: Course Recommendations

Page 35: Haas Career Management Center Database

 to askQ and As