Eindeutigen Schlüssel aus Adress-String erzeugen
paeonia
- datenbank
Guten Morgen Ihr alle,
Gibt es ein anerkannt sicheres Verfahren, wie ich aus Nachname, Vorname, Straße, Hausnummer, PLZ einen sicher eindeutigen Schlüssel erzeugen kann, wenn ich
1. mehrere Nennungen der Person in verschiedenen Zeilen der Importtabelle habe, aber die Person eindeutig identifizieren möchte.
2. kein Geburtsdatum vorhanden ist,
3. die Tatsache, daß Meier Anton sen. mit seinem gleichnamigen Sohn im gleichen Haus wohnt und somit den gleichen Schlüsselwert bekommt, tolerieren kann.
Am liebsten hätte ich einen Long oder Double -Wert, ich kann aber auch mit einem Textwert leben, weil es um etwa 10.000 DS geht.
Danke schon mal für Eure Hilfe sagt Paeonia
Hallo!
Gibt es ein anerkannt sicheres Verfahren, wie ich aus Nachname, Vorname, Straße, Hausnummer, PLZ einen sicher eindeutigen Schlüssel erzeugen kann, wenn ich
- mehrere Nennungen der Person in verschiedenen Zeilen der Importtabelle habe, aber die Person eindeutig identifizieren möchte.
- kein Geburtsdatum vorhanden ist,
- die Tatsache, daß Meier Anton sen. mit seinem gleichnamigen Sohn im gleichen Haus wohnt und somit den gleichen Schlüsselwert bekommt, tolerieren kann.
Kannst du sicher sein, dass der Name und die Straße immer gleich geschrieben ist? Gerade bei Adressen fast ein Ding der Unmöglichkeit.
zb:
Doktor Huber Gasse vs. Dr.Huber Gasse
Wenn du das sicherstellen kannst, dann hänge einfach alle Felder zusammen
"HansHuberDr.Hubergasse 102323Irgendwo" und erstell einen md5 Hash daraus.
Aber sobald da irgenwo ein Character unterschiedlich ist, bekommst du einen ganz anderen MD5 Hash.
Besserer Lösungen für soetwas würden mich auch interessieren.
mfg
frafu
Wenn du das sicherstellen kannst, dann hänge einfach alle Felder zusammen
"HansHuberDr.Hubergasse 102323Irgendwo" und erstell einen md5 Hash daraus.
Aber sobald da irgenwo ein Character unterschiedlich ist, bekommst du einen ganz anderen MD5 Hash.
selbst wenn die adresse immer exakt identisch geschrieben wird, die leute niemals umziehen, heiraten oder sonstetwa an ihren daten ändern: ein md5-hash ist nicht eindeutig und für so ein vorhaben nicht geeignet, er dient nur als indiz dafür, dass es sich bei zwei datensätzen/dateien oder wasauchimmer um den selben handelt, aber nicht als garant
Hello,
selbst wenn die adresse immer exakt identisch geschrieben wird, die leute niemals umziehen, heiraten oder sonstetwa an ihren daten ändern: ein md5-hash ist nicht eindeutig und für so ein vorhaben nicht geeignet, er dient nur als indiz dafür, dass es sich bei zwei datensätzen/dateien oder was auch immer um den selben handelt, aber nicht als garant
Er sit sogar vollkommen ungeeignet dafür, da aus zwei vollkommen unterschiedlichen Datensätzen derselbe Hash errechnet werden könnte, aus einem Hash aber auf beliebig viele unterschiedliche Sätze verwieden werden kann. Hingegen werden zwei noch so ähnliche Datensätze keine korrespondierenden Hashes erhalten. Die kleinste Abweichung führt schon zu einem vollkommen anderen (MD5-)Hash.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg

- mehrere Nennungen der Person in verschiedenen Zeilen der Importtabelle habe, aber die Person eindeutig identifizieren möchte.
- kein Geburtsdatum vorhanden ist,
- die Tatsache, daß Meier Anton sen. mit seinem gleichnamigen Sohn im gleichen Haus wohnt und somit den gleichen Schlüsselwert bekommt, tolerieren kann.
garnicht
Am liebsten hätte ich einen Long oder Double -Wert, ich kann aber auch mit einem Textwert leben, weil es um etwa 10.000 DS geht.
was spricht dagegen, die datensätze "durchzunummerieren"? üblicherweise sollte eine entsprechende adresstabelle einen primärschlüssel besitze der auf einem feld liegt, welches "id" heisst - somit ist jeder datensatz eindeutig identifizierbar und ich brauch nicht irgendwelche schlüssel errechnen
zumal das errechnen eines schlüssels aus den personendaten ziemlich ungünstig ist - es braucht nur jemand umziehen oder heiraten, selbst wenn die stadt auf die idee kommt, die straße umzubenennen, ändert sich der schlüssel
alles in allem eine unbrauchbare methode
Hallo!
was spricht dagegen, die datensätze "durchzunummerieren"? üblicherweise sollte eine entsprechende adresstabelle einen primärschlüssel besitze der auf einem feld liegt, welches "id" heisst - somit ist jeder datensatz eindeutig identifizierbar und ich brauch nicht irgendwelche schlüssel errechnen
So wie ich die Ausgangssituation verstanden habe, werden Datensätze importiert und es kann vor kommen, dass zehn mal dieselbe Person importiert wird. Dann soll natürlich die Person nicht zehn Mal im System aufscheinen, sondern nur einmal.
mfg
frafu
Hello,
So wie ich die Ausgangssituation verstanden habe, werden Datensätze importiert und es kann vor kommen, dass zehn mal dieselbe Person importiert wird. Dann soll natürlich die Person nicht zehn Mal im System aufscheinen, sondern nur einmal.
Sie sollte dann zehn Mal in einer Kontrollliste erscheinen, damit man bei nicht 100%iger Übereinstimmung entscheiden kann, welche Daten aus jedem Satz übernommen werden müssen. Dafür sollte eine gute Datenbanklösung ein Pflegetool zur Verfügung haben, dass die Verdichtung der Daten auch visuell unterstützt, also immer Ziel- und Quelldatensatz gemeinsam darstellt.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg

was spricht dagegen, die datensätze "durchzunummerieren"? üblicherweise sollte eine entsprechende adresstabelle einen primärschlüssel besitze der auf einem feld liegt, welches "id" heisst - somit ist jeder datensatz eindeutig identifizierbar und ich brauch nicht irgendwelche schlüssel errechnen
Wenn Du die Tabelle siehst mit der ich arbeiten soll, dann würdest Du mir eine dicke Portion Mitleid schicken: keine ID, Adressen nicht eindeutig geschrieben (hauptstr. = hauptstr = hauptstrasse = hauptstraße). Durchnummerieren geht nicht, weil die Liste nicht sortiert ist und mehrfache Einträge derselben Person beinhaltet, die - s.o. - auch nicht unbedingt identisch geschrieben sein müssen.
jemand umziehen oder heiraten, selbst wenn die stadt auf die idee kommt, die straße umzubenennen, ändert sich der schlüssel
daran habe ich noch nicht gedacht, wobei der Schlüssel für die Person bleiben könnte, weil ich ihn für nichts anderes brauche, als die Person erst mal eindeutig zu identifizieren. Der Schlüssel könnte dann trotzdem bleiben und die Person bekommt einfach die neue Adresse zugewiesen. Ich will keinen "sprechenden Schlüssel erzeugen, sondern einen eindeutigen.
Wenn ich mal Deine Antwort prognostizieren soll: Wirf die Tabelle weg und fordere eine korrekte an! -> Geht aber nicht!
Gruß von Paeonia
Hallo!
Wenn Du die Tabelle siehst mit der ich arbeiten soll, dann würdest Du mir eine dicke Portion Mitleid schicken: keine ID, Adressen nicht eindeutig geschrieben (hauptstr. = hauptstr = hauptstrasse = hauptstraße). Durchnummerieren geht nicht, weil die Liste nicht sortiert ist und mehrfache Einträge derselben Person beinhaltet, die - s.o. - auch nicht unbedingt identisch geschrieben sein müssen.
Zeit (und Geld) investieren und die Daten mal richtig stellen. Sonst sehe ich da kaum eine Chance.
Bei meinem letzten Arbeitgeber stand ich vor einer ähnlichen Herausforderung mit einer Marketingdatenbank. Lösung: Ich hab gekündigt und mir einen neuen Job gesucht. :-)
mfg
frafu
Hi,
Bei meinem letzten Arbeitgeber stand ich vor einer ähnlichen Herausforderung mit einer Marketingdatenbank. Lösung: Ich hab gekündigt und mir einen neuen Job gesucht. :-)
Ich hoffe, daß es zu Deiner Zufriedenheit geklappt hat, aber ich habe eigentlich vor, etwas Vernünftiges aus diesem Chaos zu machen.
Liebe Grüße von Paeonia
Hallo!
Ich hoffe, daß es zu Deiner Zufriedenheit geklappt hat, aber ich habe eigentlich vor, etwas Vernünftiges aus diesem Chaos zu machen.
Ich hab ein bisserl übertrieben. Das war damals nicht der Grund, dass ich gekündigt habe. :-) Aber ja, es hat gepasst. Ich habs mir verbessert.
Viel Glück.
mfg
frafu
Hello,
Ich hoffe, daß es zu Deiner Zufriedenheit geklappt hat, aber ich habe eigentlich vor, etwas Vernünftiges aus diesem Chaos zu machen.
Dann noch eine Überlegung am Rande:
Viele (Adress-)datenbanken lassen nur gerade die Eingabe von Daten zu, aber keinen Vermerk über den Zustand des Datensatzes oder dessen Herkunft. Das solltest Du bei der Gelegenheit überlegen zu ändern.
Ein Datensatz in einer real existenten Arbeitsumgebung benötigt zumindest Merker, ob die Daten vermeindlich vollständig und richtig eingegeben worden sind, oder ob eine Nachpflege notwendig sein könnte. Markierte Datensätze zu finden ist einfacher, als falsche oder unvollständige Datensätze unter Hunderttausenden freihändig zu identifizieren.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg

Hi,
Viele (Adress-)datenbanken lassen nur gerade die Eingabe von Daten zu, aber keinen Vermerk über den Zustand des Datensatzes oder dessen Herkunft. Das solltest Du bei der Gelegenheit überlegen zu ändern.
Guter Tip! Auf jeden Fall immer mit Qualitätsangabe.
Grüße aus dem Süden von Paeonia
Hallo,
Wenn Du die Tabelle siehst mit der ich arbeiten soll, dann würdest Du mir eine dicke Portion Mitleid schicken: keine ID, Adressen nicht eindeutig geschrieben (hauptstr. = hauptstr = hauptstrasse = hauptsgtraße).
kenne ich. Hab' ich vor etwa einem Jahr gemacht, ca. 125.000 Datensätze einer Personendatenbank.
Zeit (und Geld) investieren und die Daten mal richtig stellen. Sonst sehe ich da kaum eine Chance.
Zeit und Arbeit investiert und die Daten auf Vordermann gebracht. Das hat meist nicht viel Spass gemacht (manchmal aber schon) und einiges an Zeit sowie detektivischen Fähigkeiten erfordert, aber so wurden aus 5000 verschiedenen Orten knapp 1000 ...
Freundliche Grüße
Vinzenz
Hi Vinzenz!
»» Zeit (und Geld) investieren und die Daten mal richtig stellen. Sonst sehe ich da kaum eine Chance.
Darauf wirds wohl rauslaufen. Ich freue mich jetzt schon auf das Gespräch mit meinem Chef. Bin ich froh, daß ich für das Chaos nichts kann, sondern jetzt nur aufräumen soll.
Gruß von paeonia
kenne ich. Hab' ich vor etwa einem Jahr gemacht, ca. 125.000 Datensätze einer Personendatenbank.
ich hab das auch vor einiger zeit mal gemacht - 1x eine mssql-datenbank mit etwa 30.000 datensätzen, hat etwa 2 tage gedauert und einmal 3 datenbestände zusammenführen (etwa 500.000 datensätze) hat 3 wochen gedauert :D am schluss sind 200.000 übriggeblieben ;)
ich habs etwa so gemacht, wie tom das vorschlug
Hello,
Wenn Du die Tabelle siehst mit der ich arbeiten soll, dann würdest Du mir eine dicke Portion Mitleid schicken: keine ID, Adressen nicht eindeutig geschrieben (hauptstr. = hauptstr = hauptstrasse = hauptstraße). Durchnummerieren geht nicht, weil die Liste nicht sortiert ist und mehrfache Einträge derselben Person beinhaltet, die - s.o. - auch nicht unbedingt identisch geschrieben sein müssen.
*ach Du arme schwarze Katze* (oder ist es Kater?) :-)
Das sieht fast so aus, wie das Problem bei der Postleitzahlumstellung.
Willst Du mittels dieses Schlüssels Doubletten finden?
Es bietet sich wirklich an, ein extra Suchfeld aufzubauen: die (Plz, Ort,) Straße, Hausnummer normalisieren, im zweiten Schritt dann sichtbare Doppelungen in diesen Feldern tauschen und dann darüber einen Index aufbauen, bzw. die Datei sortieren:
Dann ergibt sich ein vergleichbarer Straßen-String
Unvollständige PLZs markieren
Orte ähnlich verarbeiten, wie Strassen
Über PLZ, Ort und Strasse einen Index (Sortierung) legen und händisch offensichtliche Fehlschreibungen extrahieren, das Suchfeld der Tabelle dagegen abgeleichen.
Nun kannst Du an die Namen gehen...
Es gibt auch fertige Software für solche Zwecke, aber die kostet Geld und bei lächerlichen 10.000 Sätzen und einmaliger Anwendung lohnt sich das noch nicht.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg

Hi Tom,
*ach Du arme schwarze Katze* (oder ist es Kater?) :-)
Schnurr, Schnurr, wenigstens einer hat Mitleid ;-)
- Case unsensitive Sort ermöglichen
erledigt
- alle Umlaute ersetzen
erledigt
- str., str , straße, -, Straße usw. ersetzen gegen strasse
nützt nur bedingt
- Leerzeichen rausschmeißen
erledigt
- Weitere Sonderzeichen rausschmeißen
erledigt
Dann ergibt sich ein vergleichbarer Straßen-String
auch nicht immer
und was ist mit falsch geschriebenen meier, meir, meyer usw.
Unvollständige PLZs markieren
gibts nicht
Orte ähnlich verarbeiten, wie Strassen
ignoriere ich
Über PLZ, Ort und Strasse einen Index (Sortierung) legen und händisch offensichtliche Fehlschreibungen extrahieren, das Suchfeld der Tabelle dagegen abgeleichen.
Nun kannst Du an die Namen gehen...
jau
Es gibt auch fertige Software
ich google mal ...
danke schon mal sagt paeonia
Guten Morgen Ihr alle,
Gibt es ein anerkannt sicheres Verfahren, wie ich aus Nachname, Vorname, Straße, Hausnummer, PLZ einen sicher eindeutigen Schlüssel erzeugen kann,
Vor Jahren hatte ich die Aufgabe in einer Spedition, jeder Abladestelle eine eindeutige geografische Position zuzuordnen. Und Abladestellen wurden so notiert, wie am Telefon verstanden ...
Wenn ich mich recht erinnere, hat eine Software von PTV, Karlsruhe, dabei geholfen. Nur mal als Tipp, in welche Richtung du suchen kannst.
Kalle