SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Redash: Open Source SQL Analytics on Data Lakes
Redash: Open Source SQL Analytics on Data LakesRedash: Open Source SQL Analytics on Data Lakes
Redash: Open Source SQL Analytics on Data LakesDatabricks
 
Introduction to the Data Web, DBpedia and the Life-cycle of Linked Data
Introduction to the Data Web, DBpedia and the Life-cycle of Linked DataIntroduction to the Data Web, DBpedia and the Life-cycle of Linked Data
Introduction to the Data Web, DBpedia and the Life-cycle of Linked DataSören Auer
 
Data Science and CDSW
Data Science and CDSWData Science and CDSW
Data Science and CDSWJason Hubbard
 
Introduction of Knowledge Graphs
Introduction of Knowledge GraphsIntroduction of Knowledge Graphs
Introduction of Knowledge GraphsJeff Z. Pan
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introductionPooyan Mehrparvar
 
Spark DataFrames and ML Pipelines
Spark DataFrames and ML PipelinesSpark DataFrames and ML Pipelines
Spark DataFrames and ML PipelinesDatabricks
 
How to Prepare for a BI Migration
How to Prepare for a BI MigrationHow to Prepare for a BI Migration
How to Prepare for a BI MigrationSenturus
 
Ultimate Free SQL Server Toolkit
Ultimate Free SQL Server ToolkitUltimate Free SQL Server Toolkit
Ultimate Free SQL Server ToolkitKevin Kline
 
MDX (Multi Dimensional Expressions) Introduction
MDX (Multi Dimensional Expressions) IntroductionMDX (Multi Dimensional Expressions) Introduction
MDX (Multi Dimensional Expressions) IntroductionDigvendra Singh
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBMongoDB
 
Time Series Processing with Apache Spark
Time Series Processing with Apache SparkTime Series Processing with Apache Spark
Time Series Processing with Apache SparkQAware GmbH
 
Spark streaming , Spark SQL
Spark streaming , Spark SQLSpark streaming , Spark SQL
Spark streaming , Spark SQLYousun Jeong
 
Azure Machine Learning tutorial
Azure Machine Learning tutorialAzure Machine Learning tutorial
Azure Machine Learning tutorialGiacomo Lanciano
 
PaLM Scaling Language Modeling with Pathways - 230219 (1).pdf
PaLM Scaling Language Modeling with Pathways - 230219 (1).pdfPaLM Scaling Language Modeling with Pathways - 230219 (1).pdf
PaLM Scaling Language Modeling with Pathways - 230219 (1).pdftaeseon ryu
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQLRTigger
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XPSemen Arslan
 

Mais procurados (20)

Redash: Open Source SQL Analytics on Data Lakes
Redash: Open Source SQL Analytics on Data LakesRedash: Open Source SQL Analytics on Data Lakes
Redash: Open Source SQL Analytics on Data Lakes
 
Introduction to the Data Web, DBpedia and the Life-cycle of Linked Data
Introduction to the Data Web, DBpedia and the Life-cycle of Linked DataIntroduction to the Data Web, DBpedia and the Life-cycle of Linked Data
Introduction to the Data Web, DBpedia and the Life-cycle of Linked Data
 
Data Science and CDSW
Data Science and CDSWData Science and CDSW
Data Science and CDSW
 
Introduction of Knowledge Graphs
Introduction of Knowledge GraphsIntroduction of Knowledge Graphs
Introduction of Knowledge Graphs
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introduction
 
Spark DataFrames and ML Pipelines
Spark DataFrames and ML PipelinesSpark DataFrames and ML Pipelines
Spark DataFrames and ML Pipelines
 
Mongodb
MongodbMongodb
Mongodb
 
Mongo DB Presentation
Mongo DB PresentationMongo DB Presentation
Mongo DB Presentation
 
How to Prepare for a BI Migration
How to Prepare for a BI MigrationHow to Prepare for a BI Migration
How to Prepare for a BI Migration
 
Data Engineering Basics
Data Engineering BasicsData Engineering Basics
Data Engineering Basics
 
Ultimate Free SQL Server Toolkit
Ultimate Free SQL Server ToolkitUltimate Free SQL Server Toolkit
Ultimate Free SQL Server Toolkit
 
MDX (Multi Dimensional Expressions) Introduction
MDX (Multi Dimensional Expressions) IntroductionMDX (Multi Dimensional Expressions) Introduction
MDX (Multi Dimensional Expressions) Introduction
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Time Series Processing with Apache Spark
Time Series Processing with Apache SparkTime Series Processing with Apache Spark
Time Series Processing with Apache Spark
 
Spark streaming , Spark SQL
Spark streaming , Spark SQLSpark streaming , Spark SQL
Spark streaming , Spark SQL
 
Azure Machine Learning tutorial
Azure Machine Learning tutorialAzure Machine Learning tutorial
Azure Machine Learning tutorial
 
PaLM Scaling Language Modeling with Pathways - 230219 (1).pdf
PaLM Scaling Language Modeling with Pathways - 230219 (1).pdfPaLM Scaling Language Modeling with Pathways - 230219 (1).pdf
PaLM Scaling Language Modeling with Pathways - 230219 (1).pdf
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQL
 
Nosql seminar
Nosql seminarNosql seminar
Nosql seminar
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XP
 

Semelhante a Data Modelling Zone 2019 - data modelling and JSON

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 ApplicationsDiego Sevilla Ruiz
 
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 ModelingNoSQL TLV
 
Scalable web application architecture
Scalable web application architectureScalable web application architecture
Scalable web application architecturepostrational
 
Retail referencearchitecture productcatalog
Retail referencearchitecture productcatalogRetail referencearchitecture productcatalog
Retail referencearchitecture productcatalogMongoDB
 
NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020Thodoris Bais
 
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...jaxconf
 
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 PolystoresJiaheng Lu
 
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 DatabasesDaniel Coupal
 
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 SparkVital.AI
 
Alternatives of JPA/Hibernate
Alternatives of JPA/HibernateAlternatives of JPA/Hibernate
Alternatives of JPA/HibernateSunghyouk Bae
 
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 layerGadi Oren
 
Wix Machine Learning - Ran Romano
Wix Machine Learning - Ran RomanoWix Machine Learning - Ran Romano
Wix Machine Learning - Ran RomanoWix Engineering
 
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 ParadigmsJiaheng Lu
 
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 @MeeticmeeticTech
 
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 TextCarsten Czarski
 
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.Jim Czuprynski
 
Building your First MEAN App
Building your First MEAN AppBuilding your First MEAN App
Building your First MEAN AppMongoDB
 
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 PizzoHasnain Iqbal
 

Semelhante a 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
 

Último

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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 WorkerThousandEyes
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Último (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

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