Hi,
ich habe einiges an Werten in einer SQLite3 Datenbank diese Würde ich jetzt gerne graphisch auswerten.
Ich habe eine Datenbank die wie folgt aufgebaut ist
|Hallo|Peter|
|Hallo|Mary|
|Hallo|Michaela|
u.s.w
jetzt würde ich das gerne in einer Baumansicht darstellen.Hätte gerne ein Beispielbild angehangen aber diese Funktioen scheint es nicht zu geben oder ich habe sie nicht gesehen.
Hallo ___ Pater
|_____ Mary
|_____ Michaela
Grüße
McAce
Datenbank graphisch darstellen
Bist du dir sicher, dass deine Datenbankstrutktur hinreichend normalisiert ist?
Wenn es also eine Tabelle gibt die mit dieser in einer 1:n-Relation verbunden ist kannst du dir aus der anderen Tabelle die entsprechenden Werte holen, aus der n-Tabelle die entsprechende Werte abfragten und hast so ein schön abgebildetes Python-Dict.
Falls es die Relation nicht gibt seh ich noch die Möglichkeit vorwer per SELECT DISTINCT alle möglichen Werte aus der Spalte mit den 'Hallo's zu holen.
Gruß
Sparrow
Edit: Ich bin jetzt davon ausgegangen, dass du das fragen wolltest.
Denn wie man das auf die Konsole ausgibt sollte ja klar sein.
Wenn es also eine Tabelle gibt die mit dieser in einer 1:n-Relation verbunden ist kannst du dir aus der anderen Tabelle die entsprechenden Werte holen, aus der n-Tabelle die entsprechende Werte abfragten und hast so ein schön abgebildetes Python-Dict.
Falls es die Relation nicht gibt seh ich noch die Möglichkeit vorwer per SELECT DISTINCT alle möglichen Werte aus der Spalte mit den 'Hallo's zu holen.
Gruß
Sparrow
Edit: Ich bin jetzt davon ausgegangen, dass du das fragen wolltest.
Denn wie man das auf die Konsole ausgibt sollte ja klar sein.
Alternativ zum vorherigen Abfragen der möglichen Werte in der ersten Spalte könnte man die Abfrage auch nach der ersten Spalte sortieren lassen und auf Python-Seite dann mit `itertools.groupby()` arbeiten.
Sorry habe das jetzt erst durch zufall gesehen das antworten gekommen sind. Irgendwie ist die benachrichtigung nicht angekommen.
Mir ging es eher um das visualisieren also nicht wie ich ein dict erstelle, sondern darum das Graphisch darzustellen so wie in dem Beispielbild
http://www.magic.uni-halle.de/im/1084289096_21_0.jpg
Grüße
McAce
Mir ging es eher um das visualisieren also nicht wie ich ein dict erstelle, sondern darum das Graphisch darzustellen so wie in dem Beispielbild
http://www.magic.uni-halle.de/im/1084289096_21_0.jpg
Grüße
McAce
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Für relationale Datenbanken haben sich sogenannte Entity Relationship Diagramme (ERD) etabliert. Damit kannst Du die Struktur der DB darstellen.
Ich habe mit dem Tool "dia" da gute Erfahrungen gemacht; es gibt dafür auch Plugins, die aus einem ERD ein Schema erstellen. Ob es das auch umgekehrt gibt, weiß ich nicht. Da musst Du also ggf. Handarbeit anlegen.
Eine Baumansicht, wie Du sie dir vorstellst, kann ich mir im Grunde nicht vorstellen. Aber für so etwas kannst Du Graphviz und dessen Sprache "dot" für die Beschreibung von Graphen nutzen. Das ist ein sehr einfaches Textformat, welches von speziellen Tools dann in diverse Bildformate umgesetzt werden kann.
Ich habe mit dem Tool "dia" da gute Erfahrungen gemacht; es gibt dafür auch Plugins, die aus einem ERD ein Schema erstellen. Ob es das auch umgekehrt gibt, weiß ich nicht. Da musst Du also ggf. Handarbeit anlegen.
Eine Baumansicht, wie Du sie dir vorstellst, kann ich mir im Grunde nicht vorstellen. Aber für so etwas kannst Du Graphviz und dessen Sprache "dot" für die Beschreibung von Graphen nutzen. Das ist ein sehr einfaches Textformat, welches von speziellen Tools dann in diverse Bildformate umgesetzt werden kann.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Ich nutze jetzt Tulip
http://tulip.labri.fr/TulipDrupal/
Denn Graphviz ist für meine Zwecke nicht so dolle gewesen, denn ich habe ca 1000 Punkte die graphisch dargestellt werden sollen und das ist erst eine Test Datenbank . Da kam Graphviz nicht mit zurecht.
Grüße
McAce
http://tulip.labri.fr/TulipDrupal/
Denn Graphviz ist für meine Zwecke nicht so dolle gewesen, denn ich habe ca 1000 Punkte die graphisch dargestellt werden sollen und das ist erst eine Test Datenbank . Da kam Graphviz nicht mit zurecht.
Grüße
McAce
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
1000 Punkte hört sich für mich nach nicht sehr viel an - damit sollte Graphviz schon zurechtkommen. Mag aber sein, dass Deine Wahl performanter ist.McAce hat geschrieben: Denn Graphviz ist für meine Zwecke nicht so dolle gewesen, denn ich habe ca 1000 Punkte die graphisch dargestellt werden sollen und das ist erst eine Test Datenbank . Da kam Graphviz nicht mit zurecht.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Das ist auch noch nicht viel, wie gesagt das ist nur ein Test die richtige Datenbank wird so um die ca 10000 - 20000 Punkte haben. Graphviz konnte die Datenmenge zwar verarbeiten, leider war die Darstellung nicht so praktikabel bzw. nicht so flexibel anpassbar.
Grüße
McAce
Grüße
McAce