17.10.2012 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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-

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!