My CS course
I had a course called “Databases” (translation) this semester. As universities aren’t (at least for me in my studies right now) the best place for trendy new technologies, we of course concentrated on relational databases. Good thing at least we aren’t bought out by Oracle and still got to enjoy using PostgreSQL. The best part about the course in my opinion was the assignment to design a small database from scratch. I cannot say that I am too proud of how it turned out in the end, but I had other courses to worry about too and didn’t want to go down a rabbit hole by myself (it was a group project). Even the fact that I feel critically about it is comforting, because now I know that if I need to aid in designing a database down the line, I am able to catch some mistakes or just bad design choises that I would’ve otherwise made.
Oh, and I am not going to open source this project because as I said, it is a university assignment and otherwise a group project so I don’t want to go through the hassle of licensing.
SQL databases in general
I had only a faint understanding of databases before this course. You know, tables, rows, columns. I had some idea about SQL as a language, but didn’t grasp it fully. The most surprising fact for me was that pretty much every bit of anything you want to do with data, can be done in the DBMS. The other thing that I didn’t think of before was the complexity of the process designing the database schema. Turns out there is a bunch of math (relational algebra that we just dipped our toes into for a week) that makes all of it possible, design choices (to NF3 or not to NF3, that is the question) and functional dependencies that show which normal form your model is in.
Structured data is cool, but…
it might be an overcomplication for many usecases. Just like object oriented programming creates unnecessary abstractions and complexity. That might just be me talking that hasn’t yet touched “big code” 😱… Let’s see if my standing changes if/when I get to contribute to the society in an actually meaningful way.
Oh and P.S. WHY use stuff like DBeaver for database management, when there are actually good frontends for managing PostgreSQL databases like, oh I don’t know, PGAdmin for example??? Very weird.