The real heroes.

Databases are pure joy when they are well-structured, and nightmares when they aren't. All databases structure decays as a function of continued development over time.

Databases are their own little world, speaking their own little language, following different rules to the rest of the software world. They are hard to version control, hard to scale, and hard to live without.

Databases Management Systems

Someone else (someone smarter) did the hard work for us!

Object Relational Mapper

Since databases usually only speak SQL, a language that is not very nice to use, there have been many attempts at creating translation layers between database models and normal programming language constructs. I have used a few of these.

Really all I want is something that can automatically create type definitions for database tables and automatically create migrations that I can later edit. In terms of querying syntax, I only want to use it for simple queries, and prefer an ORM that knows this and gets out of my way when I want to rawdog the database. (this is why I like using Prisma)