Data Evolution in conjunction with Domain Specific Languages
description
Transcript of Data Evolution in conjunction with Domain Specific Languages
![Page 1: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/1.jpg)
Data Evolution in conjunction with Domain Specific LanguagesIntermediate PresentationGuido Smeets
![Page 2: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/2.jpg)
Overview
• Recap of the Problem Description
• Recap Research Questions
• Current Status
• Implementation Details
• Observations
![Page 3: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/3.jpg)
Recap: Problem Description
Handwritten
GeneratedHandwritten Handwritten
Handwritten
![Page 4: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/4.jpg)
Recap: Research Questions
• Research and implement a solution to generate relational database schemas for the data models and business logic to operate on these data models;
• Research and implement a solution to generate deltas for the relational database for different version of the same data model.
![Page 5: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/5.jpg)
Current Status
DB Creation Fully FunctionalDB Evolution Partially Functional
Fully FunctionalPartially Functional Not Functional
Partially Functional
![Page 6: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/6.jpg)
Implementation: Specification Language
Module News{ Entity Article { UniqueName [!] : String; Title [@] : String; SubTitle [@?] : String; Location [@] : String; HyperLink [@] : String; ShortIntro [@] : Text; ArticleText [@] : Text; }
Entity Category [@] { UniqueName [!] : String; Description [@] : String; }
Relationship { Category : 1!; Article : n?; }}
! : Unique Constraint on Attribute
@ : Multi-Lingual Attribute
? : Optional Attribute
@ : Website Bound Entity
^ : Tree Structure
![Page 7: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/7.jpg)
Implementation: Specification Language
Module News{ Entity Article { UniqueName [!] : String; Title [@] : String; SubTitle [@] : String; Location [@] : String; HyperLink [@] : String; ShortIntro [@] : Text; ArticleText [@] : Text; }
Entity Category [@] { UniqueName [!] : String; Description [@] : String; }
Relationship { Category : 1!; Article : n?; }}
![Page 8: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/8.jpg)
Implementation: Generation Pipeline
![Page 9: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/9.jpg)
Implementation: Transformation Overview
![Page 10: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/10.jpg)
Implementation: Data Model Evolution
• Remove all current Foreign Key Constraints• Add new Entities• Add new Attributes to existing Entities• Perform “data preserving” operations• Remove Attributes from Entities• Remove Entities• Restore existing Foreign Key Constraints &
Add new Foreign Key Constraints
![Page 11: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/11.jpg)
Implementation: Data Model Evolution
Module News{ Entity Article { UniqueName [!] : String; Title : String; }}
Module News{ Entity Article { UniqueName [!] : String; Title [@] : String; }}
![Page 12: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/12.jpg)
Observations
• Code too immature to be converted to templates• Restricted possibilities in Repleo templates disallows
“Template hacking”
• Multi-Tier Transformation Pipeline enhances consistency between different target platforms
• Development is an iterative process which involves a lot of rework. More tooling to help the developer with this process is needed.
![Page 13: Data Evolution in conjunction with Domain Specific Languages](https://reader036.fdocuments.net/reader036/viewer/2022070423/568167e5550346895ddd5095/html5/thumbnails/13.jpg)
Questions?