Вы находитесь на странице: 1из 70

HSFL Database System Project

Final Report

Query Queens + 2
2404 Maile Way, Honolulu, HI 96822
(317) 605-7365 ​lkirkwoo@hawaii.edu

Lauren Kirkwood, ​Project Manager


Jacki Suminaga, ​Analyst
Tse Yu Chiu (Frank), ​Programmer
Kaden Kawakami,​ Programmer
Kara Tanaka​,​ ​Designer

Submitted to: Dr. Chen for ITM 354 Term Project


May 7, 2018
Executive Summary

As a center for research and education, the mission of Hawai’i Space Flight Laboratory is to
create microsatellites for space exploration and to educate students to become future space
engineers. HSFL creates various microsatellites throughout the year, and at the end of each year,
they send a report containing information about their completed projects to NASA to bid for
funding for future projects.

The old process used by HSFL included the manual entry of data about equipment, the manual
creation of reports to send to NASA, and no record of what projects each intern/employee is
working on at any given time. The manual data entry resulted in misfiled, redundant, and missing
information, which made both ad hoc queries and accurate reporting impossible. As a result, too
much time was spent maintaining records, searching for equipment, and manually creating
reports, when it should have been spent creating microsatellites. This delay in productivity
reduced the total number of projects completed each year, led to low quality reports, and
eventually resulted in a decrease in the total funding the government was willing to provide to
HSFL.

The objective of this project was to create and implement a database system that monitored
equipment, stored important employee and intern information in a centralized location, and
tracked information about projects. The implementation of these processes reduced data
redundancy and prevented the loss of information, which will enable the performance of ad hoc
queries and ensure the creation of accurate reports. The database system monitors equipment
information so HSFL can effectively create satellites, manages employee/intern information to
promote internal communication and track of intern progress, and maintains accurate and up to
date information to create impressive reports to bid for funds.

In order to create a successful database system we followed the Rapid Application Development
(RAD) Methodology. The RAD methodology included continual evaluation and improvement of
the system throughout the design process, and also constantly involved the end user (Amber
Imai-Hong) to ensure that our final product met the needs of HSFL. We adhered to the seven
design steps when creating this database system. First, we conducted a ​requirements analysis​ to
gain a thorough understanding of HSFL and its needs. Following the requirements analysis, we
created a ​conceptual design​ in the form of an entity relationship diagram that captured all of the
information that needed to be in the system, and the relationships between that information. We
then ​selected an appropriate DBMS​ based on the requirements of the database system. After
choosing MySQL as our DBMS, we created a ​logical design​ to define the structure of the
database, and used the ​physical design ​phase to optimize the performance of data retrieval from
secondary storage. We then created a​ prototype ​and ​evaluated the performance ​of the database
system using white and black box testing.

Through our use of the RAD methodology as well as the Agile project management approach,
our team was able to successfully create a database system in a timely manner that met the needs
of HSFL. Our system provides a reliable method of information storage and ensures the creation
of accurate reports which in turn will increase the funding HSFL receives.

1
Table of Contents

Introduction 3

Problem Statement and Project Description 4

Approaches and Accomplishments 8

Results: 11
Requirements Analysis Results 11
Conceptual Design Results 16
DBMS Evaluation and Results 17
Logical Design Results 18
Physical Design Results 19
The Database System Prototype Implemented 21
Performance Evaluation Results 23

Conclusion and Future Plan 24

Appendix 25
Appendix A: Requirements Analysis 25
Appendix B: Conceptual Design 34
Appendix C: Selection of DBMS 38
Appendix D: Relational Logical Schema 39
Appendix E: Prototype 40
Appendix F: Performance Evaluation Results 66

2
Introduction
This report will explain the final results of the HSFL database system project, as well as detailing
the process that was used to ensure a successful completion of the project. We would like to
thank you for choosing our team to create your database system, and ensure that it is of the
highest quality and will meet the needs of HSFL.

Section 1 outlines the previous system that was used at HSFL prior to the implementation of the
database system, explains the problem with the old system, and provides an introductory
description of the project.

Section 2 provides a description of the design methodology we followed (Rapid Application


Development) in order to ensure we created a comprehensive system in a timely and cost
effective manner. It also includes a description of the project management approach we utilized
to ensure effective communication and that we were constantly working toward a common goal
with the needs of HSFL in the forefront.

Section 3 includes a more detailed description of the approach we took to create the system and
is broken down into the following subsections:
1. Requirement Analysis
2. Conceptual Design
3. Selection of DBMS for implementation
4. Logical Design
5. Physical Design
6. Prototype
7. Performance Evaluation

Finally, Section 4 provides a clear description of the final results and future plans for the
database system.

3
I. Problem Statement and Project Description
Background of Hawai’i Space Flight Laboratory:
Hawai’i Space Flight Laboratory (HSFL) is both an innovative research facility and an
educational center. It is a part of the School of Ocean and Earth Science and Technology
(SOEST) and the College of Engineering (CoE) here at the University of Hawai’i. HSFL
specializes in the exploration and understanding of space through the creation of microsatellites.
These microsatellites can be configured for a variety of science and educational tasks, providing
unique information about the space environment. Additionally, Hawaii’s geographic location
provides direct access to orbital space, giving HSFL an advantage over other space laboratories
who do not have the same opportunity. As a result, HSFL has the potential to become a leading
low-cost gateway to space.

HSFL’s Mission:
The mission of Hawai’i Space Flight Laboratory (HSFL) is to bring scientists together to design,
launch, and operate microsatellites to explore the space environment. They also play an
important role in developing the future workforce by providing internships to students each
semester.
As a research facility, HSFL aims to:
● Promote innovative engineering and science research for terrestrial and planetary
space missions
● Develop, launch, and operate small spacecraft from the Hawaiian Islands to accelerate
the validation of new space technologies
● Provide workforce training in all aspects of unmanned space missions
● Build synergistic collaborations among educational, governmental, and corporate
institutions interested in space exploration

Problem Description:
HSFL’s old system did not allow them to reach the goals outlined in their mission statement.
Every piece of data that flowed into the company was either recorded by hand, or not at all. All
applicants filled out a physical application that was then stored in a messy file cabinet and
equipment was inadequately monitored using Google Sheets. When an employee needed a
certain piece of equipment to create a microsatellite, they had no way of knowing if it was
available somewhere in the lab or not. In order to find out, they had to go to the stockroom and
search through piles of unorganized equipment. Not only did this result in significant wasted
time, but they often overlooked equipment that ​was ​in stock, and ended up spending unnecessary
money on a duplicate piece of equipment. Finally, annual reports were created by hand. At the
end of each fiscal year, an employee was asked to search through various locations of the
company to find the information required for the annual report, and painstakingly compile the
reports by hand. This practice resulted in time being spent on less valuable practices instead of
their more important business process of creating microsatellites. This reduced the total number
of projects completed each year, the quality of reports generated, and subsequently the amount of
funds provided by the government and other sponsors. The old system is represented by the
context diagram shown in Figure 1 below.

4
Problem Statement:
The former process that was entirely manual resulted in misfiled, redundant, and missing data.
There was no centralized storage of equipment information, making the performance of ad hoc
queries impossible. Since ad hoc queries could not be performed, a significant amount of time
was wasted searching for a piece of equipment and restocking. Furthermore, the inaccurate data
led to the creation of incorrect reports, and the manual gathering of the necessary information
also wasted time. Overall, the old manual data entry and monitoring process resulted in misfiled,
redundant, and missing data, wasted valuable time and money, and inhibited HSFL from
reaching its research and educational goals.

Therefore, in order to ensure HSFL continues with groundbreaking research and moving toward
the goal of becoming a major gateway to space, an effective database system is necessary.

Figure 1: Context Digram of HSFL’s Old System

5
Project Description
In order to solve the problems described in the previous section and enable HSFL to reach their
goals, our team created a database system to manage information. Our system monitors
equipment, manages employee and project information, and has the capability to create
customized reports for HSFL to send to sponsors to bid for funds.

The objective of this project was to create a database system that would enable HSFL to fulfill its
purposes of engineering microsatellites for the exploration of space and mentoring interns to
develop the future workforce.

In order to reach their primary goal, HSFL must have the specialized equipment necessary to
create microsatellites. Therefore, the “Equipment” section of our database system meets this
need. The system monitors what equipment is available at all times, and allows employees to
perform ad hoc queries to find out how many of a specific piece of equipment is in stock at any
given time. The database system shows users the amount of available stock, and updates when
someone takes an item out, or puts something back in the system. Additionally, the employee
and intern information sections of our database system stores various demographic information
about the employees and interns. It also monitors project progress, who works on what project,
and what equipment was used. Furthermore, interns are able to record various accomplishments
to demonstrate the progress they are making to their mentors. The employee/intern and project
information management sections allow HSFL to demonstrate the great work they have been
doing. This information can then be put into marketing materials, can be used to recruit new
talented interns, and can also be put into the reports used to bid for funds. The final major benefit
of our system is the new capability to create customized reports with the simple click of a button.
Instead of compiling information by hand at the end of each year, an employee can now create
the necessary reports by clicking the “Annual Report” button that we have pre-programmed into
the user interface. The increased accuracy, customization, and ease of creation of these reports
will allow HSFL to impress government agencies and NASA, and obtain more funding for future
projects. The capabilities and processes included in the new system are depicted in the context
diagram (Figure 2) below.

The implementation of our proposed database system will assist HSFL in the following ways:

● Reporting information for internal records and sending reports to external


sponsors
● Monitoring the purchase/use of equipment
● Storing application information
● Creating accounts/granting authorization
● Monitoring intern progress
● Marketing/communicating with potential sponsors
● Recruiting interns for the educational program

6
Figure 2: Context Diagram of the New HSFL Database System

7
II. Approaches and Accomplishments

Development Approach: Rapid Application Development


The biggest technical problems caused by HSFL’s old system were the lack of equipment
monitoring, lack of employee and intern information management, and the lack of a system to
create customized reports in a timely manner. Our database system solves all of these problems,
and we utilized the ​Rapid Application Development (RAD) Methodology​ in order to ensure that
the database system we created met the business needs of HSFL and was of superior quality. We
anticipated some potential challenges at the start of the project, such as being able to create a
database system that is quick and continuously updated, being able to effectively communicate
the capabilities of the system to HSFL employees, and being able to complete the project in a
timely manner. In order to address and overcome all of these challenges, we followed the seven
design steps outlined in the RAD Methodology.

These seven steps are:

1. Requirements Analysis​- The analysis of HSFL’s business processes allowed us to gain a


thorough understanding of HSFL and its needs. The careful execution of the requirements
analysis phase ensured we had a solid foundation from which to begin building the
database system, while keeping the wants and needs of HSFL in mind at all times. The
requirements gathered in this phase became inputs for each of the ensuing design phases.
2. Conceptual Design- ​The conceptual design phase of the RAD methodology was used to
capture all of the information that would need to be included in the final database system,
and the relationship between each piece of data. In order to ensure we had a complete
understanding of the conceptual design, we created an entity relationship diagram of the
various entities, their attributes, and the relationships between them. The ER diagram can
be found in Appendix B.
3. Selection of DBMS- ​The selection of an appropriate DBMS is incredibly important to
ensure that the final database system meets the needs of the company. We did
background research on different DBMS options, and based our final decision on which
DBMS best fit the requirements collected during the requirements analysis phase.
4. Logical Design- ​The logical design phase was when we defined the structure of the
database system by transforming the conceptual design (the ER diagram) into tables in
third normal form.
5. Physical Design- ​The physical design phase was used to optimize the performance of
data retrieval from secondary storage. This step helps ensure that the database system
retrieves information quickly and is cost-effective.
6. Prototype- ​Once the other design phases were complete, we created a prototype of the
final database system in order to demonstrate the capabilities of the system to HSFL
employees. The prototype included the database integrated into the web-based front end,
with employee and intern sections to the system.
7. Performance Evaluation- ​The prototype was given to both HSFL employees and
independent individuals in order to evaluate the performance of the system. We used both

8
black box and white box testing, and recorded the user responses in the form of a survey.
We used the results of the survey to go back through the other design phases to make the
necessary changes to address the requests made by the performance evaluators.

Advantages of RAD
Overall, the biggest advantage of RAD methodology is that it is an iterative process. It provides
the flexibility to continually update and improve the requirements throughout the entire life of
the project. More traditional, non-agile design methodologies such as the waterfall method, did
not provide the flexibility that RAD does. The waterfall method involved the gathering of
requirements at the very beginning of the design process, but then those requirements were never
revisited at any point in the design process. The same requirements were assumed throughout,
but since the waterfall method took such a long time to complete a project, the requirements had
often changed by the time the project was complete, making the result inadequate. The RAD
methodology allows continual re-evaluation of requirements throughout the design, so the final
product meets the clients needs much more fully. Additionally, the agile process makes RAD
much faster than the waterfall methodology, which helped us to complete the HSFL database
project in a timely manner. Finally, the RAD methodology included the end user throughout the
design process. We met with Amber Imai-Hong, an employee at HSFL multiple times in order to
ensure that our design was meeting her vision and the needs of HSFL.

Managerial Approach: Agile Methodology


In order for any project to be successful, an effective project management approach must be
utilized. There are potential management issues inherent in any project, including
miscommunication among team members, miscommunication between the client and the team,
differences in work ethic, and strict timelines to meet. In order to address and combat these
potential problems, we utilized the Agile Project Management Methodology. The Agile Method
is an iterative process with a people-centric approach to development. That means that the focus
is always on the end user, in this case, HSFL. By following this HSFL-centric approach, we
ensured that our team was always on the same page with the same goals in mind. Having a team
working toward a common goal makes it much more effective. Additionally, the Agile
methodology is characterized by short development cycles, called “sprints” that allowed us to
focus on continuous improvement. Dividing the project into smaller sprints also ensure that the
project would be completed in a timely manner, as each individual could work on a different part
of the project at the same time, while ensuring that each piece would fit together nicely to form
the final product. The Agile method reduces the gap between the planners and the implementers
of the project, which eliminates miscommunication between the team members and allows for a
more efficient project creation. Additionally, the short sprints allowed for immediate feedback,
and continual updates and improvement based on the needs of the users (“user stories”).
Furthermore, the Agile Methodology called for a meeting at the end of each day, during which
time each member of the team presented their progress, challenges, and any questions to the rest
of the team. This ensured that we constantly knew where the project stood, and were able to
make progress each and every day. It also ensured that the team worked together effectively by
communicating clearly and asking for help when necessary. Overall, the benefits of the Agile
Method are the ability to rapidly identify and adjust for potential concerns, which results in the
delivery of a better product in a more timely manner.

9
We also followed a strict timeline of milestones throughout the project, and understood the main
role of each individual team member. We communicated clearly throughout the project, assigned
individual tasks, then always checked each others’ work. We also maintained clear
communication with HSFL through Amber Imai-Hong during the design of the system. By
following these project management methods, clear goals were set and worked toward, the
project was kept within budget, and completed on time. A clear project timeline that includes
which team member took the lead for each part can be seen in the Gantt Chart shown in Figure 3
below.

Figure 3: Gantt Chart showing project timeline

10
III. Results:
The following sections detail the results of the final HSFL Database System. The outputs from
each phase of RAD design are outlined below, beginning with the requirements analysis and
finishing with the final performance evaluation. By adhering to the Agile Project Management
approach our team was able to complete the system within the time and budget constraints.
Additionally, by following each step of the Rapid Application Development methodology, we
were able to create and implement a database system that met the needs of HSFL, and will allow
them to reach their future goals.

1. Requirements Analysis Results


The requirements analysis phase was crucial in order to understand the wants and needs, basic
data flows, and business processes of HSFL. The results from the requirements analysis phase
became important inputs for the ensuing design phases. To conduct this phase of design, we
analyzed the file based system that HSFL previously used to manage the major processes in the
company. By analyzing the old system, we increased our understanding of the current processes
of HSFL, and how the implementation of a database system would help them reach their goals.
At the end of this phase we were able to create a context diagram that encompassed the main
dataflows of the new database system.

The old HSFL file-based system had three basic processes that were inadequate for the company.
The three basic processes within the previous system were: equipment monitoring,
reporting/bidding, and employee/intern management. The file based system can be seen in
Figure A.1​.

Figure A.1: Old file based system

11
Equipment Monitoring​:

The equipment monitoring process is meant to help HSFL efficiently and effectively manage
specialized equipment to engineer microsatellites. Therefore, it is very important for HSFL to
have an updated report of what equipment is available and who, where, and when equipment was
used or put back. In the old system, equipment was loosely monitored and recorded through
google sheets, which resulted in incorrect and missing information.. Because of this, there was
no way of knowing what equipment was available. This led to incorrect budgeting, significant
project delays, and wasted time.

Reporting/Bidding:

The reporting/bidding process is crucial for HSFL to bid for funds from potential sponsors. As
HSFL is a non-profit organization, the company requires funding from outside agencies in order
to continue creating new satellites to explore space. HSFL obtains these funds by bidding at the
end of each year, which is done through the creation of reports. They are extremely important as
they act as the main marketing function for the company, and without reports HSFL will not
have the money necessary for future projects.
With the old, file-based system, employees would hand search through a file cabinet,
compile the required information throughout a certain time period, type all of this information on
a word document, and then calculate the underrepresented interns/employees with tally marks.
Because of this, reports took extremely long to make and were very error prone.

Management of Employee and Intern Information:

Another important function of HSFL is the mentorship and education of interns.


Information needs to be continually maintained, as current interns are monitored to keep track of
progress. They also undergo review at the end of each period. The file-based system included the
completion of a handwritten application, which was stored in a physical file cabinet. In addition,
there were no records kept that described intern progress.

Based on the analysis above, we finalized the common transactions, queries, and reports
that the database system could implement. By analyzing the old system, we identified four
major processes that the HSFL database included. Below, ​Figure A.2​ is a context diagram
describing the layout of the database system along with a brief explanation of the flow of data.
Data flow diagrams are listed in Appendix A.1 and the accompanying Data Dictionary to provide
further explanation of the data can be found in Appendix A.2.

12
Figure A.2: New Context Diagram

Process 1.0: Employee and Intern Management


One of the processes that is included in the HSFL database system is the management of all
employee and intern data. As the file based system used by HSFL has no standardized method to
input information and also lacks a centralized location to store employee or intern
information, the creation of this process is crucial for HSFL to be able to move forward in all
other processes including obtaining funding, creating statistics for marketing, and processing
ad-hoc queries. Employee information is needed in order to effectively monitor progress, keep
track of what projects are completed by each employee/intern, and create reports at the end of the
year. There are 2 main functions included in the employee and intern management portion of the
system: Create New Account and Manage Existing Account.

Create New Account:


In the file based system, applicants would fill out a paper application that is put in a messy file
cabinet in the office, and often misplaced. The new database system provides a method to
organize that application to ensure data is stored in one, easily accessible place. Additionally,
once the employee/intern have been hired, this portion of the system allows a new account to be
created for each employee. This account includes demographic information required for
reporting purposes. All applications are categorized based on employee vs. intern, and different
levels of access is granted to each type of account.

13
Change Information:
The information that is stored in the database system also needs to be changed at some point,
when new projects are created, or if some demographic information changes such as a change in
address. This “change information” function allows the information in an employee/intern
account to be modified.

A data flow diagram for Process 1.0 Employee and Intern Management can be found in
Appendix A.1.

Process 2.0: Reporting


The reporting process is a critical component of HSFL’s business. This process creates reports
for marketing purposes that include all information requested by outside entities including the
government and NASA. The annual and semi-annual reports generated from this section are very
important for HSFL. It allows them to receive funding for future projects by showing NASA and
the government the statistics behind their projects and educational outreach. Providing an
impressive report about the number of projects completed and interns mentored at the end of
each year ensures that HSFL continues obtaining the funding it needs to survive. Moreover,
HSFL must convince the government/NASA that their business is fulfilling everything expected
of them and more. The reporting process is represented in the semi-annual and annual reports.
While this process was originally meant for just the semi-annual and annual reports, we have
added the features of creating reports on different projects and creating email lists for better
internal communication.

A data flow diagram for Process 2.0 Reporting can be found in Appendix A.1.

Process 3.0: Workforce Development


Part of HSFL’s company mission is to prepare and train students in the science, technology,
engineering, and math field. Their training ensures that the next generation of space explorers are
prepared to carry on the legacy that has been built, and continue moving forward in space
exploration. This development of the future workforce is important to HSFL, making this
process incredibly important as well. The Workforce Development process in our database
system is used to record the projects completed by interns, so employees can monitor the major
milestones reached by each intern. This information is used so upper management can monitor
interns and aid them in their educational journey. This information can be used to aid in the
recruitment of future interns as well as to prove to potential sponsors that their educational goals
are being reached.

A data flow diagram for Process 3.0 Workforce Development can be found in Appendix A.1.

Process 4.0: Equipment Management


The equipment management section of the HSFL database monitors the current level of various
types of equipment required for the projects as well as the day to day operations of HSFL.This
system updates the levels when items are restocked or used. There are two major processes
within equipment management: create reports and check equipment. Being able to check what

14
equipment is available at any given time is very important in order to create the microsatellites.
This process allows the engineers to check what equipment is available prior to beginning a
project. This eliminates the current problem of lack of equipment that results in major delays of
projects.

A data flow diagram for Process 4.0 Equipment Management can be found in Appendix A.1.

Table 1 below provides an overview of each process, including the main function as well as the
main inflows and outflows.

Process Main Functions Inflows/Outflows

1.0 Employee INFLOW:


Management ● Retrieve Applications ● Application Form
● Review Applications Change Information Form
OUTFLOW:
● Account Information
● Changed Information

2.0 Reporting ● Create Annual and INFLOWS:


Semi-Annual Report ● Account information
● Create Email lists to the OUTFLOWS:
Internal Communication ● Semi-Annual Report
process ● Annual Report
● Email Lists
● Project Report

3.0 Workforce INFLOWS:


Development ● Monitor/Track intern ● Accomplishments
progress OUTFLOWS:
● Intern Updates

4.0 Equipment ● Check Equipment INFLOW


Management ● Take Out Equipment ● Request Equipment Report
● Receive Equipment ● Type, user, values, amount
OUTFLOW
Equipment Report
Equipment
Table 1: Overview of each process including main functions and inflows/outflows

15
2. Conceptual Design Results
In the conceptual design phase we captured all of the information included in the database, and
described the relationship among the data. To visualize this, we created an Entity Relationship
Diagram (ERD). This design phased helped us to ensure that the data needed for the database
system was included. The Entity Relationship Diagram can be seen in ​Appendix B.1 ​with a data
dictionary in ​Appendix B.2​. There are four entities and three relationships in the ERD. They are
better described below:

Entity: Intern
The intern entity is a crucial part of HSFL’s processes. It is used to complete the annual and
semi-annual report, track progress among all interns, and grant access to certain parts of the user
interface. It has 19 attributes and the identifier of the intern entity is the “I_user” attribute. The
intern entity has several derived attributes that are used for the annual and semi-annual report.
These derived attributes are the sum of funding, % of female, and # of female/male attributes.

Relationship: Assigned to
Many interns is assigned to a single employee. The assigned to relationship identifies the mentor
for each intern.

Entity: Employee
The employee entity contains important information that affects all business processes of HSFL.
Like the intern entity, the attributes in the employee entity are used for annual and semi-annual
report, to grant access to certain parts of the user interface, to track equipments and projects, etc.
This entity has 10 attributes and the identifier for this entity is “E_user”, or the username of an
employee. The derived attributes from the employee entity include the total number of
employees, % of females, % of underrepresented, etc.

Relationship: Use
Many employees use equipment. The use relationship is crucial for HSFL, as it tracks who, what,
and when an employee uses equipment. The main attributes that are in the use relationship are
T_number, use_date, and amount.

Entity: Equipment
The equipment entity information is crucial for HSFL to engineer microsatellites. There are 7
attributes in this entity, and the main identifier is Enumber.

Entity: Project
The project entity contains information on the engineering of satellites. There are 6 attributes to
the project entity and the main identifier is Pnumber.

Relationship: Requires
The requires relationship is important for HSFL to track what equipment is used per project. The
only attribute in the requires relationship is the amount of equipment per project.

16
3. DBMS Evaluation and Results
We based our selection of the appropriate database management system on the requirements
obtained during the requirements analysis phase. We focused on three crucial needs:
Functionality, Cost, and Size to fit HSFL. From these three needs we were able to create four
major requirements the DBMS would have to fulfill in order to fit the database.
1. The database needed to be user-friendly
2. Compatible with PHP
3. Low to no cost for the database
4. Be able to handle a moderate amount of data to support a small size company

We compared three main types of database management systems: Relational, Object, and
Object-Relational. We mapped out the advantages and disadvantages of each database
management system and selected the best fit for HSFL’s needs. More details about this
information can be found in Figure C.1 in Appendix C. Out of the three types of systems we
analyzed, relational was the best fit for HSFL’s needs. It allowed a simpler way to maintain the
database and also made it easy to adapt future data to continually update the system for new
users and the incorporation of new information.

After deciding on the relational database management system, we conducted further research on
five specific database management systems. We compared the pros and cons of MYSQL, Oracle,
Ingres, Microsoft Access and IBMDB2 to determine which option best fit the four requirements
of HSFL’s system: user-friendliness, being compatible with PHP, low cost, and able to handle a
moderate amount of data. A description of each of the five systems along with their advantages
and disadvantages can be found in Figure C.2 in Appendix C. Overall, MySQL was the best fit
for HSFL because of its compatibility with PHP, the free cost from the community edition, it was
also easy to learn and use, and lastly it was able to hold enough data for a small size company.
The other relational database was either too expensive or did not have the capabilities to satisfy
the needs of HSFL.

17
4. Logical Design Results
In the logical design phase, we defined the structure of the database. This phase was important
to ensure that tables and data were organized correctly for performance and to save internal
memory space.

To define the structure of the HSFL database system, we used the top down approach. The top
down approach transformed the ER diagram that was created during the conceptual design phase
to a set of relations in 3rd normal form (NF). In 3rd NF, each table contained no transitive
dependencies, no composite attributes, no multivalued attributes, no repeating groups, and no
partial dependencies. This normalization process created smaller indexes, faster search options,
and less memory consumption. After completing the normalization process we had 10 different
tables.

We then analyzed each table to determine the most appropriate normal form by considering the
transactions, queries, and reports that HSFL needed. Based on the results collected by this
analysis, we denormalized the tables “assigned to” and “intern”. As the “assigned to” table was
not utilized frequently, we added the attribute of “E_user” to the “intern” table. The
denormalization of these tables allowed us to modify table structures to save memory space by
eliminating the need for cartesian products. At the

The Logical Design Schema can be seen in Appendix D.

18
5. Physical Design Results
In the physical design phase, we made alterations in order to optimize the retrieval of data from
secondary storage. To optimize the database system we tuned queries, indexed on frequently
used and large tables, created views, and made storage level decisions based on the DBMS we
selected, MySQL.

Tuning Queries:
To ensure that all information within HSFL’s database system can be located efficiently, we
tuned queries. This included creating subqueries to avoid joins and correlated queries when
possible. By creating more subqueries, we were able to save internal memory space and reduce
the number of operations. Below is an example of one of the queries that we tuned by creating a
subquery:

SELECT​ ​I_user, GROUP_CONCAT(`I_ethnicity` SEPARATOR ', ') AS ALIAS, I_fname,


I_lname, I_bdate, I_gender, I_veteran, I_PhysChall, Semester
FROM intern_ethnicity, intern
WHERE I_username IN (SELECT I_user
FROM employee
WHERE Semester='Spring $value1' OR Semester='Fall $value1')
GROUP BY I_user;

For more queries included in the database system, refer to ​Appendix E.3.​

Deciding on Indexing:
We created indexes on tables that required a significant amount of data retrieval. Indexing
optimized data retrieval by reducing the amount of data that had to be searched through in order
to gather the results of a query. We added indexes to HSFL’s “equipment” table and “intern”
table. Because the “equipment” table is used frequently for transactions and reports and requires
many queries, we indexed the table based on type of equipment. This optimized the retrieval of
information from the “equipment” table by making it faster to search through. Additionally, we
indexed the “intern” table by semester. The intern table has many attributes and we often pull
data by semester for semi-annual and annual reports. Indexing by semester allowed us to have
faster data retrieval.

Equipment Enumber E_type E_amount E_value E_package E_device Description

Intern I_user I_fname I_lname I_bdate E_usernam Semester I_email


e
I_gender I_address I_veteran Grad_date Funding I_PhysChall Gpa

Figure 4: Equipment and Intern table indexed by Equipment type and Intern semester

19
Denormalization/Creation of Views:
The purpose of creating views was to minimize the amount of data that was searched for by
queries. The creation of a view is done by view materialization, where a physical table is created
for the virtual table (view). The creation of views improves performance because the tables are
then pre-joined, making the queries simpler and the data retrieval faster. Instead of having to
search through multiple different tables, the database can go straight to the view and retrieve the
information much more quickly. As the annual and semi-annual report requires statistics on
underrepresented interns and employees in HSFL, we created two views for the underrepresented
interns and employees. The attributes in the view employee table were E_user and Active and
the attributes in the view intern table were I_user and Semester. Below are the two views
created:

CREATE VIEW AS nonconfidential_employe_info_view4


AS SELECT `E_user`, `Active`
FROM employee, employee_ethnicity
WHERE `E_ethnicity`='NativehawaiiansPacificIslander' OR `E_ethnicity`='NativeAmericans'
OR `E_ethnicity`='AfricanAmerican' OR `E_gender`='F' AND E_user=E_username
GROUP BY E_username;

CREATE VIEW AS intern_nonconfidential_view


AS SELECT `E_user`, `Semester `
FROM employee, employee_ethnicity
WHERE `I_ethnicity`='NativehawaiiansPacificIslander' OR `I_ethnicity`='NativeAmericans' OR
`I_ethnicity`='AfricanAmerican' OR `I_gender`='F' AND I_user=I_username
GROUP BY I_username;

Storage Level Decisions:


We made storage level decisions for the database system based on the chosen DBMS, MySQL.
This made the correct selection of DBMS even more important to the creation of a successful
database system. MySQL has very effective file organization, as it uses both B Tree (B-Tree and
B+Tree) in addition to HASH indexing, but we primarily used B-Tree.

20
6. The Database System Prototype Implemented
The prototype of the HSFL Database has a website front-end that allows users to easily record,
access, and modify data. To overcome the technical challenge of a lack of user knowledge about
database systems, our system has explicit instructions on each home page for easy use. The
instructions explain what each tab on the navigation bar includes. For examples of the Intern and
Employee Home Pages, see ​Appendix E.1.​ The user interface includes many forms that allows
users to perform ad hoc queries, and also to very easily create customized reports. Additionally,
the intuitive design makes the site easy to navigate.

For security measures, we included validations for the forms we created for users to put in the
appropriate information. Also, in order to change user information, users will need to know the
exact username or the information will not be updated. A login for interns and employees was
not a priority for HSFL, but this is included in our future plans for the company to increase
security.

The website front-end of the HSFL Database System is split into two different sections: one for
interns and a separate section for employees. ​Table E.1 ​describes the the purpose, forms, and
reports included in each intern section. For more examples of forms, reports and queries included
in the intern section, refer to ​Appendix E.2​.

Main Webpage Purpose Forms Reports


Section
Application Fill out application -Application Form -Account Information
Create account
Accomplishments Monitor -Accomplishments -Intern Updates
accomplishments per Form
user
Change Information To change or update -Change information
information on
application

Table E.1: Intern side with description of each section, purpose, forms and reports included

21
The second section of the website is for employees. As employees have more responsibilities
than the interns do and therefore require more advanced access, their section of the system is
slightly more complex. The user interface for employees consists of five parts. ​Table E.2
describes the the purpose, forms, and reports included in each part of the employee section. For
more detailed examples of forms, reports and queries included in the intern section, refer to
Appendix E.3​.

Main Webpage Purpose Forms Reports


Section
Employee -Fill out application -Application Form -Account Information
Account -Create account -Change information
-Change or update account
Information
Equipment -Find, take out, put back -Put back Equipment -Equipment Report
equipment -Take out Equipment

Reporting -Print annual and semiannual -Report and Bidding -Semi-annual/Annual


report statistics Form Report Statistics
-Allow users to obtain -Statistics Request -Email List statistics
specified data on previous -Project Report
interns to send customized -Equipment per Project
newsletters
Workforce -Allow Employees to track -Track Progress -Accomplishments
Development intern progress

Table E.2: Employee side with description of each section, purpose, forms and reports included

22
7. Performance Evaluation Results
After creating our prototype, we first tested the database system within the team in order to
ensure that all the queries worked correctly, were efficient, and provided the information HSFL
needed in a neat and organized fashion. We then conducted a performance evaluation of the
database system in order to gauge how usable the design was and how completely it met the
needs of HSFL.

In order to test our database, we used two different methods: black box testing and white box
testing. Black box testing is a way to test the interface and database system by letting users who
are unfamiliar with the system and have little experience provide feedback. White box testing on
the other hand, tests the database through users who have previous experience and knowledge.
We gave a survey to 40 individuals, 20 black box testers and 20 white box testers. Their survey
responses provided insight into what users liked and did not like about our database system.
Specifically, the survey provided information about how well users understood the website, how
efficient it was, its usability, and if they had any suggestions for improvements. We gave the
survey to both black box and white box testers. Survey results can be seen in appendix F.

Through this survey, we concluded that we needed to make the overall interface more user
friendly and have all contents more easily accessible. In order to do this, we changed the layout
of the website and added different instructions on each of the features contained in each page.
This change made the website more user friendly. A quick tutorial and training session will also
be provided to HSFL employees and interns to ensure that the database system is utilized to its
fullest potential.

23
IV. Conclusion and Future Plan
In conclusion, we have successfully created and implemented a relational database system for
HSFL. The system monitors equipment information so employees know what equipment is in
stock and available to be used for microsatellites at all times. The use of a database system to
store this information is advantageous as it allows ad hoc queries to be performed. The system
also manages employee/intern and project information. This ensures that HSFL stays on track in
creating microsatellites, and also allows for intern and employee progress to be tracked. The
database system also allowed us to integrate customized reports into the web-based front end, so
employees simply have to click a button to retrieve the annual and semi-annual reports necessary
to bid for funds. Overall, the web-based front end allows HSFL employees and interns to easily
access the system and perform transactions and create reports. We strictly adhered to each design
phase of the RAD methodology in order to ensure that the final system was efficient,
cost-effective, and of the highest quality and performance. The added functionality provided by
our database system will allow HSFL to continue creating microsatellites, educating future space
engineers, and will allow for the granting of more funding due to better reports, which will
enable HSFL to continue making progress in space exploration.

While the system is very functional already and provides many added benefits to HSFL, we plan
to continue making improvements. Based on the results of the performance evaluation, we plan
to incorporate different features to meet the newly discovered feature requirements. In the future,
we plan to add a feature that allows employees to add new types of equipment that do not yet
exist in the database. If a project needs a new type of equipment that isn’t already in the
database, there is currently no way to track that piece of equipment. We will be creating a way to
add that new type of equipment to the database and update the website to include it as an option.

Furthermore, we will also be adding supplier information to both the web based front end and the
database itself. A future requirement that would provide added benefit to HSFL would be the
ability to communicate with suppliers directly from our system. This will allow them to order
supplies directly from the site, as well as to track the progress of the new piece of equipment.
Our team will be working to add this feature.

Lastly, we will be adding more security and validation throughout all the pages. A definite future
requirement for HSFL is increased validation and general login/password features. While not an
original requirement of HSFL, a login and registration function would add greater security to the
system, and we plan to add that to the first page of the website front end. Along with the login
functionality, we will be including increased security for each of the pages that only allows
access if you are logged into the system and have been granted access rights. For each form,
validation will also be included in order to make sure the user is inputting information in the
correct format for each form.The addition of increased validation will reduce the potential errors
associated with incorrect data input.

24
Appendix

Appendix A: Requirements Analysis


Appendix A.1
Process 1: Employee/Intern Management

25
Process 2: Reporting

Process 3: Workforce Development

26
Process 4: Equipment Management

27
Appendix A.2
Process 1:
Employee Application
Attribute Data Type Description

E_user Short Text Username of employee

E_Fname Short Text First name of Employee

E_Lname Short Text Last name of Employee

E_Address Short Text The physical mailing address of employee

E_Bdate Date Birth date of employee

E_Gender Short Text “F” or “M”

E_Ethnicities Short Text Asian, Caucasian, Native American, Pacific


Islander, Native Hawaiian, African American,

E_Veteran Short Text ““Y” or “N”

E_Physically_challenged Short Text “Y” or “N”

Active Short Text “Y” or “N”

E_Email Short Text Email Address of Employee

Intern Application
Attribute Data Type Description

I_user Short Text Username of intern

I_Fname Short Text Intern First Name

I_Lname Short Text Intern Last Name

I_Address Short Text The physical mailing address of intern

I_Bdate Date Birth date of intern

I_Gender Short Text “F” or “M”

I_Ethnicities Short Text Asian, Caucasian, Native American,Native


Hawaiian Pacific Islander, African
American

28
E_email Short Text Email of intern

GPA Number GPA of Student within the range of 1.5-4.5

GradDate Date Date of expected graduation

I_Veteran Short Text “Yes” or “No”

I_Physically_challenged Short Text “Yes” or “No”

Semester Short Text Spring *year* or Fall *year*

Funding Float $ Funding

E_User Short Test Mentor’s username

Process 2:
Account Information:
Attribute Data Type Description

E_user Short Text Username of employee

E_Fname Short Text First name of Employee

E_Lname Short Text Last name of Employee

E_Address Short Text The physical mailing address of employee

E_Bdate Date Birth date of employee

E_Gender Short Text “F” or “M”

E_Ethnicities Short Text Asian, Caucasian, Native American, Pacific


Islander, Native Hawaiian, African American,

E_Veteran Short Text ““Y” or “N”

E_Physically_challenged Short Text “Y” or “N”

Active Short Text “Y” or “N”

E_Email Short Text Email Address of Employee

I_user Short Text Username of intern

I_Fname Short Text Intern First Name

29
I_Lname Short Text Intern Last Name

I_Address Short Text The physical mailing address of intern

I_Bdate Date Birth date of intern

I_Gender Short Text “F” or “M”

I_Ethnicities Short Text Asian, Caucasian, Native American,Native


Hawaiian Pacific Islander, African American

E_email Short Text Email of intern

GPA Number GPA of Student within the range of 1.5-4.5

GradDate Date Date of expected graduation

I_Veteran Short Text “Yes” or “No”

I_Physically_challenged Short Text “Yes” or “No”

Semester Short Text Spring *year* or Fall *year*

Funding Float $ Funding

E_User Short Test Mentor’s username

Annual Report

Attribute Data Type Description

E_Fname Short Text First name of Employee

E_Lname Short Text Last name of Employee

E_Address Short Text The physical mailing address of employee

E_Bdate Date Birth date of employee

E_Gender Short Text “F” or “M”

E_Ethnicities Short Text Asian, Caucasian, Native American, Pacific


Islander, Native Hawaiian, African American,

E_Veteran Short Text ““Y” or “N”

30
E_Physically_challenged Short Text “Y” or “N”

Active Short Text “Y” or “N”

# of Female *Derived Attribute*

% of Female *Derived Attribute*

% of Underrepresented *Derived Attribute*

I_Fname Short Text Intern First Name

I_Lname Short Text Intern Last Name

I_Address Short Text The physical mailing address of intern

I_Bdate Date Birth date of intern

I_Gender Short Text “F” or “M”

I_Ethnicities Short Text Asian, Caucasian, Native American,Native


Hawaiian Pacific Islander, African American

I_Veteran Short Text “Yes” or “No”

I_Physically_challenged Short Text “Yes” or “No”

Semester Short Text Spring *year* or Fall *year*

Funding Float $ Funding

# of Female *Derived Attribute*

% of Female *Derived Attribute*

% of Underrepresented *Derived Attribute*

Email Lists

Attribute Data Type Description

I_user Short Text Username of intern

I_email Short Text Intern Email

E_user Short Text Username of employee

31
E_email Short Text Employee email

Project Report
Attribute Data Description
Type

PName Short Text Name of Project

Pnumber Number Specific number for each project

Account Number Specific account for each project

Startdate Date Starting date of the project

Enddate Date Ending date of the project

E_users Short Text Head employee user that are in charge of the project

Process 3
Accomplishments

Attribute Data Type Description

I_user Short Text Intern Username

Accomplishments Long Text Description of major accomplishments

Date Date Date accomplishment inputted

Intern Updates

Attribute Data Type Description

User Short Text User of Intern or Employee User

Accomplishments Long Text Description of major accomplishments

Date Date Date accomplishment inputted

GradDate Date Expected Grad Date

GPA Short Text GPA of intern

32
Process 4:

Equipment Report/Equipment

Attribute Data Description


Type

E_number number Number assigned to equipment

Amount Number Number of equipment taking out/adding

Type Short Text Name of equipment

Package Short Text Package description of equipment

Cost Number Cost of equipment

Value Short Text Value of equipment

Description Short Text Description of equipment

Request Equipment Report


Attribute Data Description
Type

Type Short Text Name of equipment

Value Short Text Value of equipment

33
Appendix B: Conceptual Design
Appendix B.1

Appendix B.2

Employee
Attribute Data Type Description

E_user Short Text Username of employee

E_Fname Short Text First name of Employee

E_Lname Short Text Last name of Employee

E_Address Short Text The physical mailing address of employee

E_Bdate Date Birth date of employee

34
E_Gender Short Text “F” or “M”

E_Ethnicities Short Text Asian, Caucasian, Native American, Pacific


Islander, Native Hawaiian, African American,

E_Veteran Short Text ““Y” or “N”

E_Physically_challenged Short Text “Y” or “N”

Active Short Text “Y” or “N”

E_Email Short Text Email Address of Employee

# of Female *Derived Attribute*

% of Female *Derived Attribute*

% of Underrepresented *Derived Attribute*

Intern
Attribute Data Type Description

I_user Short Text Username of intern

I_Fname Short Text Intern First Name

I_Lname Short Text Intern Last Name

I_Address Short Text The physical mailing address of


intern

I_Bdate Date Birth date of intern

I_Gender Short Text “F” or “M”

I_Ethnicities Short Text Asian, Caucasian, Native


American,Native Hawaiian Pacific
Islander, African American

E_email Short Text Email of intern

GPA Number GPA of Student within the range of


1.5-4.5

GradDate Date Date of expected graduation

I_Veteran Short Text “Yes” or “No”

35
I_Physically_challenged Short Text “Yes” or “No”

Semester Short Text Spring *year* or Fall *year*

Funding Float $ Funding

E_User Short Test Mentor’s username

Accomplishments Long Text Users Accomplishments

# of Female *Derived Attribute*

% of Female *Derived Attribute*

% of Underrepresented *Derived Attribute*

Project
Attribute Data Description
Type

PName Short Text Name of Project

Pnumber Number Specific number for each project

Account Number Specific account for each project

Startdate Date Starting date of the project

Enddate Date Ending date of the project

E_users Short Text Head employee user that are in charge of the project

Equipment
Attribute Data Description
Type

E_number Number Number assigned to equipment

Amount Number Number of equipment taking out/adding

Type Short Text Name of equipment

Package Short Text Package description of equipment

Cost Number Cost of equipment

36
Value Short Text Value of equipment

Description Short Text Description of equipment

Uses
Attribute Data Type Description

Tnumber Number Transaction Number

Use Date Float $ Funding

Amount Number Amount taken out

Requires
Attribute Data Type Description

Amount Number Amount taken out

37
Appendix C: Selection of DBMS

Relational Object Oriented Object Relational

Pros -Data is stored once -A lot of code is already -Software to convert


inside object oriented data data provided
-Modification of data is -Data model is based on real
simpler and storage world
efficiency can be high -Modular, extensive, and
reusable: software
-Security is better with productivity and
tables maintainability is easier

-Adaptable to future
changes in the database

Cons -Can be expensive to -Not necessary for simple -Speed Performance is


setup and maintain relationships and data lower because of
-More tools and standards are constant data
-Structure Limits made for RDBMS conversion
-New forms of data can -More Complex -Not a lot of
be confusing -Slower programs information and
-Isolated databases are software developed
common

Table 1: Overview of RDBMS, OODBMS, and ORDBMS

Criteria MySql Oracle Microsoft Ingres IBM


Access DB2

Functionality High High Low Medium High


(Main functions)

Recommended Size of Large Large Small Small Large


Company

Price Free to High Low Upon Quote Medium


High

Table 2: Overview of MySQL, Oracle, Ingres, Microsoft Access, and IBMDB2

38
Appendix D: Relational Logical Schema

Figure D.1: Logical schema

39
Appendix E: Prototype

Figure E.0: Login Page

40
Appendix E.1

The following figures are examples of the instructions on each home page of the prototype. The
instructions describe what each tab in the navigation bar includes and is used for. This will help
new intern and employee users with understanding the capabilities this database has.

Figure E.1.1: Intern Home Page

41
Figure E.1.2: Employee Home Page

Figure E.1.3: Employee Account Home Page

42
Figure E.1.4: Equipment Home Page

Figure E.1.5: Reporting Home Page

43
Figure E.1.6: Track Intern Progress Home Page

44
Appendix E.2

Figure E.2.1: Create Intern Account Page One

In this form, interns can create their username and fill out the following information. The
following query inserts the information from the form and puts them in the intern table according
to the attribute. After submitting this form, they are relocated to another intern application to fill
out additional information.

Queries for create intern account:

$sql = "INSERT INTO intern (I_user, I_email, I_lname, I_fname, E_username)


VALUES('$I_user', '$I_email', '$I_lname', '$I_fname', '$I_mentor')";

45
Figure E.2.2: Create Intern Account Page Two

The intern will need to use the username created in the previous application form, Figure E.2.1,
in order for the database to know which user information to update. The first set of queries below
updates the information from the username provided. All information goes into the intern table
except, ethnicities.

The ethnicity information is a separate table named, intern ethnicity, and these queries are
putting this information into the table. Users may have multiple ethnicities, which is why we
made another table to help employees track their information easier.

46
Queries for create intern account two:

Set 1

$sql = "UPDATE intern SET I_gender='$I_gender' WHERE I_user='$user'";


$sql1 = "UPDATE intern SET I_address='$I_address' WHERE I_user='$user'";
$sql2 = "UPDATE intern SET I_veteran='$I_veteran' WHERE I_user='$user'";
$sql3 = "UPDATE intern SET I_physchall='$I_physchall' WHERE I_user='$user'";
$sql4 = "UPDATE intern SET Semester='$I_active' WHERE I_user='$user'";
$sql5 = "UPDATE intern SET I_bdate='$I_bdate' WHERE I_user='$user'";
$sql6 = "UPDATE intern SET Gpa='$gpa' WHERE I_user='$user'";
$sql7 = "UPDATE intern SET Grad_date='$I_graddate' WHERE I_user='$user'";
$sql8 = "UPDATE intern SET Funding=$funding WHERE I_user='$user'";

Set 2

$sql_ethnicity_white = "INSERT INTO intern_ethnicity(I_username, I_ethnicity)


VALUES('$user','$I_ethnicity_white')";
$sql_ethnicity_af = "INSERT INTO intern_ethnicity(I_username, I_ethnicity)
VALUES('$user','$I_ethnicity_af')";
$sql_ethnicity_asian = "INSERT INTO intern_ethnicity(I_username, I_ethnicity)
VALUES('$user','$I_ethnicity_asian')";
$sql_ethnicity_na = "INSERT INTO intern_ethnicity(I_username, I_ethnicity)
VALUES('$user','$I_ethnicity_na')";
$sql_ethnicity_nhpi = "INSERT INTO intern_ethnicity(I_username, I_ethnicity)
VALUES('$user','$I_ethnicity_nhpi')";

47
Figure E.2.3: Intern Accomplishments Page

For this form, the intern will need to provide their username to record all their accomplishments
for the day. The following query inserts the data in the accomplishment table. Employees are
able to view interns accomplishments in the employee side, track intern progress section.

Queries for intern accomplishments:

$sql = "INSERT INTO accomplishments(I_user, Accomplishments, Date) VALUES('$I_user',


'$Accomplishment', '$Date')";

48
Figure E.2.4: Change Intern Information Page

The form above allows users to find their information to see what needs to be changed. The first
query is searching for the intern information from the intern table. After typing their username
again, the queries below allow users to change any of the above information necessary.

Queries for change intern information:

$query = "SELECT * FROM Intern WHERE I_user='$i_user'";


$sql1 = "UPDATE intern SET I_address='$I_address' WHERE I_user='$iusername'";
$sql2 = "UPDATE intern SET Gpa='$Gpa' WHERE I_user='$iusername'";
$sql3 = "UPDATE intern SET I_PhysChall='$I_PhysChall' WHERE I_user='$iusername'";
$sql4 = "UPDATE intern SET Semester='$Semester' WHERE I_user='$iusername'";
​Appendix E.3

49
Figure E.3.1: Create Employee Account Page One

This form is for new employee users to create an employee account. The query used in this
application has the data inserted into the employee table according to the attributes. Once the
button “Next” is pressed, it redirects you to the additional employee application form.

Queries for create employee account:

$sql = "INSERT INTO Employee(E_user, E_email, E_lname, E_Fname) VALUES('$E_user',


'$E_email', '$E_lname', '$E_fname')";

50
Figure E.3.2: Create Employee Account Page Two

The first set of queries below updates the information from the username provided. The
employee will need to use the username created in the previous application form, Figure E.3.1,
for the database to know which user information to update. All information goes into the
employee table except, ethnicities.

The ethnicity information is a separate table named, employee ethnicity. Users may have
multiple ethnicities, which is where the additional set of queries take place and put that
information into the employee ethnicity table to avoid data redundancy.

Queries for create employee account two:

Set 1
$sql = "UPDATE employee SET E_gender='$E_gender' WHERE E_user='$user'";
$sql1 = "UPDATE employee SET E_address='$E_address' WHERE E_user='$user'";
$sql2 = "UPDATE employee SET E_veteran='$E_veteran' WHERE E_user='$user'";
$sql3 = "UPDATE employee SET E_physchall='$E_physchall' WHERE E_user='$user'";
$sql4 = "UPDATE employee SET Active='$E_active' WHERE E_user='$user'";
$sql5 = "UPDATE employee SET E_bdate='$E_bdate' WHERE E_user='$user'";

51
Set 2
$sql_ethnicity_white = "INSERT INTO employee_ethnicity(E_username, E_ethnicity)
VALUES('$user','$I_ethnicity_white')";
$sql_ethnicity_af = "INSERT INTO employee_ethnicity(E_username, E_ethnicity)
VALUES('$user','$I_ethnicity_af')";
$sql_ethnicity_asian = "INSERT INTO employee_ethnicity(E_username, E_ethnicity)
VALUES('$user','$I_ethnicity_asian')";
$sql_ethnicity_na = "INSERT INTO employee_ethnicity(E_username, E_ethnicity)
VALUES('$I_user','$I_ethnicity_na')";
$sql_ethnicity_nhpi = "INSERT INTO employee_ethnicity(E_username, E_ethnicity)
VALUES('$I_user','$I_ethnicity_nhpi')";

52
Figure E.3.3: Change Employee Account Information Page

This form allows users to see their information printed on the screen once they type their
username in. The first query is searching for the employee information from the employee table.
After typing their username again in the following form, the queries below allow users to change
any of the above information necessary.

Queries for change employee account information:

$query = "SELECT * FROM Employee WHERE E_user='$E_user'";


$sql1 = "UPDATE Employee SET E_address='$E_address' WHERE E_user='$E_username'";
$sql2 = "UPDATE Employee SET Active='$Active' WHERE E_user='$E_username'";

53
Figure E.3.4: Example of Equipment Take Out Page

The form above allows users to look up the equipment available before taking it out, which is
where the first query takes place. The navigation bar also separates the equipment by type with a
drop down list for easy use. The following queries is updating the equipment, uses and requires
table according to the attributes listed and will need to provide their username.

Queries for taking out equipment:

$query = "SELECT * FROM Equipment WHERE E_value='$value1' OR E_value='$value2' OR


E_value='$value3' OR E_value='$value4' OR E_value='$value5'";
$updatesql="UPDATE Equipment SET E_amount = E_amount - $quantity WHERE
Enumber='$number'";
$sql_uses= "INSERT INTO Uses(E_user, Enumber, Use_date, E_amount) VALUES('$E_user',
'$number', '$Use_date', '$quantity')";
$sql_requires= "UPDATE Requires SET Amount = Amount + $quantity WHERE Pno='$Pno'
AND Eno='$number'";
$query = "SELECT E_value, E_device, Amount FROM Equipment, Requires WHERE
Pno='$Pno' AND Eno='$number' AND Amount<>0";

54
Figure E.3.5: Example of Equipment Put Back Page

The form above allows users to look up the equipment available before putting back, which is
where the first query takes place. Along with the take out navigation, the put back tab also has a
drop down list of equipment. The following queries is updating the equipment, uses and requires
table according to the attributes listed and will need to provide their username.

Queries for putting back equipment:

$query = "SELECT * FROM Equipment WHERE E_value='$value1' OR E_value='$value2' OR


E_value='$value3' OR E_value='$value4' OR E_value='$value5'";
$updatesql="UPDATE Equipment SET E_amount = E_amount + $quantity WHERE
Enumber='$number'";
$sql_uses= "INSERT INTO Uses(E_user, Enumber, Use_date, E_amount) VALUES('$E_user',
'$number', '$Use_date', '$quantity')";
$sql_requires= "UPDATE Requires SET Amount = Amount - $quantity WHERE Pno='$Pno'
AND Eno='$number'";
$query = "SELECT E_value, E_device, Amount FROM Equipment, Requires WHERE
Pno='$Pno' AND Eno='$number' AND Amount<>0";

55
Figure E.3.6: Add New Project Page

If the company has a new project, they are able to add that information in this form. The query
below inserts the filled out form information into the project table. In the reporting section,
employees are able to search for the project information according to the project name.

Queries for adding a new project:

$sql= "INSERT INTO Project(Pnumber, Pname, StartDate, EndDate, Account)


VALUES('$Pnumber','$Pname','$StartDate','$EndDate','$Account')";

56
Figure E.3.7: Employee Contact Information Page

For intern communication with the company, HSFL needs to find out employee contact
information, which is found in this page. The following query grabs certain attributes from the
employee table and finds usernames that are similar to what the user had typed out. If the user
types in “j”, all the usernames with a “j” in it will print below.

Queries for employee contact information:

$query = "SELECT E_user, E_fname, E_lname, E_email, E_address FROM employee WHERE
E_user LIKE '%$value1%'";

57
Figure E.3.8: Intern Contact Information Page

Similar to the employee contact page, this is where users can find contact information on interns.
The first query is grabbing the intern information based on the semester chosen, but the second
query gives another option of finding the information based on the username. If the user types
one letter, the query grab all usernames that include that letter.

Queries for intern contact information:

$query = "SELECT I_user, I_fname, I_lname, I_email, Semester, I_address FROM intern
WHERE Semester ='$value1'";
$query1 = "SELECT I_user, I_fname, I_lname, I_email, Semester, I_address FROM intern
WHERE I_user LIKE '%$value1%'";

58
Figure E.3.9: Annual Reporting Page

Figure E.3.10: Example of Year 2018 Annual Reporting Page for Interns

59
Figure E.3.11: Example of Year 2018 Annual Reporting Page for Employees

To view results of annual reports by fiscal year and/or active employees, an employee can simply
select two buttons and the report will be printed with calculated statistics. The following queries
grab attributes from the employee table, intern table, two view tables, employee ethnicity table,
and intern ethnicity table. The female to male ratio, percentages of each,the number of
underrepresented, and the percentage of underrepresented are all calculated in the below queries
as well.

60
Queries for annual reporting page:

$query = "SELECT I_user, GROUP_CONCAT(`I_ethnicity` SEPARATOR ', ') AS ALIAS,


I_fname, I_lname, I_bdate, I_gender, I_veteran, I_PhysChall, Semester FROM intern_ethnicity,
intern WHERE I_username IN (SELECT I_user from employee where Semester='Spring
$value1' OR Semester='Fall $value1') GROUP BY I_user";

$query2 = "SELECT COUNT(*) FROM intern WHERE I_gender='F' AND SEMESTER IN


(SELECT Semester from intern where Semester='Spring $value1' OR Semester='Fall $value1'
OR Semester='Summer $value1')";

$query3 = "SELECT COUNT(*)FROM intern WHERE I_gender='M' AND SEMESTER IN


(SELECT Semester from intern where Semester='Spring $value1' OR Semester='Fall $value1'
OR Semester='Summer $value1')";

$query4 = "Select (Count(I_gender)* 100 /(Select Count(*) From intern WHERE


Semester='Spring $value1' OR Semester='Fall $value1' OR Semester='Summer $value1'))From
intern WHERE I_gender='F' AND Semester='Spring $value1' OR Semester='Fall $value1' OR
Semester='Summer $value1'";

$query5 = "Select (Count(I_gender)* 100 /(Select Count(*) From intern WHERE


Semester='Spring $value1' OR Semester='Fall $value1' OR Semester='Summer $value1'))From
intern WHERE I_gender='M' AND Semester='Spring $value1' OR Semester='Fall $value1' OR
Semester='Summer $value1'";

$query11 = "SELECT COUNT(*) from intern_nonconfidential_view WHERE Semester='Spring


$value1' or Semester='Fall $value1'";

$query22 = "SELECT COUNT(*) from intern WHERE Semester='Spring $value1' or


Semester='Fall $value1'";

$query33 = "Select (Count(I_user)* 100 /(Select Count(*) from intern WHERE


Semester='Spring $value1' or Semester='Fall $value1'))From `intern_nonconfidential_view`
WHERE Semester='Spring $value1' or Semester='Fall $value1'";
$query1 = "SELECT E_username, GROUP_CONCAT(`E_ethnicity` SEPARATOR ', ') AS
ALIAS, E_fname,E_lname,E_bdate,E_gender,E_veteran, E_PhysChall, Active FROM
employee_ethnicity, employee WHERE E_user=E_username AND Active='Y' GROUP BY
E_username";

$query6 = "SELECT COUNT(*) from nonconfidential_employe_info_view4 WHERE


Active='Y'";

$query66 = "SELECT COUNT(*) from employee WHERE Active='Y'";

61
$query55 = "Select (Count(E_user)* 100 /(Select Count(*) from employee WHERE
Active='Y'))From nonconfidential_employe_info_view4 WHERE Active='Y'";

$query4 = "Select (Count(E_gender)* 100 /(Select Count(*) from employee WHERE


Active='Y'))From employee WHERE E_gender='F' AND Active='Y'";

$query5 = "Select (Count(E_gender)* 100 /(Select Count(*) from employee WHERE


Active='Y'))From employee WHERE E_gender='M' AND Active='Y'";

$query7 = "SELECT COUNT(*) FROM employee WHERE E_gender='F' AND Active='Y'";

$query8 = "SELECT COUNT(*)FROM employee WHERE E_gender='M' AND Active='Y'";

$query6 = "SELECT COUNT(*) from nonconfidential_employe_info_view4";

$query66 = "SELECT COUNT(*) from employee";

$query55 = "Select (Count(E_user)* 100 /(Select Count(*) from employee))From


`nonconfidential_employe_info_view4`";

$query4 = "Select (Count(E_gender)* 100 /(Select Count(*) from employee))From employee


WHERE E_gender='F'";

$query5 = "Select (Count(E_gender)* 100 /(Select Count(*) from employee))From employee


WHERE E_gender='M'";

$query7 = "SELECT COUNT(*) FROM employee WHERE E_gender='F'";

$query8 = "SELECT COUNT(*)FROM employee WHERE E_gender='M'";

62
Figure E.3.12: Search Project Page

For basic project information, such as, account number the project is under and project number,
this page is where users will find it. The query below grabs all attributes in the project table and
prints the information of the project selected.

Queries for searching a project:

$query = "SELECT * FROM Project WHERE Pname='$value1' OR Pname='$value2'OR


Pname='$value3'OR Pname='$value4'OR Pname='$value5'";

63
Figure E.3.13: Finding Equipment Per Project Page

For HSFL reporting, it is important to know what equipment was taken out for certain projects.
The form above is able to print the information by the query below. The user will input the
project number and the query will grab the equipment number and amount taken from the
requires table, but only if the project number matches and the amount taken is not 0.

Queries for finding equipment per project:

$query = "SELECT * FROM Requires WHERE Pno='$Pno' AND Amount<>0";

64
Figure E.3.14: Tracking Intern Accomplishments Page

This form gives users the option to track intern accomplishments by the mentor the intern is
under or by the intern’s username. The first query is grabbing all the attributes from the intern
accomplishment table and grad date, gpa and employee username from the intern table, but only
if the intern username in intern table matches to the intern username in the accomplishment table
and the employee username matches with what the user types in. The second query is grabbing
the same information, but only if the intern username typed in matches the username in the
accomplishments table.

Queries for tracking intern accomplishments:

$query = "SELECT intern.I_user, Accomplishments, accomplishments.Date, intern.Grad_date,


intern.Gpa, E_username FROM intern, accomplishments WHERE
intern.I_user=accomplishments.I_user AND E_username ='$value1'";
$internquery = "SELECT intern.I_user, Accomplishments, accomplishments.Date,
intern.Grad_date, intern.Gpa, E_username FROM intern, accomplishments WHERE
intern.I_user=accomplishments.I_user AND accomplishments.I_user ='$value1'";

65
Appendix F: Performance Evaluation Results

Figure F.1: Sample Performance Evaluation Survey

Here’s a sample performance evaluation survey that was given to both black box and white box
testers in order to get a good understanding of what should be improved on.

66
Figure F.2: Statistical results on Question 1

Out of 40 people, 80% of the 40 testers believed the system met their needs with 5 stars out of 5.
Then, 15% of testers believed the system met their needs with 4 stars out of 5. Lastly, the
remaining 5% of the testers believed the system met their needs with 3 stars out of 5. There were
no users who felt like the system did not their needs in the form of 0-2 stars.

67
Figure F.3: Statistical Results on Question 2

With question two, 62.5% of the testers believed it took a lot less time using the system in order
to get what they wanted. 25% believed it took a little less time then expected, while 12.5%
believed it took an expected amount of time. There were no users that felt using the system took
more time than expected.

68
Figure F.4: Statistical Results on Question 3

For visual appeal, 5 out of the 40 testers believed the user interface was 5/5 stars in terms of
visual appeal. 18 believed the user interface deserved a 4 out of 5 stars. Lastly, 12 and 5 testers
believed the interface deserved 3 stars and 2 stars respectively. There were no users who
believed visual appeal was ranked 1 star or less.

69

Вам также может понравиться