How exactly are public/private keys stored? So Bitcoin uses an HD wallet and thanks to that it can store keys in a hierarchy. But how exactly and in what format are they stored? Is each private and public key stored as a separate file? Are they stored in textual or binary format? Does Bitcoin use a database to store them?

The only resource I found is the source code of Bitcoin Core but are there any books or sites where I can find explanations about this?
No they are not stored, the child keys are calculated from the master when needed as they are deterministic, not random. 

Here are some references:    

https://www.oreilly.com/library/view/mastering-bitcoin/9781491902639/ch04.html#_deterministic_seeded_wallets

https://learnmeabitcoin.com/guide/hd-wallets