| University | Singapore University of Social Science (SUSS) |
| Subject | ICT330: Database Management Systems |
ICT330 Tutor-Marked Assignment January 2026 Presentation
This assignment is worth 18% of the final mark for ICT330, Database Management Systems.
The cut- off date for this assignment is Monday, 02 March 2026, 2355 hours.
Note to Students:
You are to include the following particulars in your submission: Course Code, Title of the TMA, SUSS PI No., Your Name, and Submission Date.
Answer All Questions. (Total 100 marks)
Please note that Questions 1, 2 and 3 are unrelated although they have the same domain. Each question can be worked on independently of the other questions.
Question 1 (33 marks)
It is envisioned that all citizens can use a portal to make and/or cancel appointments for public health practitioner, categorised as general practitioners, specialists, physiotherapists etc.
The portal will allow citizens to describe medical conditions that they wish to see a health practitioner for. Citizens first choose from a standard list of medical conditions that best match their conditions. The standard list includes medical conditions, each medical condition has a unique code, a name and a description. After choosing the relevant medical conditions from the standard list, citizens enter a detailed description for each of those medical conditions selected. Each detailed description is timestamped.
Next, citizens make an appointment request. They select those medical conditions they have described earlier or for previous requests, that they wish to seek consultation for. A request id is generated with a request date and time. If the described conditions for the appointment request are newly entered, the system selects a general practitioner based on the earliest availability. It is a policy that appointment for newly described medical conditions are first seen by a general practitioner who will apply judgement to determine whether referrals for specialised consultations are required.
Note that the system records also a field of specialty, e.g., sports physiotherapy or internal medicine, for each medical condition in the standard list where applicable. Similarly, a field of specialty can be recorded for each health practitioner if applicable.
If the medical conditions selected for the current request are all those that have been previously seen by a health practitioner, then a health practitioner from the same specialty is selected. For example, if the citizen saw a sports physiotherapist previously for those conditions, then a sports physiotherapist (rather than a general practitioner) is selected for the new appointment request, again based on the earliest availability. It is necessary to record which slots for each health practitioner have been taken to allow the system to select earliest available suitable health practitioner. A field of specialty has a unique specialty code, a name and a description.
A consultation by any health practitioner may result in referral to other specialists or therapists or may result in a follow up consultation. For each referral or follow- up consultation, the system generates new appointment request. Hence, an appointment request may be initiated by a citizen or through a referral or for a follow- up consultation for the citizen. For appointment request for a follow up consultation, the same category of health practitioner will be assigned to the new request. Not all consultations initiate new appointment requests if it is assessed that is possible that a citizen’s medical condition is resolvable with the current consultation. Furthermore, not all appointment requests end with a consultation as some citizens may miss their appointment.
Currently, a consultation is either a medical consultation or a therapy session, e.g., physiotherapy. The health practitioner handling the consultation will record one or more consultation notes for each medical condition the consultation is for.
For a therapy session, the therapist records the duration of the session and the treatments provided e.g., manipulation, strengthening exercise. The therapist chooses from a standard list of possible therapy treatments. Each treatment has a unique code, a name and a description. The therapist then records details of the treatment performed e.g., neck rotation and extension for strengthening exercise.
For a medical consultation, the health practitioner may request for investigations to be carried out, e.g., blood test or ultrasound scan. The health practitioner chooses also from a standard list of possible investigations. Each investigation has a unique code, a name and a description. The results of the investigation should be recorded in the system once available.
A medical consultation can also result in a prescription for medication. The health practitioner chooses from a standard list of drugs. Each drug has a unique code, a name and one or more contraindications e.g., pregnancy. The health practitioner has to ensure that citizens are not allergic to prescribed drugs, as well as those drugs chosen do not interact negatively with each other. The health practitioner also indicates the dosage, duration and instruction for each prescribed drug in the system.
Without adding any attribute/identifier not described in the question, construct a conceptual entity relationship (ER) model from the statements of requirements to represent the data model, showing the data requirements in one diagram.
- entities, with entities name, relevant attributes and identifier, (16 marks)
- relationships with maximum and minimum cardinalities and relationship name (17 marks)
State your assumption(s) for only data requirements that are not specified. Show your model as ONE diagram.
Question 2 (32 marks)
You are given the table:
Prescription(prescriptionId, deliveryDatetime, patientId, name, address, drugCode, drugName, dosage, instruction, contraindication)
This table is used by a pharmacy to deliver prescribed drugs if a patient request for home delivery.
A prescription is identified by a prescription id. Each prescription contains one or more drugs, each with its required dosage. A drug is identified by a drug code, has a drug name and comes with one or more instructions e.g., after food and no alcohol, and one or more contraindications e.g., pregnant women and diabetic persons. A patient is identified by patient id.
Each prescription is assigned a delivery date and time and a patient to deliver to.
Question 2a
Formulate and list the functional and multi- valued dependencies (MVD). Do not introduce any new columns not in the given table. State your assumption(s) for only data requirements that are not specified. (7 marks)
Question 2b
Draw dependency graph and propose candidate key(s) for the table. Show composite keys in brackets. (4 marks)
Question 2c
(i) Explain whether the MVDs in your answer to Q2(a) are subsumed or not subsumed.
(ii) Apply the BCNF approach to normalise the table to Boyce Codd Normal Form (BCNF) and to Fourth Normal Form (4NF).
Show how you apply the steps for all FDs and unsubsumed MVDs. For each pair of two tables resulting from an iteration, state whether each of them is in BCNF or in 4NF or otherwise and explain why. (10 marks)
Question 2d
Assemble your BCNF and 4NF tables and constraints clearly by giving each table and the referential integrity constraint(s), if any, in the forms described below:
Tables in this form:
TABLE- NAME(col- name1, col- name2, …, col- name n)
indicate (PK) against the primary key and indicate (FK) against the foreign keys, if any.
Referential integrity constraint(s), if any, together with the child table in this form:
TABLE- NAMEx.col- namex1 …col- namexn must exist in
TABLE- NAMEy.col- namey1…col- nameyn
Note that there is no need to show the derivation steps or explain them for this question part. Simply provide the final tables, the primary keys, the foreign keys and the foreign key constraints. (11 marks)
Question 3 (35 marks)
All SQL statements for this question (create, insert and select statements) MUST be in text format.
You MUST also paste the screenshots of the result of executing all your SQL statements.
Question 3a
(i) Transform the ERD in Figure Q3(a)(i) into a logical model.

Show the tables in the logical model in the form:
TABLE- NAME(col- name1, col- name2, …, col- name n)
indicate (PK) against the primary key, indicate (FK) against the foreign keys, if any, including integrity constraints in the form: TABLE- NAMEx.col- namex1 …col- namexn must exist in TABLE- NAMEy.col- namey1…col- nameyn
(ii) Refer to the description of the columns for the column definition, and then code using SQL statements to implement all tables derived from the ERD in Figure Q3(a)(i).
All columns are required except for the column comments.
List your SQL create statements in the order that they should be executed.
1CT330
| patientId | An integer, auto generated with starting value 1 and increment 1. |
|---|---|
| name (of patient) | At most 60 characters in length |
| dob | Date and value must not be later than the current datetime |
| address | At most 100 characters in length |
| consultDatetime | Datetime |
| issue | At most 1024 characters in length |
| diagnosis | At most 512 characters. |
| cost | A decimal number with 5 digits of which 2 digits are after the decimal point. Cost is between $80 and $320, with default value $120. |
| doctorId | Exactly 5 characters in length, starts and ends with a letter with digits in between. |
| name (of specialist) | At most 60 characters in length |
| specialty | Exactly 20 characters in length, with a value either paediatrics, dermatology, rheumatology, urology, gastroenterology, geriatric, cardiology, respiratory, renal. |
| reviewDatetime | Datetime with default current date and time. Note that 1. (patientId, reviewDatetime) is an alternate key. 2. reviewDatetime must be at least 3 hours after consultDatetime |
| comments | At most 1024 characters in length |
| rating | A number from 1 to 5 |
Constraints for the relationships in Figure Q3(a)(i):
| has | delete and update are disallowed |
|---|---|
| attendsTo | delete and update are disallowed |
| isGiven | delete and update cascaded |
(iii) Populate the tables you created in Question 3(a)(ii). You must identify the relevant data rows from the view shown in Table Q3(a)(ii) to populate the tables created for Question 3(a)(ii).
List your SQL insert statements in the order that they should be executed.

Enlarged version of the data rows is shown in 3 vertical table cells, in Table
| doctorid | name | specialty | patientId | name | dateOfBirth | address | consultDateTime | |
|---|---|---|---|---|---|---|---|---|
| 2 | C001S | Samuel | cardiology | 1 | Patrick | 16/1/1955 | 12 Bedok Road | 2/2/2026 9:30 |
| 3 | C001S | Samuel | cardiology | 2 | Peter | 15/2/1990 | 15 Clementi Road | 2/2/2026 15:30 |
| 4 | C001S | Samuel | cardiology | 3 | Philemon | 18/3/1960 | 18 Dunman Road | 4/2/2026 14:30 |
| 5 | C012S | Sarah | cardiology | NULL | NULL | NULL | NULL | NULL |
| 6 | D002S | Sebastian | dermatology | 5 | Paul | 28/5/2010 | 28 Grange Road | 2/2/2026 9:00 |
| 7 | D002S | Sebastian | dermatology | 5 | Paul | 28/5/2010 | 28 Grange Road | 17/2/2026 11:30 |
| 8 | G004S | Simon | gastroenterology | NULL | NULL | NULL | NULL | NULL |
| 9 | G005S | Sophie | geriatric | 1 | Patrick | 16/1/1955 | 12 Bedok Road | 15/1/2026 11:30 |
| 10 | G005S | Sophie | geriatric | 1 | Patrick | 16/1/1955 | 12 Bedok Road | 16/1/2026 11:30 |
| 11 | G005S | Sophie | geriatric | 3 | Philemon | 18/3/1960 | 18 Dunman Road | 2/2/2026 10:30 |
| 12 | P003S | Silas | paediatrics | 4 | Phoebe | 22/4/2015 | 22 Frankel Road | 4/2/2026 10:30 |
| 13 | P009S | Samantha | paediatrics | 4 | Phoebe | 22/4/2015 | 22 Frankel Road | 9/2/2026 10:30 |
| 14 | P010S | Steven | paediatrics | NULL | NULL | NULL | NULL | NULL |
| 15 | R006S | Spencer | renal | NULL | NULL | NULL | NULL | NULL |
| 16 | R007S | Stella | respiratory | 3 | Philemon | 18/3/1960 | 18 Dunman Road | 21/1/2026 14:30 |
| 17 | R008S | Susan | rheumatology | 5 | Paul | 28/5/2010 | 28 Grange Road | 10/2/2026 10:30 |
| 18 | R011S | Sabrina | respiratory | NULL | NULL | NULL | NULL | NULL |
| issue | diagnosis | cost | reviewDateTime | |
|---|---|---|---|---|
| 2 | Irregular heart rhythm that is not steady | arrhythmia | 120 | 2/2/2026 12:52 |
| 3 | Breathlessness climbing stairs, intermittent chest pain | septal defects | 240 | NULL |
| 4 | slow and skipped heartbeat with chest pain | arrhythmia | 120 | NULL |
| 5 | NULL | NULL | NULL | NULL |
| 6 | dry and itching scalp | psoriasis flare-up | 120 | NULL |
| 7 | scaly front of neck | psoriasis flare-up | 120 | NULL |
| 8 | NULL | NULL | NULL | NULL |
| 9 | Insomnia for the past 3 weeks, feeling a sense of loss | anxiety | 80 | 15/1/2026 17:30 |
| 10 | Inflammation and pain in the finger joints | arthritis | 80 | 29/1/2026 14:33 |
| 11 | Inflammation and pain in the knee joints | arthritis | 80 | 2/2/2026 13:35 |
| 12 | flu with loud wheezing | asthma attack | 120 | 4/2/2026 14:15 |
| 13 | fever, headache, stiff neck, photophobia and confused | meningitis | 120 | 12/2/2026 8:35 |
| 14 | NULL | NULL | NULL | NULL |
| 15 | NULL | NULL | NULL | NULL |
| 16 | breathlessness with chest tightness and pain | asthma | 120 | NULL |
| 17 | swollen and painful with psoriasis flare-up | drug-induced psoriasis | 100 | 11/2/2026 8:30 |
| 18 | NULL | NULL | NULL | NULL |
| comment | rating | |
|---|---|---|
| 2 | The examination was quite rushed | 4 |
| 3 | NULL | NULL |
| 4 | NULL | NULL |
| 5 | NULL | NULL |
| 6 | NULL | NULL |
| 7 | NULL | NULL |
| 8 | NULL | NULL |
| 9 | Doctor was patient and understood my burden | 5 |
| 10 | Doctor was careful in my physical examination | 5 |
| 11 | Doctor saw me 2 hours later than appointed time | 1 |
| 12 | The treatment provided some relief | 5 |
| 13 | Doctor was accurate in diagnosis and helped alleviate the pain | 5 |
| 14 | NULL | NULL |
| 15 | NULL | NULL |
| 16 | NULL | NULL |
| 17 | NULL | NULL |
| 18 | NULL | NULL |
Q3(a)(ii) Enlarged Version.
Question 3b
This question is based on the tables implemented from the ERD in Figure Q3(a).
You must NOT create views using the Create View statement, but you can use inline views in your query formulation. You MUST copy your SQL statements into your solution document in TEXT format. You MUST provide comments on each of your SQL statements. You MUST provide a screenshot of your output you get when you execute your SQL statement.
Marks are given to solutions that adhere to the above instructions.
Formulate SQL queries to perform the following tasks:
(i) List the afternoon (2 pm and later) consultations for pain and where the cost is at least $100$
| patientId | consultDateTime | issue | diagnosis | cost | doctorId |
|---|---|---|---|---|---|
| 1 | 2026-02-02 15:30:00 | Breathlessness climbing stairs, intermittent chest pain | septal defects | 240.00 | C001S |
| 2 | 2026-01-21 14:30:00 | breathlessness with chest tightness and pain | asthma | 120.00 | R007S |
| 3 | 2026-02-04 14:30:00 | slow and skipped heartbeat with chest pain | arrhythmia | 120.00 | C001S |
(ii) List the ages of the patients at the time of visits. You may take 1 year to be 8766 hours or \(3651 / 4\) days.
| patientId | name | dateOfBirth | address | AgeYears | consultDateTime | issue | diagnosis | cost |
|---|---|---|---|---|---|---|---|---|
| 1 | Patrick | 1955-01-16 | 12 Bedok Road | 70 | 2026-01-15 11:30:00 | Insomnia for the past 3 weeks, feeling a sense of loss | anxiety | 80 |
| 2 | Patrick | 1955-01-16 | 12 Bedok Road | 71 | 2026-01-16 11:30:00 | Inflammation and pain in the finger joints | arthritis | 80 |
| 3 | Patrick | 1955-01-16 | 12 Bedok Road | 71 | 2026-02-02 09:30:00 | Irregular heart rhythm that is not steady | arrhythmia | 120 |
| 4 | Peter | 1990-02-15 | 15 Clementi Road | 35 | 2026-02-15 15:30:00 | Breathlessness climbing stairs, intermittent chest pain | septal defects | 240 |
| 5 | Philemon | 1960-03-18 | 18 Dunman Road | 65 | 2026-01-21 14:30:00 | breathlessness with chest tightness and pain | asthma | 120 |
| 6 | Philemon | 1960-03-18 | 18 Dunman Road | 65 | 2026-02-02 10:30:00 | Inflammation and pain in the knee joints | arthritis | 80 |
| 7 | Philemon | 1960-03-18 | 18 Dunman Road | 65 | 2026-02-04 14:30:00 | slow and skipped heartbeat with chest pain | arrhythmia | 120 |
| 8 | Phoebe | 2015-04-22 | 22 Frankel Road | 10 | 2026-02-04 10:30:00 | flu with loud wheezing | asthma attack | 120 |
| 9 | Phoebe | 2015-04-22 | 22 Frankel Road | 10 | 2026-02-09 10:30:00 | fever, headache, stiff neck, photophobia and confused | meningitis | 120 |
| 10 | Paul | 2010-05-28 | 28 Grange Road | 15 | 2026-02-02 09:00:00 | dry and itching scalp | psoriasis flare-up | 120 |
| 11 | Paul | 2010-05-28 | 28 Grange Road | 15 | 2026-02-10 10:30:00 | swollen and painful with psoriasis flare-up | drug-induced psoriasis | 100 |
| 12 | Paul | 2010-05-28 | 28 Grange Road | 15 | 2026-02-17 11:30:00 | scaly front of neck | psoriasis flare-up | 120 |
(iii) List specialists without a consultation in January 2026.
| doctorId | name | specialty |
|---|---|---|
| 1 | C001S | Samuel |
| 2 | C012S | Sarah |
| 3 | D002S | Sebastian |
| 4 | G004S | Simon |
| 5 | P003S | Silas |
| 6 | P009S | Samantha |
| 7 | P010S | Steven |
| 8 | R006S | Spencer |
| 9 | R008S | Susan |
| 10 | R011S | Sabrina |
iv) List the number of specialists in each specialty, and the number with and without a consultation.
| specialty | Number of Specialists | Number of Specialists With Consult | Number of Specialists Without Consult | |
|---|---|---|---|---|
| 1 | cardiology | 2 | 1 | 2 |
| 2 | dermatology | 1 | 1 | 3 |
| 3 | gastroenterology | 1 | 0 | 4 |
| 4 | geriatric | 1 | 1 | 5 |
| 5 | paediatrics | 3 | 2 | 6 |
| 6 | renal | 1 | 0 | 7 |
| 7 | respiratory | 2 | 1 | 8 |
| 8 | rheumatology | 1 | 1 | 9 |
(v) For each patient, count the number of specialists consulted, the number of consultations and total cost paid per specialty. List according to patient id and specialty in alphabetical order.
| patientId | name | specialty | Number of Specialists consulted | Number of Consult | Total Cost |
|---|---|---|---|---|---|
| 1 | Patrick | cardiology | 1 | 1 | 21 |
| 2 | Patrick | geriatric | 1 | 2 | 3 |
| 3 | Peter | cardiology | 1 | 1 | 4 |
| 4 | Philemon | cardiology | 1 | 1 | 5 |
| 5 | Philemon | geriatric | 1 | 1 | 6 |
| 6 | Philemon | respiratory | 1 | 1 | 7 |
| 7 | Phoebe | paediatrics | 2 | 2 | 8 |
| 8 | Paul | dermatology | 1 | 2 | 9 |
| 9 | Paul | rheumatology | 1 | 1 | 1 |
(vi) List patients who see specialists from more than one specialty. List in descending order of number of specialties and ascending order of patient id.
| patientId | name | Number of Specialty |
|---|---|---|
| 1 | 3 | Philomen |
| 2 | 1 | Patrick |
| 3 | 5 | Paul |
(vii) List patients who see specialists from dermatology as well as those from rheumatology.
| patientId | name | dateOfBirth | address |
|---|---|---|---|
| 1 | 5 | Paul | 2010-05-28 |
(viii) List patients who see specialists from cardiology but not from geriatric.
| patientId | name | dateOfBirth | address |
|---|---|---|---|
| 1 | 2 | Peter | 1990-02-15 |
(ix) List specialists with the highest number of consultations.
| doctorId | name | specialty |
|---|---|---|
| 1 | C001S | Samuel |
| 2 | G005S | Sophie |
(x) List specialists with the most number of patients.
| doctorId | name | specialty |
|---|---|---|
| 1 | C001S | Samuel |
xi) List specialists with the number of consultations they have, the number of reviews and their average rating (display with one digit after the decimal point). Specialists without reviews will have zero (display as a whole number) as their average rating.
| doctorl | name | specialty | Number of consult | Number of Reviews | Average rating | |
|---|---|---|---|---|---|---|
| 1 | C001S | Samuel | cardiology | 3 | 1 | 4.0 |
| 2 | C012S | Sarah | cardiology | 0 | 0 | 0 |
| 3 | D002S | Sebastian | dermatology | 2 | 0 | 0 |
| 4 | G004S | Simon | gastroenterology | 0 | 0 | 0 |
| 5 | G005S | Sophie | geriatric | 3 | 3 | 3.7 |
| 6 | P003S | Silas | paediatrics | 1 | 1 | 5.0 |
| 7 | P009S | Samantha | paediatrics | 1 | 1 | 5.0 |
| 8 | P010S | Steven | paediatrics | 0 | 0 | 0 |
| 9 | R006S | Spencer | renal | 0 | 0 | 0 |
| 10 | R007S | Stella | respiratory | 1 | 0 | 0 |
| 11 | R008S | Susan | rheumatology | 1 | 1 | 4.0 |
| 12 | R011S | Sabrina | respiratory | 0 | 0 | 0 |
(25 marks)
END OF ASSIGNMENT
Need Expert Help with ICT330 Database Management Systems TMA?
Native Singapore Writers Team
- 100% Plagiarism-Free Essay
- Highest Satisfaction Rate
- Free Revision
- On-Time Delivery
Many students find ICT330 Database Management Systems challenging because it requires constructing a detailed conceptual ER model, analysing functional and multivalued dependencies, applying BCNF/4NF normalisation, and writing complex SQL queries with constraints. That’s why students choose Singapore Assignment Help, where experts provide database management assignment help aligned with university marking criteria. You can confidently use our assignment help for customised support. For assurance, explore our ICT330 assignment sample to see the quality we provide.
Looking for Plagiarism free Answers for your college/ university Assignments.
- 7WBS2009 Financial Management and Analysis Assignment Brief 2026 | SUSS
- 5010MKT Marketing Management Assignment Brief 2026 | Coventry University
- FILM1000 Introduction to Film Studies Assignment Brief 2026 | NTU
- CET206 Full Stack Web Application Development Tutar Marked Assignment Questions 2026 | SUSS
- 7WBS2011 Strategic Management Research Assignment Brief 2026 | PSB Academy
- HBC101 Understanding Contemporary Society: The Social and Behavioural Sciences TMA 01 2026 | SUSS
- SOC365 Popular Culture End-of-Course Assessment Question 2026 | SUSS
- BME317 Biomedical Devices Innovation Tutor-Marked Assignment 2026 | SUSS
- CU6027 Digital Marketing Report Assessment Brief 2026 | SUSS
- RBP020L062V Financial Performance Management Summative Assessment 2026
