burli hat geschrieben:was macht Postgresql anders/besser als MySQL?
Hallo burli!
Mit PostgreSQL kannst du Tabellen erstellen. Dann kannst du Tabellen untereinander in Beziehung stellen. Du kannst genau regeln, was passieren soll, wenn sich Daten, die miteinander in Beziehung stehen, ändern oder diese gelöscht werden.
Du kannst Prozeduren in der Sprache PL/PGSQL erstellen. Diese Sprache geht über das "normale" SQL hinaus. Man kann damit sogar Ergebnisse einer Abfrage durchlaufen, mit diesen Daten arbeiten, filtern, ändern, oder was auch immer und dann so zurück geben, dass der Client so damit arbeiten kann, als ob er einfach nur eine SQL-Abfrage ausgeführt hätte.
Man kann diese Prozeduren nicht nur in PL/PGSQL schreiben. Nein, mann kann auch Python als Serversprache einsetzen. Was ich bis jetzt aber noch nie gemacht habe.
Du kannst Tabellen partitionieren, so dass alte Daten, die selten gebraucht werden, in einem eigenen Speicherbereich liegen und nur dann mit eingebunden werden, wenn diese benötigt werden.
Du kannst Prozeduren definieren, die automatisch aufgerufen werden, wenn Daten einer Tabelle ausgewählt, gelöscht oder geändert werden. Habe ich schon erwähnt, dass diese Prozeduren auch in Python geschrieben werden können? Das bedeutet, dass du durch eine SQL-Abfrage eines deiner Clients z.B. ein Email vom Server aus verschicken lassen könntest.
Du kannst Regeln definieren, welche beim Hinzufügen oder Ändern von Daten prüfen ob die Daten diesen Regeln entsprechen.
Du hast Rollen zur Verfügung, welche du benutzen kannst um Benutzer und Gruppen zu erstellen und diesen Berechtigungen auf Tabellen zu geben. Diese Rollen kannst du auch für ein eigenes Berechtigungssystem verwenden, da du für jeden Benutzer (Rolle) dessen Zugehörigkeit abfragen kannst.
Als ersten Filter kannst du schon mal einstellen, welcher Computer auf welche Datenbanken zugreifen darf. Und ob auf die Datenbank nur lokal oder entfernt zugegriffen werden darf. Du hast mehrere Authentifizierungsmethoden zur Verfügung: Passwort, MD5, CRYPT, Kerberos, LDAP, PAM,...
Das SQL von PostgreSQL hält sich so gut wie möglich an Standards. In wie weit sich die möglichen SQL-Konstrukte (INNER, OUTER, LEFT OUTER, UNION, ...) von MySQL unterscheiden, kann ich dir nicht sagen. BEGIN TRANSACTION und COMMIT TRANSACTION haben bei PostgreSQL eine Wirkung. Bei MySQL braucht es einen speziellen Tabellentyp dafür. Aber bei den (meistgebrauchten) MyISAM-Tabellen von MySQL gibt es (glaube ich) keine Transaktionen.
Ausgabe von Ergebnissen in XML, Volltextsuche, Regular Expressions in SELECT-Abfragen, Views und temporäre Views, Transaktionen, Row Locking, Verschlüsselte Datenübertragung (SSL), ...
PostgreSQL ist ein Datenbanksystem, dem ich Daten anvertrauen kann. Das sich auch um die Integrität der Daten kümmern kann. Außerdem ist PostgreSQL schon seit vielen Jahren OpenSource. Ein freies Datenbanksystem, welches benutzt, weitergegeben und modifiziert werden darf, ohne dass ich mir vorher eine Lizenz kaufen muss.
Hier steht auch noch was:
http://www.postgresql.org/about/
mfg
Gerold
