In Chess: Skills, Tactics, Techniques by Jonathan Arnott, he wrote, "A sacrifice involves giving up material in order to receive other benefits. If you give up your R knowing that you are going to win your opponent's Q two moves later, then it s part of a tactic - not much of a sacrifice if you are actually winning material." He points out that it is really a pseudosacrifice...it looks like a sacrifice but actually it is just part of winning material. He points out it's quite common at the club level, so in his book, he elected to ignore those kinds of moves. Thinking about it, he's right. When we average players make what we like to call a sacrifice, it usually isn't...it's what I did here; I traded my Q for a bunch of pieces.
A real sacrifice is when a player gives up material because it helps his position. Sacrifices can be made for many reasons: prevent castling, destroy a P-formation, remove a dangerous piece, create an outpost, create a passed P, remove protection from the K, exchange into a drawn (or won) ending, launch an attack, etc. Arnott makes an important observation many players forget: Players can see a sacrifice that does not give sufficient compensation for the material given up and it's easy to forget that if you don't get enough compensation in return, your sacrifice should result in losing the game.