You learned to data model and you are eager to get started. You have your Normal Forms poster on your cube wall and your data modeling tool templates ready to go. You are ready...but...are you sure you aren't introducing issues that will later cost you a lot of pain for the business? Or for your technical teammates?
In this session, we look at the workarounds, technical debt and clever designs that can cause you grief when you least expect it. We will also include perfectly fine features that can haunt you later. We will discuss how these things happen and give you tools to identify the ones that cause the most pain and lead to a lot of extra work.
Learn how to keep your job, have happier users and get more rest.
TeamStation AI System Report LATAM IT Salaries 2024
Heart of Data Modeling Webinar: The Ticking Timebombs in Your Data Model
1. Ticking Timebombs in Your Data Models
Thomas LaRock, Solarwinds
Karen Lopez, InfoAdvisors
Know them, fix them, prevent them
2. Karen López
Karen has 20+ years of data and information architecture
experience on large, multi-project programs.
She is a frequent speaker on data modeling, data-driven
methodologies and pattern data models.
She wants you to love your data.
3. A Little About Me…
Thomas has over 15 years experience in roles including
programmer, developer, analyst, and DBA.
He is a frequent speaker, published author, and avid
blogger on data related technologies.
He enjoys working with data, probably too much to be
healthy, really.
4. Yes, Please do Tweet/Share today’s event
@datachick #heartdata
12. Identities
Issue: How people use them
AD-322-S
255
32,767
9,223,372,036,854,775,807
2,147,483,647
IDENTITY [ (seed , increment) ]
13. What could go wrong?
Message: Arithmetic
overflow error converting
IDENTITY to data type int.
Uncommittable transaction
is detected at the end of
the batch. The transaction
is rolled back.
18. How do you fix it if it’s already gone off?
RESTART
GAPS
Not UNIQUE?
Change DataType
19. RESTART
ALTER SEQUENCE [schema_name. ] sequence_name
[ RESTART [ WITH <constant> ] ]
[ INCREMENT BY <constant> ]
[ { MINVALUE <constant> } | { NO MINVALUE } ] [ {
MAXVALUE <constant> } | { NO MAXVALUE } ]
[ CYCLE | { NO CYCLE } ] [ { CACHE [ <constant> ] }
| { NO CACHE } ]
[ ; ]
AD-322-S
20. How do you prevent it?
Proper Design
Do the math
SEED Value
Increment Value
Use another feature
Monitor
Max allowable value
Max current value
Gaps
Predict* countdown
timer
Team Data Script
Know your hottest tables
Prioritize
21. Datatypes
•Issue: Are you real-world proof?
AD-322-S
CREATE TABLE dbo.customer
(CustomerID int PRIMARY KEY NOT
NULL,
EmailAddress varchar(25) NULL)
22. What could go wrong?
Wrong datatype
ZIPCode
López
Account Number
Wrong Length/Precision
karenmariadeguadalupeannlopezymartinez@torontolab.contractor.restricted.reallylongdomainnameherereal
lyreally.com
23. How do you fix it if it’s already gone off?
ALTER Column
Extended Alter
24. How do you prevent it?
Proper Design
Do the math
Do research
User Engagement
Go long
Data Profiling
Legacy data
Statistical analysis
Edge cases
Get out a little
34. Other Time Bombs
• Collations
• Running out of storage space
• Bad Backups (ergo, no restores)
• Mutually dependent tables
• Using deprecated features in new designs
• Accepting a “just for now server”
• Triggers Firing
• Real world scaling (Dev vs. Prod)
• Linked Servers & Nested Views
• Bucket Columns (Bad DEV!)
• VM Snapshots
• Wrong SQL Server License…or “over
installed”
• Installing external script without
understanding license.
• Server Settings (whole other hour!)
• Faux NULLs
• GenerationNEXT installation process
• Multi-tenant DB Design
• Clustering on Unique Key
• GUIDs when SEQUENCES might do
• SELECT *
• Use of ORMs (generated DML)
35. Finally…
These are perfectly fine design
decisions, but..
• Fully implemented
• Monitored and managed
• Fully understood
• Emergency response plans needed
• Sometimes a paper clip and a stick of gum is
not enough (Sorry McGuyver)
AD-322-S
36. Thank you, you were great.
Let’s do this next month!
Karen Lopez @datachick
#heartdata