CC5051 – Databases

Title: Design and Implementation of a University Course Management Database

  1. Introduction

This project aims to design and implement a database system for managing university courses. The system will store information about courses, instructors, students, enrollments, and other relevant entities. This report outlines the design process, including data analysis, entity-relationship modelling, normalization, and implementation using SQL.

  1. Data Analysis and Modeling

To begin, we analyzed the requirements and identified the main entities and relationships. The entities include Course, Instructor, Student, Enrollment, Department, and Semester. Relationships include Teaching, Enrolling, Belonging, and Prerequisite. Using Entity-Relationship (ER) modelling, we represented these entities and relationships visually, facilitating a clear understanding of the database structure.
In the process of designing the database for university course management, we conducted a thorough analysis of the requirements and identified the main entities and relationships involved. This initial step laid the foundation for creating an effective database schema.

Entities:

Course: Represents a specific course offered by the university. Attributes may include CourseID, Title, Credits, and Description.

Instructor: Represents an instructor who teaches courses. Attributes may include InstructorID, Name, Email, and Department.

Student: Represents a student enrolled in courses. Attributes may include StudentID, Name, Email, and Major.

Enrollment: Represents the enrollment of a student in a course. Attributes may include EnrollmentID, StudentID, CourseID, Grade, and Semester.

Department: Represents a department within the university. Attributes may include DepartmentID, Name, and Location.

Semester: Represents a specific academic semester. Attributes may include SemesterID, Term, and Year.

Relationships:

Teaching: Relates an instructor to the courses they teach. An instructor can teach multiple courses, and a course can be taught by multiple instructors.

Enrolling: Relates a student to the courses they are enrolled in. A student can be enrolled in multiple courses, and a course can have multiple enrolled students.

Belonging: Relates an instructor or student to the department they belong to. An instructor or student belongs to one department, but a department can have multiple instructors and students.

Prerequisite: Represents the prerequisite relationship between courses. A course can have multiple prerequisites, and a prerequisite can be required for multiple courses.

Entity-Relationship (ER) Modelling:

Using Entity-Relationship (ER) modelling techniques, we visually represented these entities and relationships to provide a clear understanding of the database structure. This modelling approach allows us to depict the relationships between entities and their attributes in a graphical format, facilitating communication and collaboration among stakeholders involved in the database design process.

By identifying the main entities and relationships and representing them through ER modelling, we established a solid foundation for the subsequent steps of designing and implementing the database system for university course management. This structured approach ensures that the database schema adequately captures the information and relationships relevant to the domain, enabling effective data management and retrieval operations.

  1. Database Design

Based on the ER model, we proceeded to design the database schema. We applied normalization techniques to ensure the database’s integrity and minimize redundancy. The schema includes tables for Courses, Instructors, Students, Departments, Semesters, and Enrollments, with appropriate attributes and primary/foreign key constraints.
Building upon the Entity-Relationship (ER) model, we transitioned to designing the database schema. Our goal was to create a well-structured schema that ensures data integrity, minimizes redundancy, and efficiently supports the requirements of the university course management system. We applied normalization techniques to achieve these objectives and organized the schema into tables representing the main entities identified in the ER model.
Schema Overview:

  1. Courses Table:
    • Attributes: CourseID (Primary Key), Title, Credits, Description
    • Description: Stores information about the courses offered by the university.
  2. Instructors Table:
    • Attributes: InstructorID (Primary Key), Name, Email, DepartmentID (Foreign Key)
    • Description: Stores information about the instructors who teach courses.
  3. Students Table:
    • Attributes: StudentID (Primary Key), Name, Email, Major
    • Description: Stores information about the students enrolled in courses.
  4. Departments Table:
    • Attributes: DepartmentID (Primary Key), Name, Location
    • Description: Stores information about the departments within the university.
  5. Semesters Table:
    • Attributes: SemesterID (Primary Key), Term, Year
    • Description: Stores information about the academic semesters.
  6. Enrollments Table:
    • Attributes: EnrollmentID (Primary Key), StudentID (Foreign Key), CourseID (Foreign Key), Grade, SemesterID (Foreign Key)
    • Description: Stores information about the enrollments of students in courses for specific semesters.
    Normalization:
    We applied normalization techniques, specifically aiming for at least Third Normal Form (3NF), to eliminate data redundancy and ensure data integrity. Each table is designed to represent a single entity, with attributes dependent only on the primary key. Foreign keys establish relationships between tables, ensuring referential integrity.
    Primary/Foreign Key Constraints:
    • Primary keys uniquely identify records within each table and are essential for data integrity.
    • Foreign keys establish relationships between tables, enforcing referential integrity and maintaining consistency across related entities.
    By designing the database schema based on the ER model and applying normalization techniques, we have created a well-structured and efficient database schema for the university course management system. This schema provides a solid foundation for implementing the database and supporting the required functionalities effectively.