Agile methods promote early adoption and short, iterative development cycles, relying on user feedback at each stage to adapt and refine the current version. In the case of information systems, each cycle may require a refactoring of the database which, in the case of relational technologies, requires changes to the mapping layer as well as carrying out the necessary schema and data evolution. Since this can be a significant amount of work, it has been proposed that object database which store objects directly and thus have no mapping layer are better suited to agile projects.
We have been exploring the effects of agile development practices on information system development and investigating how a development environment based on object database technologies could support these practices. Our AgileIS framework is an integrated, model-driven environment that supports alternative modelling languages, model versioning and application code generators for different DBMS. When a new version of a model is created, the differences to the previous model version are analysed and transformed into a sequence that is optimal in terms of the data modification operations required. The database evolution code is then generated automatically with insertion points for non-trivial data modification operations that have to be written manually.
AgileIS also introduces a second form of feedback into the iterative development process based on database profiling. For each software release, the profiler identifies and analyses navigational access patterns and proposes model optimisations based on data characteristics, access patterns and a cost-benefit model.
In a separate stream of work, we have recently proposed a new multi-dimensional index called the PH-Tree which combines binary PATRICIA-tries with hypercubes for efficient data access. The prefix sharing in PATRICIA-tries leads to reduced space requirements, while the use of hypercubes means that navigation through the structure is more efficient since it is largely independent of the number of dimensions. The PH-tree scales well with large datasets with 10^7 or more, often scaling horizontally or showing even increasing performance, depending on the data characteristics.
- Agile Software Development with Object Databases By Tilmann Zaschke in PhD thesis, ETH No. 22335, Zurich, Switzerland, 2015 PDF
- Improving Conceptual Data Models through Iterative Development By Tilmann Zaschke, Stefania Leone, Tobias Gmunder, Moira C. Norrie in Data & Knowledge Engineering, Vol. 98, July 2015, pp 45-75
- The PH-Tree - A Space-Efficient Storage Structure and Multi-Dimensional Index By Tilmann Zaschke, Christoph Zimmerli, Moira C. Norrie in Proc. 2014 ACM SIGMOD, Snowbird, Utah, USA, June 2014 PDF