How can I track all Flagging/Unflagging history for statistics? Is there any way to track the flag/unflagging of a node/user without the Heartbeat module? Or a way to track all user/node interaction to use it after for statistics?
Yes there is a way ... using a combination of these (commonly used) modules:


Rules
Message
Views


Long story short:


Create a "Message Type" that you'll use for creating some type of custom logging (for the events you're asking about).
Use the Rules module to capture the events, with rules actions to create appropriate messages (= records in your custom log).
Use the Views module to browse the messages that got created.


For a variation of your question, where a similar technique can be used, refer to my answer to "Is there a way to send emails when someone logs in?".

PS: this answer applies to D7 ...