Buena Vista Elementary School

Preview:

DESCRIPTION

Buena Vista Elementary School. Avani Jariwala | April Song | Ben Yook | Elaine Huang Elim Kuk | Felicia Angesti | Hyun-Ho Jung Kyle Ong | Mitou Nguyen. Intro. Buena Vista Elementary School at a glance: ◊ Located in Walnut Creek, CA ◊ Features 534 students and 54 total staff members - PowerPoint PPT Presentation

Citation preview

Buena Vista Elementary School

Avani Jariwala | April Song | Ben Yook | Elaine Huang Elim Kuk | Felicia Angesti | Hyun-Ho Jung

Kyle Ong | Mitou Nguyen

Buena Vista Elementary School at a glance:

◊ Located in Walnut Creek, CA◊ Features 534 students and 54 total staff

members◊ Currently using web-based database program

called AERIES

IntroIntro EER Schema Queries Normalization

Intro

Current Database Problems:

◊ Too complicated and difficult to use◊ Web-based◊ Regular subscription cost

Our Database Solutions:

◊ User-friendly interface◊ Offline functionality◊ One-time cost for Microsoft Access

IntroIntro EER Schema Queries Normalization

Intro

EEREERIntro Schema Queries Normalization

EER

SchemSchemaa

EERIntro Queries Normalization

Schema

SchemSchemaa

EERIntro Queries Normalization

Schema

SchemSchemaa

EERIntro Queries Normalization

Schema

Query 1

What is the correlation between tutoring hours and academic

performance?

QueriesQueriesEER SchemaIntro Normalization

Query 1

Purpose

Finding whether or not tutoring is effective in boosting academic performance.

Function

SQL: Find list of tutoring hours and matching average exam grade.

Matlab: Find correlation between tutoring hours and academic performance.

SQL: Find list of tutoring hours and matching average exam grade.

SELECT *FROM (SELECT Avg(Grade.Score)

AS [Exam Grade], Count(TutorHours.SID) AS [Tutoring Amount] FROM [After school Tutoring] AS TutorHours, [In Class Exam Grade] AS Grade WHERE (TutorHours.SID) In (SELECT of_SID FROM [In Class Exam Grade]) GROUP BY Grade.of_SID)

WHERE [Tutoring Amount] > 0;

QueriesQueriesEER SchemaIntro Normalization

Query 1

Matlab: Find correlation between tutoring hours and academic performance.

f = csvread('acadPerf.csv');x = f(:,1);y = f(:,2);hold onscatter(x,y)

p = polyfit(x,y,1);r = p(1) .* x + p(2);plot(x,r)xlabel('Tutoring Hours');ylabel('Average Test Score');title('Tutoring on Academic Performance');

QueriesQueriesEER SchemaIntro Normalization

Query 1

Query 2

How should the cafeteria administration forecast demand?

QueriesQueriesEER SchemaIntro Normalization

Query 2Purpose

Minimize the waiting time in the cafeteria and predict the order quantity of meal type.

Function

SQL: Find mean and standard deviation from data

Newsvendor Problem: Find optimal order quantity for a given type of meal.

Square Root Law: Find number of servers to attain a given level of service

Approximated Waiting Time in Line Formula: Find ideal number of servers for 500 students.

QueriesQueriesEER SchemaIntro Normalization

Query 2SQL: Find demand of different cafeteria foods

using mean and standard deviation.

SELECT [Cafeteria Order].MealName, Avg([Cafeteria Order].MealOrderQuantity) AS AvgOfMealOrderQuantity, StDev([Cafeteria Order].MealOrderQuantity) AS StDevOfMealOrderQuantity

FROM [Cafeteria Order]GROUP BY [Cafeteria Order].MealName;

Assumption:1. Selling price = $42. Purchase price = $23. Salvage value = $0.50. Assuming that the school will resell the leftover

food.So, we find:4. Overage cost: Co = $2-0.5 = $1.505. Underage cost: Cu = 4-2 = $2

F(Q*) = = 0.57

Then, find Z value from the table using the mean and the standard deviation.

For example, if the school wants to find out how many pasta to order, they have to calculate:

Q* = 114.25 + 18.89 * 0.57 = 117.58.Therefore, the optimal order quantity is 117.58 servings of pasta.

QueriesQueriesEER SchemaIntro Normalization

Query 2

Cu

Cu + Co

Newsvendor Problem

Square root law

Assumptions: All students have a lunch break is 45 minutes. We assume that all students grab lunch in the first 15 minutes because they need time to finish their lunches. The lambda=25 students/minute and mu=4 students/ minute where lambda is the arrival rate of the students in the cafeteria and mu is the service rate of the cafeteria staff. We also assumed that there is 1 line because 1 line allows for greater utilization of all s servers.

Basic equation for number of servers to have to attain a given level of service:

N=R+BR.5

N = the number of serversR=(lambda)/(mu)Beta is a parameter related to the service level or P(wait)R = 11/4 = 6.25 N = 6.25+1.7(6.25).5 =10.5

QueriesQueriesEER SchemaIntro Normalization

Query 2

Decision analysis method

2 possible choices:1. Having 10 servers

10 = 6.25 + *(6.25)^(.5) => = 1.5ℬ ℬP{waiting} = 0.0668 ≈6.68%

2. Having 11 servers11 = 6.25 + *(6.25)^(.5) => = 1.9ℬ ℬP{waiting} = 0.0287 ≈2.87%

Using formula for approximated waiting time in line

1. Wq = 0.0118 min/students = 0.718 seconds/students2. Wq = 0.0058 min/students = 0.35 seconds/students

Conclusion: Ideally have 10 servers in a situation where there are 500 students.

QueriesQueriesEER SchemaIntro Normalization

Query 2

Query 3How can we assign students to

classrooms in the most efficient way?

QueriesQueriesEER SchemaIntro Normalization

Query 3

Purpose

Ensure equal gender distribution in each classroom and allow students to flourish in groups with similar academic

performance

Function

SQL: Group students by average exam grade

AMPL: Place students with similar average exam grade into a classroom of 30 students with specific gender distribution

QueriesQueriesEER SchemaIntro Normalization

Query 3SQL: Order students by

gender, grade, and average academic grade.

SELECT g.of_SID, Avg(g.Score) AS AvgOfScore, Person.gender AS Gender, s.Year

FROM ([In Class Exam Grade] AS g INNER JOIN STUDENT AS s ON g.of_SID = s.SID) INNER JOIN Person ON s.SSN = Person.SSN

GROUP BY g.of_SID, Person.gender, s.Year, AvgOfScore;

QueriesQueriesEER SchemaIntro Normalization

Query 3AMPL: Use SQL query

results to sort students into classrooms.

Data File

• param a:= 45; # number of girls in a particular grade

• param b:= 45; # number of boys in a particular grade

• param n:= 3; # number of classes in a particular grade

AMPL: Set parameters and decision variables for linear programming.

Model File

• param a;

• # number of girls in a particular grade• param b;

• # number of boys in a particular grade• param n;

• # number of classes in a particular grade

• var x{i in 1..a, j in 1..n} binary;

• # 1 if female student i is in class j, 0

o/w• var y{k in 1..b, j in 1..n} binary;

• # 1 if male student k is in class j, 0 o/w

AMPL: Set objective function and constraints.

• minimize students {j in 1..n}: sum{i in 1..a} x[i,j] + sum{k in 1..b} y[k,j];

• subject to maximum_student_per_class {j in 1..n}: • sum{i in 1..a} x[i,j] + sum{k in 1..b} y[k,j] <= 30;

• # Maximum of 30 students per class• subject to minimum_female_per_class {j in 1..n}:

• sum{i in 1..a} x[i,j] >= 13; • # At least 13 girls in each class• subject to minimum_male_per_class {j in 1..n}:

• sum{k in 1..b} y[k,j] >= 13; • # At least 13 boys in each class• subject to female_student {i in 1..a}:

• sum{j in 1..n} x[i,j] = 1; • # Each female student is allowed to be allocated in 1 class• subject to male_student {k in 1..b}:

• sum{j in 1..n} y[k,j] = 1; • # Each male student is allowed to be allocated in 1 class

QueriesQueriesEER SchemaIntro Normalization

Query 3

QueriesQueriesEER SchemaIntro Normalization

Query 3

Query 4What donating trends can the school take advantage of for fundraising efforts?

QueriesQueriesEER SchemaIntro Normalization

Query 4

Purpose

Maximize the school’s revenues from fundraising campaigns.

Function

SQL: Find the addresses where people are most likely to donate.

Python: Map out donations by address and by donation amount.

SQL: Find the times of the year when people are most likely to donate.

QueriesQueriesEER SchemaIntro Normalization

Query 4SQL: Find the addresses where people are most likely to donate.

SELECT Person.Address, Person.Zipcode, SUM([Finance Data].FinAmount) AS [Donation Amount]

FROM (([Donation]INNER JOIN [Finance Data] ON [Donation].[FID] =[Finance Data].[FID])INNER JOIN Person ON [Donation].SSN = [Person].SSN)GROUP BY Person.Address, Person.Zipcode;

QueriesQueriesEER SchemaIntro Normalization

Query 4

Python:

Map outaddresses that wereextracted fromSQL onto a map in order to visualize which neighborhoods are donating the most amount of money tothe school.

QueriesQueriesEER SchemaIntro Normalization

Query 4

QueriesQueriesEER SchemaIntro Normalization

Query 4

SQL: Find the months when people are most likely todonate.

SELECT FinName, SUM(f.FinAmount), f.FinDate

FROM Financial-accountWHERE FinType=‘Donation’GROUP BY FinDateSORT BY SUM(FinAmount) DESC;

Query 5

How can the school minimize the cost of purchasing library books?

QueriesQueriesEER SchemaIntro Normalization

Query 5

Purpose

Maximize student satisfaction while optimizing use of limited funds and library space.

Function

Java: Derive excess waiting time and purchase or sell additional copies of book accordingly.

Time Value of Money: Find the rate at which the school will need to replace the book.

QueriesQueriesEER SchemaIntro Normalization

Query 5 Java: Derive excess waiting time and purchase or sell additional copies of book accordingly

QueriesQueriesEER SchemaIntro Normalization

Query 5

Time Value of Money: Find the rate at which the school will need to replace the book.

Assumptions:The school wants to resell books at 40% of the original price

and keep one copy of each book. Assuming the rate of book depreciation is at a constant rate of 1% per week, then the school can calculate how long a book should be kept.

(Original Price) * (1+r)n = (Current Price)

r = (-)1% per week(Original Price) * (1-0.01)n = 40% (Original Price)(0.99)n = 0.4n ln (0.99) = ln (0.4) n = ln (0.4) / ln (0.99)n = 91.2 weeks

NormalizationNormalizationEER Schema QueriesIntro

NormalizationDecomposing from 1NF to 2NF:

Achievement (Type, SID1a, Date, Reward, Comment)

To normalize from 1NF to 2NF:

AchievementInfo (Type, SID1a, Date, Comment)AchievementReward (Type, Reward)

Type SID Date Reward Comment

Decomposing from 1NF to 2NF:

InClassExam (Date, ExamName, Score, Average, Is_in_RID15, Of_SID1a, Scored_bySTID1a)

To normalize from 1NF to 2NF:

ExamScore (Date, ExamName, Of_SID1a, Score, Is_in_RID15)InClassExam (Date, ExamName, Average, Scored_by1a)

NormalizationNormalizationEER Schema QueriesIntro

Normalization

Date ExamName SID Score RID Average Scored_By

NormalizationNormalizationEER Schema QueriesIntro

NormalizationDecomposing from 1NF to 2NF:

Report_Card (RID, SID1a, CourseName, Grade, Comment, Grade_Level, Reported_to_SSN1, Completed_by_SSN1)

To normalize from 1NF to 2NF:

Score_Submission (RID, Completed_by_SSN1, Grade_Level, CourseName)ReportCard (RID, SID1a, Comment, Grade, Reported_to_SSN1)

RID SID CourseName Grade Comment Grade_Level Reported_By_SSN Completed_By_SSN

NormalizationNormalizationEER Schema QueriesIntro

NormalizationDecomposing from 1NF to 2NF:

PTA (PTAID, SSN1, Position, VolunteerHours)

To normalize from 1NF to 2NF:

PTAOrg (PTAID, Position, VolunteerHours)PTA_Member (PTAID, SSN1)

PTAID SSN Position Volunteer_Hours

NormalizationNormalizationEER Schema QueriesIntro

NormalizationDecomposing from 2NF to 3NF:

PTAOrg (PTAID, Position, VolunteerHours)PTA_Member (PTAID, SSN1)

To normalize from 2NF to 3NF:

PTAPositionReq (Position, LeastVolunteerHours)PTAOrg (PTAID, Position)

PTAMember (PTAID, SSN1, VolunteerHours)

PTAID Position Volunteer_Hours

Closing Statements

Q & A