SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
George McGeachie, Stuttgart 2019
You’re a Data Modeller, so why
should you be interested in JSON?
Sounds a bit techie to me, so why should a data
modeller like me be interested in it?
George McGeachie
• Co-author of “Data Modeling Made Simple with
PowerDesigner”, PowerDesigner trainer, and data
modelling tool junkie.
Who are you?
What is JSON?
Java Script Object Notation
• a simple open-standard human-readable format for data
• used for several purposes, such as publishing public datasets and for
passing data between architectural layers and components
What is JSON?
{
"name": "moodle-core-blocks",
"builds": {
"moodle-core-blocks": {
"jsfiles": [
"blocks.js",
"manager.js",
"blockregion.js"
]
}
}
}
{"signifier" : "This is a PowerDesigner
model export",
"Object Type" : "Logical Data Model",
"id" : "55358DE6-A3A1-4BE0-8685-
18C0ACBA10A1",
"description" : "",
"note" : "",
"asset" : "f054830b-65e3-43c8-b535-
58f9fe7f5caf",
"community" : "",
"domain" : "",
"Extraction Date and Time" :
"1533765902",
"Extracted By" : "George McGeachie",
"Extracted from File" : "",
"Repository Version" : "",
"Model-Level Entities" : "",
"Packages" :
Where?
Open datasets such as
• Data.gov
• Datasf.org
• Data.cityofnewyork.us
• Data.London.gov.uk
What is JSON?
(Java Script
Object
Notation)
Sounds a bit techie to me, so why should
a data modeller like me be interested in
it?
The same questions were asked about
XML almost 20 years ago.
Today’s technical environment is a lot
different from 20 years ago, and the
capabilities of modelling and design tools
have also changed a lot since then.
What hasn’t changed is the hierarchical
data structure of XML and JSON data –
does anyone remember how COBOL
programs organise their data?
Thanks to Pascal Desmarets (from
Hackolade) for these slides
A simple data model
AtributesEntities
Model
Model Name
Object Type
ID
Description
Entity
Entity Name
Attribute Count
Attribute
Attribute Name
COBOL IS HIERARCHICAL
01 MODEL-EXPORT
03 MODEL-HEADER
05 MODEL-NAME PIC X(50)
05 OBJECT-TYPE PIC 99
05 ID PIC X(36)
03 MODEL-DETAIL
05 DESCRIPTION PIC X(1024)
05 ENTITY-COUNT PIC 9999
03 ENTITIES OCCURS VARYING BY ENTITY-COUNT
05 ENTITY-DETAIL
07 ENTITY-NAME PIC X(50)
07 ATTRIBUTE-COUNT PIC 9999
05 ATTRIBUTES OCCURS VARYING BY ATTRIBUTE-COUNT
07 ATTRIBUTE-NAME
….
Atributes
Entities
Model
Model Name
Object Type
ID
Description
Entity
Entity Name
Attribute Count
Attribute
Attribute Name
XML IS HIERARCHICAL
This is the same model
<xs:element name="MODEL">
<xs:complexType>
<xs:sequence>
<xs:element name="ENTITY">
<xs:complexType>
<xs:sequence>
<xs:element name="ATTRIBUTE">
<xs:complexType>
<xs:attribute name="ATTRIBUTE_NAME">
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ENTITY_NAME">
</xs:attribute>
<xs:attribute name="ATTRIBUTE_COUNT">
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="MODEL_NAME" use="required">
</xs:attribute>
Model
/MODEL
Model Name
Object Type
ID
Description
Entity Count
S
Entity
Entity Name
Attribute Count
S
Attribute
Attribute Name
AtributesEntities
Model
Model Name
Object Type
ID
Description
Entity
Entity Name
Attribute Count
Attribute
Attribute Name
The same model in JSON
{ "$schema": "http://json-schema.org/schema#",
"title": "JSON",
"objects": {
"model": {
"title": "Model",
"properties": {
"model_name": {
"title": "Model Name"
},
...
},
"relationship_1": {
"type": "array",
...
},
"primary key": ["model_name"],
"required":["model_name"]
},
"entity": {
"title": "Entity",
"properties": {
...
},
...
},
"relationship_2": {
"type": "array",
"object": { "rel": "Attribute",
"href": "#/objects/attribute" },
"minItems": 0,
"uniqueItems": true
},
...
},
"attribute": {
"title": "Attribute",
"properties": {
"model_name": {
"title": "Model Name"
},
... } } }
AtributesEntities
Model
Model Name
Object Type
ID
Description
Entity
Entity Name
Attribute Count
Attribute
Attribute Name
Have you ever?
• Generated COBOL layouts from data models?
• Reverse-engineered data models from COBOL layouts?
• Generated XML Schemas from data models?
• Reverse-engineered data models from XML Schemas?
A developer once
told me he’d be
happy to base XML
Schemas on our
models if we could
generate the
schemas for him
(our tool didn’t do
that)
I investigated
the available
tools to see if
we could
generate XML
Schemas from
our LDM (in
Oracle Designer)
The architecture from Steve Hoberman’s presentation this week
{
"Sport":"Baseball",
"Year":"1952",
"Manufacturer":"Topps",
"Number":311,
"FirstName":"Mickey",
"LastName":"Mantle",
"PriceDate":"2018/12/21",
"ConditionCode":"VG",
"PostalCodeSold":"07834",
"ConditionGradedBy":"PSA",
"PriceUSD":"38500,
"ShippingUSD":4.95
}
Here’s a possible data model for this JSON data
Sport Sport
Season
Sport
Player
Tradeable
Item
Tradeable
Card
Tradeable
Card
Observed
Trade
What if we want to sell cards? Can we send similar JSON to Ebay, etc.?
We could generate a schema or sample document.
Catalogue
(JSON)
Generating
hierarchies from a
data model is not
witchcraft!
Did you see the talk
given by Pascal
Desmarets (from
Hackolade) this
week?
How’s your data governance and lineage today?
Do you know what data you have in
your organisation, where it is, how it got
there, and what happened to it along
the way?
• Service-oriented architecture
• Enterprise Services
• ETL
• Procedural Code
• Etc.
Are you in control of the definition of
the data you move around??
Do you have database columns
containing XML or JSON?
• Do you know what data is in those
columns?
• Are you managing them with schemas?
This is a metadata question!
Are you ready for a
challenge?
• Does your data modelling /
design tool allow you to design,
document or manage JSON
structures?
• Do you have a data lineage tool
to do that for you?
I don’t know of any single tool that does
everything I would want it to do
• Model JSON
• Reverse-engineer JSON
• Generate a JSON Schema
• Validate a JSON document against a Schema or a model
• Model the JSON or XML structure inside a database column
• Link a JSON schema / structure to a message or chunk of code that
creates or consumes it
• Keeps the usage metadata up to date, so I can trust what I’m looking
at
Model
Model Name
Object Type
ID
Description
Entity Count
Entity
Entity Name
Attribute Count
Attribute
Attribute Name
Hmmm Still sounds
like
witchcraft
Thanks for watching
Telephone: +44 (0) 208 123 8756
UK mobile: +44 (0) 794 293 0648
Skype: gmcgeachie
Twitter: @ metadatajunkie
George.McGeachie @ MetadataMatters.com
http://metadatajunkie.wordpress.com/
www.PowerDesigner.Training

Contenu connexe

Tendances

Date warehousing concepts
Date warehousing conceptsDate warehousing concepts
Date warehousing concepts
pcherukumalla
 
Oracle db architecture
Oracle db architectureOracle db architecture
Oracle db architecture
Simon Huang
 

Tendances (20)

Dimensional Modeling
Dimensional ModelingDimensional Modeling
Dimensional Modeling
 
Data warehouse presentaion
Data warehouse presentaionData warehouse presentaion
Data warehouse presentaion
 
Date warehousing concepts
Date warehousing conceptsDate warehousing concepts
Date warehousing concepts
 
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2
 
Data Engineering Basics
Data Engineering BasicsData Engineering Basics
Data Engineering Basics
 
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
Linked Data and Knowledge Graphs -- Constructing and Understanding Knowledge ...
 
Introduction to AWS Glue
Introduction to AWS GlueIntroduction to AWS Glue
Introduction to AWS Glue
 
The Basics of MongoDB
The Basics of MongoDBThe Basics of MongoDB
The Basics of MongoDB
 
Oracle db architecture
Oracle db architectureOracle db architecture
Oracle db architecture
 
From Data Warehouse to Lakehouse
From Data Warehouse to LakehouseFrom Data Warehouse to Lakehouse
From Data Warehouse to Lakehouse
 
OpenKM Solution Document
OpenKM Solution DocumentOpenKM Solution Document
OpenKM Solution Document
 
Oracle Database 12c Multitenant for Consolidation
Oracle Database 12c Multitenant for ConsolidationOracle Database 12c Multitenant for Consolidation
Oracle Database 12c Multitenant for Consolidation
 
Snowflake Best Practices for Elastic Data Warehousing
Snowflake Best Practices for Elastic Data WarehousingSnowflake Best Practices for Elastic Data Warehousing
Snowflake Best Practices for Elastic Data Warehousing
 
BigQuery for Beginners
BigQuery for BeginnersBigQuery for Beginners
BigQuery for Beginners
 
Oracle Database Introduction
Oracle Database IntroductionOracle Database Introduction
Oracle Database Introduction
 
Oracle Architecture
Oracle ArchitectureOracle Architecture
Oracle Architecture
 
ETL Process
ETL ProcessETL Process
ETL Process
 
Sql Server Basics
Sql Server BasicsSql Server Basics
Sql Server Basics
 
ORACLE ARCHITECTURE
ORACLE ARCHITECTUREORACLE ARCHITECTURE
ORACLE ARCHITECTURE
 
Building Data Quality pipelines with Apache Spark and Delta Lake
Building Data Quality pipelines with Apache Spark and Delta LakeBuilding Data Quality pipelines with Apache Spark and Delta Lake
Building Data Quality pipelines with Apache Spark and Delta Lake
 

Similaire à Data Modelling Zone 2019 - data modelling and JSON

Building your First MEAN App
Building your First MEAN AppBuilding your First MEAN App
Building your First MEAN App
MongoDB
 

Similaire à Data Modelling Zone 2019 - data modelling and JSON (20)

JSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge GraphsJSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge Graphs
 
Inferring Versioned Schemas from NoSQL Databases and its Applications
Inferring Versioned Schemas from NoSQL Databases and its ApplicationsInferring Versioned Schemas from NoSQL Databases and its Applications
Inferring Versioned Schemas from NoSQL Databases and its Applications
 
NoSQL Tel Aviv Meetup#1: NoSQL Data Modeling
NoSQL Tel Aviv Meetup#1: NoSQL Data ModelingNoSQL Tel Aviv Meetup#1: NoSQL Data Modeling
NoSQL Tel Aviv Meetup#1: NoSQL Data Modeling
 
Scalable web application architecture
Scalable web application architectureScalable web application architecture
Scalable web application architecture
 
Retail referencearchitecture productcatalog
Retail referencearchitecture productcatalogRetail referencearchitecture productcatalog
Retail referencearchitecture productcatalog
 
NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020
 
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
 
Multi-model Databases and Tightly Integrated Polystores
Multi-model Databases and Tightly Integrated PolystoresMulti-model Databases and Tightly Integrated Polystores
Multi-model Databases and Tightly Integrated Polystores
 
Semi Formal Model for Document Oriented Databases
Semi Formal Model for Document Oriented DatabasesSemi Formal Model for Document Oriented Databases
Semi Formal Model for Document Oriented Databases
 
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
 
SQL vs NoSQL
SQL vs NoSQLSQL vs NoSQL
SQL vs NoSQL
 
Alternatives of JPA/Hibernate
Alternatives of JPA/HibernateAlternatives of JPA/Hibernate
Alternatives of JPA/Hibernate
 
moma-django overview --> Django + MongoDB: building a custom ORM layer
moma-django overview --> Django + MongoDB: building a custom ORM layermoma-django overview --> Django + MongoDB: building a custom ORM layer
moma-django overview --> Django + MongoDB: building a custom ORM layer
 
Wix Machine Learning - Ran Romano
Wix Machine Learning - Ran RomanoWix Machine Learning - Ran Romano
Wix Machine Learning - Ran Romano
 
Multi-Model Data Query Languages and Processing Paradigms
Multi-Model Data Query Languages and Processing ParadigmsMulti-Model Data Query Languages and Processing Paradigms
Multi-Model Data Query Languages and Processing Paradigms
 
A search engine in a world of events and microservices - SF Pot @Meetic
A search engine in a world of events and microservices - SF Pot @MeeticA search engine in a world of events and microservices - SF Pot @Meetic
A search engine in a world of events and microservices - SF Pot @Meetic
 
Find Anything In Your APEX App - Fuzzy Search with Oracle Text
Find Anything In Your APEX App - Fuzzy Search with Oracle TextFind Anything In Your APEX App - Fuzzy Search with Oracle Text
Find Anything In Your APEX App - Fuzzy Search with Oracle Text
 
What's Your Super-Power? Mine is Machine Learning with Oracle Autonomous DB.
What's Your Super-Power? Mine is Machine Learning with Oracle Autonomous DB.What's Your Super-Power? Mine is Machine Learning with Oracle Autonomous DB.
What's Your Super-Power? Mine is Machine Learning with Oracle Autonomous DB.
 
Building your First MEAN App
Building your First MEAN AppBuilding your First MEAN App
Building your First MEAN App
 
ADO.NET Entity Framework by Jose A. Blakeley and Michael Pizzo
ADO.NET Entity Framework by Jose A. Blakeley and Michael PizzoADO.NET Entity Framework by Jose A. Blakeley and Michael Pizzo
ADO.NET Entity Framework by Jose A. Blakeley and Michael Pizzo
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

Data Modelling Zone 2019 - data modelling and JSON

  • 1. George McGeachie, Stuttgart 2019 You’re a Data Modeller, so why should you be interested in JSON? Sounds a bit techie to me, so why should a data modeller like me be interested in it?
  • 2. George McGeachie • Co-author of “Data Modeling Made Simple with PowerDesigner”, PowerDesigner trainer, and data modelling tool junkie.
  • 4. What is JSON? Java Script Object Notation • a simple open-standard human-readable format for data • used for several purposes, such as publishing public datasets and for passing data between architectural layers and components
  • 5. What is JSON? { "name": "moodle-core-blocks", "builds": { "moodle-core-blocks": { "jsfiles": [ "blocks.js", "manager.js", "blockregion.js" ] } } } {"signifier" : "This is a PowerDesigner model export", "Object Type" : "Logical Data Model", "id" : "55358DE6-A3A1-4BE0-8685- 18C0ACBA10A1", "description" : "", "note" : "", "asset" : "f054830b-65e3-43c8-b535- 58f9fe7f5caf", "community" : "", "domain" : "", "Extraction Date and Time" : "1533765902", "Extracted By" : "George McGeachie", "Extracted from File" : "", "Repository Version" : "", "Model-Level Entities" : "", "Packages" :
  • 6. Where? Open datasets such as • Data.gov • Datasf.org • Data.cityofnewyork.us • Data.London.gov.uk
  • 7. What is JSON? (Java Script Object Notation) Sounds a bit techie to me, so why should a data modeller like me be interested in it? The same questions were asked about XML almost 20 years ago. Today’s technical environment is a lot different from 20 years ago, and the capabilities of modelling and design tools have also changed a lot since then. What hasn’t changed is the hierarchical data structure of XML and JSON data – does anyone remember how COBOL programs organise their data?
  • 8. Thanks to Pascal Desmarets (from Hackolade) for these slides
  • 9.
  • 10.
  • 11. A simple data model AtributesEntities Model Model Name Object Type ID Description Entity Entity Name Attribute Count Attribute Attribute Name
  • 12. COBOL IS HIERARCHICAL 01 MODEL-EXPORT 03 MODEL-HEADER 05 MODEL-NAME PIC X(50) 05 OBJECT-TYPE PIC 99 05 ID PIC X(36) 03 MODEL-DETAIL 05 DESCRIPTION PIC X(1024) 05 ENTITY-COUNT PIC 9999 03 ENTITIES OCCURS VARYING BY ENTITY-COUNT 05 ENTITY-DETAIL 07 ENTITY-NAME PIC X(50) 07 ATTRIBUTE-COUNT PIC 9999 05 ATTRIBUTES OCCURS VARYING BY ATTRIBUTE-COUNT 07 ATTRIBUTE-NAME …. Atributes Entities Model Model Name Object Type ID Description Entity Entity Name Attribute Count Attribute Attribute Name
  • 13. XML IS HIERARCHICAL This is the same model <xs:element name="MODEL"> <xs:complexType> <xs:sequence> <xs:element name="ENTITY"> <xs:complexType> <xs:sequence> <xs:element name="ATTRIBUTE"> <xs:complexType> <xs:attribute name="ATTRIBUTE_NAME"> </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="ENTITY_NAME"> </xs:attribute> <xs:attribute name="ATTRIBUTE_COUNT"> </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="MODEL_NAME" use="required"> </xs:attribute> Model /MODEL Model Name Object Type ID Description Entity Count S Entity Entity Name Attribute Count S Attribute Attribute Name AtributesEntities Model Model Name Object Type ID Description Entity Entity Name Attribute Count Attribute Attribute Name
  • 14. The same model in JSON { "$schema": "http://json-schema.org/schema#", "title": "JSON", "objects": { "model": { "title": "Model", "properties": { "model_name": { "title": "Model Name" }, ... }, "relationship_1": { "type": "array", ... }, "primary key": ["model_name"], "required":["model_name"] }, "entity": { "title": "Entity", "properties": { ... }, ... }, "relationship_2": { "type": "array", "object": { "rel": "Attribute", "href": "#/objects/attribute" }, "minItems": 0, "uniqueItems": true }, ... }, "attribute": { "title": "Attribute", "properties": { "model_name": { "title": "Model Name" }, ... } } } AtributesEntities Model Model Name Object Type ID Description Entity Entity Name Attribute Count Attribute Attribute Name
  • 15. Have you ever? • Generated COBOL layouts from data models? • Reverse-engineered data models from COBOL layouts? • Generated XML Schemas from data models? • Reverse-engineered data models from XML Schemas? A developer once told me he’d be happy to base XML Schemas on our models if we could generate the schemas for him (our tool didn’t do that)
  • 16. I investigated the available tools to see if we could generate XML Schemas from our LDM (in Oracle Designer)
  • 17. The architecture from Steve Hoberman’s presentation this week { "Sport":"Baseball", "Year":"1952", "Manufacturer":"Topps", "Number":311, "FirstName":"Mickey", "LastName":"Mantle", "PriceDate":"2018/12/21", "ConditionCode":"VG", "PostalCodeSold":"07834", "ConditionGradedBy":"PSA", "PriceUSD":"38500, "ShippingUSD":4.95 }
  • 18. Here’s a possible data model for this JSON data Sport Sport Season Sport Player Tradeable Item Tradeable Card Tradeable Card Observed Trade
  • 19. What if we want to sell cards? Can we send similar JSON to Ebay, etc.? We could generate a schema or sample document. Catalogue (JSON)
  • 20. Generating hierarchies from a data model is not witchcraft!
  • 21. Did you see the talk given by Pascal Desmarets (from Hackolade) this week?
  • 22.
  • 23. How’s your data governance and lineage today? Do you know what data you have in your organisation, where it is, how it got there, and what happened to it along the way? • Service-oriented architecture • Enterprise Services • ETL • Procedural Code • Etc. Are you in control of the definition of the data you move around?? Do you have database columns containing XML or JSON? • Do you know what data is in those columns? • Are you managing them with schemas? This is a metadata question!
  • 24. Are you ready for a challenge? • Does your data modelling / design tool allow you to design, document or manage JSON structures? • Do you have a data lineage tool to do that for you?
  • 25. I don’t know of any single tool that does everything I would want it to do • Model JSON • Reverse-engineer JSON • Generate a JSON Schema • Validate a JSON document against a Schema or a model • Model the JSON or XML structure inside a database column • Link a JSON schema / structure to a message or chunk of code that creates or consumes it • Keeps the usage metadata up to date, so I can trust what I’m looking at Model Model Name Object Type ID Description Entity Count Entity Entity Name Attribute Count Attribute Attribute Name
  • 27. Thanks for watching Telephone: +44 (0) 208 123 8756 UK mobile: +44 (0) 794 293 0648 Skype: gmcgeachie Twitter: @ metadatajunkie George.McGeachie @ MetadataMatters.com http://metadatajunkie.wordpress.com/ www.PowerDesigner.Training