select sum(bytes) from dba_data_files
will give u the current size of your db. Extimate is something which you have to plan based on your application and the growth which u expect on the DB. Hope that helps.
select sum(a.bytes),sum(b.bytes),substr(c.value,1,10) ,
from v$log a,v$datafile b,v$parameter c
group by c.value
Maybe this script will be handy for admin purposes.
round(((a.ts_size_in_MB-b.ts_free_space)/a.ts_size_in_MB)* 100,2) percentage
from (select tablespace_name,
group by tablespace_name) a,
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name (+)
order by b.ts_free_space