Question: I studied the solubility of compounds in water. I have found that [calcium carbonate](http://en.wikipedia.org/wiki/Calcium_carbonate) doesn't dissolve in water. The teacher stated that the ionic compounds dissolve in water except some carbonates. What would be a clear elaboration of this phenomenon?

Answer: 
Solubility of salts is not a prediction that I like to make. It all comes down to $\Delta{G}\_{sol} < 0$. That condition is fulfilled when $\Delta{H}\_{sol} < 0$ and $T \Delta{S}\_{sol} > 0$ or one factor outweighs the other.

There's two problems. Lattice enthalpies are large, as are solvation enthalpies, and the common observation is that $\Delta{H}\_{sol}$ in most cases is small. We are calculating differences of large numbers, and the one fact we can confidently assert is that the difference is impossible to predict and generally meaningless.

Same thing for $\Delta{S}\_{sol}$. Lattice entropies are small, but entropies of solution are lower than one would think thanks to the short-range order the solvated cation imposes on the solvent. You are gaining translational entropy from dissolving the lattice and losing translational entropy from the solvent through the inner coordination shell. You are calculating differences of numbers of equal magnitude again, and just by staring at reagents it's impossible to tell which way the pendulum is going to swing and if the result is positive or negative.
To be very honest with you, it's almost impossible to predict accurately, the solubility of compounds. At the end of the day, it's best to memorize them. Yes, there are some cases wherein a certain logic or reasoning can be used, but mostly its better to just memorize the thing. As Abel said, it comes down to a difficult interplay of lattice enthalpy, and hydration energy.