Discussion:
Datenbank normalisieren
(zu alt für eine Antwort)
Jürgen Schulz
2008-06-27 19:14:28 UTC
Permalink
Hallo NG

Ich habe folgende Aufgabe vor mir:
Eine Tabelle aus einer fremden Datenbank, muss in Access übernommen werden.
Danach mus eine Normalisierung erfolgen.
Die Tabelle aus der fremden Datenbank IST die Datenbank, d.h. es gibt keine
anderen Tabellen. Alle Felder sind Textfelder. Jeder Datensatz besitzt zB.
immer die Anschrift eines Kunden etc...

Bevor ich mich an die Aufgabe wage, habe ich erst mal geschaut was Access
anbietet.
Ich habe mal den Tabellenanalyse Assistent vorab für eine andere
Mustertabelle (10000 Datensätze) benutzt.
Die Tabelle enthält nur 2 Felder:
ID Mitarbeiter
1 Müller, Peter
2 Meier, Elke
3 Müller, Peter
4 Schulze, Paul
etc.

Nachdem der Assistent gestartet wurde, teilt er mir dann irgendwann mit, das
er Datensätze mit sehr ähnlichen Werten gefunden hat. (z.B. Schulze, Paul =
Müller Peter) und das bei 34 Datensätzen. Wird wohl daran liegen weil die
aufgeführten 34 Mitarbeiter nicht sehr oft vorkommen. Bei Korrektur kann man
ja Beibehalten wählen, aber komisch ist das schon, das er mir nur die
Mitarbeiter in der Liste Korrektur anzeigt, die am meisten vertrten sind.

Nun meine Frage: Ist für meine oa. Aufgabe der Assistent brauchbar? Oder
gibt es andere Wege?

Vielen Dank schon mal
Jürgen
Mark Doerbandt
2008-06-27 21:43:10 UTC
Permalink
Hallo, Jürgen,
Post by Jürgen Schulz
Bevor ich mich an die Aufgabe wage, habe ich erst mal geschaut was Access
anbietet.
Ich habe mal den Tabellenanalyse Assistent vorab für eine andere
Mustertabelle (10000 Datensätze) benutzt.
ID Mitarbeiter
1 Müller, Peter
2 Meier, Elke
3 Müller, Peter
4 Schulze, Paul
etc.
Nachdem der Assistent gestartet wurde, teilt er mir dann irgendwann mit, das
er Datensätze mit sehr ähnlichen Werten gefunden hat. (z.B. Schulze, Paul =
Müller Peter) und das bei 34 Datensätzen. Wird wohl daran liegen weil die
aufgeführten 34 Mitarbeiter nicht sehr oft vorkommen. Bei Korrektur kann man
ja Beibehalten wählen, aber komisch ist das schon, das er mir nur die
Mitarbeiter in der Liste Korrektur anzeigt, die am meisten vertrten sind.
ich kann Dir mangels Erfahrung nicht wirklich sagen, ob der Assistent
brauchbar ist. Was in jedem Fall brauchbar ist, ist aber der gesunde
Menschenverstand. Der sagt mir allerdings, dass die Normalisierung
einer einzelnen Tabelle mit zwei Feldern in diesem Fall nur zwei
Ergebnisse liefern kann: a) lasse es so, b) splitte das Feld
Mitarbeiter in Vorname und Nachname auf. Insofern ist Dein Test nicht
günstig gewählt. Da es bei der Normalisierung immer auch auf die
Aufgabenstellung ankommt, ist ein Grundverstaendnis der Ziele und
Vorgehensweisen dabei sehr wichtig. Kennst Du das Whitepaper von
Michael Zimmermann zum Thema? Es schildert anschaulich Beispiele. (Du
brauchst aber erst mal nur bis zur dritten Normalform lesen.).

Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.
Michel Fouquet
2008-06-27 23:16:17 UTC
Permalink
Hallo,
Post by Mark Doerbandt
Kennst Du das Whitepaper von
Michael Zimmermann zum Thema? Es schildert anschaulich Beispiele. (Du
brauchst aber erst mal nur bis zur dritten Normalform lesen.).
dieses hier:

http://www.donkarl.com/AEK/AEKDownloads/AEK7_Normalisierung.zip

Gruß,
Michel
Jürgen Schulz
2008-06-28 05:18:17 UTC
Permalink
Hallo Mark
Post by Mark Doerbandt
Post by Jürgen Schulz
Bevor ich mich an die Aufgabe wage, habe ich erst mal geschaut was Access
anbietet.
Ich habe mal den Tabellenanalyse Assistent vorab für eine andere
Mustertabelle (10000 Datensätze) benutzt.
ID Mitarbeiter
1 Müller, Peter
2 Meier, Elke
3 Müller, Peter
4 Schulze, Paul
etc.
Nachdem der Assistent gestartet wurde, teilt er mir dann irgendwann mit, das
er Datensätze mit sehr ähnlichen Werten gefunden hat. (z.B. Schulze, Paul =
Müller Peter) und das bei 34 Datensätzen. Wird wohl daran liegen weil die
aufgeführten 34 Mitarbeiter nicht sehr oft vorkommen. Bei Korrektur kann man
ja Beibehalten wählen, aber komisch ist das schon, das er mir nur die
Mitarbeiter in der Liste Korrektur anzeigt, die am meisten vertrten sind.
ich kann Dir mangels Erfahrung nicht wirklich sagen, ob der Assistent
brauchbar ist. Was in jedem Fall brauchbar ist, ist aber der gesunde
Menschenverstand. Der sagt mir allerdings, dass die Normalisierung
einer einzelnen Tabelle mit zwei Feldern in diesem Fall nur zwei
Ergebnisse liefern kann: a) lasse es so, b) splitte das Feld
Mitarbeiter in Vorname und Nachname auf. Insofern ist Dein Test nicht
günstig gewählt. Da es bei der Normalisierung immer auch auf die
Aufgabenstellung ankommt, ist ein Grundverstaendnis der Ziele und
Vorgehensweisen dabei sehr wichtig. Kennst Du das Whitepaper von
Michael Zimmermann zum Thema? Es schildert anschaulich Beispiele. (Du
brauchst aber erst mal nur bis zur dritten Normalform lesen.).
Ich habe mir schon gedacht das ich falsch verstanden werde.
Ich versuche es mal so:
Ich habe eine Ursprungstabelle (UT) nur mit Textfeldern. Die UT ist bereits
mit Werten gefüllt. Ich setze mich nun hin und schaue mir die UT und deren
Inhalt an und Normalisiere die UT . Als Ergebnis habe ich nun erstmal
mehrere leere Tabellen, die in bestimmter Weise von ein ander anhängig sind.

Ein Beispiel:
In der UT gibt es u.a. die Felder: KundenName, Materialtext,Anzahl,Datum
Nach der Normalisierung habe ich 3 Tabellen

Kunden: ID/KundenName

Material: ID/Materialtext

Bestellung: Kunden-ID/Material-ID/Anzahl/Datum

Ich kann nun einen neuen Kunden und neues Material anlegen, sowie neue
Bestellungen eintragen. Also die Normalisierung ist vorerst erledigt.
Nun habe ich noch meine UT und deren Daten, die ich in die jeweiligen
Tabellen verteilen muss.
Und hier ist nun meine Frage:
In welcher Art und Weise verteilt man die Daten am besten? Per
TabellenAnfügeAbfrage (Gruppierung) und anschließender
AktualisierungsAbfrage? Oder noch anders?
Vor allem muss der Datentransfer relativ schnell ablaufen, damit der Kunde
gleich danach mit der neuen Datenbank arbeiten kann. (Damit kann ich den
Tabellenanalyse Assistent eh vergessen)
Auf alle Fälle ist hinterher noch ne Menge Handarbeit angesagt. Aber das
muss der Kunde größtenteils wohl selber erledigen, denn nur er weiß, was
sich hinter "das Teil mit dem roten Ring" für ein Material verbirgt :-)


Jürgen
Thomas Möller
2008-06-28 08:00:50 UTC
Permalink
Hallo Jürgen,
Post by Jürgen Schulz
Ich kann nun einen neuen Kunden und neues Material anlegen, sowie neue
Bestellungen eintragen. Also die Normalisierung ist vorerst erledigt.
Nun habe ich noch meine UT und deren Daten, die ich in die jeweiligen
Tabellen verteilen muss.
In welcher Art und Weise verteilt man die Daten am besten? Per
TabellenAnfügeAbfrage (Gruppierung) und anschließender
AktualisierungsAbfrage? Oder noch anders?
genau das wäre mein Weg. Du kannst noch schauen, ob du mit der
Gruppierung oder der DISTINCT-Klausel schneller zum Ziel kommst.
Post by Jürgen Schulz
Vor allem muss der Datentransfer relativ schnell ablaufen, damit der Kunde
gleich danach mit der neuen Datenbank arbeiten kann.
Das wird wohl entscheidend von der Menge der einzulesenden Daten
abhängen. Ich denke, hier wirst Du um ein paar Tests nicht herum kommen.

CU
--
Thomas

Homepage: www.Team-Moeller.de
Jürgen Schulz
2008-06-28 08:27:11 UTC
Permalink
Hallo Thomas
Post by Jürgen Schulz
Ich kann nun einen neuen Kunden und neues Material anlegen, sowie neue
Bestellungen eintragen. Also die Normalisierung ist vorerst erledigt.
Nun habe ich noch meine UT und deren Daten, die ich in die jeweiligen
Tabellen verteilen muss.
In welcher Art und Weise verteilt man die Daten am besten? Per
TabellenAnfügeAbfrage (Gruppierung) und anschließender
AktualisierungsAbfrage? Oder noch anders?
genau das wäre mein Weg. Du kannst noch schauen, ob du mit der Gruppierung
oder der DISTINCT-Klausel schneller zum Ziel kommst.
Also in der Theorie war ich auf dem richtigen Weg, mal sehen was die Praxis
zeigt.
Post by Jürgen Schulz
Vor allem muss der Datentransfer relativ schnell ablaufen, damit der
Kunde gleich danach mit der neuen Datenbank arbeiten kann.
Das wird wohl entscheidend von der Menge der einzulesenden Daten abhängen.
Ich denke, hier wirst Du um ein paar Tests nicht herum kommen.
Ich hoffe ich bekomme die Daten zu testen...

Jürgen

Loading...