PostgreSQL (alebo tiež nazývaný Postgres) je typ objektovo-relačného systému správy databáz (z anglického object-relationship database management system ORDBMS). PostgreSQL je uverejňovaná pod PostgreSQL licenciou, liberálnou odrodou open-source systémov. Pre konečného používateľa to znamená, že je zadarmo a jej zdrojový kód je verejne dostupný pre každého, kto by oň mal záujem pre prípadnú modifikáciu.
Pod pojmom relačná databáza sa rozumie miesto na ukladanie perzistentných dát, teda takých, ktoré ostanú uložené v tabuľkách aj po vypnutí aplikácie. Každá tabuľka môže byť iná, obsahuje konečný počet riadkov a stĺpcov, a vytvára tak mriežku dát (okrem špecifického dátového typu JSON).
Každý záznam databázy predstavuje riadok v tabuľke označený unikátnym ID, ktoré je jeho primárnym kľúčom. Ak sa chce iná tabuľka dopytovať po tomto zázname, použije jeho ID ako cudzí kľúč (anglicky foreign key).
PostgreSQL taktiež obsahuje možnosť použiť JSON ako dátový typ, vďaka čomu má navrch oproti iným typom databázových systémov ako napríklad MariaDB.
Tento jednoduchý návod vysvetľuje inštaláciu PostgreSQL databázy na virtuálne privátne servery (skrátene VPS) so systémom Ubuntu 18.04.
Inštalácia a požiadavky na systém
Na inštaláciu PostgreSQL databázy postačuje 512 MB operačnej pamäte, pre reálne použitie odporúčame aspoň 2 GB RAM. Operačný systém je v tomto prípade Ubuntu 18.04 v 64-bit verzii. Pre inštaláciu potrebujete dostatok voľného priestoru a aj dáta. Požiadavky na výkon procesora nie sú pri tento type databázy žiadne, no pre produkciu sú aspoň dve jadrá dobrý štart.
Samotná inštalácia PostgreSQL je pomerne jednoduchá. Potrebné balíky sú obsiahnuté priamo v repozitároch Ubuntu (aktuálne pod verziou 10.5). Najskôr odporúčame si repozitár aktualizovať:
# sudo apt update
Následne sa už len spustí inštalácia PostgreSQL:
# sudo apt install postgresql postgresql-contrib
Reálne je potrebný len balíček postgresql, no balíček s príponou -contrib pridá do našej databázy rozšírenú funkcionalitu, ktorú určite niektorí náročnejší používatelia ocenia.
Používanie rolí a databázy
PostgreSQL používa koncept rolí pre autentifikáciu, ktorý je podobný tomu zo systému založenom na Unixe – konkrétne používatelia a skupiny. PostgreSQL tento koncept jednoducho združila do názvu rola.
Okamžite po inštalácii si PostgreSQL osvojí používateľov, ktorých nájde v systéme. To znamená, že pokiaľ bol používateľ už vytvorený, PostgreSQL ho preberie ako rolu a umožní mu tak autentifikovať sa a používať databázu. Vytvorí sa aj jeden špeciálny účet s názvom postgres, ktorý je napojený na rovnomennú rolu v databáze, aby tak umožnil prístup k práci po prihlásení sa do tohto účtu.
Prepnutie používateľského účtu
Prepnutie na účet postgres prebehne nasledujúcim riadkom:
# sudo -i -u postgres
Teraz sa môžeme okamžite prepnúť do príkazového riadku PostgreSQL databázy. Následne môžeme interagovať s databázovým systémom, vykonávať SQL príkazy a ovplyvňovať existenciu tabuliek v databázach:
# psql
Príkazy na prepnutie účtu a prihlásenie sa dajú vykonať aj spoločne:
# sudo -u postgres psql
Na ukončenie práce s PostgreSQL stačí zadať príkaz alebo stlačiť klávesovú skratku Ctrl+D:
# postgres=# \g
Pri práci s PostgreSQL môže nastať situácia, keď je nutné využiť viac rolí. Preto je dôležité naučiť sa ich manažovať či už z pozície role postgres, alebo priamo cez terminál. Pridávanie rolí používateľov databázového systému nie je nič náročné, stačí zadať nasledovné príkazy:
postgres@server:~$ createuser --interactive
# sudo -u postgres createuser --interactive
Oba spôsoby vyvolajú dialóg, v ktorom použivateľ dopíše meno používateľa a či mu chce udeliť práva super administrátora. Dialóg vyzerá nasledovne:
sudo -u postgres createuser --interactive Shall the new role be a superuser? (y/n) y
Je, samozrejme, možné použiť viac typov prepínačov, pre kompletný zoznam a použitie je vhodné siahnuť po manuáli PostgreSQL priamo cez terminál zadaním príkazu:
# man createuser
Vytvorenie novej databázy
Ďalší predpoklad, o ktorom Postgres uvažuje, je, že každá rola, ktorá sa do systému prihlasuje, má vlastnú databázu s rovnomenným názvom.
Predpokladajme, že rola, ktorú sme vytvorili v minulom kroku, sa nazýva test. V tom prípade sa bude PostgreSQL pri prihlásení pod touto rolou snažiť predvolene pripojiť do databázy s rovnakým názvom. Vytvorenie takýchto databáz prebieha príkazom:
# sudo -u postgres createdb test
Tip: Zaujíma vás porovnanie rôznych databáz? Pozrite si, aký je rozdiel medzi MariaDB a MySQL.
Otvorenie príkazového riadku cez autentifikáciu ident
Pri prihlasovaní sa do databázového systému PostgreSQL je možné využiť takzvaný ident. Jeho predpoklad je, že v počítači už je používateľ, ktorý má rovnomennú rolu v postgres systéme a rovnako že existuje aj predvolená databáza. Týmto spôsobom sa teda dá prihlásiť do databázy bez nutnosti zadania hesla či akejkoľvek inej autentifikácie. Príkaz je jednoduchý:
# sudo -u test psql
Príkaz sudo -u zmení používateľa na toho, ktorý nasleduje ako parameter. Nasleduje príkaz psql, ktorý spustí databázový systém a automaticky prihlási používateľa do rovnomennej role a databázy. Databázu je však možné zmeniť, a to prepínačom -d nasledovaným názvom databázy, do ktorej sa chceme pripojiť. Otestovanie pripojenia je možné príkazom \conninfo.
Vytváranie a editácia tabuliek
Keď už sme pripojení v databáze, je načase skúsiť základné operácie ako vytvorenie priestoru, kde si môžeme uchovávať dáta. Základná syntax je nasledujúca:
CREATE TABLE nazov_tabulky ( Nazov_prveho_stlpca typ_stlpca (maximalna dlzka) parametre_stlpca, nazov_druheho_stlpca typ_stlpca (maximalna dlzka), Nazov_tretieho_stlpca typ_stlpca (maximalna dlzka) );
Ako príklad si môžeme predstaviť tabuľku elektrospotrebičov:
CREATE TABLE elektrospotrebiče( Id serial PRIMARY KEY, Nazov_spotrebiča string (50) NOT NULL, Datum_vyroby date NOT NULL, Spotreba_el_energie int (4) NOT NULL );
Kam ďalej
- Oficiálne stránky projektu
- Dokumentácia
- Základný ťahák s príkazmi
- Postgres Weekly – emailový newsletter s týždennými novinkami