Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Normalisierung in Access Anfängerfrage

Begonnen von SkyLight, April 21, 2017, 19:50:24

⏪ vorheriges - nächstes ⏩

SkyLight

Hallo da ich ein ziemlicher Anfänger bin heute eine bitte an euch Profis.
Könn Ihr euch bitte das beigefügte Datenbankschema ansehen und mir sagen ob ich es richtig Aufgeteilt (Normaliesierung 1-3) habe , Danke im Vorraus.

Meine Aufgabe ist es eine 3 teilige DB in Access zu erstellen:
1. Teil: Alle Bundesländer, Kreise, Gemeinden und Ortsteile / Vororte incl. Plz (die Daten sind vorhanden und wir wollen keine Lösung kaufen). Diese sollen dann in Formularen (incl. Unterforularen) (für den Nutzer) zum Suchen zur Verfügung gestellt werden.
(Klassiche Suche: Plz-Ort, Ort-Plz, Alle Gemeinden in Baden -Würtenberg....)
2. / 3. Teil : Diese werden  je in einer extra DB erstellt um dann später in der 1. DB zu "landen":
   2. Teil = Strassenverzeichnis (für alle Straßen, vorhanden).
     dieser soll dann in ein Formular: Gemeinden/ Orte / Plz incl. StrassenNamen landen.
3. Teil = Adressen (z.b. von Kunden / Lieferanten , Intressenten) hier sind ca 3 Mio Daten vorhanden.
     diese sollen dann in ein Formular : Orte, Strassen, Adresse... landen.

Gerne kann ich einen kleinen Auszug aus der 1. DB (wenn gewünscht) liefern.

Danke an alle die Helfen für Ihre Zeit und Ihr Versändnis.

Grüße
SkyLight

silentwolf

Hallo Skylight,
warum soll das denn in mehreren Datenbanken erstellt werden? Das wäre doch meiner Meinung nach besser in einer zu haben?
Darin kannst Du dann alle Abfragen und dergleichen erstellen und die benötigten Daten einfach auslesen weiterverarbeiten oder was auch immer gewünscht ist.
Zur Datenstruktur .. das sind ja eigentlich klassiche 1:n Beziehungen oder nicht?
Bundesland, Kreis, Orte mit der zugehörigen PLZ, Straßen und dergleichen..
Wenn Du Lieferanten Kunden oder sonstige Personen benötigst dann kannst Du diese ja auch in einer Tabelle speichern.. Kunde, Plz, Ort, Nachname, Vorname, GebTag, Telefon und so weiter.. und diese dann auch per Abfrage weiterverwenden..
Hoffe das bringt Dich mal schon voran..

mfg
SW

MzKlMu

#2
Hallo,
das mit den 3 Datenbanken sehe ich auch eher kritisch, warum 3 Datenbanken ?

Konkrete Fragen kann man auch nicht erkennen.
Gruß Klaus

SkyLight

Hallo und Danke für die Antwort,
der Grundgedanke war das die AccessDB nicht zu Groß werden soll(te).
Da es in Deutschland ca. 1.3 Mio Straßen gibt und dann kommen ja noch die ganzen Kunden u.s.w ( und das sind ja auch nochmal ca. 1 Mio). dazu.
Wie kann mann den AccessDb "klein" halten damit die DB (.im meinem Test ohne Strassen ca. 200-300 MB) nicht zu groß wird.

Danke Syk Light

MzKlMu

Hallo,
eine Accessdb kann maximal 2GB groß sein. Da man etwas Reserve braucht, sind da 1,5 GB realistisch.
Wenn das ausreicht würde ich eine Datenbank machen. Das musst Du halt mal probieren. Nach dem Anlegen und Füllen der Tabellen sollte mal das Access Diensprogramm "Komprimieren/Reparieren" ausgeführt werden.

Außerdem ist die DB zu trennen in Backend (nur die Tabellen) und Frontend (der Rest). Nur das Backend kommt auf den Server. Das Frontend benötigt jeder User auf seinem PC, das Frontend darf nicht auf den Server. Bei dieser Menge an Daten ist das zwingend erforderlich. Das heißt, jeder User benötigt auch eine Access Lizenz. Mindestens als Runtime (kostenlos von MS).

Der Betrieb eine Runtime erfordert aber eine durchgängig programmierte Benutzerumgebung mit dem damit verbundenen Aufwand., bist Du Dir darüber im klaren ?
Gruß Klaus

SkyLight

Danke für die schnelle Antwort,
ja darüber bin ich mir im Klaren und es ist kein Problem, da jeder Nutzer ein Office 2013 bekommt (incl. Access).
Da beide Teile ja voneinander getrennt sind werde ich erst einmal eine komplette DB (mit allen Inhalten machen und nach jedem Schritt die Komprimierung.... durchführen.... Dann wird sich zeigen wie groß die DB wirklich wird.

Ist denn der Entwurf Normal konform.... Bevor ich hier Tabellen mit Daten fülle....

Danke für euren Einsatz....

Grüße
SkyLight

MzKlMu

Hallo,
ZitatIst denn der Entwurf Normal konform....
keine Ahnung, zu zeigst ja nicht den Tabellenaufbau und über Beziehungen hast Du auch kein Wort verloren.

ZitatAlle Bundesländer, Kreise, Gemeinden und Ortsteile / Vororte
Normalisiert aufgebaut wären das schon mal 4 Tabellen mit jeweils einem Fremdschlüssel zum übergeordneten Inhalt.

Und die PLZ ist ja auch von der Straße abhängig.
Gruß Klaus

silentwolf

Hallo,
Du hast es per Excel angezeigt mach es doch mal in Access und zeige den Entwurf wie Du es geplant hättest.. Laut Deinen Excel Sheet ist es noch nicht so richtig entworfen.. Leichter geht es gleich mit Access und die Tabellen miteinander verknüpfen.

HTH
Albert

MzKlMu

#8
Hallo,
ich hätte doch weiter nach oben blättern sollen, habe die Exceldatei übersehen.

Was bedeuten/beinhalten die Tabellen tblAgs, tblNuts, tblHasc ?

Wieso hast Du für die Gemeindenamen eine extra Tabelle ?
Die Präfixe (txt, Li) vor den Feldnamen würde ich mir sparen, ist nur überflüssiger nichtsnutziger Schnickschnack, das nur die Tipparbeit vergrößert.  ;D
Und die Fremdschlüsselfelder würde ich durch ein angehängtes _F kennzeichnen, das ist viel deutlicher zu unterscheiden.
IDKreis > IDKreis_F.

Aber wie gesagt, mache mal den Anfang in Access und zeige hier das Beziehungsbild.
Gruß Klaus

Beaker s.a.

Hallo,
ZitatWie kann mann den AccessDb "klein" halten damit die DB (.im meinem Test ohne Strassen ca. 200-300 MB) nicht zu groß wird.
Die Postleitdaten machen, aufbereitet, ca. 160MB.
Da kommst du auf knapp 500MB, was eigentlich für ein BE
genügend Reserve bietet.
Was den Rahmen später sprengen könnte wären natürlich die
auflaufenden Bewegungsdaten.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)