SlideShare ist ein Scribd-Unternehmen logo
1 von 23
UmlTo[No]SQL: Mapping Conceptual
Schemas to Heterogeneous Datastores
Gwendal Daniel, Abel Gómez, Jordi Cabot
1
Why Heterogeneous Datastores?
 Many data storage solutions
 Relational databases are still massively used
 > 250 solutions in the only family of NoSQL databases
 Efficient data storage and processing solutions
 Specific representations
 Graphs, Documents, Key-Values …
 Flexible schemas, high scalability, availability …
 Specific use cases
 Atomic accesses, highly-connected data, temporal versioning …
2
Why Heterogeneous Datastores?
 Applications use multiple solutions to maximize their benefit
 Multi-store infrastructure
 Cloud-based data storage
 Add new features stored in new databases
3
So what’s the problem?
 Defining such applications is a complex task
 Need to take into account multiple storage types
 Query languages
 Data representation
 Implicit schemas
 Manually implemented in the application
 The elephant in the room: query multiple data sources
4
Conceptual Modeling to the rescue
Several solutions to map conceptual schemas to specific data stores
 UML/ER to Relational DB
 UML to GraphDB
 UML to HBase
Limited support for multi-store systems
 Split data in multiple storage solutions
 Integrity constraints
 Uniform data access
5
UmlTo[No]SQL
 MDA approach for multi-store systems
 From UML/OCL
 Conceptual schema partitioning
 « Logical » schema generation
 Constraint to query translation
 Code generation
6
UmlTo[No]SQL – Starting Point
Conceptual schema
context Client inv maxUnpaidOrders:
self.orders->select(
o | not o.paid)
->size()< 3
Integrity constraints
7
UmlTo[No]SQL – Model Partitioning
 Model partitioning
 UML profile
 Use packages to define regions over the
model
 Provide datastore-specific information:
relational, document, etc
 Defined at the element level
8
UmlTo[No]SQL – Logical Schema
 Metamodels representing families of data stores
Relational Metamodel
9
UmlTo[No]SQL – Logical Schema
 Metamodels representing families of data stores
Graph Metamodel
10
UmlTo[No]SQL – Logical Schema
 Metamodels representing families of data stores
Document Metamodel
11
UmlTo[No]SQL – Logical Schema
 Model Transformations
 (Annotated) class diagram to
 Relational metamodel
 Graph metamodel
 Document metamodel
 A common UUID type to represent cross-datastore associations
 Optional transformations from family metamodel to specific platform
 E.g. DocumentDB to MongoDB / GraphDB to Neo4j
 Integrate advanced optimizations (indexes, specific data structures, etc)
12
UmlTo[No]SQL – Mapping Constraints
 Model Transformations
 Metamodels for specific query languages
 Single datastore constraints mapping
 OCL → SQL
 OCL → Gremlin
 OCL → MongoQL
13
UmlTo[No]SQL - Mapping Constraints
 Model Transformations
 Cross-datastore constraints mapping
 Split the query into datastore-specific sub-queries
 Generate intermediate variables to store the results
 Join functions based on the UUID datatype
14
UmlTo[No]SQL - Mapping Constraints
Cross-Datastore Query Metamodel
15
UmlTo[No]SQL - Mapping Constraints
context Client inv maxUnpaidOrders:
self.orders->select(
o | not o.paid)
->size()< 3
16
UmlTo[No]SQL - Mapping Constraints
context Client inv maxUnpaidOrders:
self.orders->select(
o | not o.paid)
->size()< 3
17
Client.allInstances().orders orders->select(o | not o.paid).size() < 3
UmlTo[No]SQL - Mapping Constraints
context Client inv maxUnpaidOrders:
self.orders->select(
o | not o.paid)
->size()< 3
18
Client.allInstances().orders orders->select(o | not o.paid).size() < 3
sql_orders := select order_id from orders where
client_id in (select id from client)
UmlTo[No]SQL - Mapping Constraints
context Client inv maxUnpaidOrders:
self.orders->select(
o | not o.paid)
->size()< 3
19
Client.allInstances().orders orders->select(o | not o.paid).size() < 3
sql_orders := select order_id from orders where
client_id in (select id from client)
mongo_orders := relToDoc(sql_orders)
UmlTo[No]SQL - Mapping Constraints
context Client inv maxUnpaidOrders:
self.orders->select(
o | not o.paid)
->size()< 3
20
Client.allInstances().orders orders->select(o | not o.paid).size() < 3
sql_orders := select order_id from orders where
client_id in (select id from client)
db.order.find({_id : {$in: mongo_orders},
$where : “!o.paid"}).length > 3
mongo_orders := relToDoc(sql_orders)
UmlTo[No]SQL – Code Generation
 Deploy the database
 Relational world: DDL scripts
 NoSQL world: configuration scripts when possible
 Runtime data access
 Custom data access API
 From conceptual model (e.g. getClient, createOrder)
 Manages the concrete datastore
 Constraint checking
 Native query execution
 Query orchestration for cross-datastore constraints
21
Conclusion
 Top-down approach for multi-database application design
 Model partitioning
 Region mapping
 Constraint mapping (including cross-datastore)
 Code generation + runtime data access
22
Future Work
 Performance evaluation
 Integrate existing cross-datastore query languages
 CloudMdsQL, Apache Drill …
 Automatic Schema partitioning
 Reverse direction is also promising: extracting conceptual schemas from
heterogeneous datastores
 Applications in legacy systems / open data / …
23

Weitere ähnliche Inhalte

Was ist angesagt?

Ch06 ado.net fundamentals
Ch06 ado.net fundamentalsCh06 ado.net fundamentals
Ch06 ado.net fundamentalsMadhuri Kavade
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and viewsDr Reeja S R
 
Design patterns difference between interview questions
Design patterns   difference between interview questionsDesign patterns   difference between interview questions
Design patterns difference between interview questionsUmar Ali
 
Function oriented design
Function oriented designFunction oriented design
Function oriented designVidhun T
 
Sql a practical introduction
Sql   a practical introductionSql   a practical introduction
Sql a practical introductionHasan Kata
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignNaeem Sarfraz
 
Introduction to Enterprise Service Bus
Introduction to Enterprise Service BusIntroduction to Enterprise Service Bus
Introduction to Enterprise Service BusMahmoud Ezzat
 
Introduction of Database Design and Development
Introduction of Database Design and DevelopmentIntroduction of Database Design and Development
Introduction of Database Design and DevelopmentEr. Nawaraj Bhandari
 
1 - Introduction to PL/SQL
1 - Introduction to PL/SQL1 - Introduction to PL/SQL
1 - Introduction to PL/SQLrehaniltifat
 
Distributed Database Management System
Distributed Database Management SystemDistributed Database Management System
Distributed Database Management SystemAAKANKSHA JAIN
 
Microsoft SQL Server Database Administration.pptx
Microsoft SQL Server Database Administration.pptxMicrosoft SQL Server Database Administration.pptx
Microsoft SQL Server Database Administration.pptxsamtakke1
 
multi dimensional data model
multi dimensional data modelmulti dimensional data model
multi dimensional data modelmoni sindhu
 
What is OLAP -Data Warehouse Concepts - IT Online Training @ Newyorksys
What is OLAP -Data Warehouse Concepts - IT Online Training @ NewyorksysWhat is OLAP -Data Warehouse Concepts - IT Online Training @ Newyorksys
What is OLAP -Data Warehouse Concepts - IT Online Training @ NewyorksysNEWYORKSYS-IT SOLUTIONS
 

Was ist angesagt? (20)

Ch06 ado.net fundamentals
Ch06 ado.net fundamentalsCh06 ado.net fundamentals
Ch06 ado.net fundamentals
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
Ado.Net Tutorial
Ado.Net TutorialAdo.Net Tutorial
Ado.Net Tutorial
 
DB security
 DB security DB security
DB security
 
Design patterns difference between interview questions
Design patterns   difference between interview questionsDesign patterns   difference between interview questions
Design patterns difference between interview questions
 
Function oriented design
Function oriented designFunction oriented design
Function oriented design
 
Object Based Databases
Object Based DatabasesObject Based Databases
Object Based Databases
 
Sql a practical introduction
Sql   a practical introductionSql   a practical introduction
Sql a practical introduction
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven Design
 
Restful web services ppt
Restful web services pptRestful web services ppt
Restful web services ppt
 
Introduction to Enterprise Service Bus
Introduction to Enterprise Service BusIntroduction to Enterprise Service Bus
Introduction to Enterprise Service Bus
 
Introduction of Database Design and Development
Introduction of Database Design and DevelopmentIntroduction of Database Design and Development
Introduction of Database Design and Development
 
1 - Introduction to PL/SQL
1 - Introduction to PL/SQL1 - Introduction to PL/SQL
1 - Introduction to PL/SQL
 
Ch15 software reuse
Ch15 software reuseCh15 software reuse
Ch15 software reuse
 
REST & RESTful Web Services
REST & RESTful Web ServicesREST & RESTful Web Services
REST & RESTful Web Services
 
Distributed Database Management System
Distributed Database Management SystemDistributed Database Management System
Distributed Database Management System
 
Microsoft SQL Server Database Administration.pptx
Microsoft SQL Server Database Administration.pptxMicrosoft SQL Server Database Administration.pptx
Microsoft SQL Server Database Administration.pptx
 
multi dimensional data model
multi dimensional data modelmulti dimensional data model
multi dimensional data model
 
Sgml
SgmlSgml
Sgml
 
What is OLAP -Data Warehouse Concepts - IT Online Training @ Newyorksys
What is OLAP -Data Warehouse Concepts - IT Online Training @ NewyorksysWhat is OLAP -Data Warehouse Concepts - IT Online Training @ Newyorksys
What is OLAP -Data Warehouse Concepts - IT Online Training @ Newyorksys
 

Ähnlich wie UMLtoNoSQL : From UML domain models to NoSQL Databases

Oracle data integrator project
Oracle data integrator projectOracle data integrator project
Oracle data integrator projectAmit Sharma
 
Ms sql server architecture
Ms sql server architectureMs sql server architecture
Ms sql server architectureAjeet Singh
 
Analysis Services en SQL Server 2008
Analysis Services en SQL Server 2008Analysis Services en SQL Server 2008
Analysis Services en SQL Server 2008Eduardo Castro
 
SQL Server 2008 for Developers
SQL Server 2008 for DevelopersSQL Server 2008 for Developers
SQL Server 2008 for Developersukdpe
 
Ado.net &amp; data persistence frameworks
Ado.net &amp; data persistence frameworksAdo.net &amp; data persistence frameworks
Ado.net &amp; data persistence frameworksLuis Goldster
 
Adv DB - Full Handout.pdf
Adv DB - Full Handout.pdfAdv DB - Full Handout.pdf
Adv DB - Full Handout.pdf3BRBoruMedia
 
Bank mangement system
Bank mangement systemBank mangement system
Bank mangement systemFaisalGhffar
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And XmlDavid Truxall
 
MIS5101 WK10 Outcome Measures
MIS5101 WK10 Outcome MeasuresMIS5101 WK10 Outcome Measures
MIS5101 WK10 Outcome MeasuresSteven Johnson
 
Introduction to the Structured Query Language SQL
Introduction to the Structured Query Language SQLIntroduction to the Structured Query Language SQL
Introduction to the Structured Query Language SQLHarmony Kwawu
 
JovianDATA MDX Engine Comad oct 22 2011
JovianDATA MDX Engine Comad oct 22 2011JovianDATA MDX Engine Comad oct 22 2011
JovianDATA MDX Engine Comad oct 22 2011Satya Ramachandran
 
Homework help on oracle
Homework help on oracleHomework help on oracle
Homework help on oracleSteve Nash
 
MS SQL Server: Data mining concepts and dmx
MS SQL Server: Data mining concepts and dmxMS SQL Server: Data mining concepts and dmx
MS SQL Server: Data mining concepts and dmxsqlserver content
 
MS SQL SERVER: Data mining concepts and dmx
MS SQL SERVER: Data mining concepts and dmxMS SQL SERVER: Data mining concepts and dmx
MS SQL SERVER: Data mining concepts and dmxDataminingTools Inc
 
SALES BASED DATA EXTRACTION FOR BUSINESS INTELLIGENCE
SALES BASED DATA EXTRACTION FOR BUSINESS INTELLIGENCESALES BASED DATA EXTRACTION FOR BUSINESS INTELLIGENCE
SALES BASED DATA EXTRACTION FOR BUSINESS INTELLIGENCEcscpconf
 
U-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for DevelopersU-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for DevelopersMichael Rys
 
Architectural Anti Patterns - Notes on Data Distribution and Handling Failures
Architectural Anti Patterns - Notes on Data Distribution and Handling FailuresArchitectural Anti Patterns - Notes on Data Distribution and Handling Failures
Architectural Anti Patterns - Notes on Data Distribution and Handling FailuresGleicon Moraes
 

Ähnlich wie UMLtoNoSQL : From UML domain models to NoSQL Databases (20)

Module02
Module02Module02
Module02
 
Oracle data integrator project
Oracle data integrator projectOracle data integrator project
Oracle data integrator project
 
Ms sql server architecture
Ms sql server architectureMs sql server architecture
Ms sql server architecture
 
Dbms presentaion
Dbms presentaionDbms presentaion
Dbms presentaion
 
Analysis Services en SQL Server 2008
Analysis Services en SQL Server 2008Analysis Services en SQL Server 2008
Analysis Services en SQL Server 2008
 
SQL Server 2008 for Developers
SQL Server 2008 for DevelopersSQL Server 2008 for Developers
SQL Server 2008 for Developers
 
Ado.net &amp; data persistence frameworks
Ado.net &amp; data persistence frameworksAdo.net &amp; data persistence frameworks
Ado.net &amp; data persistence frameworks
 
Adv DB - Full Handout.pdf
Adv DB - Full Handout.pdfAdv DB - Full Handout.pdf
Adv DB - Full Handout.pdf
 
Day5
Day5Day5
Day5
 
Bank mangement system
Bank mangement systemBank mangement system
Bank mangement system
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And Xml
 
MIS5101 WK10 Outcome Measures
MIS5101 WK10 Outcome MeasuresMIS5101 WK10 Outcome Measures
MIS5101 WK10 Outcome Measures
 
Introduction to the Structured Query Language SQL
Introduction to the Structured Query Language SQLIntroduction to the Structured Query Language SQL
Introduction to the Structured Query Language SQL
 
JovianDATA MDX Engine Comad oct 22 2011
JovianDATA MDX Engine Comad oct 22 2011JovianDATA MDX Engine Comad oct 22 2011
JovianDATA MDX Engine Comad oct 22 2011
 
Homework help on oracle
Homework help on oracleHomework help on oracle
Homework help on oracle
 
MS SQL Server: Data mining concepts and dmx
MS SQL Server: Data mining concepts and dmxMS SQL Server: Data mining concepts and dmx
MS SQL Server: Data mining concepts and dmx
 
MS SQL SERVER: Data mining concepts and dmx
MS SQL SERVER: Data mining concepts and dmxMS SQL SERVER: Data mining concepts and dmx
MS SQL SERVER: Data mining concepts and dmx
 
SALES BASED DATA EXTRACTION FOR BUSINESS INTELLIGENCE
SALES BASED DATA EXTRACTION FOR BUSINESS INTELLIGENCESALES BASED DATA EXTRACTION FOR BUSINESS INTELLIGENCE
SALES BASED DATA EXTRACTION FOR BUSINESS INTELLIGENCE
 
U-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for DevelopersU-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for Developers
 
Architectural Anti Patterns - Notes on Data Distribution and Handling Failures
Architectural Anti Patterns - Notes on Data Distribution and Handling FailuresArchitectural Anti Patterns - Notes on Data Distribution and Handling Failures
Architectural Anti Patterns - Notes on Data Distribution and Handling Failures
 

Mehr von Jordi Cabot

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?Jordi Cabot
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesJordi Cabot
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart softwareJordi Cabot
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineJordi Cabot
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...Jordi Cabot
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortJordi Cabot
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursJordi Cabot
 
The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21Jordi Cabot
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringJordi Cabot
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformJordi Cabot
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingJordi Cabot
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosJordi Cabot
 
Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Jordi Cabot
 
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Jordi Cabot
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsJordi Cabot
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsJordi Cabot
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Jordi Cabot
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Jordi Cabot
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformJordi Cabot
 
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit FrameworkMulti-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit FrameworkJordi Cabot
 

Mehr von Jordi Cabot (20)

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architectures
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart software
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific discipline
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become Entrepreneurs
 
The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven Engineering
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platform
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems Modeling
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulos
 
Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit
 
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model Transformations
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIs
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platform
 
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit FrameworkMulti-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
 

Kürzlich hochgeladen

KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Kürzlich hochgeladen (20)

KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

UMLtoNoSQL : From UML domain models to NoSQL Databases

  • 1. UmlTo[No]SQL: Mapping Conceptual Schemas to Heterogeneous Datastores Gwendal Daniel, Abel Gómez, Jordi Cabot 1
  • 2. Why Heterogeneous Datastores?  Many data storage solutions  Relational databases are still massively used  > 250 solutions in the only family of NoSQL databases  Efficient data storage and processing solutions  Specific representations  Graphs, Documents, Key-Values …  Flexible schemas, high scalability, availability …  Specific use cases  Atomic accesses, highly-connected data, temporal versioning … 2
  • 3. Why Heterogeneous Datastores?  Applications use multiple solutions to maximize their benefit  Multi-store infrastructure  Cloud-based data storage  Add new features stored in new databases 3
  • 4. So what’s the problem?  Defining such applications is a complex task  Need to take into account multiple storage types  Query languages  Data representation  Implicit schemas  Manually implemented in the application  The elephant in the room: query multiple data sources 4
  • 5. Conceptual Modeling to the rescue Several solutions to map conceptual schemas to specific data stores  UML/ER to Relational DB  UML to GraphDB  UML to HBase Limited support for multi-store systems  Split data in multiple storage solutions  Integrity constraints  Uniform data access 5
  • 6. UmlTo[No]SQL  MDA approach for multi-store systems  From UML/OCL  Conceptual schema partitioning  « Logical » schema generation  Constraint to query translation  Code generation 6
  • 7. UmlTo[No]SQL – Starting Point Conceptual schema context Client inv maxUnpaidOrders: self.orders->select( o | not o.paid) ->size()< 3 Integrity constraints 7
  • 8. UmlTo[No]SQL – Model Partitioning  Model partitioning  UML profile  Use packages to define regions over the model  Provide datastore-specific information: relational, document, etc  Defined at the element level 8
  • 9. UmlTo[No]SQL – Logical Schema  Metamodels representing families of data stores Relational Metamodel 9
  • 10. UmlTo[No]SQL – Logical Schema  Metamodels representing families of data stores Graph Metamodel 10
  • 11. UmlTo[No]SQL – Logical Schema  Metamodels representing families of data stores Document Metamodel 11
  • 12. UmlTo[No]SQL – Logical Schema  Model Transformations  (Annotated) class diagram to  Relational metamodel  Graph metamodel  Document metamodel  A common UUID type to represent cross-datastore associations  Optional transformations from family metamodel to specific platform  E.g. DocumentDB to MongoDB / GraphDB to Neo4j  Integrate advanced optimizations (indexes, specific data structures, etc) 12
  • 13. UmlTo[No]SQL – Mapping Constraints  Model Transformations  Metamodels for specific query languages  Single datastore constraints mapping  OCL → SQL  OCL → Gremlin  OCL → MongoQL 13
  • 14. UmlTo[No]SQL - Mapping Constraints  Model Transformations  Cross-datastore constraints mapping  Split the query into datastore-specific sub-queries  Generate intermediate variables to store the results  Join functions based on the UUID datatype 14
  • 15. UmlTo[No]SQL - Mapping Constraints Cross-Datastore Query Metamodel 15
  • 16. UmlTo[No]SQL - Mapping Constraints context Client inv maxUnpaidOrders: self.orders->select( o | not o.paid) ->size()< 3 16
  • 17. UmlTo[No]SQL - Mapping Constraints context Client inv maxUnpaidOrders: self.orders->select( o | not o.paid) ->size()< 3 17 Client.allInstances().orders orders->select(o | not o.paid).size() < 3
  • 18. UmlTo[No]SQL - Mapping Constraints context Client inv maxUnpaidOrders: self.orders->select( o | not o.paid) ->size()< 3 18 Client.allInstances().orders orders->select(o | not o.paid).size() < 3 sql_orders := select order_id from orders where client_id in (select id from client)
  • 19. UmlTo[No]SQL - Mapping Constraints context Client inv maxUnpaidOrders: self.orders->select( o | not o.paid) ->size()< 3 19 Client.allInstances().orders orders->select(o | not o.paid).size() < 3 sql_orders := select order_id from orders where client_id in (select id from client) mongo_orders := relToDoc(sql_orders)
  • 20. UmlTo[No]SQL - Mapping Constraints context Client inv maxUnpaidOrders: self.orders->select( o | not o.paid) ->size()< 3 20 Client.allInstances().orders orders->select(o | not o.paid).size() < 3 sql_orders := select order_id from orders where client_id in (select id from client) db.order.find({_id : {$in: mongo_orders}, $where : “!o.paid"}).length > 3 mongo_orders := relToDoc(sql_orders)
  • 21. UmlTo[No]SQL – Code Generation  Deploy the database  Relational world: DDL scripts  NoSQL world: configuration scripts when possible  Runtime data access  Custom data access API  From conceptual model (e.g. getClient, createOrder)  Manages the concrete datastore  Constraint checking  Native query execution  Query orchestration for cross-datastore constraints 21
  • 22. Conclusion  Top-down approach for multi-database application design  Model partitioning  Region mapping  Constraint mapping (including cross-datastore)  Code generation + runtime data access 22
  • 23. Future Work  Performance evaluation  Integrate existing cross-datastore query languages  CloudMdsQL, Apache Drill …  Automatic Schema partitioning  Reverse direction is also promising: extracting conceptual schemas from heterogeneous datastores  Applications in legacy systems / open data / … 23