I Love Entity Framework

DevOps
I love Entity Framework. I also like (not love) nHibernate. That's right, as a DBA and data professional, I'm telling you I love Object/Relational Mapping tools (ORM). I think this is a technology set that the DBA needs to more tightly embrace. Let me tell you why. Most of the Queries I know that the biggest pushback against Entity Framework (EF) and it's fellow ORM tools is that they generate crap code. I know this to be true. I've seen it. ORM tools can, and do, generate seriously poor T-SQL. That's not to mention the N+1 problem and a few others. However, as you see from the article in that link, these problems and how to avoid them are very well defined. You don't have to suffer from the issues.…
Read More

Database Fundamentals #4: Create a Database

Database Fundamentals, T-SQL
SQL Server provides multiple ways to perform most functions. In order to maximize your understanding of how SQL Server works and have as many different mechanisms as possible for getting work done, you’ll use the GUI and TSQL to learn how to create and drop databases. You can then use whichever mechanism works best for you at the moment. Using  each method, we’ll first create a database using the least amount of work possible, just so you can see how easy it is create a database. We’ll go over how to remove databases from the system, getting rid of the database you just created. From there we’ll drill down to create another database, exploring some of the different mechanisms you can use to change how databases get created. Then we’ll…
Read More

Database Fundamentals #3: What’s In a Database?

Database Fundamentals
It’s worth noting that a lot of people will never need to create their own database. You may never create your own tables or other data structures either. You may only ever run backups and restores and manipulate the security on the system and let application installs create databases for you. That’s completely understandable and perfectly in line with the needs of many businesses and many accidental DBAs. However, it's a good idea to understand what this stuff is and how it works as part of understanding SQL Server. A Database Is Actually Files You need to store information that you want to be able to retrieve later. It’s necessary that you organize that information. If you were working with a word processing program, you store different documents in different…
Read More

The Three T’s of Backups

T-SQL
I just read several more horror stories that include, among other things, failed backups. I've said it before (at volume, extreme volume), and evidently I have to say it again. Simply creating a backup file is not enough to ensure the protection of your information. In order to attempt to reinforce the importance of this idea, I'm going to introduce a new concept. Maybe it'll help. I'm calling it "The Three T's of Backups." Take 'Em First, and most important, you have to Take backups. That's your first "T". No, disk redundancy through RAID or a SAN or some other setup is not adequate to protect your information. You must take backups. They have to be created and they have to be run regularly. You absolutely should automate this. Test…
Read More

T-SQL Tuesday #091 – Round-Up

DevOps
Thank you to everyone who participated in T-SQL Tuesday #091 which was on databases and DevOps. As I anticipated, this brought out quite a bit of variety on the posts. This is because DevOps is still... not quite cooked...(?) in many peoples minds. I think with the range of posts we saw here, it'll be a lot more clear to those who are just getting an introduction to it. Here are the posts (in no particular order) and a few comments on each: Databases and DevOps: Rob Farley - I like Rob's approach to this intro to DevOps. He's a consultant. It'd sure be nice if you had the protections that DevOps offers in front of your systems before he starts recommending changes. What Playing at Minecraft has Taught Me…
Read More

DevOps and Visual Studio

DevOps
The hardest part about implementing DevOps is not the tools you choose, but the processes you use to make DevOps work. That said, you do need to think about the tools you're going to use to automate those processes. Frequently the emphasis is on third party tools, but it doesn't always have to be. Microsoft's Visual Studio has a number of tools that you can use to automate your DevOps methods. Visual Studio Team Services Connecting a project into Team Services opens up the world of DevOps pretty handily. You can host this all locally and do an install to a server to support it. With more and more of us working with teams that span continents and oceans, it probably makes more sense to use the online version. There's…
Read More

Database Fundamentals #2: SQL Server Management Studio

Database Fundamentals
The best way to learn any software is to start using it. There are a bunch of software tools in the SQL Server toolbox, but the biggest and most important is SQL Server Management Studio (SSMS). SSMS is where you'll spend most of your time when you start to work with SQL Server. It provides a very large series of graphical user interfaces for creating databases, setting up security, reading data out of the database, and all sorts of other things within your SQL Server instances, the databases stored there, and all the stuff inside those databases. It also supplies you with an interface to the basic scripting language of SQL Server, through which you can do almost anything to the server. The scripting language is called Transact Structured Query…
Read More

T-SQL Tuesday #091 – Databases and DevOps

DevOps
Implementing DevOps with databases presents a unique set of challenges. However, just because something might be hard doesn't mean that it shouldn't be done. I had the opportunity to work with a team of developers, database developers and DBAs under a management team that all agreed on the common goal we had, delivering more, better performing applications, faster. We didn't know it at the time, but we were doing DevOps. DevOps gets a bad name because, well, the problems that DevOps sets out to solve, poor communication, bad teamwork, dysfunctional development and badly configured and maintained processes, are  done by the same team that attempts to implement DevOps. However, they look on it as a purely mechanical switch that they throw, assign some poor person to the role of DevOps…
Read More

Database Fundamentals #1: Install SQL Server

Database Fundamentals
To get started with SQL Server, you need to install it. However, I'm not going to teach you how to do a SQL Server install. Instead, I want to point you towards a couple of sources of information, and, give you some alternatives to installing SQL Server. Install SQL Server As much as I enjoy sharing information with you through this blog, and despite the fact that I read a lot of other technology blogs and other resources online, the single best source of information on SQL Server remains Microsoft and their SQL Server Documentation. This information is up to date and very well maintained. Yes, I'm sure you can find somethings to complain about in there, but overall, it's the starting point for all SQL Server learning and understanding.…
Read More

Database Fundamentals

Database Fundamentals, Professional Development
One of my favorite things about being a technologist is constantly learning new things, but, this can lead us to forget about the fundamentals. More importantly, in our pursuit of the latest and greatest things, it's very easy for those of us who teach to forget to reach back and pull others forward. With this in mind, I'm going launch a new blog series called Database Fundamentals. Database Fundamentals The goal here is simple. I'm going to talk about the basics. Creating a database. Creating tables.  Inserts, selects, primary keys, and on and on. I have a bunch of material accumulated around these topics. I may as well share it as much as I can. I will continue posting information about all the fun cutting edge stuff I get to…
Read More