Digital switch for Arduino's 5V

My friend bought the water pump, he's sleeping currently so i cant find the exact one, but this one is very close
http://www.ebay.com/itm/DC-5V-12V-6V-Micro-Diaphragm-Self-Priming-Water-Pump-Mini-Vacuum-Suction-Pump-/263002575060?var=&hash=item3d3c2cd0d4:m:mQMy3GEy_DgHO3YMwjMYRqA

Why do i need to add a diode? is it to save the motor from taking damage? I read briefly about diodes right now and it seems like they only allow current in one direction.

Why is it a bad idea to power a motor from Arduinos 5V? :slight_smile:

Here is the build guide (youtube)

Also, can you explain why the voltage dropped down from 5V to 4.5V after the NPN transistor? What is causing my pump to not function? The diode? How come it works if plugged directly to 5V and ground (if i skip the transistor)

I appreciate your help :slight_smile: