Minden alapvető PostgreSQL sémaobjektum — szerkezet, táblák, nézetek, indexek, típusok, identitás, rutinok, biztonság és replikáció — egyetlen sűrű összefoglalóban.
A PostgreSQL az adatokat névvel ellátott sémaobjektumokban tárolja. Minden objektumnak pontosan egy feladata van: a tábla sorokat tárol, az index gyorsítja a keresést, a rutin a logikát őrzi. Tudd, mi az egyes objektum, mielőtt eldöntöd, melyiket add hozzá — a megszorításokat és a szabályzatokat pedig tekintsd az adatok tisztaságát őrző szabályoknak.
Referenciatáblázat · 45 bejegyzés
Adatbázis-objektumokExplained
45 of 45 rows
Szerkezet
A klaszteren belüli, izolált sémakatalógus.
Alkalmazások vagy környezetek szétválasztása, amelyeknek nem szabad adatot megosztaniuk.
Névvel ellátott névtér az adatbázison belül, amely rokon objektumokat csoportosít.
Objektumok rendezése funkció vagy tulajdonos szerint, névütközések elkerülésére.
Megnevezett hely a lemezen, ahová a tábla- és indexfájlok kerülnek.
Forró táblák gyors tárolóra irányítása, a hideg adatok olcsó lemezeken tartása.
Az a beállítás, amely eldönti, mely sémákra oldódik fel egy minősítetlen objektumnév.
A munkamenet helyes sémára mutatása, hogy a lekérdezések rövid neveket használhassanak.
Leírás, amely COMMENT ON-nal bármely adatbázis-objektumon tárolható.
Táblák és oszlopok dokumentálása ott, ahol a következő lekérdezésíró megtalálja.
Táblák és nézetek
Megnevezett reláció, amely sorokat tárol típusos oszlopokban.
Az állandó adatok elsődleges tárolója.
Olyan tábla, amelynek sorai a munkamenet vagy tranzakció végén eltűnnek.
Ideiglenes vagy előkészített adatok tárolása, amelyeknek nem szabad túlélniük a kapcsolatot.
Szülőtábla, amely megadott kulcs szerinti partíciókra bomlik.
Nagyon nagy táblák kezelhetősége a sorok tartományok vagy listák szerinti szétosztásával.
Olyan tábla, amelynek sorai külső rendszerben élnek, foreign data wrapperen keresztül elérve.
Távoli adatbázis vagy fájl lekérdezése úgy, mintha helyi tábla lenne.
Tárolt lekérdezés, virtuális táblaként közzétéve.
Ugyanazon sorok más szűrőkkel vagy illesztésekkel történő megjelenítése.
Egyszerű nézet, amely az INSERT, UPDATE és DELETE műveleteket továbbítja az alaptáblájának.
A tábla szűrt vagy illesztett szeletének közzététele, írható formában.
Nézet, amelynek eredményhalmaza lemezre íródik, és igény szerint frissíthető.
Drága aggregátumok vagy illesztések gyorsítótárazása és gyors kiolvasása.
Függvény, amely olyan sorhalmazt ad vissza, amely bárhol használható, ahol tábla elfér.
Számított halmaz helyi behelyettesítése, ahogyan az unnest tömböt sorokká alakítja.
Indexek
Kiegyensúlyozott fa index egyenlőség- és tartománykeresésekhez.
WHERE, JOIN és ORDER BY gyorsítása rendezhető oszlopokon.
Index, amely elutasítja a kulcsában szereplő duplikált értékeket.
Egyediség kikényszerítése egy oszlopon vagy oszlopok kombinációján.
Invertált vagy általánosított keresőfa indexek nem skaláris értékekhez.
Tömbök, JSONB, teljes szöveg vagy geometriai adatok indexelése.
Index, amely csak a WHERE feltételnek megfelelő sorokra épül.
A forró részhalmaz indexelése, a többi kihagyása a hely megtakarítása érdekében.
Típusok és kiterjesztések
Felhasználó által definiált típus, amelynek értékei rögzített címkelistából származnak.
Oszlop korlátozása zárt halmazra, például állapotkódokra.
Alaptípus plusz check megszorítás, újrahasznosítható néven oszloptípusként.
Egy érvényesített definíció megosztása — például nem üres szöveg — sok oszlop között.
Szabálykészlet, amely meghatározza a szövegek összehasonlítását és rendezését.
Helyes sorrend a kis- és nagybetűk, ékezetek vagy egy adott területi beállítás szerint.
Telepíthető csomag, amely függvényeket, típusokat vagy operátorokat ad az adatbázishoz.
Bevált eszközök, mint a PostGIS vagy a pg_trgm, egy lépésben történő bevezetése.
Identitás és generált értékek
Önálló számlálóobjektum, amely egymást követő egész számokat ad.
Soros kulcs táplálása, amikor több tábla osztozik egy generátoron.
Táblaoszlop belső szekvenciával, az SQL-szabvány szerint.
Modern, automatikusan növekvő elsődleges kulcs, a SERIAL helyett preferált.
Oszlop, amelynek értékét a sor más oszlopaiból számítja a rendszer.
Származtatott érték tárolása vagy közzététele kézi írás nélkül.
Rutinok
Megnevezett SQL-blokk, amely értéket vagy sorokat ad vissza.
Újrahasznosítható logika becsomagolása és lekérdezéseken belüli meghívása.
Megnevezett blokk, amely műveleteket futtat és saját tranzakcióját vezérli.
Több lépéses ETL, ahol a rutin belsőleg commitol vagy visszagörget.
Rutin, amely sok bemeneti sort egyetlen értékké hajt össze state- és final függvényeken keresztül.
Egyéni aggregálások definiálása, például súlyozott átlag.
Szimbólum, amely egy vagy több függvényhez kötődik adott operandustípusokhoz.
Saját típusok természetes szintaxisa, például a + b vagy @>.
Deklarált átalakítási útvonal egyik típusból a másikba.
A típusváltások szabályozása, beleértve, hogy mely konverziók történnek implicit módon.
Táblaeseményhez kötött rutin, amely automatikusan elsül.
Változások auditálása, validálása vagy kaszkádolása INSERT, UPDATE vagy DELETE esetén.
Trigger, amely adatbázis-szintű eseményeken sül el, például DDL-parancsokon.
Sémaváltozások naplózása, tiltása vagy auditálása a teljes adatbázisban.
Elemzett lekérdezés, ismételt futtatásra tárolva, kötött paraméterekkel.
Egy elemzés és terv újrahasznosítása ugyanazon lekérdezés sok futtatásánál.
Leíró, amely nyitva tart egy eredményhalmazt sorról sorra történő kiolvasáshoz.
Lapozás nagy eredményeken vagy sorok léptetése egy rutinon belül.
Biztonság és szabályok
Megnevezett identitás, amely jogosultságokat hordoz; a felhasználó egy bejelentkezni képes role.
Jogosultságok egyszeri csoportosítása, majd kiosztása embereknek, szolgáltatásoknak vagy más role-oknak.
Utasítások, amelyek jogosultságokat rendelnek objektumokhoz role-okhoz, vagy elvonják azokat.
Annak eldöntése, mely role olvashat, írhat vagy futtathat minden egyes objektumot.
A létrehozó beépített jogai az objektum módosítására vagy eldobására, a grantoktól elkülönülten.
Annak a role-nak a megnevezése, amely az objektum életciklusáért felel.
Álló utasítás, amely automatikusan jogosultságokat ad a role által később létrehozott objektumokra.
Jogok előre beállítása, hogy az új táblák ne igényeljenek kézi grantot az alkalmazás role-jának.
Szabály, amely elutasítja a deklarált feltételt sértő írásokat.
NOT NULL, CHECK, UNIQUE, PRIMARY KEY és FOREIGN KEY garanciák kikényszerítése.
Role-onkénti szabály, amely elrejti azokat a sorokat, amelyeket a munkamenetnek nem szabad látnia.
Bérlők elkülönítése vagy felhasználónkénti hozzáférés az alkalmazás lekérdezéseinek újraírása nélkül.
Álnév, amely egy nevet máshol található objektumra old fel; natív az Oracle-ben és az SQL Serverben.
Sémák migrálása; PostgreSQL-ben helyette search_path használata.
Definíció arra, hogy mely műveletek kerülnek rögzítésre felülvizsgálatra, pgaudit vagy gyártói eszközökkel.
Annak bizonyítása, hogy ki olvasott vagy módosított mit, megfelelőség és vizsgálat céljából.
Utasítás, amely a beérkező lekérdezést más parancsá írja át.
Örökölt írás-átirányítás; a PostgreSQL ma inkább triggereket vagy frissíthető nézeteket részesít előnyben.
Replikáció
Küldő oldali definíció arra, hogy mely táblák és változástípusok streamelődnek ki a replikák felé.
Annak deklarálása, mit kínál az adatbázis a logikai replikáció feliratkozóinak.
Fogadó, amely kapcsolódik egy publicationhöz, és a változásait helyi táblákra alkalmazza.
Változások behúzása egy másik PostgreSQL adatbázisból ebbe.
Jelölő, amely arra készteti a primary-t, hogy tartsa vissza a WAL-ot, amíg a fogyasztó ki nem olvasta.
Garancia arra, hogy egy standby vagy feliratkozó veszteség nélkül folytathatja.