A yacht charter company requires a web-based system to manage aspects of its holiday charter business.

INTRODUCTION TO DATABASES 

YEAR 1 – COURSEWORK 2 (60%)

Assignment hand-out: Week 1

Hand-in: Week 12/commencing 14th April

Feedback: You will receive feedback within 20 working days of the submission deadline.

Staff Responsible for Assignment

Overview

This assignment consists of a video screencast assessing your practical skills in the design and implementation of database systems. The mark achieved in this assignment will contribute to 60% of the overall module mark.

Learning Outcomes Covered by the Assignment

Successful students will be able to:

  • Apply techniques to design and implement SQL to meet a real-world scenario.
  • Communicate and present information to justify database design decisions and demonstrate SQL query execution.

Description & Deliverables

Working individually, you are required to design a database capable of meeting a business’ needs, implement your design using either SQL Server OR MySQL, test your design using Jupyter Notebooks and provide a walkthrough demonstration of your solution and underpinning code base via a recorded video screencast. 

You will submit 1 artefact for this assignment: A video submission.

Business Scenario and Business Processes

A yacht charter company requires a web-based system to manage aspects of its holiday charter business.

There are a number of customers, each of whom may book a number of holiday charters, with each charter booked by an individual customer. A holiday charter may involve one yacht only, but each yacht may be involved in many holiday charters. A holiday charter may visit several ports and each port will be visited by many holiday charters. Most ports have several yachts based in them (although a few smaller ports have no yachts based in them) with each yacht based in just a single home port.

Information to be held and manipulated include:

  • the name, nationality, email address, phone number and id number of each customer.
  • the name, type, model, home port, number of berths and cost of hire per day of each yacht.
  • the name, phone number, email address and number of docking places at each port.
  • the charter id, start date and duration of each charter.
  • The visit id, expected date of arrival and duration of stay at each port visited.

An unstructured Excel file of the data to be entered into the database should be downloaded from Blackboard. 

Business Processes to be supported include the ability to:

  1. add details of a new customer together with the start date and duration of the charter they have booked, but without specifying the yacht to be used or the ports to be visited.
  2. list the total length of stay, between two given dates, of yachts in the fleet in each port.
  3. get a list of yachts (by name) visiting their home port between two given dates, together with the date of arrival and the length of the stay.
  4. list the ports visited by a given customer together with the date of arrival and length of stay, ordered by date.
  5. remove a yacht temporarily for a period of time (e.g., for servicing) and get a list of yachts that are not available.

Tasks and Deliverables

Task One: Noting any simplifying assumptions you make, design a relational database schema capable of supporting the given business scenario and storing the data provided in the sample data file.

Task Two: Write SQL code to implement your database design. You should save your code and use constraints, default values, ON DELETE clauses, etc as appropriate for the business scenario.

Task Three:  Implement your database using either SQL Server OR MySQL OR Azure Data Studio and populate it with the data provided in the sample data file.

Task Four: Create a Jupyter Notebook and connect it to your database. Develop SQL code to test that your database supports each of the Business Processes given in the previous section. Use the templates provided in labs to write Python code and combine it with the SQL code in the connected Jupyter Notebook.

Task Five: You are required to produce a video screencast, lasting no more than eighteen minutes, which provides a walkthrough demonstration of:

  • your database design accompanied by a review of the SQL code base,
  • execution of your code to build and populate the database in SQL Server,
  • execution and output of the SQL queries in your connected Jupyter Notebook to demonstrate that your database supports each of the Business Processes given.

A detailed guide, outlining what the video screencast needs to contain, can be found in the Coursework folder in Blackboard. Video Screencasts that go beyond eighteen minutes will be penalised according to the University framework of penalties (a summary of this is available on the next page). An unstructured Excel file of the data to be entered into the database can also be found on Blackboard.

Please read the remaining pages of this specification document for information on the submission process and the assessment criteria.

Submission Requirements

A submission area for the Video Screencast Submission is provided in the Coursework folder in Blackboard.

Video Screencast Submission (Time Limit 18 Minutes)

Detailed guidelines on the required content, structure and production of the video screencast are provided in the Coursework Assignment folder in Blackboard. Please ensure the filename of the video screencast submitted is given as Surname_BCode (e.g., ‘Burns_B00123456.mp4’).

Required student declaration

All students are required to attach the following declaration to the front of all submitted reports/Videos.

“I declare that this is all my own work. Any material I have referred to has been accurately referenced and any contribution of Artificial Intelligence technology has been fully acknowledged. I have read the University’s policy on academic misconduct and understand the different forms of academic misconduct. If it is shown that material has been falsified, plagiarised, or I have otherwise attempted to obtain an unfair advantage for myself or others, I understand that I may face sanctions in accordance with the policies and procedures of the University. A mark of zero may be awarded and the reason for that mark will be recorded on my file.”

Penalties for exceeding the word limit

Where submitted work exceeds the agreed assessment limit, a margin of up to +10% of the work limit will be allowed without any penalty of mark deduction.

If the work submitted is significantly in excess of the specified limit (+10%), there is no expectation that staff will assess the piece beyond the limit or provide feedback on work beyond this point. Markers will indicate the point at which the limit is reached and where they have stopped marking.

A mark will be awarded only for the content submitted up to this point. No additional deduction or penalty will be applied to the overall mark awarded. The student is self-penalising as work will not be considered/marked.

Disciplinary procedures due to Academic Misconduct may be invoked if the word count/workload has been deliberately and significantly falsified.

Notes on Submission:

  • Students should ensure that the submitted video screencasts conform to mp4 format. Corrupted files will be treated as a non-submission.
  • This is an individual assignment and all work submitted must be your own. Plagiarism will not be tolerated and will be dealt with according to university policy:
    https://www.ulster.ac.uk/student/exams/cheating-and-plagiarism
  • Late submission, with the exemption of those supported by prior submission of an EC1 form, will not be marked and will be considered non-submissions.

Assessment Criteria

Marks will be awarded based upon an assessment of the evidence provided within the recorded video screencast according to the criteria in pages 6-8. While the assessment elements in the following table total to 100% of this coursework mark, it is important to note that the mark for this coursework contributes to 60% of the overall module mark.


Criteria

(100%)

0-39%

Fail

Limited-Unacceptable

40-49%

3rd

Adequate

50-59%

2.2

Acceptable

60-69%

2.1

Good quality work

70-100%

1st

Excellent-Outstanding

Database Design

 

30%

 

 

No ER diagram or very limited ER diagram which does not represent the business scenario.

 

No cardinality ratios discussed or no justification of the presented cardinality ratios.

 

No participation constraints discussed or no justification of the presented participation constraints.

 

No Relational schema is presented or it is presented but no PKs or FKs are evidenced. Tables are not in 3NF. No justification for any additional tables/attributes.

 

Overview of data types is incomplete. No justifications provided for chosen data types.

 

No tables are in 3NF and descriptions provided for each are limited

 

Assumptions for the modelling process are not provided or not at all relevant.

ER diagram is presented but it might not be fully representative of the business scenario and does not correctly present all cardinality ratios or participation constraints.

 

Cardinality ratios are discussed but the justification is barely adequate and in some cases incorrect.

 

Participation constraints are discussed but the justification is barely adequate and in some cases incorrect.

 

Relational schema is presented but it might not evidence FKs or they might not be in the optimal tables. Tables might not all be in 3NF. Any additional tables/attributes are not sufficiently justified.

 

All data types and necessary justifications are discussed. Not all justifications are logical or optimised.

 

Most tables are in 3NF and descriptions provided for each are adequate.

 

Assumptions for the modelling process are basic and only somewhat relevant.

 

ER diagram presented with acceptable  representation of the business scenario. All cardinality ratios and participation constraints are clear from the diagram alone but some may not be correct.

 

All cardinality ratios are discussed and their justification is acceptable.

 

All participation constraints are discussed and their justification is acceptable.

 

Relational schema is acceptable. PKs and FKs are indicated but more optimal attributes or tables could have been selected for some FKs. Tables in schema are in 3NF. Any additional tables/attributes have acceptable justifications.

 

All data types and necessary justifications are discussed. Justifications acceptable but some choices of data types or data lengths could be improved.

 

All tables are in 3NF and descriptions provided for each are acceptable.

 

Assumptions for the modelling process are acceptable and sufficiently relevant.

 

ER diagram is presented and its representation of the business scenario is good. All cardinality ratios and participation constraints are clear from the diagram alone and they each correctly represent the business scenario

 

All cardinality ratios are discussed and their justification is of good quality.

 

All participation constraints are discussed and their justification is of good quality.

 

Relational schema is presented and is of good quality. Good selection of PKs and FKs, including the tables the FKs are placed in. Tables in schema are in 3NF. Any additional tables/attributes have good quality justifications.

 

All data types and necessary justifications are discussed. Justifications for data types and data lengths are good.

 

All tables are in 3NF and descriptions provided for each are good.

 

Assumptions for the modelling process are good and completely relevant.

 

ER diagram is presented and its representation of the business scenario is excellent. All cardinality ratios and participation constraints are clear from the diagram alone and presentation of diagram and its components is excellent.

 

All cardinality ratios are discussed and their justification is excellent.

 

All participation constraints are discussed and their justification is excellent.

 

Relational schema is excellent. Outstanding selection of PKs and FKs, including the tables the FKs are placed in. Tables in schema are in 3NF. Any additional tables/attributes have excellent justifications.

 

All data types and necessary justifications are discussed. Justifications for data types and data lengths are outstanding.

 

All tables are in 3NF and descriptions provided for each are excellent.

 

Assumptions for the modelling process are excellent and completely relevant.

 

 

 

 

 

Database Implementation

 

30%

 

 

Limited correctness and completeness of SQL code with limited discussion on the creation and population of database tables.

 

No constraints, default values, on delete clauses, stored procedures or triggers are used or demonstrated.

 

No use of comments in SQL code or Jupyter Notebook.

 

Limited SQL code layout and readability.

 

Assessment of the solution’s conformity to the business scenario is not provided

 

Limitations for either the modelling process or the implemented solution are not discussed or not at all relevant.

 

Adequate correctness and completeness of SQL code, including adequate discussion on either code to create and populate tables or the process to import data from a file.

 

Only the use of constraints is presented in the video. Default values, on delete clauses, stored procedures and triggers are not used or demonstrated.

 

Minimal use of comments in SQL code and Jupyter Notebook.

 

Adequate SQL code layout and readability.

 

Assessment of the solution’s conformity to the business scenario is provided but not all requested points of discussion (completeness of approach, limitations) are addressed.

 

Limitations for either the modelling process or the implemented solution are basic and only somewhat relevant.

 

Acceptable correctness and completeness of SQL code, including acceptable discussion on either code to create and populate tables or the process to import data from a file. Acceptable presentation of any SQL code required to handle imported data.

 

Acceptable use of constraints and default values is presented in the video. On delete clauses, stored procedures or triggers are not used or demonstrated.

 

Acceptable use of comments in SQL code and Jupyter Notebook.

 

Acceptable SQL code layout and readability.

 

Assessment of the solution’s conformity to the business scenario is provided. Requested points of discussion (completeness of approach, limitations) are acceptable.

 

Limitations for either the modelling process or the implemented solution are acceptable and sufficiently relevant.

 

Good correctness and completeness of SQL code, including good discussion and presentation of either SQL code to create and populate tables or the process to import data from a file. Good presentation of SQL code required to handle imported data (if necessary for selected approach).

 

Good use of constraints, default values and on delete clauses is presented in the video. Good use of either stored procedures or triggers is also demonstrated.

 

Use of good quality comments in SQL code and Jupyter Notebook.

 

SQL code layout and readability are of good quality

 

Assessment of the solution’s conformity to the business scenario is provided. Requested points of discussion (completeness of approach, limitations) are of good quality.

 

Limitations for both the modelling process and the implemented solution are good and completely relevant.

Excellent correctness and completeness of SQL code, including excellent discussion and presentation of either SQL code to create and populate tables or the process to import data from a file. Excellent presentation of SQL code required to handle imported data (if necessary for selected approach).

 

Excellent use of constraints, default values, on delete clauses, stored procedures and triggers is presented in the video.

 

Use of excellent comments in SQL code and Jupyter Notebook.

 

SQL code layout and readability are outstanding.

 

Assessment of the solution’s conformity to the business scenario is provided. Requested points of discussion (completeness of approach, limitations) are of outstanding.

 

Limitations for both the modelling process and the implemented solution are excellent and completely relevant.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Business Process Queries

30%

 

 

 

Zero or only one business process provided in a working state i.e. returns the requested results.

 

Demonstration of  business processes is limited.

 

SQL code for business processes has not been combined with Python in a Jupyter Notebook.

Two business processes provided in a working state i.e. returns the requested results..

 

Demonstration of business processes is adequate.

 

SQL code for business processes has been combined with Python in a Jupyter Notebook but no output is provided for any implemented query.

Three business processes provided in a working state i.e. returns the requested results..

 

Demonstration and discussion of business processes are acceptable.

 

SQL code for business processes has been combined with Python in a Jupyter Notebook and an output for some of the implemented queries is given within the Notebook.

 

Four business processes provided in a working state i.e. returns the requested results..

 

All business processes have been attempted and code is provided even for business processes that have not been fully supported.

 

Demonstration of  business processes is good and every business process is addressed with good quality discussion.

 

SQL code for business processes has been combined with Python in a Jupyter Notebook and an output for most of the implemented queries  is given within the Notebook.

 

Excellent completion of all business processes i.e. returns the requested results..

 

Demonstration and discussion of all business processes are excellent.

 

SQL code for business processes has been combined with Python in a Jupyter Notebook and an output for each query is given within the Notebook.

Presentation of Work

10%

Limited walkthrough of SQL code overview and execution with no discussion of the components from the guidelines for this section.

 

Limited or no discussion of SQL queries to support the business processes.

Walkthrough of SQL code overview and execution is adequate but some components from the guidelines are not addressed for this section.

 

Adequate correctness, completeness and evidence of understanding of SQL queries to support the given business processes. Some components from the guidelines are not addressed for this section.

Walkthrough of SQL code overview and execution is acceptable and all components from the guidelines are addressed but their discussion is not extensive.

 

Acceptable correctness, completeness and evidence of understanding of SQL queries to support the given business processes. All components from the guidelines are addressed for this section but further discussion could be provided.

Walkthrough of SQL code overview and execution is good and all components from the guidelines are addressed for this section with good quality.

 

Good correctness, completeness and evidence of understanding of SQL queries to support the given business processes. All components from the guidelines are addressed for this section with good quality.

Walkthrough of SQL code overview and execution is excellent and all components from the guidelines are addressed for this section outstandingly.

 

Excellent correctness, completeness and evidence of understanding of SQL queries to support the given business processes. All components from the guidelines are addressed for this section outstandingly.

 

100% Plagiarism Free & Custom Written, Tailored to your instructions