Fundamental units Is it right that all units in physics can be defined in terms of only mass, length and time?
Why is it so? Is there some principle that explains it or is it just observational fact?
 A: Which units are fundamental and which are derived is pretty much a matter of arbitrary convention, not an objective fact about the world. 
You might think that the number of fundamental units would be well-defined, but even that's not true.
Take electric charge for example. In the SI system of units (i.e., the "standard" metric system), charge cannot be expressed in terms of mass, length, and time: you need another independent unit. (In the SI, that unit happens to be the Ampere; the unit of charge is defined to be an Ampere-second.) But sometimes people use different systems of units in which charge can be expressed in terms of mass, length, and time. By decreeing that the proportionality constant in Coulomb's Law be equal to 1,
$$
F={q_1q_2\over r^2},
$$
you can define a unit of charge to be (if I've done the algebra right) $(ML^3/T^2)^{1/2}$,
where $M,L,T$ are your units of mass, length, time.
Whether charge is defined in terms of mass, length, time, or whether it's an independent unit, is a matter of convenience, not a fact about the world. People can and do make different choices about it.
Similarly, some people choose to get by with fewer independent units than the three you mention. The most common choice is to decree that length and time have the same units, using the speed of light as a conversion factor. You can even go all the way down to zero independent units, by working in what are often called Planck units.
In summary, you can dial up or down the number of "independent" units in your system at will. 
One more example, which seems silly at first but is actually of some historical interest. You can imagine using different, independent units of measure for horizontal and vertical distances. That'd be terribly inconvenient for doing physics, but for many applications it's actually quite convenient. (In aviation, altitudes are often measured in feet, while horizontal distances are measured in miles. In seafaring, leagues are horizontal and fathoms are vertical. Yards are pretty much always used for horizontal distance.) 
It sounds absurd to think of using different units for different directions, but in the context of special relativity, using different units for space and time (different directions in spacetime) is sort of similar. If we had evolved in a world in which we were constantly zipping around near light speed, so that special relativity was intuitive to us, we'd probably think that it was obvious that distance and time "really" came in the same units.
A: It is mostly by convention, since any unit could be derived from any three (independent) units. Typically we like our base units to be measurable in some sense. Distance, Time and Mass are perfectly reasonable, but not required. You can make up a unit system based on Energy, Acceleration and Density to derive all the other units.
PS. Look up dimensional analysis to figure out how to related together different units.
