Domain-specific languages for the design, deployment and manipulation of heterogeneous databases
The need for levels of availability and scalability beyond those supported by relational databases has led to the emergence of a new generation of purpose-specific databases grouped under the term NoSQL. In general, NoSQL databases are designed with horizontal scalability as a primary concern and deliver increased availability and fault tolerance at a cost of temporary inconsistency and reduced durability of data. To balance the requirements for data consistency and availability, organisations increasingly migrate towards hybrid data persistence architectures comprising both relational and NoSQL databases. The consensus is that this trend will only become stronger in the future; critical data will continue to be stored in ACID (largely relational) databases while non-critical data will be progressively migrated to high-availability NoSQL databases. Designing and deploying a hybrid data persistence architecture that involves a combination of relational and NoSQL databases is a complex, technically challenging and error-prone task. In this paper we outline a model-based methodology developed in the context of the EC-funded H2020 TYPHON project for designing, developing, querying and evolving such scalable architectures for persistence, analytics and monitoring of large volumes of hybrid (relational, graph-based, document-based, natural language, etc.) data, in a systematic and disciplined manner.
|Domain-specific languages, Hybrid persistence, Model-driven engineering, Non-relational databases, Relational databases|
|International Workshop on Modelling in Software Engineering|
|Organisation||Centrum Wiskunde & Informatica, Amsterdam, The Netherlands|
Kolovos, D.S, Medhat, F, Paige, R.F, Di Ruscio, D, van der Storm, T, Scholze, S, & Zolotas, A. (2019). Domain-specific languages for the design, deployment and manipulation of heterogeneous databases. In Proceedings - 2019 IEEE/ACM 11th International Workshop on Modelling in Software Engineering, MiSE 2019 (pp. 89–92). doi:10.1109/MiSE.2019.00021