I received an essay from Steve Hechtman, president of Inductive Automation, the other day. He owns a software development company specializing in Software as a Service (SaaS) HMI/SCADA, among other things. I wrote about them after my trip to Northern California last spring. Anyway, his essay expounds the belief that since engineers know how to program PLCs and other controllers, the necessary next step is “programming” in Structured Query Language (SQL). Since so much of what is done today involves information and data, and since data are typically stored in databases, and since many databases are SQL-based, then this is necessary knowledge.
So, this started me thinking while I was running this morning. Should more people learn SQL? Or, do you all already know it? Should I develop articles about it for Automation World? Should we run some Web seminars or something similar?
I learned about databases early in my computer life, then learned what to do at the “dot prompt” (remember DB III?). Learned a little about SQL. I’m far from a database expert, obviously. But this whole idea intrigues me. I never thought about it.
What do you think? Is this “old news?” Or, is it something to be promoted? Let me know.
I’m not sure SQL training is required specifically, because there are plenty of visual SQL query builders and the like that can help get around that, but some relational database training would definitely be good. Tons of people cause big problems by using spreadsheets instead of databases, so good database training would alleviate some of that.
The other thing it would do is to get people thinking about relational databases and ways to combine, track, and compare data. Many engineers don’t realize the power that queries and relational databases have and the increased speed in which they can do their work.
Finally, the practice of these methods serves as a great mechanism for vendors to keep the information they acquire open and available for data integration between systems, which I think is important and valuable for end users.
Agreeing with Aaron…I think it’s more important that folks learn database theory and best practices of data storage and management. So many control problems I’ve run into in the past were because the data was not accessible or structured properly to be used later for control purposes.
Learning how relational and real time databases work, and how to structure your data for storage in them is the first step. Once you can do that, getting the data back out using SQL is a logical next step.
It’s like learning a programming language (or a real langauge for that matter). Once you understand the logical flow, object oriented concepts, and other constructs of one programming language, jumping to another is usually 90% syntax and 10% new concepts. The foundation is the key, the language (in this case SQL) is just a means to the end, no?
Agree with previous comments. SQL is a basic language to manipulate data in a relational database. It would be interesting to learn about how people have used databases and SQL in executing control and automation projects.
In my experience, SQL would mostly be used with data reporting from a data historian, or integrating data from multiple sources such as historians, LIMS, ERP, instrument databases, etc. Microsoft Access can be pretty powerful if you take the time to learn how to use it. Also, active server pages can execute SQL commands to create dyamic reports using active server pages.
I’ve used SQL when working with self-built offline configuration databases too. It’s very common to build these kinds of editing and reporting tools outside of the configuration tools provided by vendors. You can use SQL queries to make bulk changes across sets of data, and to audit configuration to find potential problems. Custom reporting of alarm configuration, control parameters, and I/O configuration are some very basic examples.
Knowledge of SQL has really helped me out in many roles that I’ve had, including control systems engineer. If you’re ever hiring somebody to do database work for you, knowing the basics of SQL will help you talk about the work their performing. It is often useful to call their bluff when they say that something is really difficult to do – many times SQL makes things very easy that seem to be very difficult.
I think of knowledge of SQL as similar to HTML, Visual Basic, scripting, etc. Not required, but it really helps to know these basic languages. SQL really isn’t hard to learn either and so it doesn’t take much effort.
As a database consultant, my answer is unequivocally "yes." I make more money than I’d like from helping clients with rudimentary tasks that most companies should be able to do themselves. I would much rather be spending time on higher value activities such as query optimization, design/architecture, data warehousing and mining, etc…
As others have already said, the proliferation of relational databases means that companies would realize substantial returns on investment by providing basic SQL training to their employees. In my experience there is significant value sitting in those databases, waiting to be extracted.
Thanks for the ideas. Don’t know why I never thought about exploring databases more.
The first few responses focus heavily on SQL syntax. The significant aspect is recognizing the value of databases when it comes to control systems – the challenge being interoperability with enterprise systems.
Automation World readers could really benefit from learning how manufacturers are successfully leveraging database systems and integrating with IT to create more "top to bottom" automated processes. There are numerous useful perspectives to take this. As far as basic SQL syntax goes, there are too many online resources to waste your time writing one. An article that explains why, then outlines where to go to learn sounds useful to your public.