About PostgreSQL

Η PostgreSQL αποτελεί μια ανοιχτού κώδικα σχεσιακή βάση δεδομένων με πολλές δυνατότητες. Η ανάπτυξη της ήδη διαρκεί πάνω από 20 χρόνια και βασίζεται σε μια αποδεδειγμένα καλή αρχιτεκτονική η οποία έχει δημιουργήσει μια ισχυρή αντίληψη των χρηστών της γύρω από την αξιοπιστία, την ακεραιότητα δεδομένων και την ορθή λειτουργία. Η PostgreSQL τρέχει σε όλα τα βασικά λειτουργικά συστήματα, περιλαμβάνοντας Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), και Windows. Είναι ACID συμβατή (ACID compliant), έχει ολοκληρωμένη υποστήριξη για foreign keys, joins, views, triggers, και stored procedures (σε διάφορες γλώσσες προγραμματισμού). Συμπεριλαμβάνει τα περισσότερα SQL92 και SQL99 data types, συμπεριλαμβανομένων INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, και TIMESTAMP. επίσης υποστηρίζει αποθήκευση binary large objects, όπως εικόνες, ήχοι ή video. Διαθέτει native programming interfaces για C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, κ.α. καθως και Τεκμηριωση.

Η PostgreSQL υλοποιεί εξεζητημένα χαρακτηριστικά όπως Multi-Version Concurrency Control (MVCC), point in time recovery, tablespaces, asynchronous replication, nested transactions (savepoints), online/hot backups, a sophisticated query planner/optimizer, write ahead logging for fault tolerance. Υποστηρίζει διεθνή σετ χαρακτήρων, κωδικοποίηση χαρακτήρων σε πολλά byte, Unicode καθώς και δυνατότητα ταξινόμισης δεδομένων ανεξάρτητα απο το locale. Η PostgreSQL μπορεί να διαχειριστεί εύκολα μεγάλους αριθμούς ταυτόχρονων χρηστών καθώς και μεγάλο όγκο δεδομένων. Υπάρχουν ενεργές εγκαταστάσεις σε περιβάλλοντα παραγωγής που διαχειρίζονται πάνω από 4 terabytes δεδομένων. Μερικές Γενικές οριακές Τιμές συμπεριλαμβάνονται στον παρακάτω πίνακα:

Limit Value
Maximum Database SizeUnlimited
Maximum Table Size32 TB
Maximum Row Size1.6 TB
Maximum Field Size1 GB
Maximum Rows per TableUnlimited
Maximum Columns per Table250 - 1600 depending on column types
Maximum Indexes per TableUnlimited

Η PostgreSQL απολαμβάνει αναγνώριση απο τους χρήστες της και την βιομηχανία πληροφορικής, συμπεριλαμβανομένων των Linux New Media Award for Best Database System, και έχει υπάρξει 3 φορές νικήτρια στο Linux Journal Editors' Choice Award for best DBMS.

Γενικά χαρακτηριστικά και συμβατότητα με προδιαγραφές

Η PostgreSQL είναι συνεπής με τις προδιαγραφές . Η υλοποίησή της ειναι απολύτως σύμφωνη με τις προδιαγραφές ANSI-SQL 92/99. Εχει ολοκληρωμένη υποστήριξη για subqueries (συμπεριλαμβανομένων subselects μέσα απο το FROM), read-committed και serializable transaction isolation levels. H PostgreSQL αποτελεί ένα πλήρες σχεσιακό σύστημα που υποστηρίζει πολλαπλά σχήματα ανάdatabase, o κατάλογος (πληροφορίες σχετικά με τους πίνακες, στήλες, views, ...) είναι διαθέσιμος διαμέσου του Information Schema όπως ορίζεται στο SQL standard.

Στα Data integrity χαρακτηριστικά συμπεριλαμβάνονται: primary keys, foreign keys με υποστήριξη restricting και cascading updates/deletes, check constraints, unique constraints, και not null constraints.

Η PostgreSQL εχει αρκετά προηγμένα χαρακτηριστικά όπως: auto-increment columns μέσω sequences, LIMIT/OFFSET που επιτρέπουν την επιστροφή partial result sets. Οσον αφορά τα indexes υποστηρίζει compound, unique, partial, και functional indexes τα οποία μπορούν να χρησιμοποιήσουν οποιονδήποτε απο τους B-tree, R-tree, hash, ή GiST αλγόριθμους.

GiST (Generalized Search Tree) indexing αποτελεί ένα προηγμένο σύστημα το οποίο συνδυάζει ένα μεγάλο εύρος από διαφορετικούς αλγόριθμους ταξινόμησης και αναζήτησης όπως B-tree, B+-tree, R-tree, partial sum trees, ranked B+-trees και αρκετούς ακόμα. Επίσης διαθέτει interface το οποίο επιτρέπει τόσο την δημιουργία custom data types όσο και επεκτάσιμους τρόπους ερωτήσεων (query) για την αναζήτηση τους. το GiST προσφέρει την ευελιξία στον προσδιορισμό του τι και με πιο τροπο να το αποθηκεύσεις, και την δυνατότητα να ορίσεις νέους τρόπους αναζήτησης.

Πάνω στο GiST και την postgreSQL έχουν θεμελιωθεί πολλά projects όπως τα OpenFTS και PostGIS. Το OpenFTS (Open Source Full Text Search engine) παρέχει online indexing και relevance ranking για αναζήτηση. Το PostGIS αποτελεί ένα project το οποίο προσθέτει υποστήριξη για geographic objects στην PostgreSQL, επιτρέποντας την χρήση της σαν spatial database για geographic information systems (GIS), περίπου όπως τα ESRI's SDE ή τα Oracle's Spatial extension.

Αλλα προηγμένα χαρακτηριστικά της PostgreSQL είναι: table inheritance, rules systems και database events. Το Table inheritance (κληρονομικότητα πινάκων) πρόσθετη μια αντικειμενοστραφής διάσταση στην δημιουργία πινάκων, επιτρέποντας στους σχεδιαστές database να δημιουργούν νέους πίνακες από άλλους πίνακες χρησιμοποιώντας τους ως βάση. Ακόμα καλύτερα Η PostgreSQL υποστηρίζει και μόνη και πολλαπλή κληρονομικότητα με τον δικό της τρόπο.

Το rules system, επίσης καλείται the query rewrite system, επιτρέπει στον σχεδιαστή βάσεων να δημιουργήσει κανόνες που ορίζουν συγκεκριμένες λειτουργίες για έναν πίνακα ή view, και να μετατρέπει δυναμικά την ώρα που εκτελούνται λειτουργίες σε άλλες εναλλακτικές.

Το events system αποτελεί ένα interprocess communication system στο οποίο μηνύματα και events μπορούν να μεταδοθούν μεταξύ πελατών (clients) χρησιμοποιώντας τις LISTEN και NOTIFY εντολές, επιτρέποντας από την απλή peer to peer επικοινωνία ως ένα εξελιγμένο συντονισμό βασισμένο σε database events. Εφόσον τα notifications μπορεί να προέρχονται απο triggers και stored procedures, PostgreSQL clients μπορούν να επιβλέπουν λειτουργίες όπως: updates, inserts ή deletes πινάκων όταν αυτά γίνονται.

Highly Customizable

Η PostgreSQL τρέχει stored procedures σε πολλές γλώσσες προγραμματισμού συμπεριλαμβανομένων Java, Perl, Python, Ruby, Tcl, C/C++, και της PL/pgSQL η οποία είναι παρόμοια με την PL/SQL της Oracle. Στην βασική βιβλιοθήκη συναρτήσεων της PostgreSQL συμπεριλαμβάνονται εκατοντάδες built-in συναρτήσεις οι οποίες καλύπτουν απο βασικές μαθηματικές συναρτήσεις και διαχείριση Συμβολοσειρών ως κρυπτογραφία και Oracle compatibility. Triggers και stored procedures μπορούν να γράφουν σε c και να φορτωθούν μέσα στην database ως βιβλιοθήκη, επιτρέποντας μεγάλη ευελιξία στην επέκταση των δυνατοτήτων της βάσης. Παρομοίως η PostgreSQL περιλαμβάνει framework που επιτρέπει τον ορισμό και την δημιουργία custom data types καθώς και βοηθητικές συναρτήσεις και τελεστές (operators) που θα περιγράφουν την λειτουργία τους. Σαν αποτέλεσμα ένα πλήθος από εξελιγμένα data types έχουν δημιουργηθεί από γεωμετρικά και spatial δεδομένα ως διεύθυνσης δικτύων και ISBN/ISSN (International Standard Book Number/International Standard Serial Number) data types, τα οποία μπορούν κατ επιλογή να προστεθούν στο σύστημα.

Η PostgreSQL όπως διαθέτει πολλές procedure languages έτσι διαθέτει και πολλά library interfaces , επιτρέποντας πολλές γλώσσες προγραμματισμού είτε compiled είτε interpreted να επικοινωνούν με την PostgreSQL. Υπάρχουν interfaces για Java (JDBC), ODBC, Perl, Python, Ruby, C, C++, PHP, Lisp, Scheme, Qt, κ.α.

Τέλος ο πηγαίος κώδικας της PostgreSQL είναι διαθέσιμος κάτω από την πιο ελεύθερη open source άδεια: το BSD license. Αυτή η άδεια δίνει την δυνατότητα χρήσης, μετατροπής και διανομής της PostgreSQL σε οποιαδήποτε μορφή, ανοιχτού ή κλειστού κώδικα. Η PostgreSQL δεν είναι μόνο μια δυνατή βάση δεδομένων ικανή να τρέχει μέσα σε επιχειρήσεις, είναι μια πλατφόρμα ανάπτυξης πάνω στην οποία δύναται να γίνει ανάπτυξη in-house, web ή εμπορικών εφαρμογών τα οποία χρειάζονται RDBMS.