ICT704 Non-Relational Database Systems

Comic Crusaders are a new Comic Book retailer to hit the online market. They pride themselves in having the latest and greatest comics from the UK and US. As they are new to the market they have put an emphasis in customer service and engagement. They are active on Facebook and Twitter and share the latest releases and news to their followers. However, they have recently decided to create a page where customers can rate the comics and leave comments for potential customers to see. They have asked you to come up with a database using MongoDB to be able to store their comic book details and allow customers to easily rate and review the comics.
Comic Details
• Every comic has a unique identifier
• Some comics have a series title
• Most comics have a number of keywords for topics
• English is currently the only language, but this may change in the future
• Each comic has an associated publisher and publisher details
• Comics can have multiple reviews, one review or no reviews made
• Reviews are made by customers who only supply a name
• Reviews consist of a rating out of 10 and any comments
There are two parts to this assignment. Part A is the creation of the database in MongoDB and Part B is the report.
Part A – Database
• Create a MongoDB database using the data provided to you in the
ComicData_Assignment.xls spreadsheet. (There should only be one collection comics with each comic as a single document).
• Insert data from the provided .xlsx file into MongoDB using the insert command • Create indexes which you think will be needed and beneficial
• Create the following queries:
o List all of the comics in the collection o Find the records that are published by Panini UK o List just the publishers name for every comic o List the distinct names of every publisher o Count the number of comics in the collection
o Return only the records that have both a title and a series title o List the comics that have science fiction in their topics o Return the title and average rating of each comic
o Return the title of comics that have had no ratings or comments
• Update the title of comic 17118168 to “Batman and Superman” • Update all “Titan Comics” publisher to “Titan Comics Incorporated” • Add a new field called notes to the following comics:
o 16556832 Designed to be pulled apart and filed in special binders o 17035085 A free gift accompanies each issue o 17593604 Each issue is accompanied by gifts
Part B – Report
For the report you are required to explain the structure of the database you created. This includes justifying the indexes you created. You need to describe how the relationships were handled in the database. In your report, discuss potential alternatives to how the relationships could have been modeled and implemented in MongoDB and the benefits/issues of each. Provide recommendations to Comic Crusaders for any additional functionality for the database.
Specific Instructions
For Part A you are to submit a single plain text file, named
studentNumber _mongoDB.txt.
In this file you are to include all the commands for your implementation. For Part B you are to submit a report in a word document or PDF.
The completed assignment is to be submitted to Blackboard by the due date.
The assignment will be assessed according to the marking sheet. Late submission will be penalised according to the policy in the course outline. Please note Saturday and Sunday are included in the count of days late.
Appendix A
Marking Sheet for ICT704 Task 2
Student Name: Student ID:
Items Maximum Marks Marks Obtained
PART A: Database Implementation (65 marks made up of)
– Create a MongoDB database (5 marks)
– Insert data into MongoDB using the insert command (5 marks)
– Create indexes which you think will be needed and beneficial (5 marks)
– Create the queries and other actions (50 marks total) 65
PART B: Report (35 marks made up of) o Database description (10 marks) o Alternative modeling discussed (15 marks) o Recommendations (10 marks) 35
Total = 100


You can leave a response, or trackback from your own site.
error: Content is protected !!