Warum werden bestimmte Dubletten manchmal erst im zweiten Durchlauf gefunden?

Bei einem komplexen Abgleichskriterium wie beispielsweise beim Abgleich über die postalische Adresse werden bei einer Dublettenbereinigung mit den DataQualityTools bei einem zweiten Durchlauf in der Regel keine weiteren Dubletten mehr gefunden. In Ausnahmefällen kann aber ein zweiter und manchmal sogar noch ein dritter oder vierter Durchlauf durchaus noch weitere Dubletten zutage fördern. Das ist insbesondere dann der Fall wenn das Abgleichskriterium sehr einfach ist.

Beispiel: Die Postleitzahl soll mit einem Schwellwert von 70% verglichen werden. Dazu könnte beispielsweise der Universalabgleich aus den DataQualityTools verwendet werden.

Im ersten Durchlauf werden dabei Treffer gefunden bei denen nur die letzte Ziffer der Postleitzahl abweicht:

Gruppe löschen   ID Postleitzahl
1   80% 1 12345
1 X 80% 2 12346
2   80% 3 12395
2 X 80% 4 12396

 

Nachdem die beiden zum Löschen markierten Datensätze aus der Datenquelle gelöscht worden sind (ID 2 und 4) liefert ein zweiter Durchlauf dann einen weiteren Treffer, bei dem diesmal die vorletzte Ziffer der Postleitzahl abweicht:

Gruppe löschen   ID Postleitzahl
1   80% 1 12345
1  X 80% 3 12395

 

Warum ist der Treffer aus dem zweiten Durchlauf nun aber nicht bereits im ersten Durchlauf gefunden worden? In diesem Beispiel sind die beiden Datensätze des Treffers aus dem zweiten Durchlauf im ersten Durchlauf Teil unterschiedlicher Dublettengruppen. Alle Datensätze in einer Dublettengruppe müssen das Abgleichskriterium aber auch bei einem Verglich der Datensätze innerhalb der Gruppe erfüllen. Deswegen passt im ersten Durchlauf 12345 nicht in die Gruppe in der sich 12395 befindet und umgekehrt. Erst wenn die Treffer aus dem ersten Durchlauf gelöscht worden sind, werden 12345 und 12395 gefunden, da es dann keinen Grund mehr gibt warum diese nicht in der gleichen Gruppe landen sollten.

Aus demselben Grund kann unter Umständen auch die Anzahl der gefunden Dubletten variieren: Wenn im obigen Beispiel im ersten Durchlauf gleich der Treffer aus dem zweiten Durchlauf gefunden wird, dann sieht das Ergebnis wie folgt aus:

Ergebnis des ersten Durchlaufs:

Gruppe löschen   ID Postleitzahl
1   80% 1 12345
1  X 80% 3 12395

 

Ergebnis des zweiten Durchlaufs:

Gruppe löschen   ID Postleitzahl
1   80% 1 12345
1  X 80% 2 12346

 

In diesem Fall werden insgesamt nur noch zwei Dubletten gefunden und nicht mehr wie oben drei. Der Datensatz der oben zu dem Treffer mit der Postleitzahl 12396 geführt hat ist ja hier im zweiten Durchlauf nicht mehr vorhanden. Das Ergebnis der Dubletenbereinigung ist also unter Umständen von der Reihenfolge abhängig in der die einzelnen Datensätze miteinander verglichen werden. Das ist umso wahrscheinlicher umso mehr Treffer im Vergleich zur Größe der Tabelle gefunden werden. Und das wiederum ist umso wahrscheinlicher je einfacher das Abgleichskriterium ist.