CeBIT 2002 – Qualität statt Quantität - Midrange Magazin
CeBIT 2002 – Qualität statt Quantität - Midrange Magazin
CeBIT 2002 – Qualität statt Quantität - Midrange Magazin
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Technik & Integration<br />
Dubletten erkennen und verhindern<br />
Heute befassen wir uns mit einer Problematik,<br />
zu deren Lösung es bereits Standard-Software<br />
am Mark gibt. Die Problematik dieser<br />
Standard-Software liegt immer in der<br />
Integration in die bestehende Softwareumgebung.<br />
Das Problem heißt doppelte Adressen.<br />
Die Lösung, die den Benutzern angeboten wird,<br />
muss zwei Ansätze berücksichtigen. Zum einen<br />
das Auffinden der doppelten Adressen und zum<br />
anderen das Verhindern von Adress-Duplikaten.<br />
Um ohne Standard-Software in diesem<br />
Problemumfeld zurechtzukommen, biete ich<br />
Ihnen einen möglichen Lösungsweg via SQL an.<br />
Frage: Wir haben in unserem Kundenstamm<br />
etliche Kunden mehrfach angelegt.<br />
Wie können wir diese Dubletten<br />
auffinden <strong>–</strong> oder noch besser ihre Anlage<br />
verhindern?<br />
Antwort: Bei automatischer Vergabe eines<br />
künstlichen Schlüssels in Form einer<br />
Kundennummer ist die mehrfache Anlage<br />
von Kunden <strong>–</strong> insbesondere bei der<br />
automatischen Anlage von Stammdaten<br />
aus Überleitungsdaten <strong>–</strong> nicht völlig vermeidbar.<br />
Soweit andere Kriterien einen<br />
Kunden eindeutig identifizieren, ist das<br />
doppelte Anlegen identischer Kunden<br />
bereits durch einen zusätzlichen eindeutigen<br />
Schlüssel vermeidbar. So ist in vielen<br />
Fällen sichergestellt, dass Firmenname<br />
und Ort einen eindeutigen Schlüssel<br />
bilden. Bei Endkundensätzen reicht dies<br />
sicher nicht aus, da muss zumindest<br />
noch um den Rest der Adresse erweitert<br />
werden.<br />
Eine entsprechende Schlüsselbedingung<br />
lässt sich am einfachsten mit SQL anlegen.<br />
Dokumentiert geschieht das am<br />
besten in Form eines kleinen Skripts in<br />
einer normalen Quelldatei, die mit<br />
RUNSQLSTM ausgeführt werden<br />
46 www.midrangemagazin.de Mai <strong>2002</strong><br />
Technik-Forum<br />
Sie sind nun wieder eingeladen, die Diskussion spezieller technischer Probleme mit zu verfolgen.<br />
Bitte schicken Sie Fragen, Anregungen oder Antworten zu den vorgestellten Themen <strong>–</strong> ebenso wie Ihre Kritik<br />
<strong>–</strong> an unsere eMail-Adressen dieter.bender@bender-dv.de oder Redaktion@<strong>Midrange</strong><strong>Magazin</strong>.de<br />
CREATE UNIQUE INDEX #KUNDE01<br />
ON #KUNDE<br />
(<br />
NACHNAME<br />
, VORNAME<br />
, ORT<br />
)<br />
Verhindert doppeltes Anlegen von Kunden<br />
select *<br />
from KUNDE a, KUNDE b<br />
where a.NACHNAME = b.NACHNAME<br />
and a.ORT = b.ORT<br />
and a.KUNDE_ID b.KUNDE_ID<br />
Findet doppelte Kunden<br />
select *<br />
from KUNDE a, KUNDE b<br />
where SOUNDEX(a.NACHNAME) = SOUNDEX(b.NACHNAME)<br />
and SOUNDEX(a.ORT) = SOUNDEX(b.ORT)<br />
and SOUNDEX(a.STRASSE) = SOUNDEX(b.STRASSE)<br />
and a.KUNDE_ID b.KUNDE_ID<br />
Phonetische Suche nach evtl. doppelten Sätzen<br />
kann. Die hier oft propagierte Verwendung<br />
des Operations Navigator ist<br />
allenfalls in einer Testumgebung als Alternative<br />
vertretbar. Im Produktionsumfeld<br />
muss das SQL-Statement als Quelle<br />
ohnehin dokumentiert werden.<br />
Ein solcher eindeutiger Schlüssel verhindert,<br />
dass doppelte Sätze entstehen können,<br />
egal welcher Schlüssel für das ei-