We can plan the storage for a table as how much initial extents are required, how much can be extended next, how much % should leave free for managing row updations etc.
To manage the database level transactions such as modifications of the data dictionary table that record information about the free space usage.
Each block contains entries as follows
Fixed block header
Variable block header
Row Header,row date (multiple rows may exists)
PCTFREE (% of free space for row updation in future).
This is used to reserve certain amount of space in a block for expansion of rows.
To avoid the space wastage we use OPTIMAL parameter.