How Many Problems with Persistent Data Does a Unique Identifier Solve?

The answer is zero.  A unique identifier adds nothing to any logical problem we have with our data.  Let’s see why this is true.  I have two sets of data from different systems, which represent information or attributes about a real world user.  Those data elements are indistinguishable from each other.  Perhaps they are first name, last name, city and state.  They are identical as far as I can tell.  If I add a unique identifier do I know anything more about them?  I just know they are no longer identical and yet they may be in the real world the same person. By adding a unique identifier I may have made a distinction, which is false.  It’s impact will only be deleterious never beneficial.  The unique identifier becomes ornamental.  Metaphorically it is like placing a medallion around the neck of the famous twins and still not knowing if it’s Tweedledee or Tweedledum.  At least in this case I could re-name them to something like Dee and Notdee, which would be meaningful to an observer.  However, in the foregoing example, we are dealing already with a representation of an entity and it adds nothing. Now let’s add several more attributes, for example, title and department.  If I can now distinguish easily whether they are the same person or not I have accomplished my goal and I still have not added a unique identifier.  The smallest subset of elements that distinguishes one set from another is a suitable key if the data is in a database and I still haven’t added a unique identifier.  So then how are unique identifier’s useful?  They are useful within a context in which we are programmatically creating many closely similar but not identical objects whose existence is ephemeral.  When we are combining data from many different contexts, they solve nothing; they are just another attribute.

4 thoughts on “How Many Problems with Persistent Data Does a Unique Identifier Solve?

  1. I think you’re taking a too narrow view here. First off unique identifiers are not necessarily for distinguishing data between repositories, but rather amongst themselves. I need to know that user x is different from user y. But even in the case that we need to differentiate between data about the same user in different repositories, workflow added to unique identifiers helps establish what repositories are authoritative and we can begin to figure out what the proper data is.

    Now I might be showing my metadirectory roots on this but I’d be interested in seeing the use cases where unique identifiers don’t add anything…

  2. Intra system distinguishing is weak too. How do you know that user x is different from user y in the real world? The unique identifier will not tell you that. Logic ignores context. To the system they are different but perhaps the assignment of a unique ID was a mistake. It is just another attribute. To make a distinction and be reasonably sure we are not discussing identical representations we need to keep adding new information until they differ in a meaningful way (to a human). And even if they do differ, we may need to search historical data either in someone’s memory or stored in the system to make the final call. Perhaps x = y but because of a different time context the system reports x ≠ y. In a an LDAP directory a unique identifier may be a short cut to avoid a long complex path search but they can still be duplicate entries.

    • That’s why I’m saying workflow is needed to help establish what’s what. Once you have a process, the unique identifiers can then mean something. Before that, I agree with you, they’re just another attribute.

      • Even in the context of a workflow a unique identifier adds nothing which is not already discernible from the smallest subset of data which makes the set unique. A separate unique ID in this case is simply a shortcut. It saves me typing while making queries.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s