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.
Dig Deeper on Oracle database backup and recovery
Related Q&A from Brian Peasland
Oracle expert Brian Peasland answers one reader's question about common pitfalls when connecting Oracle to outside programs. Continue Reading
One reader asks expert Brian Peasland a question about datafile sizes with the Oracle RMAN duplicate 10g command. Continue Reading
Managing parent table-child table relations in Oracle SQL environments is key to efficient programming. Continue Reading