17 CARNetova korisnika konferencija CUC 2015 Ugradive mobilne
17. CARNetova korisnička konferencija – CUC 2015 Ugradive mobilne baze podataka otvorenoga koda Krunoslav Peter Nastavni zavod za javno zdravstvo „Dr. Andrija Štampar“
Uvod ▪ pohrana podataka mobilne aplikacije: ▪ u oblaku ili ▪ lokalno – u mobilnoj bazi podataka. ▪ obilježja, skupine, implementacija i primjeri mobilnih baza podataka; ▪ 13 slajdova.
Obilježja mobilnih baza podataka (1/2) ▪ ugradive u mobilnu aplikaciju (engl. embedded); ▪ bez poslužitelja (engl. serverless); ▪ u jednoj podatkovnoj datoteci, ▪ udovoljavaju ograničenim procesorskim i memorijskim resursima;
Obilježja mobilnih baza podataka (2/2) ▪ prenosive na druge platforme (engl. cross-platform); ▪ bez potrebe za postavkama (engl. zeroconfiguration); ▪ podržavaju transakcije; ▪ otvorena koda (engl. open source) ili u javnom vlasništvu (engl. public domain).
Dvije skupine mobilnih baza podataka SQL No. SQL podržava upitni jezik SQL ne podržava upitni jezik SQL ▪ baza podataka ključ-vrijednost (engl. keyvalue database), ▪ baza podataka dokumenata (engl. document database), ▪ baza podataka orijentirana stupcima (engl. column-oriented database) i ▪ baza podataka grafova (engl. graph database).
Implementacija mobilnih baza podataka Skupina Naziv Autor(i) Zaštitni znak SQL No. SQLite Kyoto Cabinet Un. QLite Richard D. Hipp FAL Labs Symisc
SQLite (1/3) ▪ biblioteka u kojoj je implementiran sustav za upravljanje relacijskom bazom podataka; ▪ u proizvodima Googla, Mozille i drugih; ▪ komponenta operacijskog sustava Android: android. database. sqlite; ▪ u programskom jeziku Objective C za operacijski sustav i. OS: #include <sqlite 3. h>.
SQLite (2/3) Operacija Funkcija u C/C++ Otvaranje baze podataka sqlite 3_open() Čitanje (select), dodavanje (insert), promjena (update) i brisanje (delete) retka izvršavanjem upita u SQL-u Zatvaranje baze podataka sqlite 3_exec() sqlite 3_close()
SQLite (3/3) SQLite Tcl/Tk (Andro. Wish) % sqlite 3 Rijeci. db 3 package require sqlite 3 db /storage/emulated/legacy/Rijeci. db 3 sqlite> create table t. Rijeci (s. Rijec); set s. Rezultat [db eval "select * from t. Rijeci"] sqlite> insert into t. Rijeci values ('Hello, '); label. oznaka. Rezultat -textvariable s. Rezultat sqlite> insert into t. Rijeci values ('World!'); grid. oznaka. Rezultat sqlite> select * from t. Rijeci; Hello, World!
Kyoto Cabinet i Un. QLite (1/2) ▪ zapisi – parovi ključeva i vrijednosti; ▪ ključevi ili njihove vrijednost mogu imati proizvoljan broj znakova (tj. bajtova); ▪ priprema baze podataka Kyoto Cabinet uz pomoć alata kctreemgr: % kctreemgr create -ts bp. kct % kctreemgr set bp. kct db 1_naziv SQLite % kctreemgr set bp. kct db 1_upisano 2015 -04 -12 % kctreemgr set bp. kct db 2_naziv No. SQL % kctreemgr list -pv bp. kct db 1_naziv SQLite db 1_upisano 2015 -04 -12 db 2_naziv No. SQL
Kyoto Cabinet i Un. QLite (2/2) Baza podataka Kyoto Cabinet Un. QLite Operacija Metoda u C++ i Javi Funkcija u C ili C++ Otvaranje baze podataka db. open() unqlite_open() Dodavanje zapisa db. set() unqlite_kv_append() Promjena zapisa db. set() unqlite_kv_store() Brisanje zapisa db. remove() unqlite_kv_delete() Čitanje zapisa db. get() unqlite_kv_fetch_callback() Zatvaranje baze podataka db. close() unqlite_close()
SQL ili No. SQL? (1/2) Pohrana podataka: ▪ u SQL-bazi podataka – reci tablica (u relacijskoj bazi podataka n-torke relacija); ▪ u radnoj memoriji, na sučelju mobilne aplikacije i kao vrijednost ključa baze podataka ključ-vrijednost – agregat – cjelina međusobno povezanih podataka (npr. JSON- ili XMLdokument).
SQL ili No. SQL? (2/2) ▪ ovisi o aplikacijskim zahtjevima; ▪ No. SQL-baza podataka: ▪ primjerenija za pohranu agregata; ▪ jednostavniji izvorni kôd mobilne aplikacije za interakciju s bazom podataka ključ-vrijednost. ▪ SQL-baza podataka: ▪ povezanost podataka unutar različitih agregata. ▪ aplikacija može pristupati objema vrstama baza podataka;
Zaključak Ugradive mobilne baze podataka otvorenoga koda ▪ uporabive za lokalnu pohranu podataka; ▪ zadovoljavaju većinu aplikacijskih zahtjeva; ▪ jednostavno se ugrađuju u izvorni kôd mobilnih aplikacija; ▪ donose funkcije za rad s podacima; ▪ prenosive na različite platforme.
- Slides: 14