BEMM459 Database Technologies for Business Analytics

2020-21


BEMM459 REF/DEF Individual Assignment on Polyglot Persistence


The individual REF/DEF assignment accounts for 60% of the overall marks for this module. It will assess your ability to conceptualise a database-driven application where multiple database technologies co-exist within the same application. This is referred to as Polyglot Persistence. In such applications, when storing data, consideration has to be given to (a) the design and the technical aspects of the storage technology, and (b) the way the different components of the application will use data.

The assignment will test your theoretical knowledge and database skills. You will implement polyglot persistence using one Relational Database Management Systems (RDBMS) and one NoSQL database. You will use Python to perform the four essential CRUD functions of persistent storage (Create, Read, Update and Delete). The NoSql database can be either a key-value database, document database or a graph database. Your choice of databases are as follows:

  Choose one RDBMS
● Microsoft Access
● SQLite
AND
  Choose one NoSQL Database
● Redis (Key-value)
MongoDB (document database)
● Neo4j (graph database)


The assignment comprises of an individual report together with supporting documentation.

● Individual report

 The individual report will be either a .DOC or .PDF document.

 Word count is 2500 words (including +10% allowance).

● Supporting documentation: Recorded video presentation and code submission

A five-minute video presentation.

Submission of the code will be through a zip file which contains .py, .ipynb, and data files. It should be possible to execute the application over Exeter of University Virtual Desktops. It is your responsibility to provide the information required to run the code on a virtual environment.


REF/DEF ASSIGNMENT DESCRIPTION

Individual report

A.1    Choose an organisation (either real or fictitious) and conceptualise an application that requires polyglot persistence1. More specifically,

● Describe the business functions of the chosen organisation.

● Outline one use case for the application. The use case should support specific business functions.

● Justify the choice of databases for the chosen application. Include a list of assumptions.

● Include other relevant information which enhances the understanding of the chosen application and the use case.

● Note: The application should be relatively simple but sufficient to demonstrate the tasks outlined in this document.


A.2    For the RDBMS element, construct an Entity-Relationship (ER) diagram based on the use case (A.1).

● The ER diagram should identify the entities, the relationship between the entities, the entity attributes and the primary keys (including composite primary keys).

● The ER diagram should identify the multiplicity constraints on the relationships (e.g., one-to-one; one-to-many; many-to-many).


A.3    For the RDBMS element, produce a Logical Database Design using the ER diagram (A.2). It is expected that the tables identified will be in 3rd Normal Form.

The normalised database structure should be expressed using the bracketing notation. It should identify link tables and foreign keys.


A.4    For the NoSQL element, discuss how data will be stored in the NoSQL database. Include pseudo-code, NoSQL database diagrams, namespaces (key-value), collections and documents (document databases) and/or illustrations to complement the writeup associated with A.1.


A.5    For polyglot persistence, describe how it was implemented with reference to the use case outlined in A.1.


Supporting documentation: Recorded video presentation and code submission

B1.    The five-minute video presentation (you will only be assessed for the first 5 minutes) will focus on the following:

● The chosen organisation and the use case (2-3 slides)

● The need for polyglot persistence and the justification for the databases used for its implementation (2-3 slides)

● Through code demo (B.2), explain how you have implemented polyglot persistence for the use case.

● Note: For the video presentation, in addition to screen sharing, you must also appear in the video. If you forget, then you will lose the mark for this component.


B2.    Code submission

● Code: For the RDBMS element, using the normalised database design – defined in (A.3) – implement a minimum of three tables (expectation is more than three tables). You could either use Python or database Graphical User Interface.

● Code: For the RDBMS element, use Python to perform the four essential CRUD functions of persistent storage (Create, Read, Update and Delete).

● Code: For the NoSQL element, use Python to perform the CRUD functions.

● Code: For polyglot persistence, use Python to implement the use case.

● Note: Both the relational and the NoSQL database should be populated with relevant and sufficient data, allowing for a comprehensive assessment of the use case (A.1). In this context, 4-5 records may be considered “too few”, and 100s of records are far “too many”.


B3.    Novelty

● Extra marks will be awarded if you demonstrate self-learning and implement coding functionality not covered in the class. You should also explain the novelty being claimed in your report and demo this in your video presentation.


REF/DEF CRITERIA FOR MARKING

    Total Marks = 100 marks (accounts for 60% of the overall marks for the module)


Individual report

● A1 – Description of organisation and application conceptualisation - 15%

● A2 – ER diagram - 5%

● A3 – Logical database design - 5%

● A4 – NoSQL - 10%

● A5 – Implementation of polyglot persistence – 15%


Supporting documentation: Recorded video presentation and code submission

● B1 – Video presentation (maximum 5 minutes) – 30%

● B2 – Code submission – 15%

● B3 – Novelty – 5%