Datenvalidierung mit Hilfe der Oracle-Datenbank

Datenvalidierung mit Hilfe der Oracle-Datenbank

Das Pflegen von Kundenkontakten spielt eine wichtige Rolle in ihrer Unternehmensführung. Sie sammeln daher auch fleißig Kontakte und versuchen diese so gut zu Pflegen wie möglich. Unter Umständen erhalten Sie auch Kontaktdaten über potentielle Kunden von einem Dienstleister.

 Im Laufe der Zeit wächst entsteht allerdings ein ungeahntes Problem: Die Menge an Karteileichen und auch fehlerhaften Kontaktdaten ist enorm. Nun stellt sich die Frage, mit welchen Kontakten Sie weiter arbeiten können und welche Daten Sie gegebenen Falls korrigieren/aktualisieren müssen.

 Während dies bei einem Bestand von bis zu 100 Kontakten (Abhängig von der Komplexität ihrer Daten und der Struktur ihrer Datenbank) noch durchaus händisch zu bewältigen sind, müssen Sie bei Dimensionen von mehreren Hunderten oder gar Tausenden Adressen einen Automatismus einsetzten.

Dieser Artikel soll ihnen Tipps geben, wie Sie Kontaktdaten nachträglich Pflegen können. Sie benötigen dafür keine teure Software. Die Ratschläge sind alle mit Hilfe von PL/SQL direkt auf ihrer Oracle-Datenbank anwendbar.

Die wichtigste Frage zuerst: Was genau will ich erreichen? Sollen die Daten gelöscht, korrigiert oder exportiert werden?

Wie Sie die Resultate verarbeiten liegt selbstverständlich in ihrer eigenen Hand. Wir empfehlen ihnen allerdings, dass Sie die Resultate mit Hilfe einer Referenztabelle in Kategorien aufteilen. Der Vorteil ist, dass Sie einen schnellen Zugriff auf die Datensätze haben. Es ist auch nicht auszuschließen, dass Datensätze im Ergebnis enthalten sind, weil bei der Eingabe sich Tippfehler eingeschlichen haben. Es wäre demnach Katastrophal, wenn Sie die Kontaktdaten ihrer Stammkunden wegen eines Tippfehlers löschen.

Beginnen Sie, indem Sie einfache Tests durchführen

Auch wenn dieser Vorschlag banal klingt, hat er einen gewissen Mehrwert. Es ist wesentlich einfacher zu prüfen, ob in einem Feld ein Eintrag fehlt, als ob eine Person anhand ihres Vornamens männlich der weiblich sein muss (dies ist zum Beispiel mittels einer Lookup-Tabelle möglich). Überprüfen Sie auch auf simple Dinge, wie etwa, ob in einem  Datumsfeld nur ein Leerzeichen enthalten ist. Solche Tests führen schnell zu Resultaten, denn viele fehlerhafte Daten sind meist solche „Kleinigkeiten“. Ein angenehmer Nebeneffekt ist, dass Sie automatisch auch die unvollständigen Datensätze zur Verfügung haben.

Entschlacken Sie die DB – Die Suche nach Duplikaten

Jeder Datensatz in einer Tabelle definiert sich über einen Primärschlüssel als einzigartig. Jedoch schließt dieser Mechanismus nur Duplikate auf technischer Ebene aus. Mehrere Einträge können dennoch dieselbe Person darstellen. Diese Fälle entstehen durch versehentliche Fehlbedienung der Software, mit jener die Einträge generiert werden können, zum Beispiel wenn aus versehen doppelt gespeichert wird oder Daten angepasst werden sollten, allerdings als neuer Datensatz gespeichert werden. Sie müssen also einen „neuen Primärschlüssel“ definieren, der einen Kontakt eindeutig ausweißt aber dennoch die Möglichkeit bietet Duplikate zu ermitteln. Wir empfehlen ihnen die Kombination aus Vor- und Nachnamen oder gleichwertige zusammengesetzte Kriterien. Das Entfernen von Duplikaten sollte allerdings händisch vorgenommen werden, denn es ist nicht auszuschließen, dass bedingt durch den Kontext Einträge als Duplikat erkannt werden, welche jedoch so gewollt sind. Die Bereinigung von Duplikaten hat zusätzlich noch 2 Vorteile. Zum einen verbrauchen Sie weniger Speicherplatz und zum anderen werden zukünftige Suchen schneller, auch wenn diese erst nach der Bereinigung einer signifikanten Menge an Duplikaten zu spüren ist. Auf jeden Fall werden Suchen eindeutig und vereinfachen damit ihren Arbeitsalltag.

Reguläre Ausdrücke – Der Schlüssel zur Formatsprüfung

Reguläre Ausdrücke sind Zeichenketten mit generischem Charakter. Der Inhalt dieser Ausdrücke gibt eine bestimmte Formatierung an, dabei sind etliche denkbare Kombinationen möglich wie Beispielweise:

–          Deutsche Postleitzahlen: Ist es eine fünfstellige Zahl?

–          Emailadressen: Um zu prüfen, ob es sich bei der Zeichenkette um eine Emailadresse handelt prüfen, sie ob Sie ein @ und mindestens einen Punkt enthält. Vor dem @ müssen beliebig viele Zeichen stehen, ebenfalls zwischen @ und dem Punkt und eine beliebig lange Zeichenkette nach dem Punkt. Ebenfalls dürfen keine zwei Punkte nebeneinander sein.

Viele Reguläre Ausdrücke sind mittlerweile als Standardlösungen etabliert und erzielen trotz ihrer geringen Komplexität Resultate.

Komplexere Abfragen – Validierung von Email- und Internetadressen

Wichtige Komponenten ihrer Kundendaten sind die Kontaktdaten, welche zur Kommunikation das Internet benötigen: Internetadressen und Emailadressen. Diese Prüfungen sollten Sie allerdings erst gegen Ende der Adressbereinigung durchführen. Der Grund dafür ist zum einen, dass es keinen Mehrwert hat, Adressen zu testen, die schon auf Grund des falschen Adressformates nicht gültig sein können, da der Server nicht erreichbar wäre, und zum anderen nehmen Sie während der Tests Kontakt zu den Hosts auf, wenn Sie diese mit einer unnötig hohen Anzahl an Anfragen kontaktieren, kann es durchaus passieren, dass Sie von den jeweiligen Administratoren auf die Blacklist gesetzt werden und dadurch gesperrt werden.

Die Tests unterscheiden sich in einigen Punkten, sind sich im Grundansatz aber ähnlich.

Validierung der Internetadressen:

Sammeln Sie alle Internetadressen, die Sie testen wollen. Für die Validierung steht ihnen das UTL_HTTP Packet zur Verfügung, welches auf HTTP aufbaut und es ihrer Datenbank erlaubt, über dieses Protokoll im Internet zu kommunizieren. In einer Schleife werden http-Requests an alle Server geschickt. Die Validierung findet in PL/SQL durch das Exception-Handling statt. Wenn eine geworfen worden ist, ist der Server hinter der Internetadresse nicht erreichbar. Dies kann 2 Ursachen haben:

1.       Der Server ist gerade offline

2.       Die Internetadresse ist falsch. In der Regel ist dies die Ursache für das Scheitern des Requests.

Validierung der Emailadressen:

Das größte Problem ist, dass Sie die Gültigkeit der Internetadressen nicht direkt prüfen können. Zwar bietet das UTL_SMTP, welches auf SMTP aufbaut, eine Funktion , die es erlaubt Anfragen an einen Server zu stellen, ob eine Emailadresse existiert, standardmäßig werden diese Fragen auf Grund der Sicherheit von Servern verwehrt. Mittels UTL_SMPT können Sie Emails an jede Adresse schicken und warten dann darauf, dass die Besitzer der Adressen ihnen eine Antwort schicken (Sie können zum Beispiel direkt über ihr Datenbanksystem Newsletter verteilen). Von dieser Vorgehensweise raten wir allerdings ab, da Sie ineffizient ist und zur Belästigung ihrer Kontakte führt. Eine Möglichkeit die ihnen noch bleibt, ist die Prüfung, ob der Webserver unter der Domain erreichbar ist. Dies läuft prinzipiell genauso ab, wie bei der Prüfung der Internetadressen, es wird allerdings das SMT-Protokoll verwendet.