data evolution in conjunction with domain specific languages intermediate presentation guido smeets

Post on 29-Mar-2015

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Data Evolution in conjunction with Domain Specific LanguagesIntermediate Presentation

Guido Smeets

Overview

• Recap of the Problem Description

• Recap Research Questions

• Current Status

• Implementation Details

• Observations

Recap: Problem Description

Handwritten

Generated

Handwritten Handwritten

Handwritten

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.

Current Status

DB Creation Fully FunctionalDB Evolution Partially Functional

Fully Functional

Partially Functional Not Functional

Partially Functional

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

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?; }}

Implementation: Generation Pipeline

Implementation: Transformation Overview

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

Implementation: Data Model Evolution

Module News{ Entity Article { UniqueName [!] : String; Title : String; }}

Module News{ Entity Article { UniqueName [!] : String; Title [@] : String; }}

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.

Questions?

top related