== '''Entity-Relationship Model v01''' == Diagram [[Image(ERModel_v1.png)]] == Data Requirements == • University: This entity stores information about universities. We need it to know which faculties belong to which university. º Candidate keys: Id (primary key). º Attributes: Id – number, required, unique Name – text, required, max 255 characters Location – text, optional, max 255 characters isprivate – boolean, required ---- • Faculty: Represents a faculty inside a university. It helps organize students, professors, and subjects within that faculty. Each faculty belongs to one university. º Candidate keys: Id (primary key). º Attributes: Id – number, required, unique Name – text, required, max 255 characters Location – text, optional, max 255 characters Study_field – text, optional, max 255 characters University_Id – number, required, foreign key to University ---- • Professor: This entity stores professors. Each professor works in a specific faculty, can guide students through advice sessions, and is assigned to teach subjects inside student enrollments. º Candidate keys: Id (primary key). º Attributes: Id – number, required, unique Name – text, required, max 255 characters Surname – text, optional, max 255 characters Age – number, optional, 25–100 Faculty_Id – number, required, foreign key to Faculty ---- • Student: This entity stores students. Each student belongs to a faculty, can enroll in subjects, and can interact with professors during advice sessions. º Candidate keys: Id (primary key). º Attributes: Id – number, required, unique Name – text, required, max 255 characters Surname – text, optional, max 255 characters Location – text, optional, max 255 characters Index – number, required, unique Faculty_Id – number, required, foreign key to Faculty ---- • Subject: This entity stores courses or subjects offered by a faculty. Students can enroll in these subjects. º Candidate keys: Id (primary key). º Attributes: Id – number, required, unique Name – text, required, max 255 characters Semester – text, optional, e.g., "Fall", "Spring" Credits – number, required, 1–15 Faculty_Id – number, required, foreign key to Faculty ---- • Student_Subject: This entity represents a specific student enrollment in a subject. It tracks grades, attendance, and status. It also links the specific professor who teaches this instance of the course. º Candidate keys: ssId (primary key). º Attributes: ssId – number, required, unique Final_Grade – number, optional, 6–10 Status – text, optional, e.g., "Enrolled", "Passed", "Failed" Enrollment_Date – date, required Absence_Count – number, optional, 0–100 Student_Id – number, required, foreign key to Student Subject_Id – number, required, foreign key to Subject Professor_Id – number, required, foreign key to Professor ---- • Advice: This ternary associative relationship entity tracks the history of formal advice and mentorship sessions between professors and students. º Candidate keys: Composite key made of (student_id, professor_id, start_date). º Attributes: student_id – number, required, foreign key to Student professor_id – number, required, foreign key to Professor start_date – date, required, unique part of the key end_date – date, optional status – text, optional, e.g., "Active", "Completed" ---- • Professor_Subject: This bridge entity materializes the Many-to-Many relationship between professors and the subjects they are certified or eligible to teach. º Candidate keys: Composite key made of (subject_id, professor_id). º Attributes: subject_id – number, required, foreign key to Subject professor_id – number, required, foreign key to Professor == Entity-Relationship Model History v1: First version of the conceptual ER model including University, Faculty, Professor, Student, Subject, Student_Subject weak entity, advice mentorship tracking, and professor_subject competency mapping. Attributes, candidate keys, nullability constraints, and precise entity relationships defined.