Task 2

Modules, lecturers and roles

The four tables below are read directly from MySQL. All create, update and delete actions use prepared statements and database foreign keys to uphold referential integrity.

Modules

ModuleCodeModuleName
ICT2613Internet Programming
ICT3611Advanced Databases
ICT3612Advanced Internet Programming
ICT3715Information Security
ICT3722Human-Computer Interaction

Lecturers

LecturerIDLecturerName
1Dr Amina Jacobs
2Prof Kabelo Mokoena
3Dr Naledi Khumalo
4Ms Lerato Molefe
5Prof Sipho Dlamini
6Ms Thandi Ndlovu

Roles

RoleIDRoleName
1Primary lecturer
2Secondary lecturer
3Internal moderator
4External moderator
5Critical reader

ModuleLecturerRole

ModuleCodeLecturerIDLecturerNameRoleIDRoleNameYear
ICT26131Dr Amina Jacobs1Primary lecturer2026
ICT36112Prof Kabelo Mokoena1Primary lecturer2026
ICT36122Prof Kabelo Mokoena4External moderator2026
ICT36123Dr Naledi Khumalo1Primary lecturer2026
ICT37154Ms Lerato Molefe2Secondary lecturer2026
ICT37225Prof Sipho Dlamini3Internal moderator2026

Add a module

Modify ModuleLecturerRole

Delete a lecturer

The lecturer and any related ModuleLecturerRole rows are deleted in one transaction, so no orphaned foreign keys remain.

Five SELECT queries

Choose one query

Modules ordered alphabetically

ModuleCodeModuleName
ICT3611Advanced Databases
ICT3612Advanced Internet Programming
ICT3722Human-Computer Interaction
ICT3715Information Security
ICT2613Internet Programming

Source code used for this task