Grosse DB verrabeiten - wie vorgehen?

15/10/2007 - 15:34 von Franz | Report spam
Hallo zusammen

Ich habe folgendes Problem neu aufgegabelt:

Jahrelang zusammengetragenses Adressverzeichniss mit 2,2 Mio (!)
Adressen in der Struktur:
ID (=Schlüssel), NAME (Nachname Vorname Titel), ADRESSE (Strasse Nr),
PLZ, ORT, TEL1, TEL2

Diese Datenbank dient zur systematischen Ansprache von bestimmten
Personen strassenwiese, d.h. ich muss in der Lage sein
Bearbeitungslisten nach Strassen und Hausnummern sortiert zu
erstellen. Hier nun meine Fragen:

- packt Access überhaupt eine solche Riesen-DB oder müsste ich etwas
anderes wàhlen (was?). Ich habe auf unserem SBS zwar SQL Server, das
darf aber beim SBS nur auf dem Server der SBS Installation laufen
(Lizenzbestimmung), und wenn ich mit FE/BE darauf gehe, ist
wahrscheinlich die Geschwindigkeit dahin. Lokal làuft die DB auf A2003
schon recht langsam

- wie mache ich aus den Adressen wieder sortierbare Daten? So eine
Adresse kann im Idealfall so aussehen:

BELGICKÁ 4164/4 und sollte dann in 3 Felder aufgeteilt werden
"BELGICKÁ" "4164" "4"
aber leider gibt es haufenweise Beipiele wie diese:

5. KVĚTNA 303/9
ANTONÍNA SLAVÍČKA 3949/14
K. H. KEPKY 4074/2
PLUMLOV 68
250 (ja nur eine Nummer, hier gehört die Ortschaft in die Adresse
gesetzt)

Ich habe schon Stunden verbraucht mit VAL, LEN, INStr, InstrRev, Mid,
Left diese Adressen zu verarbeiten, aber es gibt immer Löcher. Wenn
eine Zahl am Anfang steht, gehört sie zum Strassennamen. Wenn nur eine
Zahl steht muss der Ortsname dazugesetzt werden. Mit Querstrich muss
getrennt werden. Und dann die Strassennamen, welche aus mehreren
einzelnen Wörtern bestehen ich werde verrückt!

- àhnliches sollte ich bei den Namen machen, aber dort ist es nicht so
"kritisch"!

- Und dann sollte ich in der Lage sein ein narrensicheres
Filterformular zu kreieren, wo der "Narr" sich die Ortschaft aussucht
und dann die Zahl der Adressen angezeigt kriegt. Anschliessend sollte
er je nach Situation noch den Strassennamen als zusàtzlichen Filter
einsetzen können, um die Tagesrationen der "Feldarbeiter" dann
entsprechend auszudrucken.

Ja ich weiss, dass ist ein Haufen auf einmal, aber vielleicht hat
schon jemand auf diesem Gebiete was gemacht und kann mir auf die
Sprünge helfen. Schon nur das Ausmerzen von reinen Tippfehlern (Gross-
Kleinschreibung, doppelte Leerschlàge usw.) kostete mich Stunden, weil
das solange dauert.

PS: Das Beispiel ist etwas veràndert aus Gründen des Datenschutzes,
aber es ist ein nichtkommerzielles Projekt im Bereich Fundraising,
sonst hàtte ich die Leute an eine Software-Firma verwiesen...

Jedenfalls Dank für jede Hilfe!

Gruss

Franz

-
 

Lesen sie die antworten

#1 Thomas Winkler
15/10/2007 - 16:16 | Warnen spam
Hi,

Jahrelang zusammengetragenses Adressverzeichniss mit 2,2 Mio (!)
Adressen in der Struktur:
ID (=Schlüssel), NAME (Nachname Vorname Titel), ADRESSE (Strasse Nr),
PLZ, ORT, TEL1, TEL2

- packt Access überhaupt eine solche Riesen-DB oder müsste ich etwas
anderes wàhlen (was?). Ich habe auf unserem SBS zwar SQL Server, das
darf aber beim SBS nur auf dem Server der SBS Installation laufen
(Lizenzbestimmung), und wenn ich mit FE/BE darauf gehe, ist
wahrscheinlich die Geschwindigkeit dahin. Lokal làuft die DB auf A2003
schon recht langsam



IIRC ist Access auf 2 GB pro BE-Datei begrenzt, egal wieviele Datensàtze
oder Tabellen drin stehen.
Ich unterstelle einfach mal folgende Werte:

ID 4 Byte
NAME 50 Byte
ADRESSE 30 Byte
PLZ 5 Byte
ORT 20 Byte
TEL1 15 Byte
TEL2 15 Byte

Da sind wir nun bei ca. 140 Byte pro DS angekommen. Bei 2,2 Mio DS etwa
300MB. Allein wegen der Größe solltest Du also keine Probleme mit Access
bekommen.

- wie mache ich aus den Adressen wieder sortierbare Daten? So eine
Adresse kann im Idealfall so aussehen:

BELGICKÁ 4164/4 und sollte dann in 3 Felder aufgeteilt werden
"BELGICKÁ" "4164" "4"
aber leider gibt es haufenweise Beipiele wie diese:

5. KVĚTNA 303/9
ANTONÍNA SLAVÍČKA 3949/14
K. H. KEPKY 4074/2
PLUMLOV 68
250 (ja nur eine Nummer, hier gehört die Ortschaft in die Adresse
gesetzt)

Ich habe schon Stunden verbraucht mit VAL, LEN, INStr, InstrRev, Mid,
Left diese Adressen zu verarbeiten, aber es gibt immer Löcher. Wenn



Da bist Du ja schonmal auf der richtigen Fàhrte.
Bei so einem "wüsten Datenhaufen" wird es wohl schwer werden richtige Daten
zu extrahieren. IMO wirst Du mit den o. g. Funktionen - je nach dem wieviel
du programmierarbeit reinsteckst - mehr oder weniger akzeptable Daten
bekommen. Aber "Löcher" wirst Du immer drin haben. Die Gedanken zur
Datenstruktur macht man sich normalerweise vorher.

Hab mal irgendwo gelesen dass das, was Du vor hast dem Versuch gleich kommt
"aus Gehacktem wieder eine Kuh" zu machen.

HTH & Good Luck.

Thomas

Ähnliche fragen