wie beam ich mich schnell auf die Postgresql?

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

Hallo Gemeinde,
wir wollen uns fuer die Postgresql entscheiden!
Ich hab mal ein bisschen gebingt und 1 Python-Interface geladen.
Die Clientsoftware gabs bei Ubuntu (apt-get install etc) und den Python-Wrapper ptPgSQL auch.
Ich hab mich kuerzlich hier im Forum bezueglich tryton erkundigt...
Alles nicht so gefaehrlich, nun komm ich aber in den Server nicht rein :(
Fragen:
1.Wer bietet noch PostgreSQL im Netz an?
2. Wie muss ich Abfragen (Queries) formulieren, um meine- zu erstellende Datenbank- abzufragen? Gibts da Beispiele in Python?
3. Ich hab -im Wiki- gelesen PostgreSQL- erlaubt irgendwelche Jointqueries? will sagen, PostgreSQL ist objektorientiert mit Vererbung etc.
Ich hab- von frueher- Erfahrung mit der IBM-DB und weiss-rudimentaer- was relationale Datenbanken sind, wie die Abfragen formuliert werden, wie SQL funktionier..
Ich hab schon die DOKU zu PostgreSQL als PDF-File von deren Homepage runter geladen.
4 Mbyte in 5 Min. ca 950 Seiten dank DSL alles machbar Herr Nachbar.
Guude!
Fritz 8)
BlackJack

@3ff: Was für ein Python-Interface hast Du geladen!? Zumindest wenn Du Ubuntu verwendest, ist alles was Du brauchst in den Paketquellen.

Ad 1) Was meinst Du damit? Willst Du wissen welche Webspace-Anbieter PostgreSQL Datenbanken anbieten?

Ad 2) Es gibt die Database API 2.0 welche von den meisten gängigen Python-Modulen für die Anbindung an relationale Datenbanken angeboten wird. Ansonsten formulierst Du Anfragen in SQL und benutzt die API um sie der Datenbank mitzuteilen und die Ergebnisse zu bekommen. `psycopg2` ist eine ganz gute Anbindung.

Ad 3) Jointqueries!? Keine Ahnung. PostgreSQL kennt auf jeden Fall das normale SQL-``JOIN``. Das hat aber weder etwas mit Objektorientierung noch mit Vererbung zu tun. Beides wäre auch kein SQL-Standard soweit ich weiss.
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@BlackJack
Danke erstmal!
zu 1)
Das ist 1 Client-Server Anwendung, wobei ich die clientsoftware runtergeladen habe.
das Python-Script ist ja "nur" das Interface, um Queries zu erzeugen/bekommen.
Wenn ich das jetzt richtig verstanden habe, handelt es sich bei Tryton um einen Webserver, dem man SQL-Abfragen vorlegen kann. Da muss man natuerlich erstmal eine relationale Datenbank erstellen oder die Serversoftware im lokalen Netz installiert haben.
Das ist ja keine 1platzloesung so wie DBase damals. Damals? vielleicht 12 bis 15 jahre her.
zu 2)
dem werd ich nachgehen und die DOKU, die ich mir gesaugt habe (boeses Wort, ich bin kein Hacker) bringt mich weiter.
zu 3)
es kann sein, dass ich da was falsch verstanden habe.
Guude!
===========
Vergess bitte meine Bemerkung von heute zur DOKU von Nokia/riverboat
Das ist mir so rausgerutscht, aber die Firma hat das PyQt4 auf Halt gesetzt. :wink: :wink:
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

@3ff: Da du ja einscheinend noch nicht sooo viel Erfahrung hast mit PostgreSQL und Python bzw. Python's DB API: Installier' dir doch erstmal alles _lokal_ auf deinem Rechner und probier' es aus / "werde warm damit".

Hat den Vorteil, dass du als Server 'localhost' angeben kannst, was eigentlich immer funktioniert und dir somit kein Netzwerk welches ggf. falsch konfigurierte ist, im Weg steht.

Zu JOIN: das ist Teil des SQL-Standards und wird von PostgreSQL in alle standardisierten Varianten unterstützt (INNER, OUTER, LEFT und was es sonst noch so gibt). Zu SQL Befehlen findest du im Netz haufenweise Seiten, HowTos und Blogeinträge.

Gruß, noisefloor
achilles_69
User
Beiträge: 21
Registriert: Dienstag 31. März 2009, 14:05
Wohnort: Bielefeld

Die offizielle Anleitung zu PostgreSQL findest Du hier:

file:///usr/share/doc/postgresql-doc-8.3/html/index.html

(das ist die Version, die ich im Moment einsetze.)

Am besten "spielst" Du allerdings erstmal mit der PostgreSQL-Konsole 'psql' herum, um ein Gefühl für die Datenbank zu kriegen. Es gibt aber auch eine grafische Oberfläche "pgAdmin III", die ich allerdings nicht nutze; es heißt, dass manche Sachen damit nicht (richtig) funktionieren.
Für PostgreSQL kann ich als Forum http://www.pg-forum.de empfehlen, jedenfalls ist mir dort immer gut geholfen worden.
Zugriff von Python auf die PostgreSQL mach ich mit psycopg2 oder mit PyQt4.QtSql bei Programmen mit Qt als Oberfläche.

Irgendwo hier im Forum gibt es auch ein Tutorial von Gerold, ich finde aber gerade den Link nicht.

Ansonsten meine persönliche Meinung zu PostgreSQL: ich bin vor knapp 8 Jahren auf PostgreSQL umgestiegen (von mySQL) und habe es nie bereut. Ich erstelle hier eine ziemlich große und inzwischen auch ziemlich komplexe Datenbank (insgesamt ca. 300 Tabellen und 150 Funktionen) und hatte in all den Jahren nie Datenverluste. Die Geschwindigkeit ist auch super: die ganze Logik habe ich mit Stored Procedures in die Datenbank verlagert, so dass die Skripte für den Zugriff eigentlich nur Ein- und Ausgabe, aber keine Berechnungen machen.

Ich hoffe, dass die Hinweise etwas Hilfe bieten.
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@achilles_69 und BlackJack
Danke
HIER WERDEN SIE GEHOLFEN!
frei nach V.Feldbusch
ich hab apt-get install postgresql benutzt (unter Ubuntu)
danach den Lappy neu gebootet und geht.
Ich hab die Datenbank laufen Ver. 8.4
Jetzt bleibt aber noch das eigentliche Problem:
Wir wollen 1 doppelte Buchhaltung damit aufziehen.
Ich stell mir vor, da wirds ne Schnittstelle von Python aus geben.
Wo und wie ist die denn?
Ich kann
-mich authorisieren
-Datenbanken aufmachen
-Abfragen
aber...
Wie wird denn zB 1 Lagerhaltung damit gemacht?
oder andere Bestandsdateien verwaltet?
Guude!
Fritz 8) 8)
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Code: Alles auswählen

apt-get install buchfuehrung_doppelt lagerhaltung
:twisted:
Ihr wollt praktisch eine Warenwirtschaft erstellen, habt aber keinen Plan von nichts?
Dann viel Spaß!
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@achilles_69
also Du verwendest das QtSql Modul, um die PostgreSQL- datenbank abzufragen, zu Fuettern usw?
HM,
dann waeren wir wieder beim Thema Doku...
@BlackJack da geh ich nicht mehr drauf ein, das hatten wir erst neulich...
Mir ist klar, das man seine Bestandskonten natuerlich anlegen muss,
also
Vermoegen mit
-Kasse
-Forderungen
-Lager
-Bank
-Vorsteuern
etc. mi8t den entsprechenden Unterkonten.
Schulden mit
-Eigenkapital
-Fremdkapital
-MWST
und den entsprechenden Unterkonten.
Ich hab kuerzlich was ueber Ledger-SQL gelesen, da war das alles offenbar schon drin?
Oder muss man jedesmal den entsprechenden Buchungssatz mit angeben?
Guude!
Fritz 8) 8)
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@mksper
Kollege, mach Dir keine Sorgen, wir wollen erstmal nur testen und abwaegen und wieder ueberlegen und immer schlauer werden.
Guude!
Fritz :P :P
achilles_69
User
Beiträge: 21
Registriert: Dienstag 31. März 2009, 14:05
Wohnort: Bielefeld

@3ff
QtSql verwende ich nur bei Applikationen die das PyQt-Framework für die GUI nutzen. Bei allen anderen Sachen nutze ich psycopg2, zum Beispiel bei reinen Kommandozeilentools oder Webanwendungen.

Ein Frage: habt Ihr eigentlich schon eine fertige Datenbank für Eure Lagerhaltung / Buchhaltung und wollt nur von einem selbstenwickelten Programm aus darauf zugreifen oder müsst ihr bei "Null" anfangen? PostgreSQL "as is" ist nämlich wie ein weißes Blatt Papier: das kann von dem was ihr wollt gar nichts...

Aus eigener Erfahrung kann ich sagen, dass eine Lagerhaltung und erst recht eine Buchhaltung selber zu schreiben nicht gerade trivial ist. Ich würde an Eurer Stelle erstmal schauen, ob es nicht fertige Produkte gibt, die ihr nutzen könnt. Das Rad ein zweites Mal zu erfinden macht nur in ganz seltenen Fällen wirklich Sinn.
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@mkesper
Danke fuer Deinen Tip wegen der buchfuerung_doppelt aber leider gibts die nicht in meinem Ubuntu repository.
Noch son Tip und ich spendier die goldene Ananas.
Nochmal: bitte deutsch lesen.
Es geht nicht um Lagerhaltung, sondern um Vorueberlegungen zur doppelten Buchfuehrung.
Danke.
Fritz :lol: :lol:
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

3ff hat geschrieben:Es geht nicht um Lagerhaltung, sondern um Vorueberlegungen zur doppelten Buchfuehrung.
Na dann ist es doch klar:

Code: Alles auswählen

sudo apt-get install buchfuehrung_doppelt-vorueberlegungen
;-)
Das Leben ist wie ein Tennisball.
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

3ff hat geschrieben:Nochmal: bitte deutsch lesen.
Dafür müsstest du aber auch deutsch schreiben.
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@achilles_69
genauso ist es.
Die Datenbank ist quasi nackt, die muss mit daten gefuettert werden.
Natuerlich gibts fertige-leistungsfaehige Buchhaltungssysteme von der DATEV zB- aber hier geht es erstmal darum, auszuloten, was man heute machen kann.
Ich hab mir neulich das Paket GNUMoney angesehen, das ist garnicht verkehrt, aber halt auf US-Bedarf zugeschnitten.
Es gibt auch in DE Buchhaltungsprogramme, die auch auf 1 datenbank zugreifen koennen.
Ich will und darf keine Werbung machen.
Es sind ja soviel Neuigkeiten auf dem Markt, das man nicht mehr durchschaut.
Erfahrungsgemaess - nach 30 Jahren Erfahrung mit IBM360 Mittlere Datentechnik und jetzt die Lappies- hat es sich immer wieder herausgestellt, man faehrt besser, wenn man alles im Hause hat.
Die Entwicklung bei Python ist ja so schnell, das erstaunt mich immer aufs Neue.
Aber erstmal danke fuer deine Hinweise
Guude!
Fritz :lol:
achilles_69
User
Beiträge: 21
Registriert: Dienstag 31. März 2009, 14:05
Wohnort: Bielefeld

@3ff
Okay, ich habe mich etwas unklar ausgedrückt. Bei PostgreSQL handelt es sich zunächst mal um ein RDBMS http://de.wikipedia.org/wiki/RDBMS
Eine Datenbank wäre dann (ganz knapp ausgedrückt) eine Sammlung von Daten, die in einer strukturierten Form vorliegen. Dazu muss man PostgreSQL aber erstmal die Struktur dieser Daten vorgeben. Dies teilt man dem Datenbankserver in Form der "Data Definition Language" (DDL) mit. Also die ganzen "CREATE TABLE ..."-Anweisungen. Erst mit dieser Information ist PostgreSQL (und jede andere SQL-Datenbank) in der Lage, Daten entgegenzunehmen und zu speichern.

Die Definition dieser Tabellen - also die Erstellung eines Skripts in DDL oder meinetwegen auch das zusammenklicken in einem Frontend wie pgAdmin III - ist die eigentliche intellektuelle Leistung, die im Vorfeld geleistet werden muss.

Was zum Beispiel DATEV leistet ist, dass gesetzliche Regelungen - und mit den muss man sich herumschlagen, wenn man eine Buchhaltung aufziehen möchte - entsprechend berücksichtigt werden.
Wenn solche Sachen aber keine Rolle spielen und die Anforderungen relativ niedrig oder sehr speziell sind kann man das natürlich auch selber machen. Ich stehe auch eher auf dem Standpunkt: wenn es ordentlich werden soll, mach es selbst!

Ich möchte Euch nichts ausreden, aber ihr solltet die Komplexität nicht unterschätzen.

Auf 30 Jahre Erfahrung kann ich zwar noch nicht zurückblicken, aber immerhin schon auf fast 25 Jahre - wenn ich da an Eumel oder VMS zurückdenke...
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@archilles_69
Ist schon klar, man muss genau abwaegen, ob selbstmachen besser/billiger ist, als gekauft.
Mir gings jetzt erstmal um die relationale Datenbank postgreSQL. Dann hat mich die Firma, fuer die ich ¨kaempfe¨ beauftragt, mal zu suchen, was es so heutzutage im Bereich Buchhaltung gibt.
Da ist naemlich vor einiger Zeit jemand auf eine Messe ¨Linux-Tage" geschickt worden und der kam mit Qt4 zurueck. Dann hat er eine ganz einfache Rezepturverwaltung geschrieben und als er merkte, das es doch nicht so einfach mit PyQt4 war, hat er das Schiff verlassen.
Da der Kunde aber in Mexiko auf seiner Anlage sass und die Maschine nur mit dem Prugrammiergeraet fahren konnte, bin ich hin und hab den ganzen Kram rausgeworfen und als Oberflaeche tkinter genommen.
Damit nicht wieder solche Luftnummern passieren, wollen wir jetzt vorher genau abklopfen, was Sache ist.
Nun bin ich quasi auf Planet PostgreSQL angekommen, denn ich kann eine Datenbank erzeugen und befuellen und abfragen.
Fuer die Buchhaltung oder die Lagerverwaltung lassen wir uns was zusaetzliches einfallen.
Ich bin bisher in diesem Forum sehr gut klar gekommen und solche etwas infantilen Beitraege wie von mkesper lassen wir einfach links liegen.
Bis dann!
Fritz 8) 8)
achilles_69
User
Beiträge: 21
Registriert: Dienstag 31. März 2009, 14:05
Wohnort: Bielefeld

@3ff
PyQt4 hatte ich für ein Projekt verwendet, bei dem die Applikation sowohl unter Linux als auch unter Windows laufen musste. Das hat auch perfekt funktioniert. Aber die Einstiegshürde bei PyQt4 fand ich auch ziemlich hoch, ich sage nur Signals und Slots... bis ich das richtig funktionieren hatte...
Ich hatte mich für das Projekt aber für PySQL entschieden, weil die Integration mit dem restlichen Framework sehr gut war. PyQt4 ist in der Pythonwelt ein gewisser Fremdkörper, wegen der Abbildung der C++-Typen auf Python. Bei dem ganzen gecaste kann man schon mal den Überblick verlieren. Ich wollte das Projekt aber auch nicht mit C++ machen, weil die Entwicklung schnell gehen sollte.

Was PostgreSQL angeht, da bin ich immer wieder begeistert von. Ich musste mich gezwungener Maßen mal wieder mit mySQL auseinandersetzen: da haben sich mir die Nackenhaare aufgestellt, da Konsistenz dort eigentlich ein Fremdwort ist.

Meiner Meinung nach spielt PostgreSQL da doch in einer anderen Liga und kann sich durchaus auch mit den ganz großen Playern messen. Insbesondere was Konsistenz angeht ist man da auf der sicheren Seite und das ist für Buchhaltung absolut lebensnotwendig.

Ein schönes Wochenende wünsche ich...
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@achilles_69
Also Qt ist schon der Stand der Technik, PyQt4 auch aber, ich hatte schon hier mit 1 Moderator 1 kleines Kaempfchen- wegen der DOKU von riverbankcomputing
Fuer mich war Python auch relativ neu (von 1/2 Jahr) und ich hab auf Auftrag alle hier taetigen auf Python umgestellt.
hauptschwerpunkt der Taetigkeit ist SPS und die Qt4 mit dem intelligenten Programmgenerator ist schon bestechend.
Als wir aber feststellten, das die DOKU in cpp geschrieben war, sind wir 1mal 1 Schritt zurueck getreten.
Ich kann nicht hochbezahlte Elektroing. auf Python umstellen und dann feststellen, das die dann auch noch fitt in cpp sein muessen.
Was sind denn void virtual functions oder dies Overloading?
Dann fanden wir heraus, das Riverbankcomputing sog. Boost-Bib. benutzte um die cpp einzuwickeln um sie sie von Python aus anzusprechen.
Ich will das ganze auch nicht wieder hier ausrollen, sonst gibts wieder 1 Stubser.
Ergebnis ist: der Big Boss sieht nicht ein, das die ganze Crew auf cpp umgestellt werden muss um PyQt4 einsetzen zu koennen.
Diese Sachen erzaehlt Ihnen keiner auf diesen "lInux-Tage" oder von Nokia/Trolltech
Also ist PyQt4 erstmal auf Halt gesetzt.
Es gibt ja auch im Bereich S7 gute Visiualisierungssoftware, was will ich machen.
Ich bin ja froh das ich "nur" mit Prozessleittechnik zu tun habe. Der IT-Markt fuer intelligente Handys oder iPhones boomt. Da ist es natuerlich wichtig 1 Platform zu haben, die auf mehreren Betriebssystem aufsetzt.
Android und Symbian und hast du nicht gehoert.
So ist es halt. Jetz gibts 1 schoenen Espresso und dann ist Wochenende.
Guude!
Fritz 8) 8)
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

@3ff: Die eigentliche Frage war doch, wie du PostgreSQL aus Python raus nutzt, oder? Ist das denn jetzt für dich zur Zufriedenheit beantwortet?

Gruß, noisefloor
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@noisefloor
zufrieden.
ich weiss, wie es funktioniert, die Datenbank wird eroeffnet und kann befuellt werden.
Dies Forum lebt davon, dass die Kollegen gezielte Hinweise geben, die auch zutreffend sind und nicht in den Wald fuehren.
Nun hab ich mit Datenbanken schon unter DOS gearbeitet als VMS noch kaum erschwinglich war fuer den kleinen Betrieb. Das besondere an dieser Datenbank ist eben, das es ne Client-Sever Loesung ist und die uebers Netz geht. Das lauft ueber den (apache) server, dann muessen ausgefeilte Verschluesselungstechniken greifen (SSH oder aehnlich).
Stichwort CGI.
Das ist ja alles schon da im Laufe der Jahre.
Python hilft mir, die Datenbank zu manipuliern. Ich hab auch pgadmin3 runtergeladen, aber das soll nicht so gut sein.
Der Verwaltungsaufwand bei PostgreSQL ist erheblich groesser als bei DBase.
Wie der Mitstreiter achilles_69 ausgefuehrt hat, waere PostgreSQL der Datenbank MySQL vorzuziehen. Man kann auch datenbanken von Oracle oder anderen nehmen, aber PostgreSQL ist halt public domain und scheint eben sehr stabil zu sein.
Das naechste wird sein, die datenbank zu fuellen und da werd ich ne Anwendung fuer die deutsche MWST nehmen, das ist naemlich einfach, man braucht nur 2 Konten, naemlich Vorsteuer und berechnete MWST.
Das Saldo ist die Zahllast zum Finanzamt.
Ist das Saldo negativ, gibts Kohle vom FA zurueck, anderenfalls will das FA Geld sehen.
dem Finazamt ist es egal, mit welcher datenbank oder welchem Schema man arbeitet, nur die Betraege muessen stimmen.
Mogeln geht auch nicht, denn die haben ausgefeilte Pruefroutinen und dann gibts noch die Steuerfahndung und den Zoll...
Wir sind ja nicht in GR sic standibus.
Zum Problem Buchhaltung werd ich noch was ueberlegen muessen, denn das ist doch etwas komplizierter.
Da muss man mit Creditoren und Debitoren arbeiten, aber letztlich wird auch dabei die datenbank gefuellt und abgefragt und und...
Guude!
Fritz 8) 8)
Antworten