Każdy podstawowy obiekt schematu PostgreSQL — struktura, tabele, widoki, indeksy, typy, tożsamość, rutyny, bezpieczeństwo i replikacja — w jednym zwartym kompendium.
PostgreSQL przechowuje dane w nazwanych obiektach schematu. Każdy obiekt ma jedno zadanie: tabela przechowuje wiersze, indeks przyspiesza wyszukiwanie, rutyna zawiera logikę. Zrozum, czym jest każdy obiekt, zanim zdecydujesz, które dodać, i traktuj ograniczenia oraz polityki jako reguły, które pilnują rzetelności danych.
Tabela referencyjna · 45 wpisy
Obiekty bazy danychExplained
45 of 45 rows
Struktura
Jeden odizolowany katalog schematów wewnątrz klastra.
Oddzielać aplikacje lub środowiska, które nie mogą dzielić danych.
Nazwana przestrzeń nazw wewnątrz bazy danych, grupująca powiązane obiekty.
Organizować obiekty według funkcji lub właściciela i unikać kolizji nazw.
Nazwana lokalizacja na dysku, w której umieszczane są pliki tabel i indeksów.
Kierować gorące tabele na szybki nośnik i trzymać zimne dane na tanich dyskach.
Ustawienie decydujące, do których schematów rozwiązywana jest niekwalifikowana nazwa obiektu.
Wskazać sesji właściwy schemat, żeby zapytania mogły używać krótkich nazw.
Opis zapisany na dowolnym obiekcie bazy danych za pomocą COMMENT ON.
Dokumentować tabele i kolumny tam, gdzie znajdzie je autor następnego zapytania.
Tabele i widoki
Nazwana relacja przechowująca wiersze w typowanych kolumnach.
Podstawowy kontener na dane trwałe.
Tabela, której wiersze znikają po zakończeniu sesji lub transakcji.
Przechowywać dane robocze lub przejściowe, które nie mogą przeżyć połączenia.
Tabela nadrzędna podzielona na partycje podrzędne według zadeklarowanego klucza.
Utrzymywać bardzo duże tabele w ryzach, rozdzielając wiersze po zakresach lub listach.
Tabela, której wiersze żyją w systemie zewnętrznym, dostępnym przez foreign data wrapper.
Odpytywać zdalną bazę lub plik tak, jakby były lokalną tabelą.
Zapisane zapytanie wystawione jako tabela wirtualna.
Prezentować te same wiersze przez różne filtry lub złączenia.
Prosty widok, który przekazuje INSERT, UPDATE i DELETE do tabeli bazowej.
Udostępnić przefiltrowany lub złączony fragment tabeli, który pozostaje zapisywalny.
Widok, którego zbiór wyników jest zapisywany na dysku i odświeżany na żądanie.
Cache'ować kosztowne agregacje lub złączenia i odczytywać je szybko.
Funkcja zwracająca zbiór wierszy, używalna wszędzie tam, gdzie pasuje tabela.
Rozwinąć wyliczony zbiór w miejscu, tak jak unnest zamienia tablicę w wiersze.
Indeksy
Zrównoważony indeks drzewiasty do wyszukiwań równościowych i zakresowych.
Przyspieszać WHERE, JOIN i ORDER BY na kolumnach sortowalnych.
Indeks, który odrzuca zduplikowane wartości w swoim kluczu.
Wymuszać unikalność kolumny lub kombinacji kolumn.
Indeksy odwrócone lub uogólnione drzewa wyszukiwania dla wartości nieskalarnych.
Indeksować tablice, JSONB, dane pełnotekstowe lub geometryczne.
Indeks zbudowany tylko nad wierszami spełniającymi warunek WHERE.
Indeksować gorący podzbiór i pominąć resztę, żeby oszczędzić miejsce.
Typy i rozszerzenia
Typ definiowany przez użytkownika, którego wartości pochodzą ze stałej listy etykiet.
Ograniczyć kolumnę do zamkniętego zbioru, np. kodów statusu.
Typ bazowy plus ograniczenie sprawdzające, nazwany do ponownego użycia jako typ kolumny.
Współdzielić jedną zwalidowaną definicję, np. niepusty tekst, na wielu kolumnach.
Zbiór reguł określający, jak łańcuchy są porównywane i sortowane.
Uzyskać poprawną kolejność dla wielkości liter, akcentów lub konkretnego locale.
Instalowalny pakiet dodający do bazy funkcje, typy lub operatory.
Przyjąć sprawdzone narzędzia takie jak PostGIS czy pg_trgm w jednym kroku.
Tożsamość i generowanie
Samodzielny obiekt licznika wydający kolejne liczby całkowite.
Zasilać klucz seryjny, gdy kilka tabel współdzieli jeden generator.
Kolumna tabeli oparta na wewnętrznej sekwencji, zgodnie ze standardem SQL.
Nowoczesny automatycznie rosnący klucz główny, preferowany zamiast SERIAL.
Kolumna, której wartość jest wyliczana z innych kolumn w tym samym wierszu.
Przechowywać lub udostępniać wartość pochodną bez ręcznych zapisów.
Rutyny
Nazwany blok SQL zwracający wartość lub wiersze.
Hermetyzować logikę wielokrotnego użytku i wywoływać ją w zapytaniach.
Nazwany blok wykonujący akcje i kontrolujący własną transakcję.
Wieloetapowy ETL, gdzie rutyna wewnętrznie commituje lub wycofuje transakcję.
Rutyna zwijająca wiele wierszy wejściowych w jedną wartość przez funkcje stanu i finalną.
Definiować własne agregacje, np. średnią ważoną.
Symbol powiązany z jedną lub wieloma funkcjami dla określonych typów operandów.
Dać własnym typom naturalną składnię, np. a + b czy @>.
Zadeklarowana ścieżka konwersji z jednego typu na drugi.
Kontrolować, jak wartości zmieniają typ, w tym które konwersje zachodzą niejawnie.
Rutyna związana ze zdarzeniem tabeli, uruchamiana automatycznie.
Audytować, walidować lub kaskadować zmiany przy INSERT, UPDATE lub DELETE.
Wyzwalacz uruchamiany przy zdarzeniach na poziomie bazy, np. poleceniach DDL.
Logować, blokować lub audytować zmiany schematu w całej bazie.
Sparsowane zapytanie przechowywane do wielokrotnego wykonania z powiązanymi parametrami.
Wykorzystać jedną analizę i plan w wielu uruchomieniach tego samego zapytania.
Uchwyt trzymający otwarty zbiór wyników do pobierania wiersz po wierszu.
Przeglądać duże wyniki lub przechodzić po wierszach wewnątrz rutyny.
Bezpieczeństwo i reguły
Nazwana tożsamość posiadająca uprawnienia; użytkownik to rola, która może się logować.
Pogrupować uprawnienia raz, a potem nadawać je osobom, usługom lub innym rolom.
Polecenia nadające uprawnienia do obiektów rolom albo je odbierające.
Zdecydować, która rola może czytać, zapisywać lub wykonywać każdy obiekt.
Wbudowane prawa twórcy do zmiany lub usunięcia obiektu, odrębne od grantów.
Wskazać rolę odpowiedzialną za cykl życia obiektu.
Stała instrukcja automatycznie nadająca uprawnienia do obiektów, które rola utworzy później.
Ustawić z góry prawa, żeby nowe tabele nie wymagały ręcznych grantów dla roli aplikacji.