CNN this morning is reporting that the US Army sent re-enlistment request letters to about 75 officers who had been killed in Iraq. Apparently there's more than one version of the database and although someone cleaned up one version, a different older version was used for the letters.
As a widower, I've received many letters and phone calls for my first wife Melissa, so I can empathise with these families.
As a techie, I'm trying to picture how this particular error occurred. Perhaps it's one of those clumsy Access databases with a zillion copies of the table created by MakeTable queries. Or a database with dozens of poorly names views. The article says that the database was thoroughly cleaned. I wonder if that means someone matched rows and deleted them by hand? If there's a column indicating DateOfDeath, or even DutyStatus, wouldn't those column sindicate if they are eligible for re-enlistment? Maybe the column is there, but there's no RI? Maybe the RI is handled by the front-end and the database has no constraints? I'll bet somewhere in the Army there's a data modeler who argued against the situtation that enabled this error, but he or she was overruled.
Data Architecture has a term, One Version of the Truth, which means that it's important for an organization to use a single copy of the database, or data warehouse. For most organizations violating this concept means that managers receive inconsistent reports. For the Army it means that it could have avoided having to apologize for being insanely stupid.