I received an "ER diagram" from someone enrolled in a "database course" offered by a "professor" at a "university". This person would like to remain anonymous for the time being, as they are in an important position and don't want certain people to know what information they're providing. Let's call this person Hal Holbrook.
You can find the ERD here. Go ahead and open it, take a few minutes, really check it out. I'll wait.
Seriously, it's worth your time.
There will be a quiz later, and you'd better not fail it.
OK, done laughing are you? I wish I could stop.
Disclaimer: all the identifying info has been removed. I changed the name of the company and the date in the lower right corner. Everything else is untouched.
So, where to begin a critique of this marvelous construct? The following is a rant, in F Major:
- Powerpoint. Someone did an ERD in fucking POWERPOINT. Powerpoint 2003 (maybe even '97)
- The general layout screams "grid". Not that it HAS that layout, but that it is desperately clamoring for it.
- Bubbles. You'll never see as many bubbles unless you hook a jet engine up to this thing and let it run for a couple of weeks.
- The lines. There are even more lines than there are bubbles. And I really like the lines that don't connect to anything. This must be some new-fangled relational database, it joins to nothing.
- And how about those connectors? The three-pronged ones (Crow's feet). Notice how those were done?
- Speaking of lines, did you find it yet? You know, the funky line? The one that looks a little off? The one that's not a line but a picture of a line?
- Good, I'm glad you found it, because there's two of them. I told you there was a quiz.
- All those little annotations like "based on", "used for", "involves", "includes", "part of", "belongs to" (those last two are separate concepts I'm sure). I can see how they became part of the SQL Language spec. They're so….specific.
- JESUS TAPDANCING CHRIST ON A POGO STICK IN RUSH HOUR TRAFFIC, THEY DID IT IN POWERPOINT. Were they high? Retarded? Both? Is Visio really that expensive? (hint: no)
I wish I had this to submit for T-SQL Tuesday #21, even though it's not mine. Maybe I can submit it to TheDailyWTF, despite the stiff competition.
So anyway, Hal's assignment is to create an MS Access database based on this ERD. And only this ERD. There are other "validations" that should be included, but none of them are described. Just bubbles and lines. And the "professor" is adamant that this is sufficient, the design is perfect, and they're the most knowledgeable person on the subject (according to Hal).
There's been some debate between me and my local homies about the ethics of "naming and shaming" people or companies in the database industry when they do something really dumb. It comes up every now and then on certain SQL blogs. There's no consensus, naturally, and there's definitely good and bad things about it. While I won't name the "professor" or their school in this post, I feel completely justified in ridiculing this ERD, and by extension their course and teaching methods, because Hal:
- Is paying for this class (see below)
- Already knows basic database theory, and even some advanced
- Will learn nothing from this "professor", especially "professional" knowledge
- Has no recourse to address problems with the school
And the "professor":
- Clearly isn't trying to teach or explain; this diagram is meant to obscure
- Can't or won't use the proper tools to update the teaching material, or even make it usable
- Doesn't accept feedback, criticism, or advice on how to improve
- Doesn't know or care how bad or unprofessional they're behaving. They've got their tenure, so fuck it.
If you had to hire a database person, and you required a college degree, would you hire anyone who took this class? Even if they passed it? Would you hire anyone else who attended this university? Did I mention this ERD is for a 400-level course?
This is especially galling to me as there are so many freely available and vastly better sources for learning database design and theory. ON THE INTERNET, no less. And if you've spent any time in the past month on the nerdy parts of the web, you've heard about Stanford University's open courses in Artificial Intelligence, Machine Learning, and whaddya know, Databases. And if you haven't, turn in your nerd badge now, and enroll in them!
Holy crap, you can even find free database modeling tools. And even free database models, even for real estate.
So with all the ranting and cursing I've done here, my opinion is that Hal would be far better served by surfing the web, posting questions and answering them on the forums, and enrolling in free online courses, rather than continue to struggle in this bullshit class, with this bullshit "professor", just for the sake of a (bullshit?) degree, just to get a (likely bullshit) job, which is the only reason Hal is enrolled. And that, to me, is total bullshit.
And if you think this ERD is bad, you've haven't seen the "professor"s website yet. I won't post the URL (not yet anyway), but the background color is #daa520. Go ahead, check it out for yourself.
Bring a bucket.