Články k téme 'Progamovanie'

26 Máj.
title_sqlite

Objavte čaro SQLite

Ste vývojár web aplikácii? Počuli ste o SQLite? Ak nie, tak vedzte, že je to najpoužívanejšia relačná databáza na planéte a určite stojí za to ju spoznať.

SQLite je malá, ale výkonná relačná databáza ktorá pracuje bez servera, netreba ju nijako inštalovať a nemá žiadne konfiguračné súbory. Na rozdiel od MySQL a iných klient-server riešení používa iba klientsku časť. Dáta sú uložené v súbore ku ktorému pristupuje priamo klientska aplikácia, napríklad PHP skript, Perl, Python,.NET, alebo iná Web či desktop aplikácia. Dá sa povedať že, samotná aplikácia zastáva funkciu klienta aj servera súčasne. Inak povedané server je súčasťou klienta.

Aj keď SQLite vybavuje vždy iba jednu požiadavku, samotný výkon databázy je obdivuhodný. Čítanie dát ma pritom prioritu pred zápisom. Výkon absolútne postačuje pre web stránky a CMS systémy ktoré majú 100.000 pageviews denne. (čo predstavuje 99% všetkých firemných stránok na Slovensku a Čechách).
SQLite je teda možne použiť na webe, prípadne aj ako backend pre desktop alebo mobilné aplikácie, ako je to v prípade Firefox-u, ktorý SQLite používa na ukladanie užívateľských dát.

Výhody

  • Zero-config.
    SQLite nemá žiadne konfiguračné súbory ani nastavenia. Jednoducho ju začnete používať.
  • Prenosnosť (portability)
    Princíp akým SQLite pracuje, umožňuje databázu presúvať spolu s aplikáciou. Či už ide o web aplikáciu ktorú iba nakopírujete na FTP, alebo o mobilnú či desktop aplikáciu ktorú mate v PC, na USB kľúči, …
  • Podpora transakcii a SQL92
    SQLite je skutočná SQL databáza, so všetkým čo k tomu patrí.
  • Nezávislosť na platforme
    Samotný súbor SQLite databázy je možne použiť na akejkoľvek platforme. Knižnica je dostupná na platforme Linux, Windows, *BSD, Mac OS-X, Android, iOS,… Implementácia SQLite je dostupná vo vašom obľúbenom programovacom jazyku PHP, Perl, Python, .NET, Ruby…

Nevýhody

V prípade SQLite nerád použijem slovo “nevýhody”, samotný model systému však ma svoje limity a treba s nimi počítať. Či sú takéto “nedostatky” prekážkou , už musíte posúdiť Vy sami.

  • Konkurencia prístupov
    SQLite obsluhuje vždy iba jednu SQL požiadavku.
  • nemá  podporu autentifikácie užívateľov
    Nemá mechanizmus pre autentifikáciu užívateľov, čo tiež nepovažujem za nevýhodu, aplikácia jednoducho pristupuje k dátam bez autentifikácie.

Samozrejme by sa dalo o výhodách a nevýhodách veľmi dlho diskutovať. SQLite je však vhodná alternatíva napríklad k MySQL. Takže pri návrhu vašej ďalšej aplikácie, prípadne pri upršaných večeroch odskúšajte čaro a možnosti SQLite. Možno objavíte rýchlu a stabilnú databázu pre váš nový web, intranet, alebo inú aplikáciu.

Príklad použitia

Pre ukážku funkčnosti, jednoduchosti a prenositeľnosti SQLite databáz spolu s aplikáciou, prikladám jednoduchú PHP aplikáciu. Databázový súbor a štruktúru databázy som vytvoril pomocou programu Sqliteman.

 ukazka_php_sqlite.zip [1.8 KB]

Poznámka: Adresár “data” a súbor “databaza.db”, musia mať nastavené práva na zápis.

Zdrojový kód


<!--?php <br ?-->header('Content-Type: text/html; charset=utf-8');
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

//Pripojenie na databazu s pouzitim PDO
$db = new PDO("sqlite:../data/databaza.db");

//mazanie z DB
if ($_GET["zmazat_id"]<>'')
{
$db->query("DELETE FROM poznamky WHERE id=".$_GET["zmazat_id"]);
}

//vkladanie do DB
if ($_POST["vstup"]<>'')
{
$db->query("INSERT INTO poznamky (poznamka) VALUES ('".$_POST['vstup']."');");
}

//Citanie dat z DB
$sql = "SELECT * FROM poznamky";
foreach ($db->query($sql) as $row)
{
echo '[<a href="index.php?zmazat_id=' .$row['id']. '">Zmazať</a>] '. $row['poznamka'].'

';
}

?>
Pridať poznámku:</pre>
<form action="index.php" method="post"><input type="text" name="vstup" /><input type="submit" value="Vložiť" /></form>
<pre>


Záver

Osobne používam PHP Framework Symfony, ktorí ma vlastne priviedol k SQLite. Symfony farmework je totiž možné jednoducho spoznávať a testovať vo verzii “sandbox”. Sandbox zahŕňa predkonfigurovanú aplikáciu s SQLite databázou. Príklad ktorý som uviedol v článku je iba čisté a primitívne PHP.

Ku koncu prikladám par odkazov na aplikácie ktoré môžete použiť s SQLite databázou. Tiež rád privítam vaše názory alebo skúsenosti s SQLite. V každom prípade SQLite odskúšajte!

Zaujímavé web aplikácie používajúce SQLite

LightBlog
Blogovací systém. Vytvorený v PHP a SQLite.
http://code.google.com/p/lightblog

phpSQLiteCMS
Systém na správu obsahu, zameraný na jednoduchosť a rýchlosť.
http://phpsqlitecms.net

RiteCMS
CMS, pôvodne vychádza s PhpSqliteCMS.
http://ritecms.com

Nástroje na prácu s SQLite
Pre manažment SQLite databáz je možne použiť nástroje ako :

SQLite Manager
Add-on do Firefoxu, umožnuje vytvárať a manažovať lokálne SQLite databazy.
https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager

phpLiteAdmin
Web rozhranie pre spravu SQLite databaz. (v PHP)
http://code.google.com/p/phpliteadmin

Sqliteman
Multi-platform aplikácia pre prácu s SQLite databázou.
http://sqliteman.com

Adminer
Adminer (predtým phpMinAdmin) je super nástroj na správu DB, vrátane SQLite.
http://www.adminer.org

Tomáš Dobrotka

Tomáš Dobrotka, zakladateľ a technický garant webhostingovej spoločnosti syphon.sk. Zaujímam sa nové technológie a ich uplatnenie pri web aplikáciách. Z praxe mám enormné skúsenosti týkajúce sa prevádzky webových riešení, protokoloch, dátových formátoch, automatizácii… Prevádzkovateľ portálov ZoznamDomen.sk, SvetDomen.sk, …

More PostsWebsite

Follow Me:
TwitterLinkedIn