What is it
From architectural layer perspective, database is an abstraction of structures of data.
- comes with hard boundary separation and restrictive definitions.
- restrictive definitions prevent users from misusing the database.
- restrictive definitions make behaviors concrete (predictable as expected).
- boundary separation allows database layer to be easily swapped out (much like dependency injection).
- It supplies a lot out of the box.
- querying language
- optimizations
- other idiomatic behaviors