Sign up ×

Following are some protein interaction databases:

As a newbie what are the practical aspects of database that I must understand before attempting any such project on a small scale with a data-set of about 20,000 proteins? What difficulties I must expect during design and implementation of such a project as an administrator?

share|improve this question
Are you sure that you have to build a new database? Isn't loading your data into an existing and proven one (eg. any of thohse you mentioned) a better solution? –  dezso Aug 16 '12 at 8:17
Actually, we have performed some data mining and we have our new knowledge-base. –  Chirag Aug 16 '12 at 8:36

1 Answer 1

up vote 4 down vote accepted

I started writing an answer earlier on certain aspects of database design and implementation, which I abandoned because I realized that these would (or should) not be the very first steps on the way of developing a database (or, more broadly, a software) for your needs. This way, this may not be the answer you are waiting for.

As a newbie a few years ago, I was also tempted to make something big and interesting. (To be honest, I had only a part of the competence needed for that particular project. I hoped that once I would be ready with the database part (which I knew how to do), everybody would be so convinced that it would going to be superb, that they would have the necessary patience for me making mistakes and being (very) slow.) As I started to do my thing, I realized that

  • the project was much more complicated than it looked first (partly because of lacking specification)
  • I was not that good than I'd thought before (especially speedwise)
  • nobody was patient no matter what I'd achieved so far (understandably, they needed that piece of software very much).

Now, after this coming-out, back to your project :)

To decide whether you have to develop something new, you have to consider a few things.

Are your data so special that only a new software would fit? There could be (open source) software which you can use after minor modifications. Going this way you probably can have more help (preferably from those who wrote that software) and finish faster. And, in the end, if your additions are working and useful, you can publish it. It will earn reputation for you for sure. (Not to mention that your citation index will be better :)

Are you in really big need for it? Since the development will take considerable time (and probably money), you have to assess the costs and the gains. On the costs side, there will not be the database alone: you must be able to use your database (feed it with data and get results from it). Even if kept simple, it still can double the efforts needed. Overall, if the gains aren't significantly bigger than the costs, I would not start with it.

Do you have the expertise required to reach your goal? Hopefully yes, but if not, than your system will be inefficient, flawed or completely useless. As you progress with your work, you will gain experience of course, but debugging and rewriting badly written code can be much harder than writing it once again.

(I may be too careful here, but I hate half-written software. And, if your main goal is to gain experience, and you have the necessary resources (including the luxury of going down all the dead-ends), than start with it. And, if your answer is three yeses, than you still should read a good book on database design and development - it's far broader a field than a short answer could cover.)

share|improve this answer
Your answer makes sense. I accept it :) –  Chirag Aug 29 '12 at 16:08

Your Answer


