SlideShare uma empresa Scribd logo
1 de 49
Priorities, Design Patterns, and Thoughts on
Data Modeling for Transactions
Relational Data Modeling
Trends for Transactional
Applications
Ike Ellis, MVP
General Manager Data & AI Practice
Solliance, Crafting Bytes
Please silence
cell phones
everything PASS
has to offer
Free online
webinar events
Free 1-day local
training events
Local user groups
around the world
Online special
interest user groups
Business analytics
training
Get involved
Free Online Resources
Newsletters
PASS.org
Explore
Ike Ellis
General Manager – Data &
AI Practice
Solliance
/ikeellis
@ike_ellis
www.ikeellis.com
• Founder of San Diego Power
BI and PowerApps
UserGroup
• San Diego Tech Immersion
Group
• MVP since 2011
• Author of Developing Azure
Solutions, Power BI MVP Book
• Speaker at PASS Summit,
SQLBits, DevIntersections,
TechEd, Craft
Agenda
1. summary of where we’ve been in
data modeling
2. current priorities, state of data
modeling, and design guidelines
3. practice modeling data
through-out this presentation, remember three things
• schema controls scalability (performance) and
changeability
• in the average transactional application, reads outnumber
writes by 10 to 1, schema often emphasizes writes, but it
should emphasis the reads
• schema has to change for the future
• change with the business
• change with technology
schema definition
• a representation of a plan or theory in the form of an outline
or model
• would you begin any major project without a plan or a
theory?
EF Codd
first normal form
• That the data is in a database table. The table stores information in rows and
columns where one or more columns, called the primary key, uniquely identify
each row.
• Each column contains atomic values, and there are not repeating groups of
columns.
Example:
• There is a primary key
• Each column only has one piece of data.
• Bad Example: Order1Date, Order2Date, Order3Date, etc.
second normal form
A table is in 2nd Normal Form if:
• The table is in 1st normal form, and
• All the non-key columns are dependent on the table’s
primary key.
Example:
• you wouldn’t put corporateHeadquartersAddress in the
orders table. it’s irrelevant.
third normal form
A table is in third normal form if:
• A table is in 2nd normal form.
• It contains only columns that are non-transitively
dependent on the primary key
Example:
• you wouldn’t put employeeFullName in the orders table,
even though employeeID is in the orders table
EF Codd’s ideas are a bit outdated
his assumptions and priorities are not our assumptions and
priorities
assumption: disks will always be expensive
my first hard drive was 10MB and cost my dad $1,400 in 1984
results
• this means that we need normalization to decrease
repeating data and thus decrease the overall size of the
data on the disk
• this means that there would be a benefit to over-
normalization, ie a person table
results of over-normalization: terrible
performance with joins
• over-normalization has several drawbacks
• too many joins in a query will always have bad performance
• over-normalized data models are too difficult for new developers or
contractors to learn
• the total number of tables explodes on us. 300 tables per database is very
common in a transactional model
• over-normalization is too steep a learning curve to figure out how to
delete or insert records
• data has to be constantly aggregated to show results if we avoid
repeating data
assumption: the database is the center of
all applications
results
• one application can’t release changes to the database
without testing all applications
• this greatly increased the testing surface area, and delays
product releases
results: database as an integration point
application 1 uses the database to communicate to
application 2
results: database as a messaging service
• application1 tells application2 what to do by using the
database
• multiple columns in a table that have status date tells you
there might be a queue
• deletes on a queue are logged operations. takes a lot of
time and locks the table between applications
results: applications affect the
performance of other applications
high load on app1 is now affecting the performance of app2
results: in order to upgrade app1, you
have to upgrade app2
app1 might need money and better performance. we have to
pay to upgrade app2 as a result.
assumption: because the database is
shared, it’s best to have it be responsible
for data accuracy and consistency
data is only stored one time between all
applications. the database is in charge of the data
being accurate.
result: business logic begins to go in
the database
• it’s the one place where business logic is guaranteed to be
enforced
• this loads the cpu of the database
• hurts sql server licensing
• hurts database scalability
• incentivizes the use of stored procedures and triggers to
consolidate business logic
• both things are difficult to test, difficult to refactor, difficult to read
NOW LET’S TALK ABOUT CURRENT
DESIGN PRIORITIES (CDP)
cdp#1: the data needs to be consistent
and high quality
• choose the correct data type
• allow for nulls when the value is unknown
• when data is wrong, create a correction plan and fix the
bug
• build automated tests around data quality
cdp #2: schema should be able to change
• business is complaining that the database is not changing as fast as
the business
• business changes taxonomy. they change student to learner. they change
eligibility to enrollment. if the database doesn’t change, this creates bugs,
confusion, and ambiguity
• technology changes
• new index structures, new table structures, new database technology, new
versions of existing technology
• very fast pace of change
• moving to the cloud
cdp#2: the microservices method ~ ways
to keep schema flexible
one application to one database
No Excel
No ETL
No other apps
No SSRS, Power BI
cdp#2: consolidate database logic in a
data tier layer
data tier
for all
data
access
cdp#2: use an ORM, views, codegen,
swagger
data tier
for all
data
access
cdp#2: application integration is
through apis, messaging, and eventing
cdp #3: optimize for reads
• the application will be judged based on read-speed, not
write speed. users expect writes to take a long time.
schema should focus on the reads
cdp#3: optimize for reads
cdp#3: optimize for reads
cdp#3: optimize for reads
Customers Table
CustomerID
CustomerName
Address
TotalOrderAmount
AllOpenOrdersJSON
Orders Table
OrderID
OrderDate
Qty
UnitPrice
TotalPrice
cdp#3: reads ~ index table
Create three tables
• Customers
• Orders
• CustomerOpenOrders
cdp#4: make the schema easy and
discoverable
• delete columns no one is using
• delete tables no one is using
• avoid acronyms in naming
• avoid jargon
• avoid spaces
• remove unnecessary tables
• name the tables after business names
cdp#5: it’s the network, not the disk
• the network is the real problem
• tough to upgrade
• shared by everything
• latency
• hard to optimize
• create schema for the network
• minimize round-trips
• only get the columns and rows that you need
• keep transactions small
• it’s ok to say no to users
cdp#5: optimize for network
mobile carrier bandwidth load times and too much
network affect SEO and
bounce rates
cdp #5: network ~ data locality
cdp #6: raw performance
• think of de-normalization as just another index
• proper schema can increase performance by 1,000 times
• limit joins
• think of the indexing
cdp #7: what can we remove that isn’t
100% necessary?
• audit trails: different database
• blobs: azure blob storage
• temp data: different database
• staging data: different database, azure blob storage
cdp #8: plan for partitioning
• choose a partition key
• make partition key available in every applicable table
• shouldn’t have to join to a different table to get the partition key
• shouldn’t have to hunt for the partition key
• keep lookup tables small or in their own database
• use api for lookup with caching backend as their own
domain
cqrs
command query segregation responsibility
app takes your
order or
request
publish
app responds
to user “we’ve
received your
request”
ack
pull
function takes request
and transforms the data
into data repo optimized
for read and cache
persist data store
Design Practice!: #1 Blog
• Comments
• Posts
• Tags
• Archives
Design Practice #2: Online Store
• Product Catalog
• Shopping Cart
• Orders
• Past Orders Screen
• Phone number field?
• Order Total by Customer
Design Practice #3: Refrigeration Trucks
Session
Evaluations
Submit by 5pm Friday,
November 15th to
win prizes.
Download the GuideBook App
and search: PASS Summit 2019
Follow the QR code link on session
signage
Go to PASSsummit.com
3 W A Y S T O A C C E S S
Ike Ellis
Twitter: @ike_ellis
YouTube: https://www.youtube.com/user/IkeEllisData
Solliance
Microsoft MVP
www.solliance.net
www.craftingbytes.com
www.ikeellis.com
Thank You
Speaker name
@yourhandle
youremail@email.com

Mais conteĂşdo relacionado

Mais procurados

Data Modeling on Azure for Analytics
Data Modeling on Azure for AnalyticsData Modeling on Azure for Analytics
Data Modeling on Azure for AnalyticsIke Ellis
 
Azure Cosmos DB + Gremlin API in Action
Azure Cosmos DB + Gremlin API in ActionAzure Cosmos DB + Gremlin API in Action
Azure Cosmos DB + Gremlin API in ActionDenys Chamberland
 
Should I move my database to the cloud?
Should I move my database to the cloud?Should I move my database to the cloud?
Should I move my database to the cloud?James Serra
 
Azure data bricks by Eugene Polonichko
Azure data bricks by Eugene PolonichkoAzure data bricks by Eugene Polonichko
Azure data bricks by Eugene PolonichkoAlex Tumanoff
 
Azure Data Factory V2; The Data Flows
Azure Data Factory V2; The Data FlowsAzure Data Factory V2; The Data Flows
Azure Data Factory V2; The Data FlowsThomas Sykes
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databasesJames Serra
 
Azure data platform overview
Azure data platform overviewAzure data platform overview
Azure data platform overviewJames Serra
 
Introduction to Azure Data Lake
Introduction to Azure Data LakeIntroduction to Azure Data Lake
Introduction to Azure Data LakeAntonios Chatzipavlis
 
RDX Insights Presentation - Microsoft Business Intelligence
RDX Insights Presentation - Microsoft Business IntelligenceRDX Insights Presentation - Microsoft Business Intelligence
RDX Insights Presentation - Microsoft Business IntelligenceChristopher Foot
 
Synapse for mere mortals
Synapse for mere mortalsSynapse for mere mortals
Synapse for mere mortalsMichael Stephenson
 
How does Microsoft solve Big Data?
How does Microsoft solve Big Data?How does Microsoft solve Big Data?
How does Microsoft solve Big Data?James Serra
 
Microsoft cloud big data strategy
Microsoft cloud big data strategyMicrosoft cloud big data strategy
Microsoft cloud big data strategyJames Serra
 
Azure Lowlands: An intro to Azure Data Lake
Azure Lowlands: An intro to Azure Data LakeAzure Lowlands: An intro to Azure Data Lake
Azure Lowlands: An intro to Azure Data LakeRick van den Bosch
 
Data Lake Overview
Data Lake OverviewData Lake Overview
Data Lake OverviewJames Serra
 
What’s new in SQL Server 2017
What’s new in SQL Server 2017What’s new in SQL Server 2017
What’s new in SQL Server 2017James Serra
 
Introducing Azure SQL Data Warehouse
Introducing Azure SQL Data WarehouseIntroducing Azure SQL Data Warehouse
Introducing Azure SQL Data WarehouseJames Serra
 
Azure data platform overview
Azure data platform overviewAzure data platform overview
Azure data platform overviewAlessandro Melchiori
 
Dipping Your Toes: Azure Data Lake for DBAs
Dipping Your Toes: Azure Data Lake for DBAsDipping Your Toes: Azure Data Lake for DBAs
Dipping Your Toes: Azure Data Lake for DBAsBob Pusateri
 

Mais procurados (20)

Data Modeling on Azure for Analytics
Data Modeling on Azure for AnalyticsData Modeling on Azure for Analytics
Data Modeling on Azure for Analytics
 
Azure Cosmos DB + Gremlin API in Action
Azure Cosmos DB + Gremlin API in ActionAzure Cosmos DB + Gremlin API in Action
Azure Cosmos DB + Gremlin API in Action
 
Should I move my database to the cloud?
Should I move my database to the cloud?Should I move my database to the cloud?
Should I move my database to the cloud?
 
Exploring sql server 2016
Exploring sql server 2016Exploring sql server 2016
Exploring sql server 2016
 
Azure data bricks by Eugene Polonichko
Azure data bricks by Eugene PolonichkoAzure data bricks by Eugene Polonichko
Azure data bricks by Eugene Polonichko
 
Azure Data Factory V2; The Data Flows
Azure Data Factory V2; The Data FlowsAzure Data Factory V2; The Data Flows
Azure Data Factory V2; The Data Flows
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
 
Tableau API
Tableau APITableau API
Tableau API
 
Azure data platform overview
Azure data platform overviewAzure data platform overview
Azure data platform overview
 
Introduction to Azure Data Lake
Introduction to Azure Data LakeIntroduction to Azure Data Lake
Introduction to Azure Data Lake
 
RDX Insights Presentation - Microsoft Business Intelligence
RDX Insights Presentation - Microsoft Business IntelligenceRDX Insights Presentation - Microsoft Business Intelligence
RDX Insights Presentation - Microsoft Business Intelligence
 
Synapse for mere mortals
Synapse for mere mortalsSynapse for mere mortals
Synapse for mere mortals
 
How does Microsoft solve Big Data?
How does Microsoft solve Big Data?How does Microsoft solve Big Data?
How does Microsoft solve Big Data?
 
Microsoft cloud big data strategy
Microsoft cloud big data strategyMicrosoft cloud big data strategy
Microsoft cloud big data strategy
 
Azure Lowlands: An intro to Azure Data Lake
Azure Lowlands: An intro to Azure Data LakeAzure Lowlands: An intro to Azure Data Lake
Azure Lowlands: An intro to Azure Data Lake
 
Data Lake Overview
Data Lake OverviewData Lake Overview
Data Lake Overview
 
What’s new in SQL Server 2017
What’s new in SQL Server 2017What’s new in SQL Server 2017
What’s new in SQL Server 2017
 
Introducing Azure SQL Data Warehouse
Introducing Azure SQL Data WarehouseIntroducing Azure SQL Data Warehouse
Introducing Azure SQL Data Warehouse
 
Azure data platform overview
Azure data platform overviewAzure data platform overview
Azure data platform overview
 
Dipping Your Toes: Azure Data Lake for DBAs
Dipping Your Toes: Azure Data Lake for DBAsDipping Your Toes: Azure Data Lake for DBAs
Dipping Your Toes: Azure Data Lake for DBAs
 

Semelhante a Relational data modeling trends for transactional applications

Optimizing Application Performance - 2022.pptx
Optimizing Application Performance - 2022.pptxOptimizing Application Performance - 2022.pptx
Optimizing Application Performance - 2022.pptxJasonTuran2
 
Breaking data
Breaking dataBreaking data
Breaking dataTerry Bunio
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Databricks
 
Boosting the Performance of your Rails Apps
Boosting the Performance of your Rails AppsBoosting the Performance of your Rails Apps
Boosting the Performance of your Rails AppsMatt Kuklinski
 
UNIT3 DBMS.pptx operation nd management of data base
UNIT3 DBMS.pptx operation nd management of data baseUNIT3 DBMS.pptx operation nd management of data base
UNIT3 DBMS.pptx operation nd management of data baseshindhe1098cv
 
Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud applicationNoam Sheffer
 
Delivering Changes for Applications and Databases
Delivering Changes for Applications and DatabasesDelivering Changes for Applications and Databases
Delivering Changes for Applications and DatabasesMiguel Alho
 
Geek Sync | Is Your Database Environment Ready for DevOps?
Geek Sync | Is Your Database Environment Ready for DevOps?Geek Sync | Is Your Database Environment Ready for DevOps?
Geek Sync | Is Your Database Environment Ready for DevOps?IDERA Software
 
Taming the shrew, Optimizing Power BI Options
Taming the shrew, Optimizing Power BI OptionsTaming the shrew, Optimizing Power BI Options
Taming the shrew, Optimizing Power BI OptionsKellyn Pot'Vin-Gorman
 
Why Bad Data May Be Your Best Opportunity
Why Bad Data May Be Your Best OpportunityWhy Bad Data May Be Your Best Opportunity
Why Bad Data May Be Your Best OpportunityZach Gardner
 
Enterprise Data World 2018 - Building Cloud Self-Service Analytical Solution
Enterprise Data World 2018 - Building Cloud Self-Service Analytical SolutionEnterprise Data World 2018 - Building Cloud Self-Service Analytical Solution
Enterprise Data World 2018 - Building Cloud Self-Service Analytical SolutionDmitry Anoshin
 
Designing your API Server for mobile apps
Designing your API Server for mobile appsDesigning your API Server for mobile apps
Designing your API Server for mobile appsMugunth Kumar
 
Introduction to Database Management Systems (DBMS)
Introduction to Database Management Systems (DBMS)Introduction to Database Management Systems (DBMS)
Introduction to Database Management Systems (DBMS)Vijayananda Ratnam Ch
 
DoneDeal - AWS Data Analytics Platform
DoneDeal - AWS Data Analytics PlatformDoneDeal - AWS Data Analytics Platform
DoneDeal - AWS Data Analytics Platformmartinbpeters
 
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...confluent
 
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLPerformance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLTriNimbus
 
From ddd to DDD : My journey from data-driven development to Domain-Driven De...
From ddd to DDD : My journey from data-driven development to Domain-Driven De...From ddd to DDD : My journey from data-driven development to Domain-Driven De...
From ddd to DDD : My journey from data-driven development to Domain-Driven De...Thibaud Desodt
 
Delivering changes for applications and databases
Delivering changes for applications and databasesDelivering changes for applications and databases
Delivering changes for applications and databasesEduardo Piairo
 
Tah 03302015 withendclient
Tah 03302015 withendclientTah 03302015 withendclient
Tah 03302015 withendclientTerry Hendrickson
 
Pr dc 2015 sql server is cheaper than open source
Pr dc 2015 sql server is cheaper than open sourcePr dc 2015 sql server is cheaper than open source
Pr dc 2015 sql server is cheaper than open sourceTerry Bunio
 

Semelhante a Relational data modeling trends for transactional applications (20)

Optimizing Application Performance - 2022.pptx
Optimizing Application Performance - 2022.pptxOptimizing Application Performance - 2022.pptx
Optimizing Application Performance - 2022.pptx
 
Breaking data
Breaking dataBreaking data
Breaking data
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
 
Boosting the Performance of your Rails Apps
Boosting the Performance of your Rails AppsBoosting the Performance of your Rails Apps
Boosting the Performance of your Rails Apps
 
UNIT3 DBMS.pptx operation nd management of data base
UNIT3 DBMS.pptx operation nd management of data baseUNIT3 DBMS.pptx operation nd management of data base
UNIT3 DBMS.pptx operation nd management of data base
 
Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud application
 
Delivering Changes for Applications and Databases
Delivering Changes for Applications and DatabasesDelivering Changes for Applications and Databases
Delivering Changes for Applications and Databases
 
Geek Sync | Is Your Database Environment Ready for DevOps?
Geek Sync | Is Your Database Environment Ready for DevOps?Geek Sync | Is Your Database Environment Ready for DevOps?
Geek Sync | Is Your Database Environment Ready for DevOps?
 
Taming the shrew, Optimizing Power BI Options
Taming the shrew, Optimizing Power BI OptionsTaming the shrew, Optimizing Power BI Options
Taming the shrew, Optimizing Power BI Options
 
Why Bad Data May Be Your Best Opportunity
Why Bad Data May Be Your Best OpportunityWhy Bad Data May Be Your Best Opportunity
Why Bad Data May Be Your Best Opportunity
 
Enterprise Data World 2018 - Building Cloud Self-Service Analytical Solution
Enterprise Data World 2018 - Building Cloud Self-Service Analytical SolutionEnterprise Data World 2018 - Building Cloud Self-Service Analytical Solution
Enterprise Data World 2018 - Building Cloud Self-Service Analytical Solution
 
Designing your API Server for mobile apps
Designing your API Server for mobile appsDesigning your API Server for mobile apps
Designing your API Server for mobile apps
 
Introduction to Database Management Systems (DBMS)
Introduction to Database Management Systems (DBMS)Introduction to Database Management Systems (DBMS)
Introduction to Database Management Systems (DBMS)
 
DoneDeal - AWS Data Analytics Platform
DoneDeal - AWS Data Analytics PlatformDoneDeal - AWS Data Analytics Platform
DoneDeal - AWS Data Analytics Platform
 
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
 
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLPerformance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
 
From ddd to DDD : My journey from data-driven development to Domain-Driven De...
From ddd to DDD : My journey from data-driven development to Domain-Driven De...From ddd to DDD : My journey from data-driven development to Domain-Driven De...
From ddd to DDD : My journey from data-driven development to Domain-Driven De...
 
Delivering changes for applications and databases
Delivering changes for applications and databasesDelivering changes for applications and databases
Delivering changes for applications and databases
 
Tah 03302015 withendclient
Tah 03302015 withendclientTah 03302015 withendclient
Tah 03302015 withendclient
 
Pr dc 2015 sql server is cheaper than open source
Pr dc 2015 sql server is cheaper than open sourcePr dc 2015 sql server is cheaper than open source
Pr dc 2015 sql server is cheaper than open source
 

Mais de Ike Ellis

Storytelling with Data with Power BI
Storytelling with Data with Power BIStorytelling with Data with Power BI
Storytelling with Data with Power BIIke Ellis
 
Storytelling with Data with Power BI.pptx
Storytelling with Data with Power BI.pptxStorytelling with Data with Power BI.pptx
Storytelling with Data with Power BI.pptxIke Ellis
 
Build a modern data platform.pptx
Build a modern data platform.pptxBuild a modern data platform.pptx
Build a modern data platform.pptxIke Ellis
 
Pass 2018 introduction to dax
Pass 2018 introduction to daxPass 2018 introduction to dax
Pass 2018 introduction to daxIke Ellis
 
Pass the Power BI Exam
Pass the Power BI ExamPass the Power BI Exam
Pass the Power BI ExamIke Ellis
 
Slides for PUG 2018 - DAX CALCULATE
Slides for PUG 2018 - DAX CALCULATESlides for PUG 2018 - DAX CALCULATE
Slides for PUG 2018 - DAX CALCULATEIke Ellis
 
Introduction to DAX
Introduction to DAXIntroduction to DAX
Introduction to DAXIke Ellis
 
60 reporting tips in 60 minutes - SQLBits 2018
60 reporting tips in 60 minutes - SQLBits 201860 reporting tips in 60 minutes - SQLBits 2018
60 reporting tips in 60 minutes - SQLBits 2018Ike Ellis
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL DevelopersIke Ellis
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL DevelopersIke Ellis
 
Dive Into Azure Data Lake - PASS 2017
Dive Into Azure Data Lake - PASS 2017Dive Into Azure Data Lake - PASS 2017
Dive Into Azure Data Lake - PASS 2017Ike Ellis
 
A lap around microsofts business intelligence platform
A lap around microsofts business intelligence platformA lap around microsofts business intelligence platform
A lap around microsofts business intelligence platformIke Ellis
 
Survey of the Microsoft Azure Data Landscape
Survey of the Microsoft Azure Data LandscapeSurvey of the Microsoft Azure Data Landscape
Survey of the Microsoft Azure Data LandscapeIke Ellis
 
11 Goals of High Functioning SQL Developers
11 Goals of High Functioning SQL Developers11 Goals of High Functioning SQL Developers
11 Goals of High Functioning SQL DevelopersIke Ellis
 
SQL PASS BAC - 60 reporting tips in 60 minutes
SQL PASS BAC - 60 reporting tips in 60 minutesSQL PASS BAC - 60 reporting tips in 60 minutes
SQL PASS BAC - 60 reporting tips in 60 minutesIke Ellis
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDBIke Ellis
 
Azure DocumentDB 101
Azure DocumentDB 101Azure DocumentDB 101
Azure DocumentDB 101Ike Ellis
 
Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Ike Ellis
 
Hadoop for the Absolute Beginner
Hadoop for the Absolute BeginnerHadoop for the Absolute Beginner
Hadoop for the Absolute BeginnerIke Ellis
 
SQL Pass Architecture SQL Tips & Tricks
SQL Pass Architecture SQL Tips & TricksSQL Pass Architecture SQL Tips & Tricks
SQL Pass Architecture SQL Tips & TricksIke Ellis
 

Mais de Ike Ellis (20)

Storytelling with Data with Power BI
Storytelling with Data with Power BIStorytelling with Data with Power BI
Storytelling with Data with Power BI
 
Storytelling with Data with Power BI.pptx
Storytelling with Data with Power BI.pptxStorytelling with Data with Power BI.pptx
Storytelling with Data with Power BI.pptx
 
Build a modern data platform.pptx
Build a modern data platform.pptxBuild a modern data platform.pptx
Build a modern data platform.pptx
 
Pass 2018 introduction to dax
Pass 2018 introduction to daxPass 2018 introduction to dax
Pass 2018 introduction to dax
 
Pass the Power BI Exam
Pass the Power BI ExamPass the Power BI Exam
Pass the Power BI Exam
 
Slides for PUG 2018 - DAX CALCULATE
Slides for PUG 2018 - DAX CALCULATESlides for PUG 2018 - DAX CALCULATE
Slides for PUG 2018 - DAX CALCULATE
 
Introduction to DAX
Introduction to DAXIntroduction to DAX
Introduction to DAX
 
60 reporting tips in 60 minutes - SQLBits 2018
60 reporting tips in 60 minutes - SQLBits 201860 reporting tips in 60 minutes - SQLBits 2018
60 reporting tips in 60 minutes - SQLBits 2018
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
Dive Into Azure Data Lake - PASS 2017
Dive Into Azure Data Lake - PASS 2017Dive Into Azure Data Lake - PASS 2017
Dive Into Azure Data Lake - PASS 2017
 
A lap around microsofts business intelligence platform
A lap around microsofts business intelligence platformA lap around microsofts business intelligence platform
A lap around microsofts business intelligence platform
 
Survey of the Microsoft Azure Data Landscape
Survey of the Microsoft Azure Data LandscapeSurvey of the Microsoft Azure Data Landscape
Survey of the Microsoft Azure Data Landscape
 
11 Goals of High Functioning SQL Developers
11 Goals of High Functioning SQL Developers11 Goals of High Functioning SQL Developers
11 Goals of High Functioning SQL Developers
 
SQL PASS BAC - 60 reporting tips in 60 minutes
SQL PASS BAC - 60 reporting tips in 60 minutesSQL PASS BAC - 60 reporting tips in 60 minutes
SQL PASS BAC - 60 reporting tips in 60 minutes
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
 
Azure DocumentDB 101
Azure DocumentDB 101Azure DocumentDB 101
Azure DocumentDB 101
 
Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014
 
Hadoop for the Absolute Beginner
Hadoop for the Absolute BeginnerHadoop for the Absolute Beginner
Hadoop for the Absolute Beginner
 
SQL Pass Architecture SQL Tips & Tricks
SQL Pass Architecture SQL Tips & TricksSQL Pass Architecture SQL Tips & Tricks
SQL Pass Architecture SQL Tips & Tricks
 

Último

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Último (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Relational data modeling trends for transactional applications

  • 1. Priorities, Design Patterns, and Thoughts on Data Modeling for Transactions Relational Data Modeling Trends for Transactional Applications Ike Ellis, MVP General Manager Data & AI Practice Solliance, Crafting Bytes
  • 3. everything PASS has to offer Free online webinar events Free 1-day local training events Local user groups around the world Online special interest user groups Business analytics training Get involved Free Online Resources Newsletters PASS.org Explore
  • 4. Ike Ellis General Manager – Data & AI Practice Solliance /ikeellis @ike_ellis www.ikeellis.com • Founder of San Diego Power BI and PowerApps UserGroup • San Diego Tech Immersion Group • MVP since 2011 • Author of Developing Azure Solutions, Power BI MVP Book • Speaker at PASS Summit, SQLBits, DevIntersections, TechEd, Craft
  • 5. Agenda 1. summary of where we’ve been in data modeling 2. current priorities, state of data modeling, and design guidelines 3. practice modeling data
  • 6. through-out this presentation, remember three things • schema controls scalability (performance) and changeability • in the average transactional application, reads outnumber writes by 10 to 1, schema often emphasizes writes, but it should emphasis the reads • schema has to change for the future • change with the business • change with technology
  • 7. schema definition • a representation of a plan or theory in the form of an outline or model • would you begin any major project without a plan or a theory?
  • 9. first normal form • That the data is in a database table. The table stores information in rows and columns where one or more columns, called the primary key, uniquely identify each row. • Each column contains atomic values, and there are not repeating groups of columns. Example: • There is a primary key • Each column only has one piece of data. • Bad Example: Order1Date, Order2Date, Order3Date, etc.
  • 10. second normal form A table is in 2nd Normal Form if: • The table is in 1st normal form, and • All the non-key columns are dependent on the table’s primary key. Example: • you wouldn’t put corporateHeadquartersAddress in the orders table. it’s irrelevant.
  • 11. third normal form A table is in third normal form if: • A table is in 2nd normal form. • It contains only columns that are non-transitively dependent on the primary key Example: • you wouldn’t put employeeFullName in the orders table, even though employeeID is in the orders table
  • 12. EF Codd’s ideas are a bit outdated his assumptions and priorities are not our assumptions and priorities
  • 13. assumption: disks will always be expensive my first hard drive was 10MB and cost my dad $1,400 in 1984
  • 14. results • this means that we need normalization to decrease repeating data and thus decrease the overall size of the data on the disk • this means that there would be a benefit to over- normalization, ie a person table
  • 15. results of over-normalization: terrible performance with joins • over-normalization has several drawbacks • too many joins in a query will always have bad performance • over-normalized data models are too difficult for new developers or contractors to learn • the total number of tables explodes on us. 300 tables per database is very common in a transactional model • over-normalization is too steep a learning curve to figure out how to delete or insert records • data has to be constantly aggregated to show results if we avoid repeating data
  • 16. assumption: the database is the center of all applications
  • 17. results • one application can’t release changes to the database without testing all applications • this greatly increased the testing surface area, and delays product releases
  • 18. results: database as an integration point application 1 uses the database to communicate to application 2
  • 19. results: database as a messaging service • application1 tells application2 what to do by using the database • multiple columns in a table that have status date tells you there might be a queue • deletes on a queue are logged operations. takes a lot of time and locks the table between applications
  • 20. results: applications affect the performance of other applications high load on app1 is now affecting the performance of app2
  • 21. results: in order to upgrade app1, you have to upgrade app2 app1 might need money and better performance. we have to pay to upgrade app2 as a result.
  • 22. assumption: because the database is shared, it’s best to have it be responsible for data accuracy and consistency data is only stored one time between all applications. the database is in charge of the data being accurate.
  • 23. result: business logic begins to go in the database • it’s the one place where business logic is guaranteed to be enforced • this loads the cpu of the database • hurts sql server licensing • hurts database scalability • incentivizes the use of stored procedures and triggers to consolidate business logic • both things are difficult to test, difficult to refactor, difficult to read
  • 24. NOW LET’S TALK ABOUT CURRENT DESIGN PRIORITIES (CDP)
  • 25. cdp#1: the data needs to be consistent and high quality • choose the correct data type • allow for nulls when the value is unknown • when data is wrong, create a correction plan and fix the bug • build automated tests around data quality
  • 26. cdp #2: schema should be able to change • business is complaining that the database is not changing as fast as the business • business changes taxonomy. they change student to learner. they change eligibility to enrollment. if the database doesn’t change, this creates bugs, confusion, and ambiguity • technology changes • new index structures, new table structures, new database technology, new versions of existing technology • very fast pace of change • moving to the cloud
  • 27. cdp#2: the microservices method ~ ways to keep schema flexible one application to one database No Excel No ETL No other apps No SSRS, Power BI
  • 28. cdp#2: consolidate database logic in a data tier layer data tier for all data access
  • 29. cdp#2: use an ORM, views, codegen, swagger data tier for all data access
  • 30. cdp#2: application integration is through apis, messaging, and eventing
  • 31. cdp #3: optimize for reads • the application will be judged based on read-speed, not write speed. users expect writes to take a long time. schema should focus on the reads
  • 34. cdp#3: optimize for reads Customers Table CustomerID CustomerName Address TotalOrderAmount AllOpenOrdersJSON Orders Table OrderID OrderDate Qty UnitPrice TotalPrice
  • 35. cdp#3: reads ~ index table Create three tables • Customers • Orders • CustomerOpenOrders
  • 36. cdp#4: make the schema easy and discoverable • delete columns no one is using • delete tables no one is using • avoid acronyms in naming • avoid jargon • avoid spaces • remove unnecessary tables • name the tables after business names
  • 37. cdp#5: it’s the network, not the disk • the network is the real problem • tough to upgrade • shared by everything • latency • hard to optimize • create schema for the network • minimize round-trips • only get the columns and rows that you need • keep transactions small • it’s ok to say no to users
  • 38. cdp#5: optimize for network mobile carrier bandwidth load times and too much network affect SEO and bounce rates
  • 39. cdp #5: network ~ data locality
  • 40. cdp #6: raw performance • think of de-normalization as just another index • proper schema can increase performance by 1,000 times • limit joins • think of the indexing
  • 41. cdp #7: what can we remove that isn’t 100% necessary? • audit trails: different database • blobs: azure blob storage • temp data: different database • staging data: different database, azure blob storage
  • 42. cdp #8: plan for partitioning • choose a partition key • make partition key available in every applicable table • shouldn’t have to join to a different table to get the partition key • shouldn’t have to hunt for the partition key • keep lookup tables small or in their own database • use api for lookup with caching backend as their own domain
  • 43. cqrs command query segregation responsibility app takes your order or request publish app responds to user “we’ve received your request” ack pull function takes request and transforms the data into data repo optimized for read and cache persist data store
  • 44. Design Practice!: #1 Blog • Comments • Posts • Tags • Archives
  • 45. Design Practice #2: Online Store • Product Catalog • Shopping Cart • Orders • Past Orders Screen • Phone number field? • Order Total by Customer
  • 46. Design Practice #3: Refrigeration Trucks
  • 47. Session Evaluations Submit by 5pm Friday, November 15th to win prizes. Download the GuideBook App and search: PASS Summit 2019 Follow the QR code link on session signage Go to PASSsummit.com 3 W A Y S T O A C C E S S
  • 48. Ike Ellis Twitter: @ike_ellis YouTube: https://www.youtube.com/user/IkeEllisData Solliance Microsoft MVP www.solliance.net www.craftingbytes.com www.ikeellis.com