The Polluted Namespace of Database Applications
Wikipedia will tell you about relational databases with terminology that will confuse any person used to the English language. Drilling down to the source of the term “relational”, we find in the article Relational model that
“Relation” is a mathematical term for “table”, and thus “relational” roughly means “based on tables”.
You can keep drilling down through the articles until you get into set theory and start approaching the human usage of the word “relation”, which I understand to be: A logical or natural association between two or more things; relevance of one to another. (From relation.)
I don’t want to knock the work of Dr. E.F. Codd; his invention of the relational database has helped support my livelihood for half my lifetime. All I take issue with is the terminology, and understandably when the terms were coined, there wasn’t the familiarity with how this invention would be used that would lend it to better wordage.
More Questions than Answers
Anyone who has used a table of data knows that there’s a lot of knowledge being presented in a small space. The very simple table below seems at first glance to show the most basic of relationship representation:
id name team 1 Amy Blues 2 Bob Reds 3 Chuck Blues 4 Dick Blues 5 Ethel Reds
But the apparent simplicity actually assumes a greater knowledge. Boiling it down to pieces, we find that:
- id is probably a unique integer the database uses to keep track of the link between name and team
- name is the first name of a person
- team is the name of a group of people
And so when we use the table, we have lots of questions.
- Can a person be on more than one team?
- Can a team exist if there are no people assigned to it?
- What do we do if there is more than one person with the same first name? Do we put the last name in the name field, or do we make a separate field for a last name? And if there are two people with the same first and last name, what do we do then? If a team changes its name, how does that change the assignments?
- Who is recorded this information? Did they spell everyone’s name right? Did they make any mistakes as to which team the people were assigned?
- Who actually assigned these people to a team? What was their basis for assigning these people to one team over another?
- Are there constraints to how many people are to be on a team? Do you have a minimum number in order to play? Do you have a maximum to play at a time? What do you do with additional people?
The Start of a Good Relationship
One thing that’s obvious to start with is that there are two teams. Those teams could, and might very well want to, change their names to something more sporty — lets say the Lobsters and Clams. So there is a relationship here between the name of the team and the team itself.
