Database development and refactoring



32_db-expertiseAreas of Expertise

It seems like a new database comes along every day. At i-CTC we prefer to stick with the ones we know best. Therefore, we almost always develop database systems using one or more of the following technologies:

  • Microsoft SQL Server (Reporting Services, Analysis Services, Integration Services)
  • Oracle
  • PostgreSQL
  • MySQL
  • Microsoft Access
  • Microsoft Visual FoxPro

If your project involves one (or more) of the above database technologies, we can help you.


32_dbWhat'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). The point is, we aren't just creating tables. We are designing and building an entire database-centric application. That's why they call it a database management system.


32_db-integrityData Integrity

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 captured. 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 database developers and administrators, our DB team is 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 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.



Nobody likes waiting. The speed and responsiveness of a system plays 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. Show us 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? A user-friendly application feels like it was designed just for the end user. The person or company who developed it understood precisely how users were 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 these are the major areas we focus on throughout every aspect of our database consulting services.