Reflective Piece: Implementation and Evaluation
(Using Gibbs' Reflective Cycle)
1. Description
For the second part of my MSc database project, I implemented the logical database design proposed in my earlier submission and produced an executive summary evaluating the outcome. The assignment allowed two options: students could either build and evaluate a working database or conduct a theoretical analysis based on academic sources. Given my background working at an aviation college, I chose to build the system, drawing on my professional experience managing student and assessment records.
The technical implementation was relatively straightforward. Much of the work aligned with what I already do in my job, and I used Supabase to host a PostgreSQL database. The more demanding part was critically evaluating my initial design decisions, many of which were based on instinct. I had chosen a relational model early without fully considering NoSQL alternatives, assuming structured academic data naturally suited SQL. It was only after a thorough literature review that I could properly justify my choices and assess the broader landscape of database models and hosting options.
2. Feelings
I approached this second phase more cautiously than the first. Feedback from the earlier assignment made it clear that, while some of my choices were sound, I hadn’t always explained their rationale. This time, I was more deliberate and reflective. As I explored academic literature on database design, normalization, and GDPR, I was relieved to find many of my decisions, like choosing SQL or using UUIDs, aligned with best practices.
At the same time, I felt a degree of uncertainty. I hadn’t yet received feedback or a grade, and I wasn’t sure whether I had demonstrated enough critical analysis. There’s a vulnerability in putting your workplace knowledge into an academic framework, especially when it was previously undocumented or driven by hands-on familiarity rather than formal theory.
3. Evaluation
The implementation itself went well. My experience with PostgreSQL, Supabase, and SQLAlchemy helped me build the system quickly. The schema mostly conformed to third normal form, and the structure reflected my existing workflows with both system-generated and manually entered data.
Where I grew most was in evaluating my design. For example, I used UUIDs to prevent duplicate exam attempts for students taking tests on the same day. Initially, this was a practical workaround, but research helped me understand the trade-offs, such as the performance costs versus global uniqueness. I also reviewed my platform choice, comparing Supabase to alternatives like Google Cloud SQL and Amazon RDS, which I hadn’t done thoroughly before.
Some weaknesses became clear. I had not accounted for audit logging as part of GDPR compliance. Although I implemented role-based access and Row-Level Security, I overlooked the importance of detailed audit trails. I also discovered that my Instructor Compliance table did not fully adhere to third normal form, as it combined unrelated fields like employment details and training records, making historical tracking and scalability more difficult.
4. Analysis
Much of the implementation went smoothly because I was working within my comfort zone. However, that same comfort led me to skip over academic reasoning in my early design. I relied on what had worked before, rather than what was best supported by theory.
The turning point came when I had to defend my design using academic sources. For example, I had always defaulted to SQL because of familiarity. But exploring NoSQL databases like MongoDB made me recognize their potential value in handling unstructured or variable data, such as scanned task booklets or flexible course submissions.
I also became more aware of the assignment expectations. In the first part, I missed key points by not revisiting the brief. This time, I referred back to the instructions consistently, which helped me structure my executive summary around the required content.
5. Conclusion
I could have begun the evaluation earlier, allowing it to shape the design more intentionally. Addressing GDPR audit logging and table normalization from the start would have improved the final system. I also missed the opportunity to involve colleagues in reviewing the system, which could have revealed additional use cases or concerns.
While I eventually explored NoSQL platforms, I should have considered them more seriously at the beginning. Even though SQL was appropriate for structured academic data, a more balanced evaluation would have strengthened the report and provided broader insight into data architecture choices.
6. Action Plan
In future projects, I’ll make it a habit to reread assignment briefs at each milestone. This would have saved me from missing key requirements in earlier submissions. I’ll also validate design decisions with academic support from the outset, not only to improve quality but also to improve communication in collaborative or client settings.
Importantly, I’ll no longer dismiss NoSQL options by default. This project helped me understand their strengths in managing unstructured and semi-structured data, which is highly relevant for our college. For example, task booklet submissions and grading documentation could benefit from a document-oriented NoSQL solution.
This project has strengthened both my practical and theoretical understanding of database design. It taught me that it is not enough for a system to work. It must also be justifiable, scalable, and documented in a way that makes its structure and value clear to others.
References
- Cattell, R. (2011) ‘Scalable SQL and NoSQL data stores’, ACM SIGMOD Record, 39(4), pp. 12–27. Available at: https://dl.acm.org/doi/10.1145/1978915.1978919
- Connolly, T.M. and Begg, C.E. (2014) Database systems: a practical approach to design, implementation, and management. 6th ed. Harlow: Pearson.
- Davoudian, A. and Liu, M. (2020) ‘A comparative study of SQL and NoSQL database systems’, Journal of Information Systems Education, 31(4), pp. 246–259.
- Elmasri, R. and Navathe, S.B. (2015) Fundamentals of database systems. 7th ed. Boston: Pearson.
- European Data Protection Board (n.d.) Guidelines, recommendations and best practices. Available at: https://edpb.europa.eu/edpb_en
- GDPR.eu (n.d.) A guide to GDPR data privacy requirements. Available at: https://gdpr.eu/
- Gamage, S.H.P.W., Ayres, J.R. and Behrend, M.B. (2022) ‘Optimizing manual data entry in practical assessments: A review of LMS-integrated grading tools’, Journal of Learning Analytics, 9(1), pp. 22–39.
- Gonçalves, C.T., Gonçalves, M.J.A. and Campante, M.I. (2023) ‘Developing integrated performance dashboards visualisations using Power BI as a platform’, Information, 14(11), p. 614. Available at: https://www.mdpi.com/2078-2489/14/11/614
- Han, J., Kamber, M. and Pei, J. (2011) Data mining: concepts and techniques. 3rd ed. Boston: Morgan Kaufmann.
- ICO (Information Commissioner’s Office) (n.d.) Guide to the UK General Data Protection Regulation (UK GDPR). Available at: https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/
- Leach, P.J., Mealling, M. and Salz, R. (2005) ‘A Universally Unique Identifier (UUID) URN Namespace’, RFC 4122. Available at: https://tools.ietf.org/html/rfc4122
- Loshin, D. (2010) Master data management. Boston: Morgan Kaufmann.
- Otto, B. (2015) Fundamentals of master data management: bringing data governance into practice. Springer. Available at: https://www.researchgate.net/publication/220618579_Data_Governance
- Peterson, J. (2018) SQL performance explained. 2nd ed. Vienna: Markus Winand.
- RelationalDBDesign (n.d.) Relationships and referential integrity. Available at: https://www.relationaldbdesign.com/database-analysis/module7/relationships-referential-integrity.php
- Sadalage, P.J. and Fowler, M. (2012) NoSQL distilled: a brief guide to the emerging world of polyglot persistence. Boston: Addison-Wesley. Available at: https://martinfowler.com/books/nosql.html
- Sakr, S. and Gaber, M.M. (2014) Large scale and big data: processing and management. Boca Raton, FL: CRC Press. Available at: https://www.routledge.com/Large-Scale-and-Big-Data-Processing-and-Management/Sakr-Gaber/p/book/9780367736500
- Sciore, E. (2007) Database management: a systems approach using Java. Boston: Jones & Bartlett. Available at: https://www.researchgate.net/publication/225084162_Database_Design_And_Implementation
- Stonebraker, M. (2010) ‘SQL databases v. NoSQL databases’, Communications of the ACM, 53(4), pp. 10–11. Available at: https://doi.org/10.1145/1721654.1721659
- Stonebraker, M. and Cetintemel, U. (2005) ‘One size fits all: an idea whose time has come and gone’, Proceedings of the 21st International Conference on Data Engineering, pp. 2–11.
- van der Veen, J.S., Van der Waaij, B., Lazovik, A., Nieuwenhuis, L.J.M. and Rajkumar, R.R. (2012) ‘Performance evaluation of cloud databases for cloud applications’, in Cloud computing and services science. Springer, pp. 1–21. Available at: https://link.springer.com/chapter/10.1007/978-3-642-36675-1_1