Datenbank graphisch darstellen

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
McAce
User
Beiträge: 32
Registriert: Dienstag 20. April 2010, 14:01

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
Benutzeravatar
sparrow
User
Beiträge: 4233
Registriert: Freitag 17. April 2009, 10:28

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.
BlackJack

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.
McAce
User
Beiträge: 32
Registriert: Dienstag 20. April 2010, 14:01

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
Benutzeravatar
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.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
McAce
User
Beiträge: 32
Registriert: Dienstag 20. April 2010, 14:01

super danke für die Infos werde mich da mal dranhängen.

Grüße

McAce
McAce
User
Beiträge: 32
Registriert: Dienstag 20. April 2010, 14:01

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
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
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.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
McAce
User
Beiträge: 32
Registriert: Dienstag 20. April 2010, 14:01

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
Antworten