Yeah, I also agree that databases are a lot more about database internals (or DBMSs).
Not sure if I would agree with splitting databases into separate courses. I think it's a lot more useful to learn about general concepts like concurrency and memory/storage management by understanding how other systems (like OSs) handle it. For concurrency, systems courses should give students a taste of the various concurrency techniques. Then the more theoretical courses like parallel computing can give a more unified and mathematical view.
I think the current state of courses already meshes pretty well:
Real Systems| Theory of Computer Systems
============|
Networks ⇘
--------
Operating Systems ⇒ Concurrency/Parallel/Distributed Computing
--------
Databases ⇗⇘
-------------- Programming Languages
Compilers ⇒⇗
My main gripe about databases courses is that they are often way too out-of-date:
* No mention of LSM trees, which are probably a bit more important than ISAM.
* Tons of time spent on 2PL, deadlocks, and strict serializability, without any mention that mainstream database systems generally default to Read Committed and use MVCC.
* ARIES - At least the course I took spent so much time on outdated cost optimization, concurrency control techniques and then just mention a single, very complicated yet important durability technique at the end. This isn't even that young of a technique anymore (1992) and there are tons of variants which are probably a bit more important to understand than all of the 2PL variants.