I have a basic question about gas price charged for transaction. Say I have a private ethereum block chain with ten nodes and I don't want to charge any fee for the transaction taking place in this private chain. Can I do that? If yes how can I be able to do it?
Yes you can do it.
All Ethereum transactions require gas. So you need a certain amount of gas, but it's up to you to decide how much you want to actually pay for the gas (gas price). In mainnet, if you want your transaction to go through, you have to specify a non-zero gas price for the transaction. If the gas price is zero, no miner has incentive to include the transaction in their block as it wouldn't benefit them in any way.
However, in private network, you control the miners and you can decide what kind of transactions they process. You can just set all the miners to include also zero-gas priced transactions and that should be it.
Furthermore, even if you did have some non-zero gas price in your private network, you are in control of the Ether circulation and can therefore just pay whatever transaction costs with the Ethers mined by your nodes.
So you have two options:
1) Use zero gas price in transactions and configure nodes to accept such transactions
2) USe "normal" gas prices in transactions and just funnel Ether back to wherever it's needed.