Category: Editorial
-
Learning Data Modeling
Last week I wrote about database design tests in interviews. Many of you noted that you hadn’t been asked to perform any design in tests, and plenty of you noticed that ER diagrams are a rarity. Those experiences match mine and are a little disappointing for our industry. Even for software developers, many of whom don’t build databases, I’d expect that ER diagrams to be helpful and plentiful. Our clients are often developers and report writing businesspeople. Why don’t they demand better documentation?If they were to ask for us to produce ER diagrams and documentation, I’d hope most of you could produce one, even using SSMS or some other tool. However, can you design the storage for your business requirements in a way that you would feel comfortable presenting to your peers? Do you think you can build a database that efficiently stores data, performs well, and is easy for application developers to work with? If so, I have a question.What resources would you recommend for others to learn about data modeling?We have a dearth of database design articles on SQLServerCentral, though we do have a Stairway Series on Database Design. I don’t know how easy it is for most developers, or even database architects, to read and understand. I realize that modeling and designing databases can be complex topics, and it does take some effort to learn to do it well, but I also believe that we need practical, easy to approach articles that lead people through the concepts.I’d love to see more articles from real world people that discuss designing sections of databases. How do you handle scheduling systems? Inventory tracking? Customer details? If anyone wants to write articles that might lead a reader along (such as Paul White or Brandie Tarvin did), we’d love to have them submitted at SQLServerCentral.Steve Jones -
The March of AI
Machine learning and AI systems are becoming more and more popular all the time. The constant onslaught of media articles and hype is pressuring more and more companies to experiment with AI systems. Whether these techniques work or not, no manager wants to be the one that has ignored the trend. A failed machine learning venture might be preferable to the lack of any project in the eyes of many in upper management.
Our vendors press as well, after all, sales are on the line. I wasn’t sure how useful the R language would be inside SQL Server, but I am amazed at the effort and popularity of R among SQL Server professionals. R, and possibly Python soon, are becoming integrated into every product and tool from Microsoft, as well as other vendors. Every month I see more and more people experimenting and learning how to use R for a wider variety of tasks, from analyzing disk space and database performance to extrapolating business measures.
Most of us aren’t skilled enough in math and statistics to really develop and build intelligent systems. We don’t have the background, or we haven’t worked in those areas for a long time. However, many of us can learn to work with ML and AI systems, managing the models, integrating the code others write into our applications. I do think there is value in learning a bit about these technologies, though I don’t think you need to become an expert. Some of you might want to be experts, and I wish you the best of luck on your journey.
I do believe that AI will change the world. It’s going to become a larger and larger part of many systems and processes throughout the world. These intelligent systems will press and push humans in ways that we don’t expect and that we might not like. For us data professionals, we will be at the heart of many of these changes, with opportunities to grow our careers we might never had considered.
Steve Jones
The Voice of the DBA Podcast
Listen to the MP3 Audio ( 3.0MB) podcast or subscribe to the feed at iTunes and Libsyn.
-
Independence Day 2017
Today is July 4, Independence Day in the US, more commonly known as the Fourth of July. This is the day that the United States declared it self a separate nation from the British Empire. For most of my life, this has been a day of celebration with kids, or as a kid. A time when we cook outside, watch fireworks, and have an enjoyable day away from work. The last decade or so I’ve also re-read the Declaration of Independence, as a way of remembering the history of my country.
As I was preparing for this year’s holiday, it struck me that so often inside of companies we find groups and departments that almost separate themselves from others. We get silos and habits of working that are distinct, often because they feel that trying to work within the constraints of others’ requirements is too stifling or non-productive. Unlike the U.S .Declaration of Independence, I’m not sure that most of the people that work separately could list a defined set of reasons why they work by themselves.
As I talk about and promote DevOps, the one fundamental action needed for success is communication. Disparate groups need to work together, from architecture to development to business analysts to QA to operations. Every person needs to provide help and feedback to other groups, being willing to modifty the ways in which they work to smooth the out the entire process.
In other words, we need to work together.
I hope that as you move forward in building software for your company, you learn to work with others, finding ways to smooth out the process to deliver valuable features and functions to your customers.
And if you’re in the US, have a great Fourth of July.
Steve Jones
-
Backup Preparations
I’m sure that many data professionals recognize the importance of having backups in the event of some issue. Many of you will schedule these as soon as you create a database, and then not think much of the process, ignoring it as long as the backup job continues to run.
As you gain experience, you may even set up backups on new instances and versions without much thought, assuming you know how the process works. That’s probably true of SQL Server, as the backup system and structure hasn’t changed for years. However, do you think backups work the same on other platforms, such as Oracle, PostgreSQL, or MySQL? What about MongoDB or Neo4j? Don’t we just run the backup command to a file and the restore from file sequence if there is an issue?
Backups aren’t the same on all platforms, and they may function differently enough that you can find you aren’t prepared for a disaster situation. I was considering this over the last week as I read about the challenges of restoring from Azure SQL Database and Amazon RDS. With the popularity of both cloud computing and SQL Server, we have a few different flavors of platforms between on-premises installs, AWS, Azure, and likely other hosted solutions.
Whenever you work on a new platform, even if it’s a variant of one you have experience working with, there is a chance that the techniques and commands you run to manage backup or restore will change. Since a restore situation is often a stressful event, with the pressure of an RTO upon you, this isn’t the time to learn that your backup preparations are inadequate.
As much as I might joke about ensuring your resume is up to date in case of a restore problem, I would emphasize that your resume isn’t going to be as helpful if you are negligent and unprepared because you haven’t done everything you could to be ready for a disaster. While your employer might not allocate enough disk space or other resources to ensure their RTO and RPO can be met, you can certainly ensure that your skills, knowledge, and recommendations aren’t the reason that data is lost.
I periodically practice restores, I’ll take a tail log backup, I’ll ensure that I understand how to export a BACPAC, all to be sure that my skills are up to date. I don’t want to encounter a situation where I need a filegroup, point in time, or striped backup restore and not know what I’m doing. You might want to do the same, taking time every month to ensure that you perform some different restore technique. Just in case disaster strikes next week.
Steve Jones