You are correct, Derby does not provide table partitioning features such as those provided by Oracle.
And you are correct, a single Derby table is a single .dat file. But modern filesystems handle very large files without problems. Is there a particular reason that you think a very large file will be a problem for you? Or that you think a larger number of smaller .dat files would have some benefit? I believe there are a variety of library/framework approaches to splitting up a logical table into multiple physical tables. People often do this with data that is oriented around "time", and becomes of less interest as it ages. I've seen applications which, e.g., create a new table each day, named appropriately, and "rotate" these tables over time so that the old data ages out and is dropped (by dropping the older no-longer-wanted tables). Careful use of CREATE VIEW can shield your application from most of the impact of such techniques. thanks, bryan