Why does using Discrete Cosine Transform lead to data compression?
The DCT by itself does not really compress anything.  All it does is convert the spatial domain into the frequency domain.  This basically 'concentrates' the information in the image so that some of the high frequency information can be either discarded or stored at a lower resolution.  This is where you actually get the space savings - throwing out data.  Decompressing the image involves substituting 0 for the discarded data and then taking the inverse DCT to get back something similar to the original data.