I searched this over Google few times but ended up with articles on transparency rather than an answer. With relation to distributed database study(or distributed OS), what is the concept of transparency? I mean in replication, fragmentation and everywhere I guess the idea is to implement these concepts but not to bother user about them. Correct me if I'm wrong but I think the idea is "User shouldn't know?". Then HOW is this transparency? Isn't it abstraction? Hiding the implementation details?
I agree with you. The distinction is pretty weak.
I think the rationale is that transparent is supposed to mean "invisible", or "you don't even know it's there." Abstraction means that you don't see the implementation of something, but you know that it's there.
Example: Consider Linux. There's one command,
cp <srcfile> <destfile> for copying files on the mounted file system. There's a completely different command, usually
scp <user>@<machine-name>:<srcfile> <destfile> for copying a file from a remote filesystem that is mounted on a remote machine.
scp is an abstraction in that it hides all the implementation details about contacting the remote machine using the ip protocol, the encryption of the channel, and the mechanics of accessing the disks on the local and remote sides of the transfer. But in no way is the distinction between a local file and a remote file transparent. You have to use a different command depending on where the file is.
Worse, you can't edit the remote file in-place. With a local file you just open the file in your text editor. With a remote file you have to
scp it to your local file system, edit the copy, and then
scp the modified file back to the original location.