13
Data Evolution in conjunction with Domain Specific Languages Intermediate Presentation Guido Smeets

Data Evolution in conjunction with Domain Specific Languages Intermediate Presentation Guido Smeets

Embed Size (px)

Citation preview

Page 1: Data Evolution in conjunction with Domain Specific Languages Intermediate Presentation Guido Smeets

Data Evolution in conjunction with Domain Specific LanguagesIntermediate Presentation

Guido Smeets

Page 2: Data Evolution in conjunction with Domain Specific Languages Intermediate Presentation Guido Smeets

Overview

• Recap of the Problem Description

• Recap Research Questions

• Current Status

• Implementation Details

• Observations

Page 3: Data Evolution in conjunction with Domain Specific Languages Intermediate Presentation Guido Smeets

Recap: Problem Description

Handwritten

Generated

Handwritten Handwritten

Handwritten

Page 4: Data Evolution in conjunction with Domain Specific Languages Intermediate Presentation Guido Smeets

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 Intermediate Presentation Guido Smeets

Current Status

DB Creation Fully FunctionalDB Evolution Partially Functional

Fully Functional

Partially Functional Not Functional

Partially Functional

Page 6: Data Evolution in conjunction with Domain Specific Languages Intermediate Presentation Guido Smeets

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 Intermediate Presentation Guido Smeets

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 Intermediate Presentation Guido Smeets

Implementation: Generation Pipeline

Page 9: Data Evolution in conjunction with Domain Specific Languages Intermediate Presentation Guido Smeets

Implementation: Transformation Overview

Page 10: Data Evolution in conjunction with Domain Specific Languages Intermediate Presentation Guido Smeets

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 Intermediate Presentation Guido Smeets

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 Intermediate Presentation Guido Smeets

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 Intermediate Presentation Guido Smeets

Questions?