How does bitcoin prevent someone from sending more money than he/she has? I am new to bitcoin, I was wondering how bitcoin implements this particular functionality efficiently. Does it check through all blockchain records for the address of the sender. Or does each transaction store a list of previous transactions by the sender?

I am curious as to how this can be implemented efficiently?
This is called the "double-spending" problem. There's an excelent article on the Bitcoin Wiki that covers the entire mechanism. 

https://en.bitcoin.it/wiki/Double-spending