http://www.bcae1.com/sig2nois.htm
http://usertools.plus.net/tutorials/id/12
Not quite right - Attenuation is the decrease in signal power along the wire due to such things as electrical resistance, joins etc. It's basically dependant upon your distance from the exchange. An analogy would be the decrease in volume as you move away from an audio source - a sound that would cause you pain if you were very close to the source attenuates as you move away, until eventually you can't hear it at all.
SNR = Signal to Noise Ratio. It's a measure of how strong the data signal is compared to the background noise on the line. The lower the SNR, the more difficult it is for the signal processing systems on either end of your connection to distinguish between the two. It's related to both line quality and Attenuation. A 'noisy' line will obviously decrease your SNR, and as line noise doesn't attenuate the way the dsl signal does, higher attenuation means that there's less signal power coming out compared to the background noise, ie lower SNR. An analogy for this would be trying to have a conversation in a nightclub or crowded restaurant - the person who's talking to you needs to be sufficiently louder than the 'Noise' (from your perspective) for your brain to be able to pick out their voice - the 'Signal' - from the background, ie there needs to be a sufficiently high SNR.
And to put the numbers in some sort of perspective...
As a rough approximation for every 3dB of attenuation you lose 50% of your signal power - so 3dB leaves 50% of the input power, 6dB leaves 25%, 9dB leaves 12.5%.
The actual formula is:
dB = -10log(x)
where x is the fraction of signal power remaining and the log is base 10. So for say 10% remaining power, x=0.1, db = -10log(0.1) = 10dB
To go the other way and get x from a dB figure, it's x = 10^(dB/-10), so a 50dB attenuation means that x = 10^(50/-10) = 0.00001 = 0.001%
Similarly for SNR, eg a 9dB SNR means there's 1/8th (12.5%) as much power in the noise as in the signal.