Академический Документы
Профессиональный Документы
Культура Документы
CSC303S Database Assignment 2004 Hilton Jacobson JCBHIL002 Alex Karpul KRPALE001 David Seaward SWRDAV002
Plagiarism Declaration
1. I know t hat plagiarism is wrong. Plagiarism is t o use anot her s work and pretend that it is ones own. 2. Each cont ribut ion t o t his pract ical/ t ut orial from t he work(s) of ot her people has been attributed, and has been referenced. 3. This practical/tutorial is my own work. 4. I have not allowed, and will not allow, anyone t o copy my work wit h t he intention of passing it off as his or her own work.
Specification
The purpose of t his dat abase applicat ion is t o provide a t ool for analyzing st udent result s. As well as t hree fixed funct ions, an adapt able funct ion is provided, allowing t he course convenor or ot her UCT administ rat or t o make their own analysis function. The aim is to provide a tool to extract, combine and display results in a useful fashion (i.e. not as raw data) by allowing the user t o creat e t heir own funct ions, we have creat ed a t ool t hat allows t hem t o discover influencing fact ors. The st at ist ical significance of t he analysis is beyond t he scope of t his proj ect , but would be a useful addit ion in fut ure development.
Design
For t he purposes of t he proj ect , our first st ep was t o det ermine what raw dat a was required. The specificat ion included reference t o personal and school details for st udents, and course det ails and result s. By delineat ing t he relat ionships bet ween t hese dat a clearly, we were able t o draw up t he following ER diagram as the basis for our database:
Surname Name DOB Address Student_no Joined Year _matrc
Students
Progress Res
AYOS
4..*
Student_no Course_code Year Mark Supp
5..9
Student_no Subject
Mat_Ex_Body
Course_ Results
Matric_ Results
Mark Grade
Courses
Course_code
Description Credits
Description
Matric_Subjects
Course_code
Important elements of the diagram to notice are: All basic st udent dat a is st ored in [Students]. In act ualit y, t his dat a might be st ored in separat e dat abases across a net work. (e.g.
residence dat a wit h St udent Housing, biographical dat a wit h St udent Records). The attribute (Address) stores the student s suburb of residence. The at t ribut e (Mat _Ex_Body) has been added t o [Students]. This indicat es t he Mat ric Examinat ion Body (e.g. provincial or IEB) and is used in one of the fixed functions. (Joined) refers t o year st udent j oined UCT, (Year_mat rc) is t he year in which the student matriculated, and (Res) indicates whether or not the student is in residence (used in a fixed function). [Courses] and [Mat ric_Subj ect s] are self-explanatory, but t heir respective relationships wit h [St udent s] are t he core of t he functionality of this database. <Course_Results> cont ains a part icular st udent s exam result s for a given course and year. This means t hat each of (St udent _no), (Course_code) and (Year) are part ial keys i.e. t oget her t hey define a unique exam result . That result is st ored as a (Mark) and possibly (Supp) result (Supp) is the only field that may be null. Whet her or not a st udent can writ e a supp, or whet her t he dat a is valid is out side t he scope of t his proj ect . Any int errogat ions or calculat ions wit h t hese result s are handled wit hin t he respect ive funct ions, what is st ored here is simply t he raw dat a. When a st udent passes a supp, t heir final mark is always 50% , but in t his dat abase we store t he act ual result , and leave it t o t he funct ion t o calculat e t he final value. Every student has taken at least four courses. Three of t hose courses are: AARPENG, AARPMAM and AARPNUM. The AARP t est s have been included as 0 credit courses rat her t han being st ored in a special t able. By collect ing dat a in t his way it is easier t o extract. <Mat ric_Result s> is similar t o <Course_Result s> except t hat only a (Mark) and (Grade) are st ored. Every mat riculant has t aken bet ween 5 and 9 subjects. Note that matric data that does not need to be repeated (e.g. year of matriculation) is stored in [Student] rather than <Matric_Results>. From t his diagram it is clear t hat each of t he ent it y set s and relat ionships should be st ored as a separat e t able in t he dat abase, wit h t he at t ribut es as fields. Keys are as indicated in the diagram.
Analysis Functions
Multipurpose FAF Analysis
The Fundamentals Analysis Function st art s wit h a menu t hat asks whet her you would like t o view informat ion t hat relat es t o course codes and st udent information. Under t he course code ent ry it asks quest ions of t he user unt il it can generat e a query t hat ret urns wit h t he result s of Average Mark for t hat course, Pass Rat e and Failure Rat e. It also does t his by grouping by year. The year can be select ed or all years can be given. To see t he line of questioning refer to the diagram below. Under t he st udent informat ion ent ry it asks whet her you want t o see a specific st udent s informat ion. If t his is select ed t hen it asks for a st udent number and brings back t he st udent s det ails, t heir mat ric marks and t heir UCT marks. If t he opt ion is not select ed it brings up a menu of filt ers t hat can be applied t o t he course result s t hat will eliminat e all result s t hat are not in those filters. Again to see the line of questioning see the diagram
FAF
Course Code
Year
Average Mark
Pass Rate
Failure Rate
Specific Year
Student Information
Single Student
Filters
Student Number
Filter by Name
Filter by Surname
Filter by Suburb
Filter by AYOS
Alexs Analysis of how places where students live relate to their marks over a time period
This Analyzer is t arget ed at t he admissions office and t o see where it would be best t o purchase land for resident st udent s. The User is asked for t he beginning year and end year of t he period t hey would like t o observe t hen the SQL query starts It st art ed by going t o t he [Students] t able and ext ract ing where t he student lived. Then going t o t he <Course_Results> t able and get t ing t heir (Marks). It t hen calculat ed in SQL t he average mark grouping it by where t he st udent s lived and by t he year t hat it was done. It t hen discards in SQL all years that dont fall in the time period. The funct ion t he receives t his informat ion and proceeds t o ext ract it int o t he correct cells of a t wo dimensional array and print s it out in more or less t able format . The t able would be more complet e if t he dat abase had been filled in more t horoughly. Unfort unat ely due t o t ime const raint s and t he immensit y of t his t ask it would not really be possible t o populat e t he database with extra students and where they live.
Thus supp passes count as 50% , ot her result s count as t he act ual mark obtained in the exam. The funct ion ext ract s t he best performing MEBs in each AARP t est , and in t he course. These should give t he convenor an indicat ion of which results are more likely t o have a st rong correlat ion. Act ual correlat ion fit ness t est ing is beyond t he scope of t his proj ect , and would require ext ensive dat a over at least five years t o produce meaningful result s. At t he moment , t his t ool should provide a course convenor wit h a st art ing point . (For example, one would expect t hat higher AARPENG always indicat es bet t er result s, whereas in Science and Commerce courses AARPNUM and AARPMAM would have more influence t han in Humanit ies courses. It would be possible t o det ermine t hat AARPENG results are significant ly lower wit h students mat riculat ing under a part icular examining body, suggest ing that an ext ra courses should aut omat ically be suggest ed t o st udent s applying from t hat area/body.)
When using t his funct ion t he course convenor first ent ers his or her course code, t hen t he years t o analyse. If t he st art ing year is 0 , t he funct ion ext ract s t he first and last year t he course has result s from the <Course_Results> table and uses that as the range. For each year raw data is ext ract ed for each MEB (including % ) and t he pass rat e and average are calculat ed. Result s are displayed in a simple t able, and t op performers are recorded below. A result of -1 indicat es a null for t hat field (e.g. a null ent ry or a null result , such as when t here were no st udent s from a particular board who wrot e an AARP t est in t hat year). For t he purposes of seeing some int erest ing result s in t his dat abase it is recommended using t he course ECO110F as it is heavily populated.
Testing
The main purpose of t est ing is t o confirm t hat a function can deal wit h out liers and ot her odd (but valid) data ent ries. In populat ing t he t ables, though, we also discovered it was useful in checking t hat t he code was implemented correctly, for example in dealing with valid null values. For each funct ion we select ed result s t hat we could calculat e manually and alt ered t hem slight ly t o confirm t hey were implement ed correct ly. We also creat ed t uples t hat confirmed our SQL queries were ext ract ing t he correct set s each t ime. (For example, consider t he difference bet ween a st udent who writes a supp and passes, versus writing a supp and failing.) We also used t he FAF query analyser in performing calculat ions and selecting test data for the fixed functions. 5
Teamwork
All members cont ribut ed t o each sect ion of t he proj ect , including commentary and revisions, although we found it more effective to designate a leader for each maj or part : aft er t he team design phase Alex was in charge of coding, David edit ed document at ion and diagrams and Hilt on implemented the database and populated test data. Each fixed function was designed, coded and documented by individual members.
This document was created with Win2PDF available at http://www.daneprairie.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only.