# Neo4j代写｜COMP5338: Advanced Data Models Neo4j Assignment

本次代写是一个Neo4j数据建模的assignment

## 1 Introduction

In this assignment, you are asked to build a graph representing units offered in a university

and their relationships. You also need to design a few queries to show that the graph can

be used to check degree and unit rules. There is no given data set; you should come up

with your own data to demonstrate your model and query. You are encouraged to use

degrees and units offered in this university as sample data but you can use any unit or

degree.

## 2 Problem Domain

You are asked to model some hypothetical degrees and units offered in a single School.

Each degree has a code, a name, and completion requirements. For simplicity, we assume

a degree’s completion requirements only include rules for total credit points and credit

points at each year level. Following the naming convention in our university, the first year

units are referred to as 1000 level units, second year units as 2000 level unit, and third

year units as 3000 level units. Below are sample degree requirements for a three year

degree. You can design your own degree requirements that are similar to it.

• Complete at least 144cp comprising:

– at least 48cp at 1000 level;

– at least 36cp at 2000 level;

– at least 36cp at 3000 level; and

– the rest at any level.

Each unit has a unique code and a descriptive title. It is designed for a particular year

level and has a specific number of credit points. Units may have different credit points. A

typical unit in our school has 6 credit points. We also have some units that have 12 credit

points or 2 credit points.

Some units have a list of prohibited units. Students are not allowed to enrol in a unit

if they have completed any of the prohibited units in the corresponding list.

Many units have prerequisite units. Students need to satisfy the prerequisite rule to be

enrolled in a unit. The prerequisite rule is usually given as a Boolean expression. Most

units require a single prerequisite unit and have a list of similar units as prerequisites.

Below are details of a sample unit COMP3027:

code: “COMP3027”,

title: “Algorithm Design”,

cp: 6,

level: 3000,

prerequisites: “COMP2123” OR “INFO1105”

prohibited: “COMP2007” OR “COMP2907″ OR COMP3927”

The unit COMP3027 requires one unit as prerequisite, which could be either “COMP2123”

or ”INFO1105”. The unit also has a prohibition list containing three units. A student

cannot enrol in COMP3027 if they have completed any of “COMP2007”, “COMP2907″, or

COMP3927” before.

Some units require more than one unit as prerequisites. This rule is expressed using

AND operators. For instance, a unit with the prerequisites expression (“COMP2017” OR

“COMP2129”) AND (“COMP2123” OR COMP2823) requires a student to complete one unit

from the list [“COMP2017”, “COMP2129”] and another unit from the list [“COMP2123”,

“COMP2823”] before enrolling in this unit. There could be units with more complex pre

requisite Boolean expressions but your graph only needs to model the following two basic

forms.

- u1 OR u2 OR u3…
- (u1 OR u2 OR u3 …) AND (u4 OR u5) AND …

## 3 Graph Requirements

Your graph should model

- at least one degree (three or four year) with a set of completion requirements;
- enough units at 1000, 2000, and 3000 or above level to satisfy that degree’s comple

tion requirements (there should be at least three or four units per level); - some units with no prerequisites;
- some units with a list of prohibition units;
- some units with a list of prerequisite units linked by OR operators;
- some units with two or more prerequisite units linked by OR and AND operators;

and - a chain of units linked by two or three prerequisite relationships.

An example chain with three prerequisite relationships is as follows: COMP3520 has

COMP21017 as a prerequisite, which in turn has INFO1103 as a prerequisite, which in

turn has INFO1110 as a prerequisite.