Published May 27, 2018 | Version v1
Conference paper Open

Smelly relations: measuring and understanding database schema quality

  • 1. Athens University of Economics and Business
  • 2. Singular Logic
  • 3. Software Improvement Group

Description

Context: Databases are an integral element of enterprise applications. Similarly to code, database schemas are also prone to smells - best practice violations.

Objective: We aim to explore database schema quality, associated characteristics and their relationships with other software artifacts.

Method: We present a catalog of 13 database schema smells and elicit developers' perspective through a survey. We extract embedded sql statements and identify database schema smells by employing the DbDeo tool which we developed. We analyze 2925 production-quality systems (357 industrial and 2568 well-engineered open-source projects) and empirically study quality characteristics of their database schemas. In total, we analyze 629 million lines of code containing more than 393 thousand sql statements.

Results: We find that the index abuse smell occurs most frequently in database code, that the use of an orm framework doesn't immune the application from database smells, and that some database smells, such as adjacency list, are more prone to occur in industrial projects compared to open-source projects. Our co-occurrence analysis shows that whenever the clone table smell in industrial projects and the values in attribute definition smell in open-source projects get spotted, it is very likely to find other database smells in the project.

Conclusion: The awareness and knowledge of database smells are crucial for developing high-quality software systems and can be enhanced by the adoption of better tools helping developers to identify database smells early.

Files

dbSchemaQuality_Preprint_ICSE2018.pdf

Files (686.9 kB)

Name Size Download all
md5:d53ba376f9add04a20cc9bea954d3dfa
686.9 kB Preview Download

Additional details

Funding

European Commission
SENECA - Software ENgineering in Enterprise Cloud Applications systems 642954