Monday, July 4, 2011

What You Should Learn About Database Systems

If IT meant Information Technology, then arguably and syntactically having relevant information is first and more important than the technology that delivers it. Information may be stored in a text file, a word processor document, a spreadsheet, a presentation, or an XML file, but for easier, faster and reliable search and retrieval, the database management system rules.

Unfortunately, I have observed that most books available in local stores in my so-called third world country tragically lack the fundamentals that should be learned to maximize the beneficial use of database management systems or (DBMS). Worse, many are tied to proprietary systems like Oracle and Microsoft SQL Server, which are usually tied to particular (and usually expensive) platforms (i.e. Windows or Solaris only), will almost cost you your soul to put into hands on practiality, and worst, subject to whimsical changes and features that the vendor may deem important to differentiate their product from the rest; resulting to obsolete skills for outdated systems.

Michael Jordan didn't become the greatest basketball player by just going straight for the hoop and shoot the second he has the ball on hand. By the same principle, what should you learn about database systems?

The CRUD, the standard and portable know how
If in basketball, the skills range from shoot, pass, dribble, rebound and defense among other things; database systems management basic skill is the knowledge of  Create, Read, Update and Delete (CRUD). There are many proprietary implementations of this principle, thus ANSI- and ISO-compliant Structured Query Language (SQL) was created to ensure practicability of what you learned to be relevant across different, disparate and maybe incompatible systems. 

Data modelling
Data modelling is both an art and science just as computer programming is, and this article is one of the most comprehensive reference I found online on the topic. Needless to say, data modelling is very important to design database systems that contain relevant information.

I think data modelling is what many references don't cover or falter badly when discussed, as if just knowing how to create database entities and knowing how to modify or delete them is enough. 

Recommended System
This is where whatever I say may cause software jihad or flame wars, but I have to put my foot down and express my recommended database management system: I recommend learning PostgreSQL. I won't chicken out and try to be neutral on which system is better be it MySQL or PostgreSQL (but then again this may convince you to), because I've seen the limitation of MySQL, aside from its deviation and often non-compliance to ANSI or ISO standards. Feature-wise, PostgreSQL is the only free and open source database management system with object-relational database functionality, that has the potential to go head to head, feature for feature (pound for pound?) with popular and proprietary database systems like Oracle and Informix as indicated here. Sadly PostgreSQL doesn't have commercial clout and certification program like MySQL, and doesn't have (yet) a professional competency certification. 

Professional Certification and Professional Competence
I have a friend who earned Red Hat Certified Engineer (RHCE) certification and I'm very proud and happy for my buddy all the way from college. Certification seems to be the professional licence every IT and companies look for to verify competence and fit for the job description. When you learn about database systems and want to stay abreast with free open source standard-compliant database systems technology while also having advanced enterprise-class features on your side, it pays beyond the commercial database certifications. The tragedy of every proprietary technology certification I've seen so far is that they give you a hammer, and make you wish every problem is a nail.

No comments:

Post a Comment