It seems that the system tables/indexes in my database have become fragmented. I know that the database needs to be recreated to fix this but whats steps do I need to take so that this does not happen again.
Below is the output of the query
select substr(segment_name,1,25)"SEGMENT NAME",extents,next_extent,bytes,
2 segment_type from sys.dba_segments where extents>4 and owner in
You can alter the next extent size of some of the objects (like SOURCE$ and its index) if you want, but 100 extents is nothing to worry about.
Tablespace fragmentation is not really a problem unless objects are being created and destroyed all the time, and this does not (well, SHOULD not) be happening in your system tablespace. Just make sure NO user has SYSTEM as a temporary tablespace and only SYS has it as a default tablespace.
If you really want to prevent this next time you create a database, you can adjust the initial and next extent sizes of these objects in the create scripts.