Κάθε βασικό αντικείμενο σχήματος της PostgreSQL — δομή, πίνακες, προβολές, ευρετήρια, τύποι, ταυτότητα, ρουτίνες, ασφάλεια και αναπαραγωγή — σε μία πυκνή αναφορά.
Η PostgreSQL αποθηκεύει δεδομένα σε επώνυμα αντικείμενα σχήματος. Κάθε αντικείμενο έχει έναν ρόλο: ένας πίνακας κρατά γραμμές, ένα ευρετήριο επιταχύνει τις αναζητήσεις, μια ρουτίνα κρατά λογική. Μάθετε τι είναι κάθε αντικείμενο πριν επιλέξετε ποιο θα προσθέσετε, και αντιμετωπίστε τους περιορισμούς και τις πολιτικές ως τους κανόνες που κρατούν τα δεδομένα έντιμα.
Πίνακας αναφοράς · 45 καταχωρήσεις
Αντικείμενα βάσης δεδομένωνExplained
45 of 45 rows
Δομή
Ένας απομονωμένος κατάλογος σχημάτων μέσα σε ένα cluster.
Να διαχωρίζετε εφαρμογές ή περιβάλλοντα που δεν πρέπει να μοιράζονται δεδομένα.
Ένας επώνυμος χώρος ονομάτων μέσα σε μια βάση, που ομαδοποιεί συσχετιζόμενα αντικείμενα.
Να οργανώνετε αντικείμενα ανά λειτουργία ή κάτοχο και να αποφεύγετε συγκρούσεις ονομάτων.
Μια επώνυμη τοποθεσία στον δίσκο όπου τοποθετούνται αρχεία πινάκων και ευρετηρίων.
Να οδηγείτε «καυτούς» πίνακες σε γρήγορο αποθηκευτικό χώρο και να κρατάτε κρύα δεδομένα σε φθηνούς δίσκους.
Η ρύθμιση που αποφασίζει σε ποια σχήματα επιλύεται ένα μη προσδιορισμένο όνομα αντικειμένου.
Να στρέφετε μια συνεδρία στο σωστό σχήμα, ώστε τα ερωτήματα να χρησιμοποιούν σύντομα ονόματα.
Μια περιγραφή που αποθηκεύεται σε οποιοδήποτε αντικείμενο της βάσης με COMMENT ON.
Να τεκμηριώνετε πίνακες και στήλες εκεί όπου θα τις βρει ο επόμενος συντάκτης ερωτήματος.
Πίνακες και προβολές
Μια επώνυμη σχέση που αποθηκεύει γραμμές σε τυποποιημένες στήλες.
Ο βασικός περιέκτης για μόνιμα δεδομένα.
Πίνακας του οποίου οι γραμμές εξαφανίζονται στο τέλος της συνεδρίας ή της συναλλαγής.
Να κρατάτε πρόχειρα ή staged δεδομένα που δεν πρέπει να επιζήσουν της σύνδεσης.
Γονικός πίνακας διαιρεμένος σε θυγατρικά partition με δηλωμένο κλειδί.
Να κρατάτε πολύ μεγάλους πίνακες διαχειρίσιμους κατανέμοντας γραμμές σε partition.
Πίνακας του οποίου οι γραμμές ζουν σε εξωτερικό σύστημα, προσβάσιμο μέσω ενός foreign data wrapper.
Να κάνετε ερώτημα σε μια απομακρυσμένη βάση ή αρχείο σαν να ήταν τοπικός πίνακας.
Ένα αποθηκευμένο ερώτημα που εκτίθεται ως εικονικός πίνακας.
Να παρουσιάζετε τις ίδιες γραμμές μέσω διαφορετικών φίλτρων ή joins.
Απλή προβολή που προωθεί τα INSERT, UPDATE και DELETE στον βασικό της πίνακα.
Να εκθέτετε ένα φιλτραρισμένο ή ενωμένο τμήμα πίνακα που παραμένει εγγράψιμο.
Προβολή της οποίας το σύνολο αποτελεσμάτων γράφεται στον δίσκο και ανανεώνεται κατ' απαίτηση.
Να κάνετε cache ακριβά aggregates ή joins και να τα διαβάζετε γρήγορα.
Συνάρτηση που επιστρέφει σύνολο γραμμών χρήσιμο οπουδήποτε ταιριάζει πίνακας.
Να επεκτείνετε ένα υπολογισμένο σύνολο επί τόπου, όπως το unnest μετατρέπει έναν πίνακα (array) σε γραμμές.
Ευρετήρια
Ισοσταθμισμένο δενδρικό ευρετήριο για αναζητήσεις ισότητας και εύρους.
Να επιταχύνετε τα WHERE, JOIN και ORDER BY σε ταξινομήσιμες στήλες.
Ευρετήριο που απορρίπτει διπλές τιμές στο κλειδί του.
Να επιβάλλετε μοναδικότητα σε μια στήλη ή συνδυασμό στηλών.
Αντεστραμμένα ή γενικευμένα δενδρικά ευρετήρια για μη βαθμωτές τιμές.
Να δημιουργείτε ευρετήρια για arrays, JSONB, πλήρη κείμενο ή γεωμετρικά δεδομένα.
Ευρετήριο που χτίζεται μόνο πάνω από γραμμές που ταιριάζουν με κλάουλα WHERE.
Να ευρετηριάζετε το «καυτό» υποσύνολο και να παραλείπετε τα υπόλοιπα για εξοικονόμηση χώρου.
Τύποι και επεκτάσεις
Τύπος ορισμένος από τον χρήστη, του οποίου οι τιμές προέρχονται από σταθερή λίστα ετικετών.
Να περιορίζετε μια στήλη σε κλειστό σύνολο, όπως κωδικοί κατάστασης.
Βασικός τύπος συν έναν περιορισμό ελέγχου, με όνομα για επαναχρησιμοποίηση ως τύπος στήλης.
Να μοιράζεστε έναν επικυρωμένο ορισμό, όπως ένα μη κενό text, σε πολλές στήλες.
Σύνολο κανόνων που ορίζει πώς συγκρίνονται και ταξινομούνται οι συμβολοσειρές.
Να έχετε σωστή ταξινόμηση για κεφαλαία-μικρά, τόνους ή συγκεκριμένο locale.
Εγκαταστάσιμο πακέτο που προσθέτει συναρτήσεις, τύπους ή τελεστές σε μια βάση.
Να υιοθετείτε δοκιμασμένα εργαλεία όπως τα PostGIS ή pg_trgm σε ένα βήμα.
Ταυτότητα και παραγόμενες τιμές
Ανεξάρτητο αντικείμενο μετρητή που εκδίδει διαδοχικούς ακεραίους.
Να τροφοδοτείτε ένα σειριακό κλειδί όταν πολλοί πίνακες μοιράζονται έναν γεννήτορα.
Στήλη πίνακα που στηρίζεται σε εσωτερική ακολουθία, σύμφωνα με το πρότυπο SQL.
Σύγχρονο αυτόματα αυξανόμενο πρωτεύον κλειδί, προτιμητέο έναντι του SERIAL.
Στήλη της οποίας η τιμή υπολογίζεται από άλλες στήλες της ίδιας γραμμής.
Να αποθηκεύετε ή να εκθέτετε μια παραγόμενη τιμή χωρίς χειροκίνητες εγγραφές.
Ρουτίνες
Επώνυμο μπλοκ SQL που επιστρέφει μια τιμή ή γραμμές.
Να ενσωματώνετε επαναχρησιμοποιήσιμη λογική και να την καλείτε μέσα σε ερωτήματα.
Επώνυμο μπλοκ που εκτελεί ενέργειες και ελέγχει τη δική του συναλλαγή.
Πολυβηματικό ETL όπου η ρουτίνα κάνει commit ή rollback εσωτερικά.
Ρουτίνα που διπλώνει πολλές γραμμές εισόδου σε μια τιμή μέσω συναρτήσεων κατάστασης και ολοκλήρωσης.
Να ορίζετε προσαρμοσμένες συναθροίσεις, όπως έναν σταθμισμένο μέσο όρο.
Σύμβολο συνδεδεμένο με μία ή περισσότερες συναρτήσεις για συγκεκριμένους τύπους τελεστέων.
Να δίνετε στους δικούς σας τύπους φυσική σύνταξη, όπως a + b ή @>.
Δηλωμένη διαδρομή μετατροπής από έναν τύπο σε άλλον.
Να ελέγχετε πώς αλλάζουν τύπο οι τιμές, συμπεριλαμβανομένων των σιωπηλών μετατροπών.
Ρουτίνα δεμένη με ένα συμβάν πίνακα που ενεργοποιείται αυτόματα.
Να καταγράφετε, επικυρώνετε ή αλυσιδώνετε αλλαγές σε INSERT, UPDATE ή DELETE.
Trigger που ενεργοποιείται σε συμβάντα επιπέδου βάσης, όπως εντολές DDL.
Να καταγράφετε, αποκλείετε ή ελέγχετε αλλαγές σχήματος σε όλη τη βάση.
Αναλυμένο ερώτημα αποθηκευμένο για επαναλαμβανόμενη εκτέλεση με δεσμευμένες παραμέτρους.
Να επαναχρησιμοποιείτε μία ανάλυση και ένα πλάνο σε πολλές εκτελέσεις του ίδιου ερωτήματος.
Λαβή που κρατά ανοιχτό ένα σύνολο αποτελεσμάτων για ανάκτηση γραμμή-γραμμή.
Να σελιδοποιείτε μεγάλα αποτελέσματα ή να διασχίζετε γραμμές μέσα σε μια ρουτίνα.
Ασφάλεια και κανόνες
Επώνυμη ταυτότητα που κατέχει δικαιώματα· ένας χρήστης είναι ένας ρόλος με δυνατότητα σύνδεσης.
Να ομαδοποιείτε δικαιώματα μία φορά και μετά να τα χορηγείτε σε άτομα, υπηρεσίες ή άλλους ρόλους.
Εντολές που εκχωρούν δικαιώματα σε αντικείμενα προς ρόλους, ή τα αφαιρούν.
Να αποφασίζετε ποιος ρόλος μπορεί να διαβάσει, να γράψει ή να εκτελέσει κάθε αντικείμενο.
Τα εγγενή δικαιώματα του δημιουργού να τροποποιήσει ή να διαγράψει ένα αντικείμενο, χωριστά από τα grants.
Να ονομάζετε τον ρόλο που είναι υπεύθυνος για τον κύκλο ζωής ενός αντικειμένου.
Μόνιμη οδηγία που εκχωρεί αυτόματα δικαιώματα σε αντικείμενα που ένας ρόλος δημιουργεί αργότερα.
Να προρυθμίζετε δικαιώματα ώστε οι νέοι πίνακες να μην χρειάζονται χειροκίνητα grants για τον ρόλο της εφαρμογής.
Κανόνας που απορρίπτει εγγραφές που παραβιάζουν δηλωμένη συνθήκη.
Να επιβάλλετε τις εγγυήσεις NOT NULL, CHECK, UNIQUE, PRIMARY KEY και FOREIGN KEY.
Κανόνας ανά ρόλο που κρύβει γραμμές που η συνεδρία δεν πρέπει να δει.
Απομόνωση tenant ή πρόσβαση ανά χρήστη χωρίς να ξαναγράφετε τα ερωτήματα της εφαρμογής.
Ψευδώνυμο που επιλύει ένα όνομα σε αντικείμενο αλλού· εγγενές σε Oracle και SQL Server.
Να μεταφέρετε διατάξεις σχημάτων· στην PostgreSQL χρησιμοποιήστε αντί αυτού το search_path.
Ορισμός ποιες ενέργειες καταγράφονται προς ανασκόπηση, μέσω pgaudit ή εργαλείων προμηθευτή.
Να αποδεικνύετε ποιος διάβασε ή άλλαξε τι, για συμμόρφωση και έρευνα.
Οδηγία που ξαναγράφει ένα εισερχόμενο ερώτημα σε άλλη εντολή.
Παλαιά ανακατεύθυνση εγγραφών· η PostgreSQL σήμερα προτιμά triggers ή εγγράψιμες προβολές.
Αναπαραγωγή
Ορισμός από την πλευρά του αποστολέα για το ποιοι πίνακες και τύποι αλλαγών ρέουν προς τα replicas.
Να δηλώνετε τι προσφέρει μια βάση στους συνδρομητές λογικής αναπαραγωγής.
Παραλήπτης που συνδέεται σε μια publication και εφαρμόζει τις αλλαγές της σε τοπικούς πίνακες.
Να τραβάτε αλλαγές από άλλη βάση PostgreSQL σε αυτήν.
Δείκτης που κάνει τον primary να κρατά το WAL μέχρι ένας καταναλωτής να το διαβάσει.
Να εγγυάστε ότι ένα standby ή συνδρομητής μπορεί να συνεχίσει χωρίς απώλεια αλλαγών.