Something similar happens with networking. Due to protocol overhead/10bits physical for 8 bits of pure data, it turns out a wash of 1:10 ratio rather than 1:8 when it comes to translating G or Mbps to real G or MBps.
So Sata 3 is 6Gbps? Expect maximum 600MB/s. Ethernet at 100Mbps? 10MB/s. And so on.
Does this mean that the bandwidth is 6Gb/s but the actual throughput is 4.8Gb/s ?
Yes it does. It is interesting to understand why.
While data is actually sent at 6Gb/s, it is encoded to counteract two common defects in telecommunications, DC bias and Clock Recovery. This is often accomplished using a specific coding algorithm called 8b/10b encoding. It is not the only encoding algorithm which has been devised to this end, (there is for instance also a Manchester encoding), but it has become the de facto standard for SATA data transfer.
In the (aptly named) 8b/10b coding, eight bits of signal are replaced by 10 bits of (signal+code). This means that, out of the 6Gb the channel sends in a second, only 8/10 =4/5 are signal. 4/5's of 6Gb are 4.8Gb, which in turn equal 600MB. This is what degrades the 6Gb/s channel into a mere (??) 600MB/s channel.
The advantages obtained by compensating for DC bias and allowing for Clock Recovery more than compensate for this slight degradation.