Author: way0utwest

  • 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

    Listen to the podcast at Libsyn, Spotify, or iTunes.

    Note, podcasts are only available for a limited time online.

  • A Quick Look at Redgate Data Modeler

    Redgate acquired a data modeling tool from Vertabelo recently and I wanted to explore how it works. This is a short look at this tool and how it might be useful in working with databases.

    This is part of a series on Redgate Data Modeler.

    A Simple Layout

    The tool is a cloud tool, designed to work in a browser. This negates the need to install anything, but this also means you need to be connected to the Internet to use it. Once you get past the licensing (I won’t show this), you have a basic screen that looks like this:

    2025-11_0169

    There isn’t much to see and this doesn’t feel that intuitive to me, but that’s because I’m not familiar with it. Most tools have some sort of modeling surface to start, but here we have a list of models, of which I have none. That is because this is designed to be used by multiple people across multiple platforms with shared designs. Ideally that’s what many of us want, not a set of project files we have to share, version, copy, etc.

    The icons at the top have two “new” ones at the left, some greyed out ones since I don’t have models, and then some layout ones on the right that control the left, top, and right panes/blades.

    If I right click in the middle, I see two options, which correspond to the two icons on the left: new folder or new document.

    2025-11_0170

    A folder makes sense, as these are for organization. The documents make less sense, as I expected just a modeling diagram. Instead, if I pick this I get three choices: logical model, physical model, and sql script. I’ll choose logical model and go from there.

    2025-11_0206

    Logical Models

    A logical database model is a kind of an outline of your entities and the domain of data you want to capture. When I click this button, I first get asked for a name, which makes sense.

    2025-11_0207

    Then I get a blank canvas that looks like the one below. I have my entities on the left, properties on the write and a canvas with some icons. There’s also a toolbar.

    2025-11_0208

    The icons above the canvas are where you can add entities. You can’t import anything here, which I don’t like, but that was never built. I get that most of us might go from Logical to Physical to SQL, but if I want to get a handle on existing databases, I have to add everything myself.

    Let me start with a new entity. I’ll click this icon.

    2025-11_0209

    Once I do this, I get nothing. The icon is selected, and I need to click on the canvas, and I’ll see an entity. Note that the left shows this as an item with errors, which are reflected on the right in Entity Issues.

    2025-11_0211

    The error is I need an attribute. I can also see the name above on the right, where I can set the name, a comment, and add attributes. I’ll start with a few items that matter for SQL Server Central.

    When I add a title,  want to pick a type. In the attribute table, I can select a gear icon (cog). This is next to the datatype field.

    2025-11_line0002

    This brings up a list of types I can choose. When I choose varchar, I get a box at the top for the length.

    2025-11_line0001

    Once I have filled out what I need, I can see my canvas image is updated with the attributes. Notice that I’ve marked the three attritibutes as required (the M column) and the ArticleID as the PK (the PI column).

    2025-11_line0004

    I’ll add a second entity, that I want to relate. Once I’ve added it, I see the icon at the top for a 1 to many relationship.

    2025-11_0085

    If I click this, I can then click on article and drag to ArticleSchedule. That gives me a visual linkage between the two items.

    2025-11_0086

    If I continue and add a few more entities, I can start to see a nice relationship for my model. I’ve added some many-many relationships, which you can see are different than the one-many.

    2025-11_0087

    Saving the Image

    Once I want, I can save this as an image. There is also the option to share with others in my org, or export a PDF.

    2025-11_0089

    Once I click this, I choose the type and if I’m doing part of the model or the whole thing.

    2025-11_0090

    I click Generate and get a link to download my image.

    2025-11_0091

    When I download it and open it, I see this. An image of just my entities.

    2025-11_0092

    I can also generate documentation. When I click this icon, I get a choice of formats.

    2025-11_0093

    When I generate that, then I open it and see a document. It’s here if you want to look at it, but here’s an image of one page.

    2025-11_0094

    If I click on the Data Modeler icon in the upper left, I go back to the main screen with my model listed in the middle. I can see this is a logical model based on the icon.

    Not a bad little tool to start modeling, though likely for most of the things I do, I’d live in a Physical model with the ability to import from a SQL Script. I’ll look at those features in another post, but this has shown you a quick look at getting started and creating a logical model.

    Give Redgate Data Modeler a try and see if it helps you and your team get a handle on your database.

  • An Unexciting Exciting Release

    SQL Server 2025 was released this week. The announcement came at Ignite and the PASS Data Community Summit with keynotes on Wednesday and Thursday, respectively. While there are some things to look forward to in the release (What’s New) and some highlights from T-SQL Tuesday this week, it seems that this release wasn’t a very exciting one.

    On one hand, I blame all the Microsoft Fabric focus, which seems to distract from the core product that powers the databases at many organizations.  The SQL Server blog from Microsoft has had relatively few posts this year, highlighting a few things. The Fabric blog gets more posts, which is something I’ve seen at Database Weekly as well. As I curate the content during my week, I find a lot more Fabric-focused content than SQL Server-specific posts. That contributes to a lack of excitement for a new version of SQL Server.

    On the other hand, SQL Server is a very mature product and most of us use it daily, depend on it, and feel comfortable with the way it works. While some of us want changes, bugs fixed or features enhanced, for the most part, I find many clients expect it to just work and don’t have time to refactor code to use new features. A few also are nervous about using features until they’ve been in a few versions, as we sometimes see features released with limited functionality and few enhancements (*cough* these tables *cough* or these ones).

    At the same time, the What’s New page has a lot of stuff listed. If not more than SQL Server 2022 and 2019, it’s in more categories. Maybe it’s just that the documentation writers are more verbose? Perhaps, but I see lots of things I hadn’t noticed before in announcements. RegEx and the AI capabilities have dominated a lot of the news/blogs/etc., but the Change event streaming, native support for parquet/Delta, AG control flow, backup on secondaries, ADR for tempdb, and more are there. Plus, quite a few security enhancements to let us work with managed identities.

    When I really look at the product, there are things to be excited about, probably at least a couple for most people. At the same time, it has seemed like many people, including me, aren’t necessarily overly excited about upgrading systems to a new version when much of our code won’t change.

    Maybe because no one lets us, or gives us time to, change code to use new features.

    Steve Jones

    Listen to the podcast at Libsyn, Spotify, or iTunes.

    Note, podcasts are only available for a limited time online.

  • A New Word: Dead Reckoning

    dead reckoning– v. intr. finding yourself bothered by somebody’s death more than you would have expected, even if they were only an abstract presence in your life, like a lighthouse in the distance that suddenly goes dark, leaving you with one less landmark to navigate by.

    I hope many of you don’t deal with death too often, though as you age, this is one of the worst things about living longer. You see more people die.

    It sucks. Every time I update sqlmemorial.org, I’m sad.

    It’s been surprising to me how often I feel dead reckoning, sometimes after someone I don’t even know personally dies. Prince affected me that way, and every time I hear a song from him I feel more sadness and loss than I would have expected.

    I hope you don’t experience this a lot, but the more you live life and engage with others, the more likely it this is something with which you have to cope.

    From the Dictionary of Obscure Sorrows