How much space data takes depends on a number of factors. Character data takes 1, 2, or 3 bytes for each character, depending on your characterset. I rarely use multi-byte charactersets so most of my character data is 1 byte per character. Number datatypes use between 2 and 9 bytes depending on the value being stored. Date datatypes require 7 bytes. Each row requires a little bit of overhead, but the big factor is the actual data being stored.
One also has to keep in mind that there is overhead just to run the database. The Data Dictionary (in the SYSTEM tablespace) will require at least 100MB. Plus, you have your TEMP tablespace, and your UNDO tablespace. Indexes will take space too.
With 40GB, you have enough room for a small database, but you might want to get a second hard drive for your system should this be too little. Oracle is only constrained by your disk space for storing records. Technically, you can store many, many petabytes of data in an Oracle database, but that much disk space will cost a fortune.
This was first published in May 2006