Office: (Office 2013) Beziehungen aus Datensätzen für Netzwerkanalyse

Helfe beim Thema Beziehungen aus Datensätzen für Netzwerkanalyse in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Liebes Forum, ich habe schon viel aus irgendwelchen Forums-Threads gelernt und rauskopiert. Toll, dass es das gibt. Ich kann mein Anliegen leider... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Sarah Keller, 29. Februar 2016.

  1. Beziehungen aus Datensätzen für Netzwerkanalyse


    Liebes Forum,

    ich habe schon viel aus irgendwelchen Forums-Threads gelernt und rauskopiert. Toll, dass es das gibt.

    Ich kann mein Anliegen leider schlecht zusammenfassen, nehme aber gerne Tipps entgegen, wie ich mein Problem besser beschreiben und den Titel der Frage verständlicher gestalten kann.

    Die Datenbank:
    • Wir haben eine Tabelle mit Daten zu wissenschaftlichen Artikeln (u.a. Titel, Jahr, Autoren) (jeder Datensatz ist ein wiss. Artikel)
    • Für die Autoren sind 16 Felder vorgesehen (einer der wiss. Artikel hat tatsächlich 16 Autoren); immer mit dem String Nachname+ErsterBuchstabedesVornamens (z.B. MüllerP) (die meisten Artikel haben aber nur 1 oder 2 Autoren)
    • Insgesamt haben wir ca. 17.000 Datensätze

    Was ich brauche:
    Ich möchte alle Kooperationen (=Autoren schreiben zusammen einen Artikel) von Autoren im Rahmen einer Netzwerkanalyse darstellen. D.h. wenn mehrere Autoren in einem Datensatz auftauchen kooperieren diese Autoren alle miteinander. In einem wiss. Artikel mit 2 Autoren gibt es eine Beziehung, in einem Artikel mit 3 Autoren gibt es 3 Beziehungen (Erst+Zweitautor, Erst+Drittautor, Zweit+Drittautor), in einem Artikel mit vier Autoren, gibt es sechs Beziehungen, usw.. Ein Autor kann in mehreren Datensätzen auftauchen.
    Für die Netzwerkanalyse brauche ich eine Liste mit allen getätigten Beziehungen (KoAutorenschaften) zwischen allen Autoren. Am besten mit dem Jahr der Veröffentlichung z.B. MüllerP+SchubertH 1996, SchneiderF+SchulzeT 2014, usw. (am besten in drei Spalten: Autor1, Autor2, Jahr)

    Was ich bisher gemacht habe:
    Ich habe durch Krücken und mehrere UNION Abfragen, die mehr als eine Minute Rechenzeit benötigen, immerhin die Liste der Kooperationen in einer Spalte abgefragt bekommen. Allerdings ohne das Jahr (das ist bei den UNION Abfragen, die ich kaum beherrsche, verloren gegangen).
    Ich bin mir sicher, dass es einen eleganteren Weg gibt, mein Weg sollte daher hier eigentlich keine Rolle spielen; aber der Vollständigkeit halber:
    - ich habe erst alle Autorenteams abgefragt. Ein Feld der Abfrage sieht in der Entwurfsansicht so aus:
    Team12: Wenn(Länge([Autor2])>2;[Autor1] & "#" & [Autor2];"")
    Die Abfrage ergibt ca. 100 Felder von Autor1#Autor2 bis Autor15#Autor16.
    - Dann habe ich alle Teams mit mehreren UNION Abfragen in ein Feld zusammengefasst.
    - Dann habe ich das Feld in zwei geteilt (Autor1 und Autor2)

    Ich beherrsche leider noch kein SQL; wenn ich es nutze, dann nur mit Copy-Paste aus Internet-Foren.

    Vielen, Vielen Dank an alle schon mal, die das alles gelesen haben! Wenn dann noch Ideen kommen, umso besser.

    :)
     
    Sarah Keller, 29. Februar 2016
    #1
  2. Hallo Sarah,
    Titel ist schon nicht ganz verkehrt, denn genau daran musst Du arbeiten.
    Erster Schritt, nummerierte Spalten gehören als Datensätze (Zeilen) in eine extra Tabelle.
    Also (mind.) drei Tabellen: Artikel, Autoren und AutorenZuArtikeln.
    Wenn Du, wie Du schreibst, schon viel gelesen hast, sollte dir der Begriff Normalisierung
    eigentlich schon einmal untergekommen sein.
    gruss ekkehard
     
    Beaker s.a., 2. März 2016
    #2
  3. Hallo,
    auch das muss überdacht werden. Hier sind keine Kürzel zu verwenden, sondern der Primärschlüssel der Autoren (Autowert). Bei Meier Peter und Meier Paul müsste die Regel ohnehin schon geändert werden.
    Das setzt aber einen korrekten Aufbau der DB (siehe Beitrag #1) voraus.
    Bei 17000 DS halte ich den Umbau der Struktur für unerlässlich. Es werden dann gar keine UNION mehr benötigt.
     
    gpswanderer, 2. März 2016
    #3
  4. Beziehungen aus Datensätzen für Netzwerkanalyse

    Um das etwas zu vertiefen: Du benötigst eine m:n-Beziehung zwischen Artikel und Autor. In der Verknüpfungstabelle werden dann die Beteiligungen von Autoren an Artikeln festgehalten.

    Kooperationen wären dann Artikel mit mindestens zwei Autoren, also mindestens zwei Datensätzen in der Verknüpfungstabelle:
    Code:
    Die Abfrage zeigt die eigentliche Rechnung. Autorennamen, dann in ordentlich getrennten Feldern, können anschließend hinzuverknüpft werden, ebenso Artikeldaten, z.B. für eine Zeitraumfilterung des Erscheinens.
     
    ebs17, 2. März 2016
    #4
  5. Hui, das ging ja schnell.
    Vielen Dank Allen.
    Einigkeit scheint zu herrschen, dass ich eine m:n Beziehungen brauche. Und ich kann mir das auch gut vorstellen. Ich arbeite also erstmal am Datenbankumbau. Das wird eine Weile dauern und evtl. brauche ich dafür noch Tipps.
    Mir ist allerdings noch nicht ganz klar, wie ich von dort auf mein gewünschtes Ergebnis komme. Den geschilderten Code durchdringe ich leider nicht.

    Zu den Autorennamen: ja, guter Punkt. hier liegt ein forschungsmethodisches Problem vor, weil ich erstmal erkennen muss, wenn es zwei verschiedene MüllerT gibt (in ca. der Hälfte der Datensätze liegen auch komplette Vornamen vor, aber auch das ist natürlich keine Garantie). Spätestens wenn ich solche Fälle identifiziert habe, sollte ich anscheinend mit IDs weiterarbeiten.

    Viele Grüße,
    Andreas
     
    Sarah Keller, 2. März 2016
    #5
  6. Hallo,
    nein, das hast Du falsch verstanden, Du sollst grundsätzlich mit IDs arbeiten. Die Kürzel machen keinen Sinn.
    Das ist einfacher als Du denkst. Baue die DB um (IDs =Autowert nicht vergessen) und probiere es einfach aus. Bei Fragen/Problem meldest Du dich wieder.
     
    gpswanderer, 2. März 2016
    #6
  7. Hallo nochmal,
    ich würde auf dem Weg zur n:m Datenbank gerne nochmal Eure Unterstützung beanspruchen, bin aber leider noch ganz am Anfang:
    Wie exportiere ich die 32 Autorenfelder (16x Nachname und 16xVorname) aus T1(wiss. Artikel) in eine T2(Verknüpfungstabelle Autoren&wiss.Artikel)? Eine T3(Autoren) würde ich selbst hinbekommen (ID, Nachname, Vorname).
    Vielen Dank!
     
    Sarah Keller, 2. März 2016
    #7
  8. Beziehungen aus Datensätzen für Netzwerkanalyse

    Hi Sarah,

    >> 16x Nachname und 16xVorname

    das wäre der falsche Weg, weil redundant. Packe stattdessen den Id aus der Tabelle Autoren in die Beziehungstabelle, das übrigens nicht von Hand zu Fuß, sondern mittels eines Formulars, genauer: Mit Haupt- und Unterformular.

    Andernfalls arbeitest Du Dir einen Wolf, wenn mal ein Autorenname falsch geschrieben ist und nachträglich berichtigt werden soll.

    Das größere Problem scheint aber die Überführung in einen sauberen Bestand zu sein. Eine Möglichkeit (wird ne längere Geschichte):

    - vorläufige Autorentabelle anlegen: (Name, Vorname, ...)
    - endgültige Autorentabelle anlegen: (Id, Name, Vorname, ...)
    - pro Autorenspalte (!) eine Anfügeabfrage, die Name, Vorname, ... aus dem Sumpf holt und in die vorläufige einstellt
    - mit der nächste Anfügeabfrage Distinct(Name, Vorname, ...) aus der vorläufigen holen und in die endgültige schreiben.

    - Artikeltabelle (Id, ...) aufbauen, mit Anfügeabfrage aus dem Sumpf beschicken

    - jetzt rückwärts:
    - den Sumpf um die Artikel.Id ergänzen (Änderungsanfrage aus Artikeltabelle und Sumpf, wo Artikelbez. übereinstimmt)
    - den Sumpf um die Autor.Id ergänzen - wie beim Artikel, aber davon 16 Stück, eine für jede Spalte.

    - letzter Schritt:
    - Beziehungstabelle füllen - 16 Anfügeabfragen, die das Pärchen (Artikel.Id, Autor.Id) aus dem Sumpf holen und in A_zu_A einstellen.

    Gruß
    Ralf
     
    drambeldier, 2. März 2016
    #8
  9. Hallo,
    @Ralf
    Es geht ja darum, die jetzt falsche Struktur (die 2x16 Felder in eine normalisierte Struktur überzuführen. Dass die vorliegende Tabelle falsch ist, wurde schon erkannt.

    @andreas
    Erstelle eine Tabelle mit folgenden Feldern:
    - AutorID (Autowert, Primärschlüssel)
    - Nachname
    - Vorname

    Dann schaufelst Du mit 16 Anfügeabfragen jeweils den Nachnamen und Vornamen in die vorgefertigte Tabelle. Bei den Anfügeabfragen musst Du jeweils nur die Feldnamen anpassen und ausführen. Die musst du nicht speichern, wird nicht mehr gebraucht.
    Du hast dann eine Autorentabelle mit allen Autoren und eine ID.

    Dann brauchst Du eine Zuordnungstabelle mit folgenden Feldern:
    - ArtikelAutorID (Autowert, Primärschlüssel)
    - ArtikelID_F (Fremdschlüssel zum Artikel)
    - AutorID_F (Fremdschlüssel zum Autor)

    Die Artikeltabelle sollte auch einen Autowert als PS haben.

    Dann musst Du Anfügeabfragen erstellen mit Beziehungen über Vor und Nachname und die Primärschlüssel in die Zuordnungstabelle als Fremdschlüssel übertragen.

    Anbei noch ein Bild wie die Beziehungen der geänderten DB aussehen sollten.
     
    gpswanderer, 2. März 2016
    #9
  10. >> Es geht ja darum, die jetzt falsche Struktur (die 2x16 Felder in eine normalisierte Struktur überzuführen.

    Falls es Dir entgangen sein sollte: genau das ein Verfahren dazu habe ich beschrieben. Was bei Deiner Anleitung nämlich fehlt, sind die 17.000 * 3 (Durchschnittswert angenommen) m:n-Beziehungen.
     
    drambeldier, 2. März 2016
    #10
  11. Hallo,
    nein habe ich nicht. Steht im vorletzten Satz.
    Außerdem hast Du Deine Antwort nach meinem Post noch mal etwas erweitert.

    Es gibt auch keinen Grund sich verbessert zu fühlen, es war nur ein Hinweis.
     
    gpswanderer, 2. März 2016
    #11
  12. Vielen Dank für die ausführlichen und gut verständlichen Antworten; und vor allem für das perfekte Reindenken in mein Problem. Ich glaube ich bin mit Euch auf einem guten Weg.

    Ich habe jetzt neben der Artikel-Tabelle, eine Autoren-Tabelle (ID, Nachname, Vorname) und eine Verknüpfungstabelle (mit Beziehungen zu den anderen Tabellen per ID, wie von Euch geschildert).

    Mein aktuelles Problem ist, dass ich nicht weiß, wie ich die Verknüpfungs- bzw. Zuordnungstabelle korrekt auffüllen soll.

    Viele Grüße!
     
    Sarah Keller, 2. März 2016
    #12
  13. Beziehungen aus Datensätzen für Netzwerkanalyse

    Ein kleiner Challenge bleibt ja schon noch:
    Der Name des Autors ist ja jetzt zusammengesetzt: MüllerP
    Man muss also bei der Anfügeabfrage diesen auseinandernehmen:
    Nachname: Left(FeldAutor1, Len(FeldAutor1)-1)
    Vorname: Right(FeldAutor1,1)

    Das ganze dann für die 16 Felder (wo nicht leer)

    der grössere Challenge ist dann noch, wenn der Fall eintritt, dass der MüllerP einmal der Müller Peter und ein ander Mal Müller Paul ist ...

    Das wird dann wohl nur händisch gehen. Ich würde dabei vorschlagen, schon in der jetzigen (Nicht-)Struktur diese zu identifizieren und dann aus einem der beiden z.b. MüllerX zu machen. Sonst bekommt man das nachher nie mehr auseinander, wenn die Verküpfungstabelle mit den ID's aufgebaut wird. Es gäbe ja dann dort nur einen Müller P ...
     
  14. Die beiden Primärtabellen wären davor ja auch korrekt zu befüllen.

    Im einfachen Fall lädst Du hier eine Demo-DB mit den neu erstellten Tabellen und Beziehungen (da können wir gleich gleiche Bezeichnungen verwenden) sowie mit der Ausgangstabelle, die einige wenige aber prägnante Datensätze enthält, hier hoch. Diese Datensätze sollten vor allem vorhandene Grenzfälle abdecken.

    Dann könnte man zum Befüllen gleich die notwendigen Anfügeabfragen schreiben, und sich dann auch gleich mit der gewünschten Auswertung beschäftigen.
     
  15. Guten Morgen,
    ich lade hier eine Demo-DB mit knapp 10 Datensätzen hoch, in der ich die 6 bzw. 12 Autorenfelder sowie ein paar grundsätzliche Daten (ID, Zeitschrift, Erscheinungsjahr, Nummer, Titel) stehengelassen habe.
    Es findet sich auch eine T3Autoren, die ich aus der Auswahl von Artikeln gestern erstellt habe.
    Außerdem den Entwurf einer Verknüpfungstabelle T9.
    Meine Frage ist, wie ich die Verknüpfungstabelle auffülle.
    Vielen Dank!
    P.S.: Enthalten ist auch ein weiteres Problem, welches hier wohl besser erstmal nicht Thema sein sollte

    Weil das Problem fast genauso gelagert ist und weil ich ohnehin gerade eine Demo-DB erstellt habe, habe ich es dringelassen. Vielleicht will es sich ja jemand anschauen. Langer Rede kurzer Sinn: Wissenschaftliche Artikel zitieren andere wissenschaftliche Publikationen. Es entstehen also Beziehungen, z.B. zwischen dem zitierenden Artikel und dem zitierten. Wird eine Publikation z.B. mehrmals zitiert, ergibt sich ein Netzwerk, das wir gerne erheben würden. Ein Artikel kann bis zu 200 Zitationen aufweisen, die wir mit einer Abkürzung (ErstautorNachname#Erscheinungsjahr#ErstesTitelwort) erheben. Ich habe hier evtl. den gleichen Fehler wie bei den Autoren gemacht und die Zitationen nicht in eine extra (m:n verknüpfte) Tabelle ausgelagert. Weil die Datensätze zu groß wurden (an die Abkürzung hinter einem weiteren Hashtag haben wir teilweise noch weitere Infos reinkopiert, weshalb wir die Felder dann auch als „Langer Text“ formatieren mussten), habe ich die Zitationen allerdings in mehrere 1:1 verknüpfte Tabellen ausgelagert (T2Zitationen). Die Eingabe läuft über Formular und Unterformulare. Im Endeffekt wäre es wie bei den Autoren wahrscheinlich sinnvoll, wenn ich die Felder aus den 1:1 Tabellen zu Datensätzen in m:n Tabelle mache? Hier ist vielleicht zu bedenken, dass die Zahl der Zitationen irgendwann in den 6-stelligen Bereich gehen könnten.
     
    Sarah Keller, 2. März 2016
    #15
Thema:

Beziehungen aus Datensätzen für Netzwerkanalyse

Die Seite wird geladen...
  1. Beziehungen aus Datensätzen für Netzwerkanalyse - Similar Threads - Beziehungen Datensätzen Netzwerkanalyse

  2. Datenmodell bei abgestufter Mitgliedschaft

    in Microsoft Access Hilfe
    Datenmodell bei abgestufter Mitgliedschaft: Hallo Leute, Für eine Mitgliedsdatenbank Verein habe ich eine Frage zum Datenmodell. Ich habe eine Tabelle mit den Adressdaten meiner Mitglieder. Und dann eine zweite Tabelle in der ich die...
  3. Beziehungen zw. 2 Tabellen

    in Microsoft Access Hilfe
    Beziehungen zw. 2 Tabellen: Hallo! Ich habe eine Frage zu Beziehungen: Meine Tabellen Personen und Aufgaben haben jeweils das Autowertfeld (ID). Könnte ich aber z.B. das Feld Personalnummer (Textfeld) als Referenz in der...
  4. Primärschlüssel/Fremdschlüssel aus 2.Tabelle automatisch einfügen

    in Microsoft Access Hilfe
    Primärschlüssel/Fremdschlüssel aus 2.Tabelle automatisch einfügen: Hallo zusammen, ich stehe gerade vor dem Problem, dass ich die Datensätze zwischen zwei Tabellen nicht verknüpfen kann. Konkret habe ich die beiden Tabellen tblEigenschaft und tblBasis. In der...
  5. Datensatz löschen 1:n-Beziehung

    in Microsoft Access Hilfe
    Datensatz löschen 1:n-Beziehung: Hallöchen! Bin mit meiner Musikdatendank kurz vor dem Ziel. Ein kleines Anliegen habe ich aber doch noch, Manchmal möchte ich nach reiflicher Überlegung doch einen Titel löschen. Grundsätzlich...
  6. Formular zur Verknüpfung von Datensätzen bei m:n Beziehung

    in Microsoft Access Hilfe
    Formular zur Verknüpfung von Datensätzen bei m:n Beziehung: Hallo Accessler, nach einiger Zeit versuche ich mal wieder mein Glück mit Access, leider nur mit mäßigem Erfolg trotz tagelanger Suche im www. Ich habe mir eine kleine Finanzverwaltungs DB...
  7. Kopieren mehrerer Datensätze mit deren in Beziehung stehenden DS

    in Microsoft Access Hilfe
    Kopieren mehrerer Datensätze mit deren in Beziehung stehenden DS: Hallo zusammen, ich habe ein etwas spezielles Problem und konnte weder bei meiner allgemeinen Suche noch unter "Anfügeanfragen" eine Lösung finden. (Bzw. konnte Nichts davon adaptieren, bin noch...
  8. Datensätze aussortieren bei mehrfacher (WENN/DANN) Beziehung

    in Microsoft Excel Hilfe
    Datensätze aussortieren bei mehrfacher (WENN/DANN) Beziehung: OFFICE365 Hallo Zusammen, Ich bin leider nicht sonderlich begabt was das Thema Excel angeht. Jetzt stehe ich vor folgendem Problem: Ich habe eine Liste mit 40.000 Zeilen. In Spalte A...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden