The Examination Database System is a structured database designed to manage and analyze various entities involved in an academic environment. This project facilitates the management of students, professors, courses, departments, exams, questions, evaluations, and related associations. It supports tracking academic performance, course evaluations, and professor ratings.
- Maintains student records including names, levels, faculties, and graduation status.
- Tracks course details and the departments offering them.
- Maintains professor details, including scientific degrees and assigned departments.
- Stores exam information linked to courses and tracks student performance.
- Captures evaluations of professors and courses provided by students.
- View student results per course.
- Evaluate courses and professors for each department.
- Identify the top 10 scores per course.
- Determine the highest-rated professor teaching the same course.
-
student- Tracks student details like name, username, level, faculty, and graduation status.
-
department- Stores department information, including managers linked to professors.
-
professor- Records professor details and their assigned departments.
-
course- Contains course details, linked to departments.
-
exam- Stores exam information associated with courses.
-
question- Contains question data, answers, and correct answers for courses.
-
std_exam_quest- Links student answers and grades to specific exam questions.
-
std_evaluate_prof- Tracks student evaluations of professors.
-
std_evaluate_course- Records student evaluations of courses.
-
student_course- Manages the relationship between students and their enrolled courses.
-
professor_teach_course- Links professors to the courses they teach.
SELECT
SUM(grade) AS total_grade,
CONCAT(fname, ' ', lname) AS fullname,
c_name
FROM
std_exam_quest
JOIN
student ON student.id = std_exam_quest.std_id
JOIN
exam ON std_exam_quest.ex_code = exam.ex_code
JOIN
course ON course.id = exam.course_id
GROUP BY fullname, c_name;SELECT
CONCAT(P.fname, ' ', P.lname) AS fullname,
AVG(PR.rate) AS 'Professor rate',
AVG(CR.rate) AS 'Course rate'
FROM
std_evaluate_prof PR
JOIN
professor P ON P.id = PR.prof_id
JOIN
department D ON D.mng_id = P.id
JOIN
course C ON D.id = C.dept_id
JOIN
std_evaluate_course CR ON CR.course_id = C.id
GROUP BY fullname;SELECT
MAX(grade) AS highest_grade,
CONCAT(fname, ' ', lname) AS fullname,
c_name
FROM
std_exam_quest
JOIN
student ON std_exam_quest.std_id = student.id
JOIN
exam ON std_exam_quest.ex_code = exam.ex_code
JOIN
course ON course.id = exam.course_id
GROUP BY fullname, c_name;SELECT
CONCAT(P.fname, ' ', P.lname) AS fullname,
MAX(PR.rate) AS 'Professor rate'
FROM
std_evaluate_prof PR
JOIN
professor P ON PR.prof_id = P.id
GROUP BY fullname;-
Create the Database
CREATE DATABASE project; USE project;
-
Run the Schema Script
- Execute the provided SQL script to create the necessary tables and relationships.
-
Insert Sample Data
- Populate the database with sample data using the given
INSERTstatements.
- Populate the database with sample data using the given
-
Run Queries
- Use the provided queries to retrieve insights and evaluate the database functionality.
- Implement user interfaces for real-time interactions.
- Add data validation and security features.
- Integrate role-based access control for better database security.
- Nadia Ahmed
- Mohamed Hassan
- Mohamed Ashraf
- Mohamed Emad
- Mohamed Loai
This project is developed as part of an academic exercise to demonstrate SQL skills and database design.