It’s Thanksgiving here in the U.S. so I thought I’d share a little about what I’m thankful for this year.Continue reading “Giving Thanks”
Looking back at the test table I created for the T-SQL Tuesday post, I realized that I have definitely started to have a checklist of what I like to see when I initially create tables or review changes.
So what’s on my list?
As I’m still getting things set up (end of May\early June is always a crazy busy time of year for me so I need a little more time to get everything in place), I want to start think about what we’re about to design. More importantly, what type of database are we designing?
To answer this, we need to make sure we understand what this database would be used and how it would be used. Once that’s established, we can start to define the particulars of this project.
Before I can jump in and start building the database, I need to set up my computer to get this to work. Technically I could probably use my work computer for a lot of this but that could be kind of awkward for so many reasons. I think I’d feel more comfortable on my own personal machine.
So there are a couple of things that I need to set up to get going on this project:
I am someone who works well with goals. I need that structure and something to work towards. If I’m going to do this, I think I need to follow the “Julie & Julia” concept, but without the amazing food.
One of the areas of databases that I’m always trying to do more of is design. I like the idea of reading through the requirements and figuring out how you would create the tables and if need be, how you move the data around if it was done purely within the database.
So my thought is: Let’s create a brand new database.
The next question is: What would we store in this database? And how would we get our requirements?
I remember this paper I did back in college. I mentioned I was a History major, right? Between 1914 and 1922, the state of Tennessee sent surveys to all of its Civil War veterans – regardless of the side they served on. I think it was the only state to do something on this scale. It asked 46 or 44 questions, depending on what version of the survey they got, ranging from where they grew up, their regiments, and battles and skirmishes. In the end, they collected about 1,650 responses.
I only had time (and 5-10 pages) to do a brief look at the surveys. If I remember correct, I think saw a lot of what you’d expect to find. But there’s probably enough in those surveys to do some longer thesis or book or something more than what I put together. The strange thing is over the years, these surveys keep coming into mind. And as I’ve been working with databases, my thought would always be: How would you create a database to connect the various people, places and stories in the survey responses?
So my thought is that we can look at the questions and figure out how we would want to design a database to hold the information.
There are a lot of reasons why this is a horrible choice for this type of project:
- The answers are mostly stories. You have to read through the answers to find the data points we would want to identify.
- The veterans, or whoever filled out the survey for them, had varying levels of education from dropping out of school at an early age to maybe some college and it shows in their writing. There is no guarantee that the veterans would spell everything correctly. (Let’s be honest – how many of us can spell Appomattox correctly without auto-correct or the uncontrollable need to confirm it through spell-check or Google if there’s no wavy red line underneath it?) So even if you do have a clear way to identify the data as something like a person’s name, how can you confirm whether the two spellings from different surveys are in fact the same person?
- How would you take the data and import it into the database? Can it be done without human intervention? I don’t believe there are data sheets available for download like there are for so many other subjects, like baseball or aviation.
But there are a lot of good reasons for trying this:
- I don’t think I have ever had the opportunity to really see if I can design a database from scratch. Why wait for someone to give me the chance when there’s an idea right in front of me?
- We don’t have to worry about importing the data right away, right? Eventually, we may want to figure out how to get the data in there, but it doesn’t have to be the initial focus.
- Once we get to the point of trying to import data, maybe there is functionality that could be tapped that could help solve the problem of reading through narratives. Could we use something like full-text search, SOUNDEX functions, etc.? Is there other technology that we could use? These are options that I don’t normally use so it’s chance to see what’s out there and explore.
- There are a lot of moving pieces when it comes to designing a database, regardless of what the subject is. The subject will definitely help shape what the design is, but there are still considerations which are universal. We may decide that this is a horrible topic to use, but I think we would learn a lot from the background work that we do to get to that point.
- I’m just fascinated by the thought of trying to see if it can be done. I’m not going for an advanced degree in history or computer science or any other subject for that matter. I’m not on any time line. This means there’s time to explore and figure this out.
Don’t worry – I still intend to throw in posts on day job problems and their solutions I run across or T-SQL Tuesdays or other such random posts. But as I said, I like the idea of working on a bigger project.
I’m ready to see what happens if you are…
Hi there! Welcome to my blog!
I guess the best way to start is to introduce myself. Hi, I’m Deb, the DBA!
Who am I?
When I went to college, I decided I want nothing to do with math or science. I majored in English and History. My first job out of school was as a sales assistant. But my co-workers quickly noticed that I was comfortable around the computers. They sent me to classes and I got a promotion to the network admin. Even then, I still spent a lot of time with the sales database. Our contact management program had complicated searches that actually used the words INNER JOIN and LEFT JOIN and I was possibly the only person in the office who could figure out how to put them together. This is how I learned table joins.
As I was getting ready to move on from that job, I had a realization that I often found myself working with databases of some way, shape or form over the years and I liked it. So I would sneak back to the server room with some “Learn SQL Server 7 in 24 hours” type book so I could see first hand what I was seeing in the book. I decided that I wanted to learn databases from the back end rather than just the front facing user interface.
So I left that job for a new one as a junior DBA. I had the little of what I had learned from the book about SQL Server 7 but now, I had to use SQL Server 6.5. Did you know that there are a lot of major differences between SQL Server 6.5 and SQL Server 7? I didn’t. Well, at least not then. I also learned very quickly that I did not know what they were expecting or needed me to know.
Looking back, I feel lucky that I even got hired in the first place. But I was also determined to figure out what I needed to do and learn it quickly. Oh, and I did not want to get fired because I wasn’t able to catch up and embarrass myself along the way.
I spent a lot of time on that job learning how to be a DBA and about how SQL Server worked. I spent a lot of my free time reading various SQL Server websites so I could understand what I was expected to know. I learned database maintenance, but I spent most of my time working with programmers helping them design tables and write more complicated SQL queries and procedures. I even worked with new hires and introduce them to the basics of SQL. And after several years there, I’ve been able to take all of that experience and move over to my current job where in some sense, I do much of the same but applying it in different ways and being able to use all the new tools that didn’t quite exist at the time.
Why blog now?
I must confess – I haven’t been too involved in the general SQL Server Community over the years. I did manage to make a PASS Summit once about 12 years ago. I try to make the local SQL Server user group meetings when I can but it’s not very regularly. I do make the local SQL Saturdays and I finally volunteered at the last one I attended. I follow various people in the SQL Server community and the SQL Server related handles on Twitter and will occasionally tweet something fluffy myself.
I’ve been toying with the idea of a blog for a while now. My problem has always been: What would I say? I have enough problems figuring out a basic tweet! But I’m starting to believe the hype going around that we all have something to add to the community at large. I know I have a different way of approaching things so perhaps that can help someone else look at something through a different lens so they can understand it better. And when I have made it to an event and I talk to people about some of the projects I’ve worked on, I think I have had a chance to do some cool things over the years.
But I also believe in explaining what I look for when my programmers send me objects or more complex stored procedures and SQL. I say it’s because I’m lazy – if everything’s in order, less work for me to do. But honestly, I think it helps them understand the the database and how it works and the differences in database design versus just generating database tables from the objects in their code. If they understand the database better, they can build their application better as well. You can write the best code in the world but if it’s using a poorly designed database that doesn’t have data integrity and\or isn’t optimized to handle the data, the code is going to be bogged down by the workarounds for those issues. I see my job as helping prevent these problems. We’re a team and I’m here to help.
I guess there’s nothing left to say but, let’s do this!!