The database buffer cache internally manages three types of buffers: free buffers (available for use), dirty buffers (modified but not yet written to disk), and pinned buffers (currently being read or modified). Access buffers is not a standard buffer cache type. The buffer cache uses these states to manage data blocks efficiently and maintain data consistency.