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

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

Mar 29, 2015

Download

Documents

Jaylin Streat
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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?