Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

1. diel - PostgreSQL - Úvod a príprava prostredia

Vitajte u prvého dielu seriálu tutoriálov k databáze PostgreSQL. Seriál je určený pre všetkých, čo sa ešte s databázami nestretli a potrebujú s nimi pracovať v ďalšom jazyku (napr. V PHP na webe alebo v Jave v desktopové aplikácii). Zmyslom je naučiť vás základy jazyka SQL, ktoré sú podobné vo všetkých SQL databázach (PostgreSQL, MySQL, MS-SQL, SQLite ...). Postupne si ukážeme vytváranie tabuliek, vkladanie dát, ich modifikáciu a nakoniec aj výber, vyhľadávanie a komplikovanejšie otázky cez viac tabuliek.

Pracovať budeme iba so samotnou databáz a bez ďalšieho programovacieho jazyka. Nebude to ale tak suché, ako to znie, pretože budeme používať grafické rozhranie pgAdmin. Ukážeme si, ako veci naklikať (tie ktoré idú) a ako to isté zapísať aj ako SQL dotaz. Z grafického rozhrania pekne pochopíte čo presne robíte a potom si to spojíte s SQL príkazom. Nadobudnuté znalosti môžete využiť v ktoromkoľvek jazyku pre prácu s PostgreSQL databázou (napr. V PHP či v Jave) as minimálnou úpravou is ktorúkoľvek inú SQL databázou. Po dokončení tohto seriálu budete schopní pracovať s databázou na takej úrovni, aby ste dokázali vytvoriť jednoduchý redakčný systém alebo podobnú aplikáciu.

Relačnej databázy

PostgreSQL je tzv. Relačnej databázy. Tento pojem označuje databázu založenú na tabuľkách. Každá tabuľka obsahuje položky jedného typu. Môžeme mať teda tabuľku uzivatele, ďalšiu tabuľku clanky a ďalšie potrebné komentare.

Databázovú tabuľku si môžeme predstaviť napríklad ako tabuľku v Exceli. Tabuľka uzivatele by mohla vyzerať asi takto:

Tabuľka v relačnej databáze - PostgreSQL databázy krok za krokom

Položky (konkrétne tu užívatelia) ukladáme na jednotlivé riadky, stĺpce potom označujú atribúty (vlastnosti, ak chcete), ktoré položky majú. PostgreSQL databázy je typová, to znamená, že každý stĺpec má pevne stanovený dátový typ (číslo, znak, krátky text, dlhý text ...) a môže obsahovať hodnoty len tohto typu. Ak chceme s relačné databázou rozumne pracovať, každý riadok v tabuľke by mal byť opatrený unikátnym identifikátorom. U užívateľov by to mohlo byť napríklad rodné číslo, oveľa častejšie sa však používajú identifikátory umelé a to tak, že používateľa jednoducho očíslujeme. K tomu sa dostaneme neskôr.

Slovo relačné označuje vzťah (anglicky relation). Ten je medzi tabuľkami alebo medzi jednotlivými subjektmi v jednej tabuľke. To si však necháme na inokedy a zatiaľ budeme pracovať len s jednou tabuľkou zároveň.

RDBMS

Možno vás napadlo, k čomu vlastne potrebujeme nejakú databázu. Dáta by sme rovnako dobre mohli ukladať do nejakých textových súborov, binárek, XML alebo niečoho podobného. Určite by to nejako fungovalo, alebo nie?

Označenie databázy je vlastne nepresné a v odbornej literatúre sa stretneme s označením RDBMS (Relation DataBase Management System). Slovensky je to preložené ako "databázový systém", čo znie naozaj hrozne a preto budem ďalej používať označenie databázový stroj alebo RDBMS. Databázový stroj (teda tu PostgreSQL) nie je len úložisko dát. Jedná sa o veľmi sofistikovaný a odladený nástroj, ktorý za nás rieši veľa problémov a zároveň je extrémne jednoduchý na použitie. S databázou totiž komunikujeme jazykom SQL, ktorým sú v podstate ľudsky zrozumiteľné vety. Spolu s ukladaním dát je ale potrebné ďalej riešiť mnoho ďalších vecí. Asi by nás napadlo napr. Zabezpečenia alebo optimalizácie výkonu. RDBMS toho ale robí ešte oveľa viac, rieši za nás problém súčasnej editácia rovnaké položky niekoľkými užívateľmi v rovnaký okamih, ktorý by inak mohol zapríčiniť nekonzistentnosti databázy. RDBMS dáta v tomto prípade zamkne a odomkne až po vykonaní zápisu. Ďalej umožňuje spájať niekoľko dotazov do transakcií, kedy sa séria otázok vykoná vždy celá alebo vôbec. Nestane sa, že by sa vykonala len časť. Tieto vlastnosti databázového stroja sú zhrňované skratkou ACID, poďme si ju vysvetliť.

ACID

ACID je akronym slov Atomicita (nedeliteľnosť), Consistency (validita), Isolation (izolácia) a Durability (trvanlivosť). Jednotlivé zložky majú nasledujúci význam:

  • Atomicita - Operácie v transakcii sa vykonajú ako jedna atomická (nedeliteľná) operácie. Tzn. že ak nejaká časť operácie zlyhá, vráti sa databázy do pôvodného stavu a žiadne časti transakcie nebudú vykonané. Reálny príklad je napr. Prevod peňazí na bankovom účte. Ak sa nepodarí peniaze odpočítať z jedného účtu, nebudú ani pripísané na účet druhý. Inak by bola databázy v nekonzistentnom stave. Ak by sme si prácu s dátami riešili sami, mohlo by sa nám toto veľmi jednoducho stať.
  • Consistency - Stav databázy po dokončení transakcie je vždy konzistentné, teda validný podľa všetkých definovaných pravidiel a obmedzení. Nikdy nenastane situácia, že by sa databázy nachádzala v nekonzistentnom stave.
  • Isolation - Operácie sú izolované a navzájom sa neovplyvňujú. Ak sa zíde v jeden okamih viac dotazov na zápis do rovnakého riadku, sú vykonávané postupne, ako vo fronte.
  • Durability - Všetky zapísané dáta sú okamžite zapísané na trvanlivá úložisko (na pevný disk), v prípade výpadku el. energie alebo iného prerušenie prevádzky RDBMS všetko zostane tak, ako bolo tesne pred výpadkom.

Databáza (presnejšie databázový stroj) je teda čierna skrinka, s ktorou naše aplikácie komunikuje a do ktorej ukladá všetky dáta. Jej použitie je veľmi jednoduché a je odladená tak, ako by sme si sami zápis dát v programe asi ťažko urobili. Vôbec sa nemusíme starať o to, ako sú dáta fyzicky uložené, s databázou komunikujeme pomocou jednoduchého dotazovacieho jazyka SQL, viď ďalej. V dnešnej dobe sa vôbec neoplatí zaťažovať sa otázkou ukladanie dát, jednoducho siahneme po hotové databázu, ktorých je obrovský výber a sú väčšinou zadarmo. O databázu občas hovoríme ako o 3. vrstve aplikácie (1. vrstva je užívateľské rozhranie, 2. vlastné logika aplikácie, 3. je práve dátová vrstva).

Potrebné nástroje

Začnime teda. Potrebovať budeme databázu PostgreSQL a pgAdmin, čo je grafické užívateľské rozhranie pre administráciu databázy.

Stiahnutie PostgreSQL vrátane pgAdmin: http://www.enterprisedb.com/...g/pgdownload

Inštalácia PostgreSQL je jednoduchá a užívateľsky prívetivá. Hlavne si zapamätajte heslo, ktoré budete počas inštalácie zadávať.

Spustenie installeru -> spustí sa setup Microsoft Visual C ++ 2013 (ak nemáte nainštalované). Nasleduje setup PostgreSQL -> nastavenie Installation Directory -> Data Directory -> Password -> Port (defaultne 5432) -> Advanced Options - výber locale -> Ready to Install. Ďalej sa spustí Stack Builder 3.xx pre inštaláciu dodatočného softvéru. Tu nie je potrebné vyberať nič, všetko potrebné je už nainštalované.

Spoločne s PostgreSQL sa nainštaloval aj pgAdmin, čo je grafické užívateľské rozhranie pre administráciu databázy.

PgAdmin

pgAdmin je najpoužívanejší grafické prostredie pre prácu s PostgreSQL databázou. Otvorte si pgAdmin.

pgAdmin pre PostgreSQL - PostgreSQL databázy krok za krokom

Dvojklikom na server sa zobrazí okno pre zadanie hesla (heslo ste zadávali v priebehu inštalácie).

Zadanie hesla do pgAdmin - PostgreSQL databázy krok za krokom

Po úspešnom pripojení je vám celá databáza (zatiaľ máme len jednu s názvom postgres, ale môžeme ich mať koľko chceme) k dispozícii.

Databázy v pgAdmin - PostgreSQL databázy krok za krokom

Základné pojmy

  • schéma (schema) - Schémy sú základné organizačné jednotkou databázy. Ak by sme si databázu predstavili ako štát, tak schémy by boli kraja. PostgreSQL automaticky pri vytváraní novej databázy vytvára schéma s názvom "public". Všetko čo vytvoríte umiestni PostgreSQL do tohto schému, pokiaľ mu nepoviete inak. V rámci jednoduchej databázy, ktorá obsahuje len niekoľko tabuliek, je úplne v poriadku umiestniť všetko do jedného schému. Pokiaľ ale budete mať databázu so stovkami či tisíckami tabuliek, je určite vhodné vytvoriť viac schém a tabuľky si zorganizovať.
  • katalóg (catalog) - Katalógy sú systémové schémy. Akékoľvek informácie o databáze a jej objektoch nájdete tu.
  • role (role) - PostgreSQL používa rola pre riadenie prístupových práv k databáze. Úlohu si môžeme predstaviť ako databázového používateľa (alebo ako skupinu užívateľov). Role, ktoré sa môžu prihlásiť, sa nazývajú prihlasovacie role (login roles). Role, ktoré môžu obsahovať ďalšie role, sa nazývajú skupinové role (group roles). Keď inštalujete PostgreSQL, vytvorí sa role postgres, pomocou ktorej sa môžete prihlásiť.

Nabudúce si vytvoríme svoju prvú databázu a v nej aj nejakú tabuľku.


 

Všetky články v sekcii
PostgreSQL databázy krok za krokom
Preskočiť článok
(neodporúčame)
PostgreSQL - Vytvorenie databázy a tabuľky
Článok pre vás napísal vita
Avatar
Užívateľské hodnotenie:
3 hlasov
vita
Aktivity