Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

1. diel - Úvod do SQLite a príprava prostredia

Vitajte pri prvom dieli kurzu o databáze SQLite. Kurz je určený pre všetkých tých, ktorí sa ešte s databázami nestretli a potrebujú s nimi pracovať v ďalšom jazyku (napr. v Jave v desktopovej aplikácii alebo na webe). Zmyslom je naučiť vás základy jazyka SQL, ktoré sú podobné vo všetkých SQL databázach (SQLite, PostgreSQL, MySQL, MS-SQL...). Postupne si ukážeme vytváranie tabuliek, vkladanie dát, ich modifikáciu a nakoniec aj výber, vyhľadávanie a komplikovanejšie dopyty cez viacero tabuliek.

Pracovať budeme iba s databázou a bez ďalšieho programovacieho jazyka. Nebude to však také suché, ako to znie, pretože budeme používať grafické rozhranie DB Browser for SQLite. Ukážeme si, ako veci naklikať (tie ktoré sa dajú) 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 na prácu so SQLite databázou (napr. v Jave) a s minimálnou úpravou aj s ktoroukoľvek inou 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.

Minimálne požiadavky

Pre tento kurz netreba žiadne špeciálne zručnosti, všetko si postupne ukážeme a vysvetlíme. Stačí bežná práca s počítačom :)

Relačná databáza

SQLite je tzv. relačná databáza. 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 users, ďalšiu tabuľku articles a ďalšie napríklad comments.

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

First name Last name Birth date Number of articles
John Smith 11.3.1984 17
Thomas Williams 1.2.1989 6
Joseph Miller 20.12.1972 9
Michael Moore 14.8.1990 1

Položky (tu konkrétne používatelia) ukladáme na jednotlivé riadky, stĺpce potom označujú atribúty (vlastnosti, ak chcete), ktoré položky majú. SQLite databáza nie je typovaná, to znamená, že nemusíme uvádzať dátový typ stĺpca (celé číslo, reálne číslo, text...), hoci my to robiť budeme, a aj keď dátový typ stanovíme, tak môžeme uložiť do tohto stĺpca aj hodnoty iného dátového typu. Ak chceme s relačnou 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ť rodné číslo, oveľa častejšie sa však používajú identifikátory umelé, a to tak, že užívateľov 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 entitami v jednej tabuľke. To si ale necháme na inokedy a zatiaľ budeme pracovať len s jednou tabuľkou zároveň.

RDBMS

Možno vás napadlo, na čo vlastne potrebujeme nejakú databázu. Dáta by sme rovnako dobre mohli ukladať do nejakých textových súborov, binárok, 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). Slovenský preklad je "systém riadenia bázy dát", čo znie naozaj hrozne a preto budem ďalej používať označenie databázový stroj alebo RDBMS. Databázový stroj (tu SQLite) nie je len úložisko dát. Jedná sa o veľmi sofistikovaný a odladený nástroj, ktorý za nás rieši množstvo 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čenie alebo optimalizácia výkonu. RDBMS toho ale robí ešte oveľa viac, rieši za nás problém súčasnej editácie rovnakej položky niekoľkými používateľmi v rovnaký okamih, ktorý by inak mohol zapríčiniť nekonzistenciu 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 dotazov vykoná vždy celá alebo vôbec. Nestane sa, že by sa vykonala len časť. Tieto vlastnosti databázového stroja sú zhŕňané skratkou ACID, poďme si ju vysvetliť.

ACID

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

  • Atomicity - Operácie v transakcii sa vykonajú ako jedna atomická (nedeliteľná) operácia. Tzn. že ak nejaká časť operácie zlyhá, vráti sa databáza 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áza v nekonzistentnom stave. Ak by sme si prácu s dátami riešili sami, mohlo by sa nám to 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áza nachádzala v nekonzistentnom stave.
  • Isolation - Operácie sú izolované a navzájom sa neovplyvňujú. Ak sa zíde v jeden okamih viac dopytov 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žiská (na pevný disk), v prípade výpadku el. energie alebo iného prerušenia 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ša aplikácia 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 dopytovacieho jazyka SQL, viď ďalej. V dnešnej dobe sa vôbec neoplatí zaťažovať sa otázkou ukladania dát, jednoducho siahneme po hotovej databáze, ktorých je obrovský výber a sú väčšinou zadarmo. O databáze 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).

Prečo práve SQLite?

Na rozdiel od veľkých databáz ako MySQL/MariaDB, PostgreSQL, ktoré beží ako služba, je SQLite iba malá knižnica nástrojov, ktorú majú už niektoré jazyky, obzvlášť tie interpretované, zabudovanú v sebe. Každá databáza sa ukladá ako jeden obyčajný súbor na disk, väčšinou s príponou .db, ktorý je bez problémov prenositeľný. Na prenos projektu teda stačí často iba skopírovať aplikáciu so súborom s databázou a spustiť, žiadne inštalovanie služby databázy, nastavovanie prihlasovacích údajov v aplikácii, dumpovanie a následný import databázy. SQLite sa z tohto dôvodu hojne využíva najmä v desktopových aplikáciách. Za to a za jej rýchlosť sa ale musíte zmieriť aj s jej nedostatkami.

Ako už názov napovedá, databáza je veľmi odľahčená, takže neobsahuje potrebné používateľské oprávnenie, konfiguráciu (ktorá je možná čiastočne cez PRAGMA príkazy), či plnú podporu UTF. Ak teda očakávate správne radenie znakov, napr. že č bude po c, tak márne, buď si to sami dopíšete priamo v SQLite, alebo to necháte až na aplikáciu.

Preto je dôležité premyslieť si, na čo a kde budete databázu používať. Nejaká veľká aplikácia, alebo dôraz na bezpečnosť, SQLite nie je pre vás. Prototypujete? Robíte nejakú strednú alebo menšiu webovú stránku? Vyvíjate aplikáciu napríklad pre inteligentný telefón? S SQLite by ste nemali naraziť na žiadny problém. Napríklad pri tvorbe aplikácií pre Android sa s ňou určite stretnete. Ďalej ju používajú prehliadače, Skype či Apple v iPhonoch a iPadoch, takže to rozhodne nebude zlá voľba ani pre vás.

DB Browser for SQLite

DB Browser for SQLite je veľmi obľúbená, jednoduchá aplikácia na prehliadanie, úpravu aj vytváranie SQLite databáz v príjemnom grafickom prostredí. Nie je všemocná, zložitejšie veci si budeme musieť písať pomocou SQL príkazov, ale na základné úpravy bez znalosti SQL plne postačuje a zložitejšie veci sa v priebehu seriálu naučíme.

Aplikáciu si stiahneme z oficiálnych stránok sqlitebrowser­.org:

SQLite download - SQLite databáza krok za krokom

Po kliknutí na odkaz sa zobrazí najnovšia verzia DB Browseru. Zvolíme štandardný inštalačný súbor zodpovedajúci nášmu operačnému systému. Po stiahnutí inštalačného súboru ho spustíme a potvrdíme licenčné podmienky. Následne postupujeme jednotlivými krokmi inštalácie pomocou tlačidla Next. V okne Shortcuts sa oplatí zaškrtnúť voľbu pre vytvorenie zástupcu aplikácie na ploche:

DB Browser shortcut - SQLite databáza krok za krokom

Inštaláciu nakoniec dokončíme tlačidlom Install.

Po úspešnom nainštalovaní inštalátor zatvoríme tlačidlom Finish a DB Browser spustíme. Otvorí sa hlavné okno aplikácie, s ktorým sa v ďalších lekciách naučíme pracovať:

DB Browser for SQLite - SQLite databáza krok za krokom

Pre dnešnú lekciu by to bolo zatiaľ všetko :)

V nasledujúcej lekcii, SQLite - Vytvorenie databázy a tabuľky, si vytvoríme našu prvú databázu s tabuľkou :-)


 

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