But as common as the term “attribute” may be, I don't know what it means. The fact that I've been using the term is totally irrelevant.
The term is used to mean different things at different times, and I have trouble distinguishing the idea from others we've already discussed. Don't be fooled by the fact that I can rattle off a few examples. As you'll see later on, I really think they are examples of something else.
There are several ambiguities in the way the term is used. In order to explain that without getting tangled up in other ambiguities, let me temporarily introduce three new terms, so that we can get a better handle on what we're talking about. Every attribute has a subject: what it is an attribute of. People, my car, and New York were the subjects of the attributes in the examples above. Then there are targets, which are at the other end of the attribute, such as heights, blue, and crowded. Thirdly, there are links between subjects and targets. In the last example, it isn't “New York” or “crowded” which are important in themselves; what is being expressed is a connection between the two: New York is crowded.
(Later I'll show that the three new terms are quite imperfect. They still retain two ambiguities: type vs. instance, and thing vs. symbol.)
First ambiguity: “attribute” sometimes means the target, and sometimes the link. “Blue,” “salary,” “height” are sometimes referred to as attributes. On the other hand, “color of car” and “height of person” are also sometimes called attributes. If you don't make the distinction, you get trapped into believing that a single construct can represent the idea of “blue” and the set of all things that are blue. If you do make the distinction, then you had better use the term very carefully. About half the people you meet will use it in the opposite sense from you.
I tend to favor using the term “attribute” in the sense of the link itself, between the subject and the target. But I'm not sure I am always consistent in my usage (or that anyone else is).
I frequently use the term “data element” because “data elements” exist at both a logical and physical level of detail. Yet if I use the term
physical level, such as “column” or “field.”
The second ambiguity has to do with type and instance, and my new terms haven't helped that ambiguity one bit. Some people say that “blue” (or “my car is blue”) is an attribute. Others will say that the attributes in this case are “color” (or “color of car”), and that the first two things were “values” (or instances, or occurrences) of the attribute. I have no preference. I tend to use the terms carelessly in either sense. Other people are sometimes careful to define the sense they intend, and sometimes they aren't.
The type vs. instance discussion is relevant for entities, relationships, and here, with attributes, as well.
The third ambiguity has to do with thing and symbol, and my new terms didn't help in this respect either. When I explore some definitions of the target part of an attribute, I get the impression (which I can't verify from the definitions given!) that the authors are referring to the representations, e.g., the actual four letter sequence “b-l-u-e,” or to the specific character sequence “6 feet.” (Terms like “value,” or “data item,” occur in these definitions, without adequate further definition.) If I were to take that literally, then expressing my height as “72 inches” would be to express a different attribute from “six feet,” since the “value” or “data item” is different. And a German describing my car as “blau,” or a Frenchman calling it “bleu,” would be expressing a different attribute from “my car is blue.” Maybe the authors don't really mean that; maybe they really are willing to think of my height as the space between two points, to which many symbols might correspond as representations. But I can't be sure what they intend.
To summarize: any of the following might be an example fitting the concept of “attribute,” although each exemplifies a different thing:
The concept of color. The concept of blue.
One of the character strings “blue,” “bleu,” “blau,” etc. The general observation that cars have colors.
The fact that my car is blue.
Perhaps these ambiguities can be resolved with some careful definitions, and some authors do make a commendable effort. Most definitional efforts I've seen, however, leave other crucial terms undefined or ambiguous, so that we don't really have a working basis for applying the concept.
Context is one of the common threads throughout this book. Earlier I shared that the admissions department at a university had a very different definition of Student than the alumni affairs department. Both
departments are right in their definition of Student, it is only when we question the context, such as whether our scope is a particular department or the university as a whole, where issues frequently arise. Context also applies to Kent's discussion in this section. An automobile manufacturer most likely will have a stronger interest in vehicle color than a hotel. The manufacturer may, therefore, have a distinct entity containing the possible color set, whereas the hotel, who only needs a brief description of the car so they can locate the owner if needed, just needs the owner to write down the type of car and color; most likely one hotel guest writing “yellow orange” for their car and another hotel guest writing “orange yellow” will not cause an issue.
Type vs. instance, symbol vs. words, attribute vs. relationship—these decisions can be made after understanding the proper context. In my book, Data Modeling Made Simple, 2nd Edition, Graeme Simsion contributed a chapter that I quote often on how the data modeler should work with other members of the project team. One of the key messages from this chapter is to always ask the higher questions. That is, upon seeing a model, instead of challenging the length of Customer Last Name or the spelling of Cost Center, ask questions such as, “What is the purpose of this data model?”, “Who is the model for?”, “What is the scope of the model?”, etc. Questions such as these ensure the right context has been chosen.