1. Home
  2. Cloud a servery
  3. Virtuální server (VPS)
  4. Instalace a používání databáze PostgreSQL na Ubuntu 18.04 LTS

Instalace a používání databáze PostgreSQL na Ubuntu 18.04 LTS

PostgreSQL (nebo též nazývaný Postgres) je typ objektově-relačního systému správy databází (z anglického object-relationship database management system ORDBMS). PostgreSQL je uveřejňovaná pod PostgreSQL licencí, liberální odrůdou open-source systémů. Pro koncového uživatele to znamená, že je zadarmo a její zdrojový kód je veřejně dostupný pro každého, kdo by něj měl zájem pro případnou modifikaci.

Pod pojmem relační databáze se rozumí místo na ukládání perzistentních dat, tedy takových, která zůstanou uložené v tabulkách i po vypnutí aplikace. Každá tabulka může být jiná, obsahuje konečný počet řádků a sloupců, a vytváří tak mřížku dat (kromě specifického datového typu JSON).

Každý záznam databáze představuje řádek v tabulce označený unikátním ID, které je jeho primárním klíčem. Když se chce jiná tabulka doptávat po tomto záznamu, použije jeho ID jako cizí klíč (anglicky foreign key).

Tip: Zajímá vás porovnání různých databází? Podívejte se, jaký je rozdíl mezi MariaDB a MySQL.

PostgreSQL také obsahuje možnost použít JSON jako datový typ, díky čemuž má navrch oproti jiným typům databázových systémů, jako například MariaDB. 

Tento jednoduchý návod vysvětluje instalaci PostgreSQL databáze na virtuální privátní servery (zkráceně VPS) se systémem Ubuntu 18.04.

Instalace a požadavky na systém

Na instalaci PostgreSQL databáze postačuje 512 MB operační paměti, pro reálné použití doporučujeme alespoň 2 GB RAM. Operační systém je v tomto případě Ubuntu 18.04 v 64-bit verzi. Pro instalaci potřebujete dostatek volného prostoru a i data. Požadavky na výkon procesoru nejsou při tomto typu databáze žádné, ale pro produkci jsou alespoň dvě jádra dobrý start.

Samotná instalace PostgreSQL je poměrně jednoduchá. Potřebné balíky jsou obsáhnuté přímo v repozitářích Ubuntu (aktuálně pod verzí 10.5). Nejdříve doporučujeme si repozitář aktualizovat:

# sudo apt update

Následně se už jen spustí instalace PostgreSQL:

# sudo apt install postgresql postgresql-contrib

Reálně je potřebný jen balíček postgresql, ale balíček s příponou -contrib přidá do naší databáze rozšířenou funkcionalitu, kterou určitě někteří náročnější uživatelé ocení. 

Používání rolí a databáze

PostgreSQL používá koncept rolí pro autentifikaci, který je podobný tomu ze systému založeném na Unixe – konkrétně uživatelé a skupiny. PostgreSQL tento koncept jednoduše sdruží do názvu role.

Okamžitě po instalaci si PostgreSQL osvojí uživatele, které najde v systému. To znamená, že pokud byl uživatel už vytvořený, PostgreSQL ho přebere jako roli a umožní mu tak autentifikovat se a používat databázi. Vytvoří se i jeden speciální účet s názvem postgres, který je napojený na stejnojmennou roli v databázi, aby tak umožnil přístup k práci po přihlášení se do tohoto účtu.

Přepnutí uživatelského účtu

Přepnutí na účet postgres proběhne následujícím řádkem: 

# sudo -i -u postgres

Teď se můžeme okamžitě přepnout do příkazového řádku PostgreSQL databáze. Následně můžeme interagovat s databázovým systémem, vykonávat SQL příkazy a ovlivňovat existenci tabulek v databázích:

# psql

Příkazy na přepnutí účtu a přihlášení se dají vykonat i společně:

# sudo -u postgres psql

Na ukončení práce s PostgreSQL stačí zadat příkaz nebo stlačit klávesovou zkratku Ctrl+D: 

# postgres=# \g

Při práci s PostgreSQL může nastat situace, kdy je nutné využít více rolí. Proto je důležité naučit se je menežovat ať už z pozice role postgres, nebo přímo přes terminál. Přidávání rolí uživatelů databázového systému není nic náročného, stačí zadat následovné příkazy:

postgres@server:~$ createuser --interactive
# sudo -u postgres createuser --interactive

Oba způsoby vyvolají dialog, ve kterém uživatel dopíše jméno uživatele a jestli mu chce udělit práva super administrátora. Dialog vypadá následovně:

sudo -u postgres createuser --interactive
Shall the new role be a superuser? (y/n) y

Je samozřejmě možné použít více typů přepínačů, pro kompletní seznam a použití je vhodné stáhnout po manuálu PostgreSQL přímo přes terminál zadáním příkazu:

# man createuser

Vytvoření nové databáze

Další předpoklad, o kterém Postgres uvažuje, je, že každá role, která se do systému přihlašuje, má vlastní databázi s stejnojmenným názvem. 

Předpokládejme, že role, kterou jsme vytvořili v minulém kroku, se nazývá test. V tom případě se bude PostgreSQL při přihlášení pod touto rolí snažit předvoleně připojit do databáze se stejným názvem. Vytvoření takových databází probíhá příkazem:

# sudo -u postgres createdb test

Otevření příkazového řádku přes autentifikaci ident

Při přihlašovaní se do databázového systému PostgreSQL je možné využít takzvaný ident. Jeho předpoklad je, že v počítači už je uživatel, který má stejnojmennou roli v postgres systému a stejně tak že existuje i předvolená databáze. Tímto způsobem se tedy dá přihlásit do databáze bez nutnosti zadaní hesla či jakékoliv jiné autentifikace. Příkaz je jednoduchý:

# sudo -u test psql

Příkaz sudo -u změní uživatele na toho, který následuje jako parametr. Následuje příkaz psql, který spustí databázový systém a automaticky přihlásí uživatele do stejnojmenné role a databáze. Databázi je však možné změnit, a to přepínačem -d následovaným názvem databáze, do které se chceme připojit. Otestování připojení je možné příkazem \conninfo

Vytváření a editace tabulek

Když už jsme připojení v databázi, je načase zkusit základní operace jako vytvoření prostoru, kde si můžeme uchovávat data. Základní syntax je nasledující:

CREATE TABLE nazev_tabulky (
 Nazev_prvniho_sloupce typ_sloupce (maximalni delka) parametry_sloupce,
 nazev_druheho_sloupce typ_sloupce (maximalni delka),
 Nazev_tretiho_sloupce typ_sloupce (maximalni delka)

);

Jako příklad si můžeme představit tabulku elektrospotřebičů:

CREATE TABLE elektrospotrebiče(
 Id serial PRIMARY KEY,
 Nazev_spotrebice string (50) NOT NULL,
 Datum_vyroby date NOT NULL,
 Spotreba_el_energie int (4) NOT NULL
);

Kam dále

Aktualizováno: 12 října, 2021

Byl tento článek užitečný?

Related Articles

Zákaznická podpora
24 hodin denně, 7 dní v týdnu
KONTAKTOVAT PODPORU