Zurück tutorials.de > Programming > Relationale Datenbanksysteme

 
 
Hallo und herzlich willkommen! Tutorials.de ist eine Hilfe-Community mit dem Motto User helfen Usern. Als Gast verfügst Du über Schreibrechte in unseren Foren und Blogs. Du kannst dich aber gerne auch kostenlos registrieren und Teil unserer Gemeinschaft werden! Viel Spaß & Erfolg bei der Vermehrung deines Wissens :-)

Themen: 242.975 | Beiträge: 1.352.293 | Mitglieder: 169.418 (Stand 28.01.10) | Fragen zur Nutzung von Tutorials.de? Nutzungsregeln | Kontaktformular | Impressum

Jubiläums-Countdown 23.02 23.03 23.04 23.05 23.06 23.07 23.08 23.09


Einladung zum C++ für Einsteiger-Workshop
  AntwortAntworten (über Gastzugang)    
  AntwortAntworten (über Gastzugang)    
 
Themen-Optionen Ansicht
Alt 23.12.06, 02:00   #1 (permalink)
 
Benutzerbild von Thomas Darimont tutorials.de Administrator 
 
Registriert seit: Jun 2002
Ort: Saarbrücken (Saarland)
Beiträge: 9.151
Renommee-Modifikator: 61
Thomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende Zukunft

[Oracle] Wer kennt wen über wen? Pfade in einem Graph auflisten

Hallo!

Gerade im Bereich von Social Networking Sites wie openbc / xing oder neuerdings auch das studivz findet sich eine interessante Funktionalität: Die Visualisierung des Pfades innerhalb eines Bekanntheitsgraphen der aufzeigt über welche Personen eine Person eine gewisse andere Person kennt.

Hierzu bin ich gerade über einen Interessanten Artikel gestolpert der diese Problematik (Edge list model of a non-tree graph) anhand eines Airline / Flughafen / Flugplan Szenarios erklärt.
http://www.artfulsoftware.com/mysqlb...qled1ch20.html

Wenn ich die nächsten Tage mal etwas Zeit finde baue ich dazu vielleicht mal ein kleines Beispiel.

Gruß Tom
__________________
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
  Thomas Darimont ist offline  
 
Alt 17.01.07, 22:25   #2 (permalink)
Grünschnabel
 
Registriert seit: Sep 2006
Beiträge: 3
Renommee-Modifikator: 0
carlkong hat eine blütenweiße Weste

AW: Wer kennt wen über wen? Pfade in einem Graph auflisten

Da wäre ich sehr interessiert dran! Wie siehts aus mit einem Beispiel?
  carlkong ist offline  
 
Alt 17.01.07, 22:38   #3 (permalink)
 
Benutzerbild von Thomas Darimont tutorials.de Administrator 
 
Registriert seit: Jun 2002
Ort: Saarbrücken (Saarland)
Beiträge: 9.151
Renommee-Modifikator: 61
Thomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende Zukunft

AW: Wer kennt wen über wen? Pfade in einem Graph auflisten

Hallo,

hatte bisher leider keine Zeit diese spannende Sache weiter zu verfolgen. Na ja, werd mal schauen ob ich am Wochenende mal Zeit dafür habe...

Gruß Tom
__________________
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
  Thomas Darimont ist offline  
 
Alt 18.01.07, 19:52   #4 (permalink)
Grünschnabel
 
Registriert seit: Sep 2006
Beiträge: 3
Renommee-Modifikator: 0
carlkong hat eine blütenweiße Weste

AW: Wer kennt wen über wen? Pfade in einem Graph auflisten

Das wäre echt total super! Ich bin gespannt!
  carlkong ist offline  
 
Alt 20.01.07, 21:52   #5 (permalink)
Grünschnabel
 
Registriert seit: Sep 2006
Beiträge: 3
Renommee-Modifikator: 0
carlkong hat eine blütenweiße Weste

AW: Wer kennt wen über wen? Pfade in einem Graph auflisten

Gibts schon was neues?
  carlkong ist offline  
 
Alt 23.01.07, 12:29   #6 (permalink)
Grünschnabel
 
Registriert seit: Jan 2007
Beiträge: 1
Renommee-Modifikator: 0
Daniel_CB hat eine blütenweiße Weste

AW: Wer kennt wen über wen? Pfade in einem Graph auflisten

Also ich habe eine PHP Klasse geschrieben die dieses möglich macht.

als Grundlage dient eine Datenbank mit folgenden spalten.

USER_ID USER_FRIEND
2 1
1 2

als Pfade kommt

2=>1
bei mehren verbindungen

10=>8=>3=>1

so als BSP.

bei interesse ICQ 292913800
  Daniel_CB ist offline  
 
Alt 23.01.07, 20:49   #7 (permalink)
 
Benutzerbild von Thomas Darimont tutorials.de Administrator 
 
Registriert seit: Jun 2002
Ort: Saarbrücken (Saarland)
Beiträge: 9.151
Renommee-Modifikator: 61
Thomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende Zukunft

AW: Wer kennt wen über wen? Pfade in einem Graph auflisten

Hallo,

hatte am Wochenende genug damit zu tun mit Dominik die ca. 800 MB Attachments des tutorials.de Forums zu retten ... übrigens erfolgreich

Vielleicht nächstes Wochenende.

Gruß Tom
__________________
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
  Thomas Darimont ist offline  
 
Alt 26.02.07, 23:01   #8 (permalink)
 
Benutzerbild von Thomas Darimont tutorials.de Administrator 
 
Registriert seit: Jun 2002
Ort: Saarbrücken (Saarland)
Beiträge: 9.151
Renommee-Modifikator: 61
Thomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende Zukunft

AW: Wer kennt wen über wen? Pfade in einem Graph auflisten

Hallo,

hier mal ein kleines Beispiel zum Aufbau eines Bekanntheitsgraphen in Oracle 10g mithilfe der neuen hierarchischen Abfragemöglichkeiten
in Oracle 10g -> http://www.oracle.com/technology/ora...ectby_10g.html

Unsere User Tabelle:
sql Code:
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
CREATE TABLE t_user (id number NOT NULL, name varchar2(45) NOT NULL, PRIMARY KEY  (id));
INSERT INTO t_user VALUES (1,'Tom');
INSERT INTO t_user VALUES (2,'Fritz');
INSERT INTO t_user VALUES (3,'Hans');
INSERT INTO t_user VALUES (4,'Anne');
INSERT INTO t_user VALUES (5,'Paula');

Unsere Friends Tabelle:
sql Code:
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
CREATE TABLE t_friend (id number NOT NULL , userid number NOT NULL, friendid number NOT NULL, PRIMARY KEY  (id));
INSERT INTO t_friend VALUES(1,1,2);
INSERT INTO t_friend VALUES(2,1,4);
INSERT INTO t_friend VALUES(3,2,1);
INSERT INTO t_friend VALUES(4,2,3);
INSERT INTO t_friend VALUES(5,2,4);
INSERT INTO t_friend VALUES(6,3,2);
INSERT INTO t_friend VALUES(7,4,1);
INSERT INTO t_friend VALUES(8,4,5);
INSERT INTO t_friend VALUES(9,5,4);

Unsere User Tabelle:
sql Code:
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
SQL> SELECT * FROM t_user;
 
        ID NAME
---------- ---------------------------------------------
         1 Tom
         2 Fritz
         3 Hans
         4 Anne
         5 Paula

Unsere User Tabelle:

Unsere Friend Tabelle:
sql Code:
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
SQL> SELECT * FROM t_friend;
 
        ID     USERID   FRIENDID
---------- ---------- ----------
         1          1          2
         2          1          4
         3          2          1
         4          2          3
         5          2          4
         6          3          2
         7          4          1
         8          4          5
         9          5          4
 
9 rows selected.

Damit haben wir einen Bekanntheitsgraphen definiert wie man ihn in der Grafik im Anhang sehen kann.

Möchten wir nun wissen über welche Verbindung User 3 den user 5 kennt so können wir folgende Abfrage benutzen:
sql Code:
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
SELECT socialnetwork.path
FROM
(SELECT
f.* ,
 3 || SYS_CONNECT_BY_PATH(f.friendid,'-') path
FROM
t_friend f
connect BY nocycle prior f.friendid = f.userid
start WITH f.userid = 3) socialnetwork
WHERE friendid = 5
ORDER BY length(socialnetwork.path)

Als Ergebnis erhalten wir:
Code:
SQL> select socialnetwork.path
  2  from
  3  (select
  4  f.* ,
  5   3 || SYS_CONNECT_BY_PATH(f.friendid,'-') path
  6  from
  7  t_friend f
  8  connect by nocycle prior f.friendid = f.userid
  9  start with f.userid = 3) socialnetwork
 10  where friendid = 5
 11  order by length(socialnetwork.path)
 12  /

PATH
---------------------------------------------------
3-2-4-5
3-2-1-4-5
Das bedeutet, dass der User 3 den User 5 über zwei verschiedene Verbindungen kennt:

1) 3-2-4-5
2) 3-2-1-4-5

Auf ähnliche Weise funktionieren auch die Beziehungsgraphen in den großen Networking Communities
wie Beispielsweise Xing/OpenBC, facebook, studivz und myspace.

Gruß Tom
Miniaturansicht angehängter Grafiken
[Oracle] Wer kennt wen über wen? Pfade in einem Graph auflisten-sngraph.jpg  
__________________
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
  Thomas Darimont ist offline  
 
Alt 19.03.07, 16:41   #9 (permalink)
Mitglied
 
Registriert seit: Nov 2005
Beiträge: 17
Renommee-Modifikator: 0
Silverboy hat eine blütenweiße Weste

AW: [Oracle] Wer kennt wen über wen? Pfade in einem Graph auflisten

Hi.

Kenne mich in oracle leider überhaupt nit aus. Lässt sich dieser Select denn auch auf MySQL anpassen?
Oder könntest mir kurz erkläeren was der folgende code genau macht
Code:
#
(SELECT
#
f.* ,
#
 3 || SYS_CONNECT_BY_PATH(f.friendid,'-') path
#
FROM
#
t_friend f
#
connect BY nocycle prior f.friendid = f.userid
#
start WITH f.userid = 3)
Grüße
Silverboy
  Silverboy ist offline  
 
Alt 20.03.07, 01:08   #10 (permalink)
 
Benutzerbild von Thomas Darimont tutorials.de Administrator 
 
Registriert seit: Jun 2002
Ort: Saarbrücken (Saarland)
Beiträge: 9.151
Renommee-Modifikator: 61
Thomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende Zukunft

AW: [Oracle] Wer kennt wen über wen? Pfade in einem Graph auflisten

Hallo,

Zitat:
Kenne mich in oracle leider überhaupt nit aus. Lässt sich dieser Select denn auch auf MySQL anpassen?
Nein, in MySQL existieren die notwendigen Elemente dazu nicht... im Link in meinem ersten post findest du jedoch ein paar Lösungsvorschläge zu diesem Problem für MySQL.

Zitat:
Oder könntest mir kurz erkläeren was der folgende code genau macht
Im Prinzip macht der Ausdruck nichts anderes als die hierarchische Verknüpfung der beiden beteiligten Tabellen über die angegebenen Spalten herzustellen. Da wir in unserem Graph Zyklen haben die das hierarchische auflösen erschweren, lasse ich die Zyklen ignorieren.

Gruß Tom
__________________
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
  Thomas Darimont ist offline  
 
Alt 20.03.07, 08:38   #11 (permalink)
Mitglied Diamant
 
Registriert seit: Mar 2003
Ort: Hilden (NRW)
Beiträge: 1.919
Renommee-Modifikator: 25
Radhad ist jedem bekanntRadhad ist jedem bekanntRadhad ist jedem bekanntRadhad ist jedem bekannt

AW: [Oracle] Wer kennt wen über wen? Pfade in einem Graph auflisten

Muss die Tabelle "Friend" einen eigenen primärschlüssel haben oder geht das auch wenn man einen zusammengesetzten PK verwendet aus den beiden FK's?
__________________
Mein neues Projekt: zandman.de - Bericht über den Aufbau einer Entwicklungsumgebung für Test-Driven-Development mit phpUnderControl und dem Aufbau einer Webapplikation mit Zend Framework Version 1.9.x
  Radhad ist offline  
 
Alt 02.04.07, 10:45   #12 (permalink)
Rookie
 
Registriert seit: Jan 2007
Beiträge: 7
Renommee-Modifikator: 0
Dani87 hat eine blütenweiße Weste

AW: Wer kennt wen über wen? Pfade in einem Graph auflisten

Zitat:
Zitat von Thomas Darimont Beitrag anzeigen
Auf ähnliche Weise funktionieren auch die Beziehungsgraphen in den großen Networking Communities
wie Beispielsweise Xing/OpenBC, facebook, studivz und myspace.

Wie kommt es dann, dass ich auf studivz öfters schon mysql Fehlermeldungen gesehen habe?

Die müssen das mit mysql umgesetzt haben, nur wie?
  Dani87 ist offline  
 
Alt 02.04.07, 12:59   #13 (permalink)
 
Benutzerbild von Thomas Darimont tutorials.de Administrator 
 
Registriert seit: Jun 2002
Ort: Saarbrücken (Saarland)
Beiträge: 9.151
Renommee-Modifikator: 61
Thomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende Zukunft

AW: [Oracle] Wer kennt wen über wen? Pfade in einem Graph auflisten

Hallo,

Zitat:
Wie kommt es dann, dass ich auf studivz öfters schon mysql Fehlermeldungen gesehen habe?

Die müssen das mit mysql umgesetzt haben, nur wie?
Ich hab doch nicht geschrieben, dass die dort Oracle verwenden, oder? ...
Ich meinte damit, dass das Prinzip ähnlich ist.

Gruß Tom
__________________
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
  Thomas Darimont ist offline  
 
Alt 02.04.07, 13:11   #14 (permalink)
Rookie
 
Registriert seit: Jan 2007
Beiträge: 7
Renommee-Modifikator: 0
Dani87 hat eine blütenweiße Weste

AW: [Oracle] Wer kennt wen über wen? Pfade in einem Graph auflisten

Du hast geschrieben, dass es auf ähnliche Weise funktioniert.

Das wird wohl stimmen! Zweifelsohne!

Da die Funktionen die du bei deiner Abfrage verwendet hast in mysql nicht funktionieren bzw. existieren, wird das ganze wohl ganz anders aussehen. Deshalb lässt sich das wohl nicht mit studivz und ähnlichen Plattformen die mit mysql arbeiten vergleichen.

Ganz allgemein gesagt wird das alles "ähnlich" sein, wobei ähnlich sich in diesem Zusammenhang sehr "dehnen" lässt.

lg dani
  Dani87 ist offline  
 
Alt 02.04.07, 13:15   #15 (permalink)
 
Benutzerbild von Thomas Darimont tutorials.de Administrator 
 
Registriert seit: Jun 2002
Ort: Saarbrücken (Saarland)
Beiträge: 9.151
Renommee-Modifikator: 61
Thomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende ZukunftThomas Darimont hat eine strahlende Zukunft

AW: [Oracle] Wer kennt wen über wen? Pfade in einem Graph auflisten

Hallo,

Zitat:
Du hast geschrieben, dass es auf ähnliche Weise funktioniert.

Das wird wohl stimmen! Zweifelsohne!

Da die Funktionen die du bei deiner Abfrage verwendet hast in mysql nicht funktionieren bzw. existieren, wird das ganze wohl ganz anders aussehen. Deshalb lässt sich das wohl nicht mit studivz und ähnlichen Plattformen die mit mysql arbeiten vergleichen.
Deshalb trägt der Thread ja auch die Kennzeichnung [Oracle] Weiterhin ist im Link im ersten Post gezeigt wie man diese Aufgabe auch mit MySQL lösen kann.

Zitat:
Ganz allgemein gesagt wird das alles "ähnlich" sein, wobei ähnlich sich in diesem Zusammenhang sehr "dehnen" lässt.
lg dani
und was ist nun dein Problem?

Gruß Tom
__________________
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
  Thomas Darimont ist offline  
 
 
 
Lesezeichen:


Themen-Optionen
Ansicht
Ähnliche Themen
 
Thema Autor Forum Antworten Letzter Beitrag
Bitte um Tipps und wen möglivh auch Hilfe. LinoH Cinema 4D 5 12.12.05 11:09
Wen DB ausgabe leer dann meldung Matthiasghh PHP 3 08.08.05 00:56
fehlersuche...ganz billig, für wen der jscript kann ;) mille Javascript & Ajax 4 23.08.03 23:09
Kennt jemand wen, der... dune911 Smalltalk 5 03.11.02 13:19
Wen ja...! Comander_Keen Fun-Forum 0 31.01.02 21:50
» Tools
 
tutorials.de-Tools tutorial.de-Suchfeld tutorial.de-Widget tutorial.de-RSS-Feed tutorial.de-Banner
» Neue Links
 
Hits: 130
»
JHT's Planetary...
(Cinema 4D-Objekte)
Hits: 258
»
Tageslicht ohne GI
(Cinema 4D-Tutorials)
Hits: 145
»
Puzzle
(Cinema 4D-Tutorials)
Hits: 99
»
Lacreme
(Cinema 4D-Tutorials)
Hits: 187
»
Liquid Light
(Cinema 4D-Tutorials)
» Aktuelle Umfrage
 
Bist du mit der Geschwindigkeit der Tutorials.de-Website zufrieden?
Ja, es putzt mir glatt den Staub vom Bildschirm! - 78,77%
141 Stimmen
Nein, ich denke da muss noch nachgebessert werden... - 21,23%
38 Stimmen
Stimmen gesamt: 179
Du darfst bei dieser Umfrage nicht abstimmen.

 

Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.


Powered by vBulletin® Version 3.8.5 (Deutsch) & vBadvanced CMPS v.3.2.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.5.0 RC2 ©2010, Crawlability, Inc.
Alle Rechte vorbehalten ©2000 - 2010 tutorials.de
Design by Mark, CSS by Maik & Sven Mintel
Seite generiert in 0,30313 Sekunden mit 27 queries