Author: way0utwest

  • Reverse Engineering a Physical Model Diagram

    I recently wrote about a logical diagram with Redgate Data Modeler. That was interesting, but creating all the objects is a pain. I decided to try creating a physical diagram from an existing database. This post looks at the experience.

    This is part of a series of posts on Redgate Data Modeler.

    Getting Started

    As with the logical model, I right click and choose New document.

    Then I get a list of options. I’ll choose the middle one, Physical Model. This is what I mostly need to work with an existing system. Since I don’t often move models from one platform to the other, a physical diagram can work well for me.

    2025-11_0143

    Once I click next, I get a list of platforms, and I need to enter a name. I’ve done that. Notice that when I select SQL Server, I can alter the drop down for different versions of SQL Server.

    2025-11_0145

    Below this, I see a source box, and a file picker.

    2025-11_0146

    I need a file.

    I’ll go to SSMS and right click my database. I’ll find the Generate Scripts task, as shown below.

    2025-11_0147

    I go through the wizard and mostly pick defaults.

    2025-11_0183

    I do script to one file, not separate ones. I choose all objects.

    2025-11_0184

    Back to Data Modeler with the file. I select this and upload it and see…an error.

    2025-11_0185

    When I open the script, I see lots of non-database stuff.

    2025-11_0186

    I’ll delete this stuff and also a bit at the bottom. I rename this to Westwind.sql, which is what I am importing. Then I was able to import the file and when I clicked “Start modeling”, I ended up with this:

    2025-11_0215

    Redgate Data Modeler (RDM) has detected quite a few relationships. You can see them in the diagram for the explicit ones defined. If I click one, such as the Order to Order Details item, I can see on the right that this is for OrderID in both tables..

    2025-11_0216

    One thing that threw me slightly was two Employees tables. I was wondering what was going on here, but when I clicked the lower one and looked through properties, I can see that this is for a different schema. I wish this were more visible, but it did get detected.

    2025-11_0217

    Cleaning up the Design

    One of the things I like is that I can set areas in the model. This lets me organize things and even convey information to developers and others that work with the database.

    At the top left, I have a series of icons. The last one on the right is the New Area icon. I’ll click this.

    2025-11_0218

    I can now draw an “area” somewhere. Notice the right when I do this. I have properties for this area.

    2025-11_0219

    I’ll add a name and change the color, which gives me way to easily see this area in my diagram. I’ll also drag in the Auditing.Employees table, as this is what I want people to know.

    2025-11_0220

    I can select this and move it (look at the video) and then I see this as a part of my diagram, but clearly separate from other parts. Developers can learn the light red is the auditing schema, which is separate from the rest of the diagram.

    2025-11_0221

    I can add other areas, not just for schemas, but for separating out parts of my database. Often I have a series of entities that I care about, or want to cluster together, and having areas with colors lets me separate these out.

    2025-11_0222

    I might run out of colors in a large database, but I could use lots of pale blues or grays to separate out areas, each of which has a name. That can be helpful to reduce the complexity of the model.

    Adding a New Table

    I can also add a new table if I want. One of the icons at the top is for new tables.

    2025-11_0224

    When I click in the model, a new table appears. The right opens up the properties with a default name (table14). I can change this and add the columns I need.

    2025-11_0225

    Once I’ve finished, I can add a relationship. There is an icon for this.

    2025-11_0227

    I’ll click this and then click and drag from Products to Discount. This gives me a new column in Discount by default, called Products_ProductID. Not a bad name, but in general I want a cleaner name. I’ll edit the relationship to use ProductID in both tables and delete the other column from the model.

    2025-11_0226

    Modeling with an image is a good way to start to visualize how things are setup and where you might be normalizing, or denormalizing data. I also want to know just how many things are in here and what is related to what.

    Moving Forward

    There are more things that can be done with tools like that to help ensure our databases are well designed and perform well. I’ve submitted feedback to the team and asked for some enhancements.

    One of the things I might want to do from here is update my dev db from the model. I’ll show that in a future post.

    For now, I like the idea of getting a model started from my SQL script, though clearly I need a clean script. I’ll do more testing with other scripts for both forward and reverse engineering.

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

  • What’s Your Theme Music?

    A few weeks ago, I was at the Small Data SF 2025 Conference in San Francisco. I attended the inaugural event last year and decided to go back again. It’s a great chance to hear people thinking about data and its impact on the world in a different way, recognizing that building lager and larger systems isn’t always possible. Or a good idea. We might find that smaller systems fit well, especially smaller datasets, which can both serve our purposes and create agility. The manifesto of the conference says that “We champion the power of Small Data and smart AI, believing that less is truly more.” There’s a bit more, but that’s the idea.

    The format for the conference is a little different, with 3-5 talks in a row, all on one stage, each about 25 minutes long. These are talks with or without slides, but no live demos, just speaking and expressing a point of view. What I found fun was that each person picked their own music to play as they walked onto stage (or ran/danced in the case of Glauber from Turso). It was a bit of fun, with the DJ letting the music play as the person made their way to the front and were welcomed by the audience. I heard rock, metal, hip hop, and more.

    It’s Friday during the week of the PASS Data Community Summit, and I had the chance to deliver part of the keynote on Wednesday. I’ve done this before, and no one has every asked me if I wanted a pick a piece of music, but it got me thinking. What would I pick?

    For a fun Friday during the holiday season, think about if you were going to give a presentation. Maybe to your team, maybe other groups in the company, or (for some of you) on a conference stage. What music would you choose to accompany your walk into the bright lights? Imagine you get between 10 and 30 seconds.

    Have some fun, and remember this is a professional setting. My first thought was something from the Notorious BIG, but I realized I’d have to walk fast as most of his lyrics wouldn’t be appropriate. I’m not sure, but I lean towards one of these: one, two, three, or four.

    Steve Jones

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

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

  • Done is Better than Good

    Mary Spender is a musician in the UK who I follow and hope to see live one day. She works hard producing content about music, that business, and, of course, songs. Recently she had a little essay on Instagram where talked about creative time and focus. In it she referenced Elizabeth Gilbert saying “done is better than good.”

    My initial reaction was “that’s right.”

    Then I thought about software, and poor queries impacting database performance, and thought, “No, that’s not right.” My next reaction was to think maybe it’s “done is better than great”. I do see plenty of engineers trying to build great software. Code that would impress their peers or their former professors. Or maybe their future self.

    Then I thought, no, Elizabeth is right. If things don’t get done, then what’s the point?

    At the same time, I think that “done” and “good” (or great) aren’t mutually exclusive. We can get things done and make them great, which is something to strive for. We can also get good things done.

    Sometimes.

    Sometimes we don’t have that luxury of time, for various reasons. If I had to make a trade, I push for good (or quality) as much as possible if the delay isn’t substantial. If it is, then done is likely the choice I’d make. I do try to return and refactor, improve, etc. to raise the quality over time, but I recognize that sometimes getting something done is important. Certainly, on the ranch, I need to fix things to get by, with the aim of doing a better job later. I have mixed success at returning to improve a patch with a better fix later, but so far, that’s worked well. I’d say the same thing has happened while building software or managing systems, with enough success to be comfortable with my choices.

    What about you? What choices have you had to make about being done over delivering something that’s good? Or maybe great.

    Steve Jones

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

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

  • The PASS Data Community Summit 2025 Recap

    It’s Monday. I’ve been home since Fri night, but with a busy weekend, I’m still recovering from the PASS Data Community Summit. There’s a nice wrap from the crew, which you can watch. You might spot yourself in there if you attended.

    This is a short post of some memories and photos from the event. As usual, I wish I had more. One sad thing was Chris Yates not coming due to other commitments, but I loved seeing him on a sign in the convention center. I sent him this shot.

    2025-11_0123

    Every year I find myself either over-committed or under-committed. The latter is great, because I can see more people. The former is overwhelming and tiring. This year was the “over” year, where I had enough things scheduled that I didn’t have enough time to get to sessions or hang out and see people.

    That being said, it was great to see Ryan Booz at the event. We’ve had a few years of traveling around together while working a Redgate. He left this year to find a job that better fit his life, and I miss seeing him regularly. It was good to take a little time and catchup with him.

    2025-11_0121

    My wife came up for Mon/Tue/Wed to get a break from work and see a friend in Seattle. Monday was keynote rehearsal for me, and spending some time with my wife that afternoon and evening. I also managed my one workout for the week on the hotel Pelaton. I had aimed for 3-4, but got too busy, and was too tired. I did run into a few friends wandering around the convention center.

    2025-11_0128

    Tuesday was breakfast with my wife and then heading over for a long keynote rehearsal. We had a few last minute changes last month and I was asked to help with the keynote. I’ve been busy prepping and working with our marketing and artist teams to get things ready. We had a lot of fun, but it’s been a lot of work and we had last minute updates to review on Tuesday.

    2025-11_0129

    Redgate brought in a number of sales engineers and support staffers for training and to meet customers at the conference. We’ve re-dedicated ourselves to working closely with customers, getting feedback, listening to their concerns, challenges, and critiques of our products. David runs our support org in the US and I rarely see him. We used to travel to all sorts of events, so it was great to see him last week.

    2025-11_0135

    My wife came briefly, but it was a late night leaving. This was my view leaving, with almost the same view coming back the next morning.

    2025-11_0138

    Wednesday was an early start. At the convention center just before 7 for the Redgate Keynote. Well, for makeup, mics, and waiting. The event has used the same crews for makeup and sound for a number of years. I’ve gotten to know the staff and enjoy catching up with them. I got to watch Grant and Laura get made up before my turn.

    2025-11_0136

    This was a weird experience for me the first time, but I’m used to it now. Fortunately, I cover my balding head with a hat, so I’m only in the chair for a few minutes. The one thing I have to remember is to finish my coffee first, so I don’t smear my lipstick (gloss).

    2025-11_0137

    It’s a lot of waiting for the event to begin, but once the keynote started, it seems to go fast. I was glad that there were 3 of us, and I didn’t have a huge part. I am used to being on stage, so standing to the side while Kellyn and Laura presented their parts was east. I did take a moment to snap a short of the Redgate Product and Engineering leaders on the front row.

    2025-11_0125

    Wednesday was a little time at the booth, where I saw more friends, but I had a session in the afternoon and I had a rehearsal scheduled with the Microsoft presenters for their keynote.

    2025-11_0124

    It’s not all work, as I got to chat with Bob Ward and Conor Cunningham. I’ve known those gentlemen a number of years and relish the opportunity to catch up with them. Again, a lot of waiting and standing before I did my part and left them to rehearse.

    2025-11_0139

    There are some beautiful views from the Summit building and I grabbed one here on the way to the talk. Last year ago I was very busy and lay down here on Friday afternoon for a break before the closing. Someone snapped a picture, and I was hoping that I wouldn’t end up here again. (I didn’t).

    2025-11_0110

    After my presentation, I ran into Thomas LeBlanc, a longtime friend from Baton Rouge. I’m not a big college football fan, but I usually check to see how Thomas’ LSU Tigers do every week and sometimes send a note.

    2025-11_0126

    Wednesday night was the expo reception, which was nice. I had lots of chats with different people, got a few pictures with them, and enjoyed the event. Afterwards, I finally got back to see my wife and got to spend a bit of time with her and a friend. It was a later night than I wanted, but it’s hard to cut things too short when I’m having a good time.

    Thursday was the Microsoft keynote, and again, an early call. 7am for more makeup, mics, and misc time with Microsoft staff. I opened the day with a short summary and reminders, and also a memory of Andrew Clarke. I added this slide to my deck, and I choked up a bit when I got to it.

    2025-11_0140

    I knew Andrew for many years, and lunch (with a beer) was a part of many of my trips to the Redgate office in Cambridge. I miss his wit, thoughts, and company. I referenced a great article from our founder in the keynote, which I recommend reading.

    2025-11_0127

    I chatted backstage a bit, which always seems weird to me. I am often in public, and having a green room backstage is always a little odd. Still, it’s nice they have coffee, and not nice there as pasties. Fortunately, I avoided the latter.

    2025-11_0141

    Once again, I was on the move for a livestream that Redgate wanted to do for our Test Data Manager product. We had a spare room where we setup and got ready to record. A lot of waiting, though at least I got to sit down a bit.

    I also had to fit in a recording for the Simple Talks podcast. I have been trying to schedule these when I see people, so I’m working around their schedules.

    This was fun, though packing up and getting the equipment secured was a lot. I had planned on getting back to the hotel for a workout before our Thursday night party, but got hung up chatting with a few Redgate co-workers and only had time to sit down in my room (alone Sad smile ) for about 20 minutes before heading out to the Redgate party.

    2025-11_0115

    It was great to catch up with various Redgate people and customers at this event. I was busy and didn’t take many pix, but I enjoyed this.

    Friday morning I lightly slept in. I didn’t get to the convention center until 830a.  I missed the morning keynote, though I will watch later. I had more recordings scheduled, so I setup my room and got ready to knock out 4 more sessions.

    2025-11_0112

    I ate lunch with Tim Mitchell and had a fun chat with a few attendees that sat with us. That’s one of the things I missed this year, being a little busy and skipping lunch or just grabbing something on my way to something else.

    I did take a few minutes to check on Ike Ellis, who is a friend and had to cancel his trip and session at the Summit. Ike has had a few health issues, and had a minor accident this week. He called me, so I could help coordinate and inform whoever needed to know. If you know Ike, send him some well wishes.

    2025-11_0142

    After lunch, the expo hall closed and I had time to hit one session. I went to see Atte, one of the New Stars of Data speakers. I love that the Summit reserves some spaces for new speakers, and with 50% first timers, this is a even better. We have speakers and attendees coming for a new experience they’ll remember forever.

    I had a 7pm flight and we have a 330p wrap for the event with staff and Redgaters. It was a quiet, but fun time seeing a number of people I work with and don’t see often. There are also some others that I do see throughout the year. I had a drink, a few conversations, and then grabbed a ride to the airport with a few coworkers for my (late) flight home.

    An amazing time, though never enough time. Even when waking up at 615a to get to volleyball practice, I still was thinking about all the people I’d seen during the week and remembering how much I enjoy spending time with the community.

    Looking forward to next year, and hopefully, a few less commitments so I can spend more time talking with the community.