160 likes | 342 Views
razvoj za android. Danijel Pobi, dipl. Ing. Računarstva. Podaci i baze podataka. Mape Datoteke Baze podataka Relacijske baze (SQL) Osnove SQL razlike, prednosti i nedostaci relacijskih baza nasptram „običnih” datoteka Poslužitelji kao izvor i spremište podataka Integracija u Android.
E N D
razvoj za android Danijel Pobi, dipl. Ing. Računarstva
Podaci i baze podataka • Mape • Datoteke • Baze podataka • Relacijske baze (SQL) • Osnove SQL • razlike, prednosti i nedostaci relacijskih baza nasptram „običnih” datoteka • Poslužitelji kao izvor i spremište podataka • Integracija u Android
Mape • Eng. Directory, Folder, Catalog • Služi za organizaciju na disku • Pomoću njih radimo hijerarhiju datoteka s sličnim sadržajem • Uređaji i OS-ovi bez foldera imaju „flat” ili ravnu direktorijsku strukturu • Na većini mobilnih uređaja ovaj način hijerarhije je podržan, od novih primjera jedino iOS ne podržava foldere!
Datoteka • Datoteka je resurs za spremanje informacija koji su pristupačni programu i uobičajno se spremaju na neki trajni medij (disk) • Organizirani su uglavnom u obliku jednodimenzionalnog polja byte-ova • Pošto su sve datoteke samo nizovi byte-ova, njihova definicija i interpretacija ovisi o ekstenziji imenovanja (exe, txt, dll, lib, cpp,...) • Informacije o datotekama: • veličina (file size) • ime (file name) • interpretacija i organizacija (file extension) • Operacije na datotekama: • Čitanje (read) • Pisanje (write)
Baze podataka • Baza podataka je organizirana kolekcija podataka • DBMS (Data Base Management System) je programski sustav koji omogućuje da dizajniramo, definiramo, admistriramo, radimo upite, spremamo podatke, itd. • DBMS služi u svrhu enkapsulacije i apstrakcije baze kako bi se mogla koristiti sa više programskih jezika i na više sustava • Poznati DBMS-ovi su: Microsoft SQL, MySQL, Microsoft Access, Oracle, SQLite, SAP, IBM Informix, PostgradeSQL,... • U većini slučajeva bazu je nemoguće prebaciti s jednog DBMS na drugi
SQL • SQL je program specijalno namjenjen programski jezik za rad s bazama podataka • SQL = Structured Query Language • Baziran na relacijskoj algebri i Tupleovoj relacijskoj računici • Sastoji se od podatkovno definirajućeg jezika i podatkovno manipulirajućeg jezika • Iako standart je definiran, različiti proizvođači sustava imaju svoje ekstenzije i dodatke, tako da iako su slični, često nije moguće direktno prenijeti sql kod na drugi sustav
Sistem baze podataka • Zašto koristiti sustav baze podataka naspram običnih datoteka? • Organizacija • Integritet • Sigurnost • Backup i Restore • Dokumentiranje • Skalabilnost • Prenosivost • Dijeljivost • Standardizacija • Tipiziranje baze • .... (dugačak popis)
Podaci s mreže • Ukratko s bilo kakve vrste poslužitelja korištenjem mrežnog protokola • Vrste podatkovnih poslužitelja • Lokalni (lokalni SQL server, access baza, lokalni servis,...) • Mrežni (SQL server, mrežno raspoloživ servis,...) • Internetski (web servis, Cloud, VPN, ...) • Podaci se prenose preko neke vrste protokola (TCP/IP, IPX) u obliku poruka (WSDL=Web Service Description Language) • Komunikacija može biti jednosmjerna (samo čitanje, tj. primanje podataka) ili dvosmjerna (slanje i primanje poruka)
Praksa u Androidu • Svaka aplikacija mora imati neki način spremanja podataka i/ili učitavanja podataka bilo da se radi o stanjima programa, slikama, tekstovima, itd... • Nekolio opcija za spremanje/učitavanje podataka: • Shared Preferences • Internal Storage • External storage • SQLite • Network • http://developer.android.com/guide/topics/data/data-storage.html
Shared Preferences • Služi za dijeljenje dosljednih prijednosti • Podaci ostaju iako program završi! • klasa koja se koristi: SharedPreferences • Čitanje jednostavan poziv • Pisanje u 3 koraka: • mora se zvati edit() da se mogu pisati podaci • pisanje željenih podataka u obliku para • mora se potvati commit() da se signalizira da se podatak spremi
Internal Storage • Pristup podacima na unutarnju memoriju uređaja • Po defaultu ono što sačuvamo u internal storage je vidljivo samo aplikaciji i druge aplikacije nemaju pristup tome! • Sadržaj se briše brisanjem aplikacije • rad jedostavan s file Stream-ovima • import java.io (Java s SKD-om) • #include <iostream> (C++ s NDK-om) • Važno da se treba staviti MODE_PRIVATE z akorištenje ove memorije • Podržana folder hijerarhija
External Storage • Odnosi se na stalnu memoriju, bilo ugrađena ili neka vrsta proširenja (kartica ili stick) • Čitljivo je svim aplikacijama i može se prenositi spajanjem na kompjuter • Korištenje slično kao i kod internal storage, samo nekoliko sitnih razlika • mora se voditi računa o pristupačnosti medija (dali postoji i dali je spreman za korištenje) s pozivom getExternalStorageState() • File Streamovi se dobivaju pozivima u Enviroment (getExternalFilesDir, getExternalStorageDirectory,...) • Odlično za datoteke koje se dijele s drugim programima ili korisnicima
Baze podataka • Direktna podrška za SQLite • Baza stvorena će biti vidljiva samo aplikaciji, a nikako izvan nje (internal storage) • Omogućava organizaciju baze i rad preko SQL upita • Nema zamaranja s streamovima i s načinima pisanja/čitanja u file systemu • Za rad gdje podaci moraju biti vidljivi izvan aplikacije bolje koristiti neku bazu podataka preko mreže
Povezivanje putem mreže • Koristi se za spremanje i čitanje podataka preko mreže, kad je dostupno • klase koje se koriste java-net.* i android.net.* • Nije uvijek dostupno • Potrebno implementirati logiku u slučaju nedostatka pristupa • Jako popularan i dobar način rada zbog: • Omogućava razmjenu podataka između više uređaja • Implementacija na poslužiteljskoj strani neovisna o OS-u • Ujedno služi i kao backup za korisnika • Pristup velikim sustavima • ...
Kraj predavanja PITANJA? ajmo ljudi, čisto sumnjam, prosto nevjerujem da vam je baš sve jasno ;) danijel@dmt-softver.hr