Suchmaschinenoptimierung
   
 

SEMSEO Konferenz 2012
 

 
 

Wie Netzwerke abbilden?

Neues Thema eröffnen   Neue Antwort erstellen    ABAKUS Foren-Übersicht -> Webprogrammierung, Templatedesign & Microformats
 Wie funktionieren Preissuchmaschinen? Homepage Design für Altenpflege?  
ender

pr


: 23.11.2008
: 510
: Hannover


: 06.08.2010, 12:50    : Wie Netzwerke abbilden? Antworten mit Zitat

Wie bildet man mit einer Datenbank Netzwerkbeziehungen von Links ab, sodass z.B. auch die Entfernung zwischen zwei Knotenpunkten abfragbar ist?

Wenn ich z.B. mit MySQL für jede Domain die eingehenden und ausgehenden Links in Tabellen schreibe, komme ich bei mehr als zwei Hops schnell an das Problem nicht mehr die Zwischenstationen herausfinden zu können.

Gibt es vielleicht ein Datenbanksystem, das wie geschaffen für solche Strukturen ist, bzw. ein passendes Modell für MySQL?
Nach oben
ender Private Nachricht senden
smilla

pr


: 28.07.2008
: 161



: 10.08.2010, 22:47    : Wie Netzwerke abbilden? Antworten mit Zitat

Mit Hilfe von Graphen solltest du das berechnen können
Nach oben
smilla Private Nachricht senden
Jannick

pr


: 02.07.2010
: 58



: 11.08.2010, 01:13    : Wie Netzwerke abbilden? Antworten mit Zitat

SQL kann keine Rekursion, da gibt es auch keine DB-Struktur. Es gibt sicherlich DB-Systeme mit Rekursion aber wahrscheinlich eher akademische Spielereien, denn nutzbare Systeme.
Um mit SQL so etwas umzusetzen brauchst du eine Programmiersprache, die darauf aufbaut. PS/SQL für Oracle wäre so etwas, womit auch rekursive Abfragen möglich sind, ob es vergleichbares für MySQL gibt, weiß ich leider nicht.
Nach oben
Jannick Private Nachricht senden
ender

pr


: 23.11.2008
: 510
: Hannover


: 11.08.2010, 01:35    : Wie Netzwerke abbilden? Antworten mit Zitat

Graphen sind ein guter Tipp, vor allem für die Visualisierung. Wegstrecken sollten recht einfach mit dem Dijkstra´s Algorithmus berechenbar sein. Und bei der Datenbankabbildung schau ich mal, wie weit ich mit MySQL komme, sonst werf ich mal nen Blick auf Oracle PS/SQL.
Nach oben
ender Private Nachricht senden
nerd

pr


: 15.02.2005
: 1686
: AKL


: 11.08.2010, 08:16    : Wie Netzwerke abbilden? Antworten mit Zitat

Jannick hat Folgendes geschrieben:
SQL kann keine Rekursion, da gibt es auch keine DB-Struktur.

Voelliger quatsch. Du kannst entweder das Adjacency List Model oder das Nested Set Model verwenden, womit du hierarchien abbilden kannst. Rekursionen bekommst du mit self-joins hin. Adjacency List Model ist einfacher zu handhaben, Nested Set Model ist allerdings beim lesezugriff schneller und flexibler.

ich beziehe mich hier auf das nested set model, damit kannst du:
- von jeder stelle aus mit einer einfachgen abfrage den pfad zurueck zu root rausbekommen
- weisst bei jedem element wieviele nodes darin enthalten sind
- eine liste aller in x enthaltenen nodes auslesen
- weisst bei jedem eintrag ob es untergeordnete elemente hat oder nicht (letztes element im zweig)
- beliebig in alle richtungen erweiterbar ohne das du was an der db-struktur aendern musst

http://dev.mysql.com/tech-resources/articles/hierarchical-data.html => ctrl+f "The Nested Set Model".

die beispiele und abfragen auf der seite sind allerdings falsch, statt "GROUP BY node.name" sollte es immer "GROUP BY node.id" heissen sonst bekommst du probleme wenn ein name doppelt vergeben ist.
ich habs hier vor einiger zeit umgesetzt um plaetze in eine datenbank zu speichern. Plaetze koennen bei mir entweder Laender, Regionen, Stadte, Strassen oder Hausnummern sein.
Am besten an der sache ist natuerlich das man nur ein feld abfragen muss wenn man was sucht, und keine konstrukte wie "where country=test OR region=test OR city=test" bauen muss und trotzdem noch die abfrage einschraenken kann und z.b. nur plaetze aus Schweden, oder nur stadte, oder nur Stadte mit mehr als 10 strassen in betracht ziehen kann.

noch ein tipp:
wenn du mehr als 1000 zeilen in deiner DB hast solltest du werte wie "tiefe" (entfernung zu root) und pfad (textdarstellung des weges zu root : Welt::Italien::Rom) noch mit in deiner tabelle Cachen - ansosnten bekommst du schnell performance probleme wenn du ein grosses set hast und von mehreren hundert plaetzen nur die "Stadte" haben willst oder den erwaehnen pfad zu root brauchst.

Klingt toll, ist es auch nachdem man sich eine klasse oder mysql-funktionen geschrieben hat die es erlauben diese werte pflegeleicht in der db zu speichern, umzusortieren und zu loeschen

marketing through social media is just like herding cats. and just to make it interesting, many of the cats are drunk and stupid...

blackhat linkkauf und so...
Nach oben
nerd Private Nachricht senden
Beloe007

pr


: 05.03.2009
: 1732



: 11.08.2010, 09:12    : Wie Netzwerke abbilden? Antworten mit Zitat

Ich glaube das was du suchst kann man übertragen aus dem Navigationsbereich. Vielleicht die einzelnen Links als Vektoren darstellen, wobei z.B. die Anzahl der Links die Länge darstellen könnte und der Pagerank (falls er interessiert) die Richtung.

http://de.wikipedia.org/wiki/Geodaten

Jeder einzelne Link wäre dann ein Vektor, die Regeln könntest du auch nachträglich noch ändern um eine andere/bessere Darstellung zu erreichen.

Optimal wäre als Ergebnis dann eine art Landkarte die man lesen kann, mit positiven und negativen Regionen... vergleichbar mit Sibirien und der Karibik... das ganze dann noch in 3D und du kannst einen Globus machen.. mit noch Flugrouten usw... denke schon das man so etwas sehr komplex umsetzen könnte, das aber nach und nach wachsen kann, also man muss nicht sofort alles fertig machen.

Aber guck dir mal http://www.touchgraph.com/TGGoogleBrowser.html an... da die Facebook-Version könnte ein weiteres Beispiel einer grafischen Darstellmöglichkeit sein.

Würde aber zu Vektoren tendieren, weil du dann auch für die Zukunft frei bist und die Regeln recht einfach anpassen kannst und auch Matrizen anwenden könntest... auch wenn es am Anfang sicher sehr kompliziert ist, so wärst du später frei und kannst beliebig Wertigkeit und sonst was frei definieren.

Nur mal so als Brainstorming
Nach oben
Beloe007 Private Nachricht senden
Wolke23

pr


: 16.02.2006
: 58
: Aschaffenburg


: 11.08.2010, 11:50    : Wie Netzwerke abbilden? Antworten mit Zitat

Wow, das ist ein Thread, der zeigt, dass es in diesem Forum auch richtig hochqualitativ abgehen kann. Bin gespannt, was Ender zaubert

Meine Blogs: SEO Scene - Hosting Blog - Business
Nach oben
Wolke23 Private Nachricht senden WWW
Jannick

pr


: 02.07.2010
: 58



: 11.08.2010, 12:29    : Wie Netzwerke abbilden? Antworten mit Zitat

nerd hat Folgendes geschrieben:
Jannick hat Folgendes geschrieben:
SQL kann keine Rekursion, da gibt es auch keine DB-Struktur.

Voelliger quatsch. Du kannst entweder das Adjacency List Model oder das Nested Set Model verwenden, womit du hierarchien abbilden kannst. Rekursionen bekommst du mit self-joins hin.

Abgesehen davon, dass ich deinen Beitrag für sehr gut halte, erweckst du mit der Verneinung meiner Aussage einen falschen Eindruck. Das Adjacency List Model funktioniert nur dann "rekursiv", wenn man die Anzahl der "Nodes" beschränken kann("The main limitation of such an approach is that you need one self-join for every level in the hierarchy"). Das Nested Set Model funktioniert ebenfalls nicht, um eine Reihenfolge von beliebig vielen Nodes zu bekommen.
Angenommen du hast eine unbegrenzte Anzahl von Städten, sowie die Verbindungen zwischen ihnen und du möchtest einen Weg von A nach B mit allen Zwischenorten ausgeben(das ist ja enders Problem). Rekursion wäre es dann, wenn du egal, wie viele Orte zwischen A und B sind diese Reihenfolge ausgeben könntest und das ist, korrigier mich, falls ich falsch liege, mit purem SQL nicht zu machen.
@ender, falls du weißt, dass nie mehr als x Knoten zwischen zwei Knoten in deinem Netzwerk sind, dann ist der obige Tip sehr gut, wenn du echte Rekursion brauchst, dann bleibt dir nur ein anderer Weg.
Nach oben
Jannick Private Nachricht senden
ender

pr


: 23.11.2008
: 510
: Hannover


: 11.08.2010, 12:50    : Wie Netzwerke abbilden? Antworten mit Zitat

Erstmal danke für die rege Beteiligung
Ich kann mich auf 10-15 Zwischenknoten beschränken. Sobald mein Testdatenset steht, werd ich sehen, wie lange die einzelnen self-joins brauchen. Dann wird sich zeigen, ob MySQL für mich passt.
Nach oben
ender Private Nachricht senden
Jannick

pr


: 02.07.2010
: 58



: 11.08.2010, 13:23    : Wie Netzwerke abbilden? Antworten mit Zitat

ender hat Folgendes geschrieben:
Erstmal danke für die rege Beteiligung
Ich kann mich auf 10-15 Zwischenknoten beschränken. Sobald mein Testdatenset steht, werd ich sehen, wie lange die einzelnen self-joins brauchen. Dann wird sich zeigen, ob MySQL für mich passt.


10-15 Selfjoins hört sich schon nach viel an, aber wenn die Tabelle in den cache passt und du Indizes drauf hast, dann dürfte das machbar sein. Du hast dann ja ca. log(|Tabelle|)*15 Index-Zugriffe, das geht schnell, wenn der Index im Speicher liegt, sonst kannst du es, falls du das Ergebnis halbwegs schnell brauchst vergessen.

PS. Ich wäre interessiert daran, zu hören wie es ausgegangen ist und wie schnell das Ganze funktioniert. Kannst dann den thread ja nochmal ausgraben.
Nach oben
Jannick Private Nachricht senden
SloMo

pr


: 04.01.2005
: 4027



: 11.08.2010, 14:03    : Wie Netzwerke abbilden? Antworten mit Zitat

Kann mir mal einer auf die Sprünge helfen, wie man mit Nested-Sets eine n:m-Beziehung abbildet? Da braucht man pro ausgehendem Link ein Set, oder? Es kommt mir für diesen Anwendungsfall sehr ungeeignet vor.
Nach oben
SloMo Private Nachricht senden
nerd

pr


: 15.02.2005
: 1686
: AKL


: 11.08.2010, 15:04    : Wie Netzwerke abbilden? Antworten mit Zitat

achso, du willst wissen wie man von punkt a am schnellsten nach punkt b kommt wenn du nicht weisst wieviele punke dazwischen sind? das hab ich ueberlesen.
ich hatte da vor langer zeit mal ein ausfuehrliches beispiel gesehen wie das z.b. bei fahrplaenen funktioniert, habe aber den link nichtmehr. :/
ich schau morgen nochmal hier vorbei; ist schon 2uhr frueh hier.

marketing through social media is just like herding cats. and just to make it interesting, many of the cats are drunk and stupid...

blackhat linkkauf und so...
Nach oben
nerd Private Nachricht senden
SloMo

pr


: 04.01.2005
: 4027



: 11.08.2010, 15:09    : Wie Netzwerke abbilden? Antworten mit Zitat

Für Routenplanung gibts doch Ameisen. Das müsste IMHO der einzige Grund sein, warum die überhaupt auf der Erde sind. Siehe: http://www.ameisenalgorithmus.de
Nach oben
SloMo Private Nachricht senden
nerd

pr


: 15.02.2005
: 1686
: AKL


: 12.08.2010, 04:23    : Wie Netzwerke abbilden? Antworten mit Zitat

Hier noch ein paar links zu deinem Route finden problem. Die meisten loesungen beziehen sich auf das traveling salesman problem; was du ja auch dein "wieviel links ist seite A von seite B entfernt" ableiten kannst:

Routenplaner beispiel, Oracle Syntax
("CONNECT BY query"? ist das noch sql? noch nie gesehen....)
http://technology.amis.nl/blog/1221/building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph

Ueber wieviele freunde kennt person A person B, eigentlich das gleiche prinzip:
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=77262
http://oracleofbacon.org/how.php

ansonsten mal nach "Traveling salesman problem mysql select" oder so suchen.

marketing through social media is just like herding cats. and just to make it interesting, many of the cats are drunk and stupid...

blackhat linkkauf und so...
Nach oben
nerd Private Nachricht senden
Neues Thema eröffnen   Neue Antwort erstellen    ABAKUS Foren-Übersicht -> Webprogrammierung, Templatedesign & Microformats
Seite 1 von 1

 






Ähnliche Beiträge
Thema Forum Antworten
Netzwerke mit postback call? Netzwerke mit postback call? janeiro Partnernetzwerke 2 17.11.2011, 15:00 Netzwerke mit postback call?
Affiliate Netzwerke - international (FR, BE, ESP ...) Affiliate Netzwerke - international (... Grisumator Partnernetzwerke 0 14.07.2011, 09:44 Affiliate Netzwerke - international (FR, BE, ESP ...)
Afflait Netzwerke für Gewinnspiele? Afflait Netzwerke für Gewinnspiele? Matthiaz Partnerprogramme 2 25.06.2011, 08:03 Afflait Netzwerke für Gewinnspiele?
[B] Textpaket zum Thema "Soziale Netzwerke" [B] Textpaket zum Thema "Soziale... prinztexter Marktplatz: Dienstleistungen 0 08.06.2011, 20:59 [B] Textpaket zum Thema "Soziale Netzwerke"
Cookie-Dropping und Netzwerke Cookie-Dropping und Netzwerke superclix Partnerprogramme 16 17.05.2011, 08:01 Cookie-Dropping und Netzwerke
Partnerprogramme / Netzwerke fuer Gambling Partnerprogramme / Netzwerke fuer Gam... rarigerm Partnerprogramme 3 17.04.2011, 18:06 Partnerprogramme / Netzwerke fuer Gambling
[B] SPINTEXTE - 0,8 Cent pro Wort, Ideal für Netzwerke [B] SPINTEXTE - 0,8 Cent pro Wort, Id... Matzek Marktplatz: Dienstleistungen 0 14.01.2011, 11:20 [B] SPINTEXTE - 0,8 Cent pro Wort, Ideal für Netzwerke

Suchmaschinenoptimierung | Latent Semantische Optimierung (LSO) | SEO Blog | SEO Online Tools | Suchmaschinenmarketing Angebot | Online Marketing

Impressum

Dieses SEO Forum läuft unter phpBB.


Sie lesen gerade: Wie Netzwerke abbilden?