There's a reason why (big, multi-user) DBMSes commonly request filespace in chunks, and why they immediately allocate all of it and do not release it. The reason is that "extending a file's size" is typically a fairly expensive operation. But muddling about in the space that you own is cheap. And this "muddling" is being done by optimized, application-specific algorithms within the DBMS.
PC-oriented databases commonly allocate space on-demand, then once again they never release it back to the OS.
Both of these strategies have sound reasoning behind them, and the DBMS should generally be left to its own decisions.