COMP3311 23T3 Assignment 2
The MyMyUNSW Database (ER)
Database Systems
Last updated: Tuesday 31st October 12:26am
Most recent changes are shown in red ... older changes are shown in brown.

[Specification]  [Database]  [SQL Schema]  [Grades+Rules]  [Examples]  [Testing]  [Submitting]  [Fixes+Updates]

Introduction

This document contains a description of the MyMyUNSW database 2023 version.

Background

UNSW handles its administrative information using a version of the Peoplesoft product called Campus Solutions. This system is normally accessed via the MyUNSW portal and is maintained by the NSS unit in UNSW IT, and so it's variously called PeopleSoft, Campus Solutions, MyUNSW and NSS. The database behind the system is hosted on a large Oracle server, and throughout this document will be referred to as the NSS database.

The PeopleSoft system was installed in 2000 and has been modified/extended over the years to encompass:

The current NSS database is separate from the UNSW Handbook, which records all of the official information related to course and program/degree requirements. To support on-line enrolment, NSS does represent some course information, such as pre-requisites, co-requisites and exclusions, as well as enrolment quotas. However, it maintains this information independently to the Handbook, which leads to potential inconsistency. Worse, NSS maintains no information at all about program/degree requirements, which means that students cannot use NSS to monitor their progress through their degree.

The MyMyUNSW database aims to implement a superset of the contents of the NSS database, including:

Note: there are two places in this schema where we deviate from current UNSW terminology. A stream is a new term that refers to what the current UNSW Handbook calls a plan or specialisation. Streams also encompass the collections of courses that comprise majors and minors in many degrees. Also, in our schema, we use the terms subject and course to talk about a unit of study (subject) and a particular offering of a subject in a given semester (course). UNSW confusingly calls both of these a course, although it also sometimes also uses the term course offering for the second.

Data Model for UNSW

This section aims to give an overview of the entire UNSW data model. Our data model does not include all of these ideas, or deals with them under a different name.


Our Data Model


The above describes the entirety of the data that UNSW uses to manage academic/study matters. We don't consider other aspects such as Human Resources, or even all of the above (e.g. nothing about Variations). Below, we talk about the relatvely simple data model used in this assignment.

We give an ER overview and then describe each table in detail. Note that the ER diagram does not include all of the relationships in the schema (e.g. Course->Convenor, Requirement->Stream). And the ER representation of Stream enrolment is debatable; use the SQL Schema as the definitive version of the schema.


ER Overview




Terms Table


Descibes UNSW trimesters (from Academic Cakendar)


Countries Table


Gives brief information about all countries in the world


People Table


Describes people in the databasem both staff and students


Students Table


Decribes individual students


Staff Table


Notes that a particular person is also a staff member


Orgunits Table


Describes organisational units within UNSW


Subjects Table


Describes individual subjects (minimal handbook entry)


Courses Table


Describes offerings of subjects in particular term

Note that the convenor may be NULL if we don't know who they are. The satisfaction score and number of respones my be NULL if there are hardly any students enrolled in the course.


Streams Table


Describes minimal global information for a stream


Programs Table


Describes minimal global information for a program


Program_enrolments Table


Describes student enrolment in a program in a given term:


Stream_enrolments Table


Describes student enrolment in streams:

Note that the information about the student and the term enrolled is held in the referenced Program_enrolments table.


Course_enrolments Table


Describes student enrolment in courses:

Note that both grade and mark are NULL while the student in enrolled in a course.


Requirements Table


Describes rules for completing streams and programs:

Note that only one of for_stream or for_program wil be not null (i.e. a requirement applies either to a stream or to a program).