Services: Database Development
Database developers are a strange lot. We find things like entity relations and stored procedures cool. I know, it's probably not something you'd care to learn about, let alone think was cool. But what exactly is involved with database development, and what's my approach to it? Before we dive into that, let's review our areas of expertise, with regards to our database consulting and database development services.
Areas of Expertise
It seems like a new database comes along every day. I prefer to stick with the ones I know best. Therefore, I almost always develop database systems using one or more of the following technologies:
- Microsoft SQL Server
If your project involves one (or more) of the above database technologies, I can probably help you. I've designed and created database management systems since the series Dallas was on TV. Yes, I've been doing database consulting for that long.
What's a Database?
A database management system (known as a "DBMS") is a set of computer programs that controls the creation, maintenance and storage of data. Sure it does a lot more than that, but that's the main purpose of a database, in a nutshell. Databases come in all shapes and sizes. For smaller applications, Microsoft Access may be used. For larger applications, Microsoft SQL Server, or MySQL might be used. For those in-between projects, something like Visual FoxPro is popular.
When we talk about database development, we are talking about defining, designing, developing and deploying a complete database solution. It's the whole enchilada. It involves the front-end (user interface) of the system, and it involves the back-end (database, other tiers). My point is, we aren't just creating tables here. We are designing and building an entire database-centric application. That's why they call it a database management system.
For your database to be useful, it is going to have to be complete. Your business rules are going to have to be enforced throughout the system, and required data must be filled in. I'm talking about data integrity. The old saying "garbage in, garbage out" was invented by database developers! So our first goal is to make sure good data makes it into the system, and stays that way.
As a database developer, I'm a bit fanatical when it comes to security. Your database is of little use if it can be hacked. More than likely it houses confidential, valuable information. So our job as developers is to make sure that it is being safeguarded. Sure, logins help. But security goes a lot further than creating a login screen. For example, each application should have varying levels of security or roles. That way only certain people can delete records or make bulk changes. Security also means making sure the system isn't structured in a way that outsiders can easily compromise it. You need to focus on security from day one.
I don't like waiting, and I doubt you do either. The speed and responsiveness of a system play a major role in its acceptance. It's one of the first impressions a user makes about a system. Sometimes hardware has an impact on performance, but usually it has to do with how a system is designed. For database systems, it usually comes down to one of two things. Either the system is requesting way too much data, or indexes are being used incorrectly. You show me a system with a performance problem and 9 chances out of 10, one or both of those problems are at work.
User-Friendly / Intuitive
Being "User-Friendly" is probably the most abused term in the software industry (right behind social networking). What does it mean to be user-friendly? To me a user-friendly application feels like it was designed just for me. The person or company who developed it understood precisely how I was going to use it. It fits like a good glove. That's user-friendly. To be intuitive, the application also needs to hide complexity. If you need a 300 page manual to figure something out, in most cases that isn't user-friendly or intuitive.
To create a successful database management system you really need all of the above, so those are the major areas we focus on throughout every aspect of our database consulting services.