Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I recently got hired as the only IT Guy in a certain Company X and I am tasked to fix their applications, and in my opinion, the best way to start is by understanding the database.

Their current database is a MySQL database with 186 tables(note that some tables are empty for god knows why). And the application is communicating with the database through an MS Access database interface. (I ask myself why the developers did that too)

Question is, How do I start tackling this large undocumented database? Yes, it is undocumented because the application's developers aren't willing to give me an ERD or data dictionary or any information at all about the database to make my life easy. How would you suggest to take on this perilous endeavor of understanding every nook and cranny of the rather large database?

Related Question: How to dive into an ugly database?

share|improve this question
3  
Starting with the empty tables, slowly drop one table after another until the developpers are willing to cooperate... –  René Nyffenegger Jan 24 '13 at 10:08
    
Think before you comment. The OP explicitly stated that he was the ONLY It guy. So who are those developers ? External contractors perhaps, who were paid for nothing more than just the time it took to build the thing ? Why would those be willing to put in their time for additional support, which company X probably has been unwilling to pay for to begin with ? Or were they perhaps former employees who got laid off because they were too expensive ? Why would they put in their time to help out company X with its problems ? And who is going to get hurt by dropping tables ? –  Erwin Smout Jan 24 '13 at 13:04
4  
@ErwinSmout I believe Rene's comment was intended to be interpreted as a light hearted jibe. That's how I saw it. –  Mark Storey-Smith Jan 24 '13 at 13:22

3 Answers 3

up vote 10 down vote accepted

The linked answer tackles the problem bottom-up, database first. As your responsibilities encompass the applications and database, I'd be inclined to attack this top-down starting at the application(s).

Focus your attention on understanding the most frequently used features of the application through consultation with the user base. Trace the database interactions of those features through profiling/logging tools so you can identify the key tables and procedures.

This way your early efforts are constrained to the "stuff that matters", rather than wasting time documenting tables and queries that may be rarely or never used. The focus should also bring the Pareto Principle to bare on your bug fixing efforts (so says Microsoft anyway).

share|improve this answer
    
Thanks for the great answer. I honestly didn't think of that nor did I know that I can log the queries being run on the server. Thanks a lot! –  maru Jan 25 '13 at 2:25

I would possibly try getting MySQL Workbench and then creating a EER model from the database. This means you can see what links to what and find out what the developers might of been thinking. All depends on the application also to how it is structured.

share|improve this answer
    
I tried going that route, but it got quite annoying midway because there are 186 tables and workbench just slapped all the tables in the center of the canvas. and the small screen real estate wasn't helping things get smaller. But from the looks of it, there's no escaping doing things the hard way –  maru Jan 25 '13 at 1:28

There is a tool of oracle(My SQl workbench) to access My Sql database,it is a interface that could gave you the ERD of the database.

share|improve this answer
    
yup, i'm familiar with workbench but it the reverse engineer function just dumps all the tables in the center of the canvas... 186 tables is annoying to sort out. know a way out of that? –  maru Feb 2 '13 at 16:38

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.