Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/giis-uniovi/modevo
Model-driven approach to maintain data integrity for evolution of column family DBMSs
https://github.com/giis-uniovi/modevo
cassandra-database column-family column-store database-migrations databases model-driven schema schema-evolution
Last synced: about 1 month ago
JSON representation
Model-driven approach to maintain data integrity for evolution of column family DBMSs
- Host: GitHub
- URL: https://github.com/giis-uniovi/modevo
- Owner: giis-uniovi
- License: apache-2.0
- Created: 2024-03-21T07:10:18.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-11-09T08:31:43.000Z (about 1 month ago)
- Last Synced: 2024-11-09T09:27:08.592Z (about 1 month ago)
- Topics: cassandra-database, column-family, column-store, database-migrations, databases, model-driven, schema, schema-evolution
- Language: Java
- Homepage:
- Size: 278 KB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Status](https://github.com/giis-uniovi/modevo/actions/workflows/test.yml/badge.svg)](https://github.com/giis-uniovi/modevo/actions)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=my%3Amodevo&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=my%3Amodevo)
# MoDEvo - Model-driven approach to maintain data integrity for evolution of column family DBMSsThis repository contains the modules of the Model-driven engineering approach MoDEvo, which provides the data migrations required to maintain data integrity in a column family DBSM when the database evolves:
- Provide a data migration model given an evolution of the schema.
- Transformation of the data migration model in a script.
- Execution of the script against a Cassandra database.
- Available for Java 17 and higher.## Quick Start
Currently, MoDEvo can be used by importing it as a Maven project in Eclipse. MoDEvo transforms the the input models of MoDEvo (Schema, Schema Evolution and Conceptual Model) requires into a Data Migration model by executing ATL transformations. There are two possible ways to execute these transformations:
- Using the ATL module: Run from Eclipse the MoDEvo.atl as an ATL transformation. In the configuration menu, you must insert the paths for the inputs models and the path where the output model will be generated. It is required to install the last version of the ATL module in Eclipse (https://download.eclipse.org/mmt/atl/updates/releases/)
- Using Java: Create a Main Java class or a test case using JUnit that imports the class `MainTransformations` and then call the method `createDataMigrationModelAndScript` with the corresponding input models paths and the output model path.
Java
```Java Main class
import giis.modevo.transformations.MainTransformations;
public static void main (String[] args){
new MainTransformations().createDataMigrationModelAndScript("pathSchema.xml", "pathConceptuaModel.xml", "pathSchemaEvolution.xml", "outputPath.xml");
}
```
```Java Test Case
@Test
public void testExample () {
new MainTransformations().createDataMigrationModelAndScript("pathSchema.xml", "pathConceptuaModel.xml", "pathSchemaEvolution.xml", "outputPath.xml");
}
```## Modules
MoDEvo is composed of the following modules:
- `modevo-transform`: Transforms the input models (Schema, Schema Evolution and Conceptual Model) in a Data Migration model that specifies the data migrations to perform.
- `modevo-script`: Transforms a Data Migration model in scripts stored as Java objects that can, optionally be executed against a Cassandra database using this module. It also provides a textual representation of the script in a Cassandra Query Language-like language.## modevo-transform module
Determines the data migrations required to maintain the data integrity in a column family DBMS . It determines these migration through the execution of ATL transformations that are located in the package `giis.modevo.transformations.atl`. In order to execute these transformations, MoDEvo requires of the following input models in xml format:
- Conceptual Model: Contains the structure of the conceptual model, specifying its entities, their relationships and the attributes that are part of an entity or relationship.
- Schema: Contains the structure of the schema, specifying its tables and the columns of these tables. It also contains the association of each column with an attribute of the schema.
- Schema Evolution: Contains the evolution performed in the schema.Given these three inputs models, MoDEvo transforms them into a Data Migration model:
- Data Migration: Contains all the migrations that are required to maintain the data integrity.
In addition, Java objects of each of the input and output models are created to be used in the MoDEvo-script module.
## modevo-script module
Transforms the data migration model generated in the MoDEvo-transformation module into a script that can be executed against a column family DBSM. Currently it supports the most used column family DBSM, Apache Cassandra. In order to execute this transformation, MoDEvo requires the Schema, Schema Evolution and Data Migration models as Java objects.
Given these objects, MoDEvo creates one script for each table that requires data migrations in two ways:
- Textual representation in a Cassandra Query Language-like format. It is composed of the three basic opeators FOR, SELECT and INSERT.
- Optionally, the script can be executed in a Cassandra database, requiring to configure the "MoDEvo.properties" file located in the root with the appropiate values.## Citing this work
TODO
## Related work
Suárez-Otero, P., Mior, M. J., Suárez-Cabal, M. J., & Tuya, J. (2023). CoDEvo: Column family database evolution using model transformations. Journal of Systems and Software, 111743.
Suárez-Otero González, P., Mior, M. J., Suárez Cabal, M. J., & Tuya González, P. J. (2023, March). Data migration in column family database evolution using MDE. In Workshop Proceedings of the EDBT/ICDT 2023 Joint Conference (March 28-March 31, 2023, Ioannina, Greece). George Fletcher and Verena Kantere.
Suárez-Cabal, M. J., Suárez-Otero, P., de la Riva, C., & Tuya, J. (2023). MDICA: Mainte-nance of data integrity in column-oriented database applications. Computer Standards & In-terfaces, 83, 103642.