What is the difference between sandbox and EME, can we perform checkin and checkout through sandbox/ Can anybody explain checkin and checkout?

Sandboxes are work areas used to develop, test or run code associated with a given project. Only one version of the code can be held within the sandbox at any time.

The EME Datastore contains all versions of the code that have been checked into it.
A particular sandbox is associated with only one Project where as a Project can be
checked out to a number of sandboxes