Bringing Database in-house

Posted on 2013-11-18
Last Modified: 2013-11-21
Dear Experts,

I have been recently hired as an IT person for this company.  Although my job description did not include this, I am thinking of bringing in the database that was developed by the outside consultant group in-house for better control of the application, and also for compliance.
My questions is, how difficult is it for me to master a database written in Perl, Mason, and PostgreSQL?  I have a background in C++, Java, VBA programming, am familiar with  Unix system, am pretty good with SQL, HTML, and have created and managed database system using MS ACCESS with VBA codes.  The only experience I do not have is creating web-based application.
I am wondering, should I hire someone as a DBA, who already knows Perl and PostfreSQL, and I become a backup programmer for that person, or can I manage myself?  (The reason I am wondering is I am not sure I can justify the salary of DBA at this point.)
Because this web portals for the database is the heart of my company's operation, I would not rush to get anything done, and obviously need cooperation from the consultants that are currently writing these apps.
Please advise.
Question by:yballan
  • 3
  • 2

Author Comment

Comment Utility
I also wanted to add, I have been reading about Perl, and hear some opinions calling it becoming outdated.  Am I better off porting this into Windows-base server and Microsoft VBA based system?  Not sure what would be the best choice, clearly I need guidance, please.
LVL 50

Expert Comment

by:Steve Bink
Comment Utility
I'm totally in favor of bringing technology in-house when possible.  The answer, as your question implied, is much more than "can we do it".

First off, the programming language used by the application is not so important.  That's an application/framework question.  The database is a platform unto itself, and most of the popular languages (perl included) have APIs for all the popular databases.

Second, "mastering" a database is an evasive question.  You have the database platform, e.g., MySQL, PostgreSQL, or MSSQL, and you have the database schema created within that platform.  Your background with MSAccess will have exposed to you SQL, albeit Access' bastardized version of it, but you need to realize that Access is very far from being an adequate database platform.  The other platforms I mentioned are a much bigger world, with much more to learn and implement.  Moving to a "big-boy" platform is much like moving to the NFL after playing tag football with your friends.  The good news is that PostgreSQL has documentation that will hold your hand as much as you need it to.

The other part of "mastering" the database is the schema.  Knowing the platform and the language is great, but understand the implementation is critical.  You need to be able to explore and understand the tables, view, and stored procedures.  This is generally dependent on two items: your ability to visualize abstract concepts and structures, and the original author's ability to intuitively design the structure.  If the designer did anything "special", then you have additional parts of the puzzle to dissect to have a true understanding of the mechanics.

In the end, you are the only person who can answer this question.  I recommend taking some time to learn the database, and how it operates within the context of your application.  Take advantage of the support you currently have for it - if you submit a trouble-ticket, ask that they explain the issue when it is resolved.  I highly recommend understanding the database before doing any kind of migration.

Author Comment

Comment Utility
Dear routine,
Thank you for your thoughtful comment, and yes, you are right.  It is ultimately myself that must decide this.  I think I already know that the database must be brought in-house.  I think I am just looking for any pitfalls I must prepare for.
I forgot to mention that I used to teach MySQL so I am exposed to SQL not only from MS Access.
After reading your comment, it is clear that I must understand the database schema, which I think I can.
I was wondering if any Experts had a similar experience, in which you must bring some application that does not allow any down-time into the organization and take over the management/development.   I would imagine that this becomes almost political, because the consulting company does not want to let it go, and I may find it difficult to have their full support.  That is why I was wondering if I should hire someone already versed in the languages it was written in.
Any input is appreciated, thank you!
LVL 50

Accepted Solution

Steve Bink earned 500 total points
Comment Utility
Your exposure with MySQL will serve you well in this migration project.  Both PostgreSQL and MySQL are based in the SQL-92 standard, though both have their own proprietary extensions as well.  Where those differences occur, the docs will be your best friend.

I've had plenty of experience with exactly these kinds of scenarios.  When I worked in hosting, it was an almost-everyday occurrence that a customer needed a database moved either to, from, or within my company.  It is always more painful when you do not have the full support of the hosting company, but their cooperation is only necessary to the extent that you need full access to the database.  That access can come as shell access into the server or maybe just access to a point-in-time backup that you can trigger.

The process I've always followed:

1) set up a working sandbox copy of the application.  It should point to a working copy of the existing database, preferably on the existing server.  You want your starting environment to be as close as possible to your production environment.

2) Attempt to copy the database to your new platform, also a sandbox.  This means getting a point-in-time backup of the current database, restoring it into the new environment, and verifying its responsiveness.

3) Change your sandbox application to hit the database copy.

If you can successfully complete those three steps, then you know you can safely migrate with very little interruption.  Document the process thoroughly, and test it even more so.  If done properly, the only downtime you'll need to experience is the final backup/restore.

Author Closing Comment

Comment Utility
Thank you, I will definitely follow your advise!

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

Foolproof security solutions has become one of the key necessities of every e-commerce or Internet banking website. If you too own an online shopping site then its vital for you to equip your web portal with customer security features that can allow…
Introduction A frequently used term in Object-Oriented design is "SOLID" which is a mnemonic acronym that covers five principles of OO design.  These principles do not stand alone; there is interplay among them.  And they are not laws, merely princ…
Steps to create a PostgreSQL RDS instance in the Amazon cloud. We will cover some of the default settings and show how to connect to the instance once it is up and running.
Use Wufoo, an online form creation tool, to make powerful forms. Learn how to selectively show certain fields based on user input using rules to gather relevant information and data from your forms. The rules feature provides you with an opportunity…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now