Well I'm talking about the commercial database servers where scaling is necessary. Like Microsoft SQL Server running Hotmail or something. And if you've ever run MSSQL you know that it will consume all memory on the machine with the out-of-box configuration,
because its doing its own disk caching.
Perhaps, but commercial databases tend to guarantee some kind of data integrity, which is impossible unless they persist the contents of a transaction. I don't think they would use write caching by default, as it is fundamentally dangerous to this objective.
I don't think a well designed DB would do extensive read caching either. It's something that is more readily done by a kernel. As everyone has been saying, that's read caching is what most FS do for you (including NTFS) for free.
A DB can provide detailed information about their file I/O requirements through an mmap call anyway.