Problems displaying this newsletter? View online.
SQL Server Central
Featured Contents
Question of the Day
Ad for State of Database Landscape survey
The Voice of the DBA
 

Is Data Modeling Common?

Recently, I had a few questions on database modeling. One was posted in the SQL Server Central forums, and a customer asked about ERD tooling on the same day. This came shortly after Redgate acquired Vertabelo (now Redgate Data Modeler). This stood out to me as very rarely in the last few years have I found people consulting and updating a diagram while performing database development.

When I started as a developer and needed to update a database, I had to first update a diagram that was stored in ErWin. We had a dedicated computer (back when we went to an office every day) where the software was run and any developer could us this to update the diagram with proposed changes. Back then, we had to get another peer to sign off on changes before making them, and the peer was supposed to go check the diagram for the change before approving it. That's only if they thought your change made sense and conformed to our standards (naming, design, etc.).

Over the last decade or so, it seems there haven't been a lot of common tools for building diagrams in the Microsoft space. The SSMS Database Diagrams haven't been the easiest to use and I rarely see people consult it. I loved ER/Studio, but it and ErWin were very expensive and outside the budget for most groups. There have been a lot of smaller online tools, but I don't see a lot of consensus for which ones people like. There are  DbSchema and SqlDBM, among others. I see various blogs, like this one, that recommend different tools, but the uptake seems to be low in many organizations. I hope Redgate can make data modeling more common with Redgate Data Modeler (coming soon to the Toolbelt).

My question for you is do you still maintain and use database diagrams for development? Or is this a somewhat lost art? Is it not necessary or useful for you? Do you wish your development teams did this to ensure a more cohesive and consistent model?

I used to like having a diagram because it a) forced me to slow down and rethink things a bit as I made updates and b) let me see where there were dependencies. One of the reasons SQL Dependency Tracker exists is that I asked Redgate to extract the dependency tree from SQL Compare to allow me to see it separately. This would allow me to know what other objects might need to be changed if I refactored ObjectA. I found that to be a great "picklist" of things to check during database development.

I don't know how many people these days perform data modeling, but I do know a lot who don't spend much time thinking about the changes they make. I fear data modeling has become a bit of a lost art, which saddens me.

Steve Jones - SSC Editor

Join the debate, and respond to today's editorial on the forums

Ad for State of Database Landscape survey
 
 Featured Contents
SQLServerCentral Article

Filtered Indexes: The Developer’s Secret Weapon in SQL Server

Chandan Shukla from SQLServerCentral

Learn about filtered indexes in SQL Server, how they work, and how they can help improve performance.

External Article

The Version Store Won’t Clear If ANY Database Has Open Transactions.

Additional Articles from Brent Ozar Blog

Short story: what the title says.

Blog Post

From the SQL Server Central Blogs - Finding and Killing Blockers with Redgate AI Tech

Steve Jones - SSC Editor from The Voice of the DBA

Redgate has a research arm, called the Foundry, that has been experimenting with AIs and DBA tasks. This post shows how GenAI tech can be helpful to DBAs in...

Blog Post

From the SQL Server Central Blogs - Check Power BI Bookmarks with Semantic Link Labs

Meagan Longoria from Data Savvy

Have you ever added a visual to a Power BI report page and published the updated report only to realize you forgot to adjust a related bookmark? It’s very...

T-SQL Fundamentals

Site Owners from SQLServerCentral

For anyone else who needs to write queries or develop T-SQL code for SQL Server, Azure SQL Database, or Azure SQL Managed Instance

 

 Question of the Day

Today's question (by Steve Jones - SSC Editor):

 

Getting The Database Name

I run this code to connect to SQL Server 2022 from the command line.
sqlcmd -S localhost -E
At the command line, I run these two commands:
SELECT ORIGINAL_DB_NAME()
GO
What is returned?

Think you know the answer? Click here, and find out if you are right.

 

 

 Yesterday's Question of the Day (by Steve Jones - SSC Editor)

Getting the Schema for Tables

What happens when I run this on SQL Server 2022 in the AdventureWorks2022 database?

SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.Person')) AS [Object Definition]; 
GO 

Answer: I get NULL

Explanation: Null is returned for tables. The object definition isn't stored. Ref: OBJECT_DEFINITION - https://learn.microsoft.com/en-us/sql/t-sql/functions/object-definition-transact-sql?view=sql-server-ver17

Discuss this question and answer on the forums

 

 

 

Database Pros Who Need Your Help

Here's a few of the new posts today on the forums. To see more, visit the forums.


SQL Server 2019 - Administration
Columnstore index question - Hi experts, I’ve been going through several articles and videos about Columnstore indexes, but I haven’t been able to find clear answers—so I wanted to ask here. I have a table (a heap, with no nonclustered indexes either) that contains about 110 million records. There’s a job that runs once a week with this query(with […]
SQL Server 2019 - Development
Need to overload tempdb - Yes, you read that title correctly. I have a somewhat hilarious problem. We have some queries that are overloading tempdb which fills up the drive and brings everything to a halt. This is a reporting server, not OLTP, so we've been given permission from the application owner to kill all queries that fill up the […]
Analysis Services
Member was not found in the cube when the string - Hey, I've not done a cube for many years but I find myself supporting a colleague troubleshoot why his Cube "Timesheet" isn't processing. The error I'm getting is: The '[2025-11-11 09:00:00]' member was not found in the cube when the string, [Instruction Date].[By Calendar].[Date].[2025-11-11 09:00:00], was parsed. On the face of it I expected the […]
Editorials
Being Mindful of Design Time - Comments posted to this topic are about the item Being Mindful of Design Time
Internal Staff Growth - Comments posted to this topic are about the item Internal Staff Growth.
Do You Really Need HA? - Comments posted to this topic are about the item Do You Really Need HA?
SQLServerCentral.com Test Forum
Trying a new post to see what happens - is this visible? select @@version
Administration
Cannot get KB959420 - Hi, we lost our sever sql2000 To restore database to a new one we need fix KB959420 because system dbs require same version. I cannot find KB959420  anywhere Can anyone help me? Thanks Fabio
Article Discussions by Author
Getting the Object Code - Comments posted to this topic are about the item Getting the Object Code
T-SQL in SQL Server 2025: Concatenating Strings - Comments posted to this topic are about the item T-SQL in SQL Server 2025: Concatenating Strings
Identify a Slipstream Installation - Comments posted to this topic are about the item Identify a Slipstream Installation
Implementing PostgreSQL with Python for Real-Time Logging and Monitoring - Comments posted to this topic are about the item Implementing PostgreSQL with Python for Real-Time Logging and Monitoring
SQL Server 2025 Unveiled: The AI-Ready Enterprise Database with Microsoft Fabric Integration - Comments posted to this topic are about the item SQL Server 2025 Unveiled: The AI-Ready Enterprise Database with Microsoft Fabric Integration
The New Database CheckDB - Comments posted to this topic are about the item The New Database CheckDB
SQL Server 2022 - Administration
Transactional Replication - Recently stood up a 2022 Enterprise server. Have 8 publications with subscriptions on a SQL 2019 server for reporting purposes. 7 of the publications work as expected, the 8th does the snapshot, but fails when populating the subscriber. It fails on the same table/file every time and moves on to the next file if I […]
 

 

RSS FeedTwitter

This email has been sent to {email}. To be removed from this list, please click here. If you have any problems leaving the list, please contact the webmaster@sqlservercentral.com. This newsletter was sent to you because you signed up at SQLServerCentral.com.
©2019 Redgate Software Ltd, Newnham House, Cambridge Business Park, Cambridge, CB4 0WZ, United Kingdom. All rights reserved.
webmaster@sqlservercentral.com

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -