Engineering Reports (Oct 2021)
A survey of problematic database code fragments in software systems
Abstract
Abstract Database code fragments exist in software systems by using Structured Query Language (SQL) as the standard language for relational databases. Traditionally, developers bind databases as backends to software systems for supporting user applications. However, these bindings are low‐level code and implemented to persist user data, so Object Relational Mapping (ORM) frameworks take place to abstract database access details. Both approaches are prone to problematic database code fragments that negatively impact the quality of software systems. We survey problematic database code fragments in the literature and examine antipatterns that occur in low‐level database access code using SQL and high‐level counterparts ORM frameworks. We also study problematic database code fragments in different and popular software architectures such as Service‐Oriented Architecture, Microservice Architecture, and Model View Controller. We create a novel categorization of both SQL schema and query antipatterns in terms of performance, maintainability, portability, and data integrity.
Keywords