sql >> Databáze >  >> RDS >> PostgreSQL

Výhody PostgreSQL


Přehled

Existuje mnoho systémů pro správu relačních databází (RDBMS), ze kterých si můžete vybrat, pokud relační model nejlépe reprezentuje vaše data. PostgreSQL je jednou z nejpopulárnějších a nejuznávanějších open source relačních databází na světě.

Tento článek pokryje některé z hlavních důvodů, proč si mnoho vývojářů vybírá PostgreSQL pro své potřeby správy dat. Ty sahají od dostupnosti funkcí a souladu se standardy až po podporu komunity a řízení projektů.



Sada robustních funkcí

Jedním z hlavních důvodů pro použití PostgreSQL je jeho velký seznam funkcí. PostgreSQL má neuvěřitelné množství funkcí souvisejících mimo jiné s výkonem, zabezpečením, programovacími rozšířeními a konfigurací.

Některé z funkcí, které PostgreSQL nabízí, zahrnují:

  • Podpora pro zápis databázových funkcí pomocí:
    • SQL
    • Tcl
    • Perl
    • Python
    • Java
    • Lua
    • R
    • shell
    • Javascript
  • Podpora velkého množství datových typů včetně:
    • běžná databázová primitiva, jako jsou numerické, řetězcové, booleovské a datetime typy:Nacházejí se ve většině databází a mají skvělou podporu v PostgreSQL.
    • síťové adresy:PostgreSQL podporuje různé typy související se sítí, jako jsou adresy CIDR, adresy s maskami podsítě a adresy MAC, a to jak pro IPv4, tak pro IPv6.
    • geometrické typy:K dispozici je řada typů, které vám pomohou definovat dvourozměrné objekty. Patří mezi ně body, čáry a segmenty a také celé tvary, jako jsou rámečky, mnohoúhelníky a kruhy.
    • peněžní typy:money PostgreSQL typ ukládá měnu s pevnou zlomkovou přesností. Typ s ohledem na národní prostředí a zahrnuje automatické formátování výstupu.
    • rozsahy:Rozsahy vám umožňují nativně pracovat s rozsahy hodnot, jako jsou například rozsahy data a času pro plánování.
    • JSONB:Nativní podpora PostgreSQL pro ukládání a provozování objektů JSON vám může pomoci pracovat s relačními i nerelačními daty ve stejném systému.
    • hstore:hstore typ umožňuje nativně pracovat s páry klíč–hodnota.
    • multidimenzionální pole:Pole jsou velmi užitečná pro ukládání vícedílných hodnot, které nemají velký význam mimo svůj specifický kontext.
  • Možnost definovat vlastní komplexní typy:Definování vlastních typů vám pomůže lépe sladit databázi se způsobem, jakým jsou vaše data reprezentována ve vašich aplikacích.
  • Fulltextové vyhledávání:Fulltextové vyhledávání vám poskytuje výkonné techniky pro vyhledávání a práci s daty v polostrukturovaném a nestrukturovaném textu. Vyhledávání lze doladit tak, aby odpovídalo vašim očekáváním relevance a shody.
  • Robustní systémy ověřování, řízení přístupu a správy oprávnění vhodné pro organizace jakékoli velikosti:PostgreSQL má pokročilé funkce ověřování a autorizace uživatelů, které definují, kdo může systém používat a co každý uživatel smí vidět nebo dělat.
  • Zahraniční obaly dat:Zahraniční obaly dat umožňují reprezentovat tabulky a data a přistupovat k nim na vzdálených serverech.
  • Pohledy a materializované pohledy:Podpora pohledů a materializovaných pohledů umožňuje pohodlný a zjednodušený přístup k datům abstrahováním původních struktur tabulek pro informace, které jsou často společně dotazovány.
  • Komentáře k databázovým objektům:Možnost připojovat komentáře k tabulkám, databázím, sloupcům a dalším jednotlivým databázovým objektům vám umožňuje dokumentovat rozhodnutí nebo detaily implementace.
  • Write-Ahead Logging pro obnovení v určitém okamžiku, převzetí služeb při selhání a streamování replikace:Tyto technologie pomáhají zajistit, že vaše databáze zůstane konzistentní, i když dojde k selhání softwaru, a pomohou vám kopírovat data mezi systémy pro škálování a zálohování dat. .
  • Podpora chování podobného NoSQL, jako je ukládání dokumentů pomocí JSONB a párů klíč-hodnota s hstore:Možnost používat více databázových paradigmat v rámci jednoho systému může pomoci minimalizovat vaši administrační režii a zlepšit kompatibilitu mezi různými reprezentacemi.

Více o funkcích, které PostgreSQL podporuje, můžete zjistit v následujících zdrojích:

  • Matice funkcí PostgreSQL
  • Porovnání funkcí SQL s jinými databázemi
  • Srovnávací tabulky databáze Wikipedie


Objektově orientované databázové funkce

Jeden z nejzásadnějších způsobů, jak se PostgreSQL liší od většiny ostatních relačních databází, pochází z jeho jádra.

Většinu relačních databází lze nejlépe popsat jako Systémy správy relačních databází (RDBMS). RDBMS jsou software speciálně navržený pro práci s relačními databázemi, kde jsou data uložena ve strukturách podobných tabulkám s předdefinovanými sloupci a datovými typy. Data lze dotazovat, upravovat a získávat pomocí technik založených na relační algebře, obvykle prostřednictvím strukturovaného dotazovacího jazyka (SQL).

Na druhé straně PostgreSQL je technicky objektově-relační systém správy databází (ORDBMS). To znamená, že má stejné relační schopnosti jako RDBMS, ale navíc má některé objektově orientované funkce.

Prakticky to znamená, že PostgreSQL vám umožňuje:

  • Definujte své vlastní komplexní datové typy
  • Přetížení funkcí pro práci s různými typy dat argumentů
  • Definujte vztahy dědičnosti mezi tabulkami

Tyto funkce jsou výkonné nástroje, které vám pomohou pracovat s databázemi a daty pomocí některých technik, které možná znáte při programování. Zvýšená flexibilita vám umožňuje modelovat různé typy a vztahy v rámci databázového systému namísto externě v rámci vašich programů. To může pomoci zachovat konzistenci a prosadit zamýšlené chování blíže skutečným datům.

Další informace o tom, co poskytuje objektově relační přístup PostgreSQL, naleznete v následujících zdrojích:

  • "O" v ORDBMS:PostgreSQL Inheritance
  • Systém správy objektových relačních databází
  • Co znamená, že PostgreSQL je ORDBMS?
  • Jaký je rozdíl mezi RDBMS a ORDBMS


Shoda se standardy SQL

Další oblastí, kde PostgreSQL vyčnívá nad ostatními relačními databázovými systémy, je dodržování standardů SQL.

Standardy SQL byly vyvinuty skupinami ANSI a ISO za účelem definování minimálních požadavků na funkčnost a interoperabilitu pro implementace SQL. Zatímco specifikace poskytované těmito orgány jsou určeny k definování funkcí, které by systémy SQL měly poskytovat, vzhledem ke složitosti a dlouhému vývoji jazyka není striktní dodržování vždy možné. Podle dokumentace PostgreSQL žádná databáze aktuálně nesplňuje všechny požadavky uvedené ve specifikaci.

Vzhledem k tomuto upozornění splňuje PostgreSQL více specifikací SQL než jiné možnosti. Podle vlastního počtu splňují alespoň 160 ze 179 základních požadavků stanovených SQL:2016.

Více o shodě PostgreSQL SQL můžete zjistit pomocí těchto zdrojů:

  • Porovnání souladu s SQL mezi implementacemi
  • Funkce podporované PostgreSQL
  • Funkce, které PostgreSQL zatím nepodporuje


Soulad s ACID

ACID je inicialismus v informatice, který znamená atomicitu, konzistenci, izolaci a trvanlivost. Představují klíčové záruky, které databázové transakce musí podporovat, aby se předešlo chybám platnosti a zachovala se integrita dat.

Soulad s ACID je primárním zájmem relačních databází, protože představuje typická očekávání pro ukládání a úpravu vysoce strukturovaných dat. Nerelační databáze se často pokoušejí přizpůsobit svým vlastním standardům, často reprezentovaným konkurenčním BASE inicialismem, který znamená v zásadě dostupný, měkký stav a případnou konzistenci.

Zatímco téměř všechny relační databáze aspirují na zajištění ACID, PostgreSQL se může pochlubit ACID-compliance ve svém enginu od roku 2001. Protože PostgreSQL spoléhá na jediný databázový engine, znamená to, že všechny transakce jsou standardně plně ACID kompatibilní. Tyto záruky jsou poskytovány bez uzamčení databáze pomocí multiversion concurrency control (MVCC). Pro srovnání, MySQL podporuje plnou shodu s ACID pouze při použití jejich databázových strojů InnoDB nebo NDB, což může vést k neočekávanému poškození, pokud jsou použity jiné motory.

Další informace o shodě ACID a PostgreSQL naleznete v těchto zdrojích:

  • Jak Postgres vytváří atomické transakce
  • PostgreSQL Concurrency:Isolation and Locking
  • Primer na ACID transakce:Základy, které musí znát každý vývojář cloudových aplikací


Vývoj a komunita s otevřeným zdrojovým kódem

PostgreSQL je open-source projekt spravovaný The PostgreSQL Global Development Group. Je licencován pomocí The PostgreSQL License, licence uznávané Open Source Initiative.

Zatímco existuje mnoho dalších open source relačních databází, PostgreSQL je vyvíjen a spravován bez firemního vlastníka nebo komerčního protějšku. To pomáhá přispěvatelům naplánovat si vlastní cestu a pracovat na funkcích, o které se komunita zajímá nejvíce. Profesionální služby pro PostgreSQL poskytují společnosti, které často přispívají k projektu, ale neřídí proces vývoje.

Toto zaměření na komunitně řízený vývoj vedlo k velké účasti uživatelů PostgreSQL. K dispozici je velké množství vysoce kvalitních rozšíření a aplikací pro vylepšení funkčnosti jádra PostgreSQL softwaru. Komunitně vyvinutý software vám může pomoci spravovat vaše servery PostgreSQL, sestavovat zprávy business intelligence, spravovat nové typy dat a pracovat s PostgreSQL z různých programovacích jazyků a platforem.



Závěr

PostgreSQL si získal skvělou pověst jako výkonná a na funkce bohatá volba pro relační data. PostgreSQL oceňuje stabilitu, funkčnost a shodu se standardy a kontroluje všechna správná políčka u mnoha projektů. Podobně, pokud požadujete flexibilitu v tom, jak můžete reprezentovat data a chcete mít možnost používat různé nástroje a jazyky, PostgreSQL je také dobrá volba.

PostgreSQL je pozoruhodný tím, že nabízí vynikající implementaci základních relačních funkcí, aniž by se omezoval na hranice tradičních RDBMS. I když žádná databáze nemůže vyhovět všem potřebám, PostgreSQL je vynikající volbou, která je dostatečně univerzální, aby vyhovovala mnoha případům použití.




  1. Jak funguje TIMESTAMPDIFF() v MariaDB

  2. Spojení různých zdrojů dat ve vrstvení

  3. Vložte CLOB do databáze Oracle

  4. Jak implementovat vztahy one-to-one, one-to-many a many-to-many při navrhování tabulek?