NARZĘDZIA WIZUALIZACJI Kurs interaktywnej komunikacji wizualnej ANDRZEJ ŁACHWA andrzej.lachwa@uj.edu.pl Kraków, marzec 2014 3 4/8
Zwykłe działanie programu z danymi przechowywanymi w bazie danych polega na komunikowaniu się programu z serwerem bazodanowym. program program baza baza program baza baza baza program
SQLite jest biblioteką napisaną w ANSI C. Implementuje bezserwerowy i bezkonfiguracyjny silnik relacyjnego języka zapytań SQL. Nie trzeba nic instalować ani konfigurować! Praca z SQLite polega na odczytywaniu, edytowaniu i zapisywaniu jednego zwykłego pliku, w którym mieści się cała baza (definicja struktury, tabele, widoki, indeksy, wyzwalacze). Operacje CRUD wykonywane są za pośrednictwem poleceń języka SQL. SQLite pozwala na jednoczesny dostęp różnych procesów do tych samych danych (do pliku z danymi). Możliwy jest import danych z plików csv.
SQLite działa na różnych platformach: Linux, MacOSX, Win32, Win64, OS/2, Android i in. Przenoszenie z systemu 32-bitowego na 64-bitowy polega na skopiowaniu pliku z bazą! Potrzebne mu zasoby pamięci operacyjnej są niewielkie (dlatego spotykamy go w aplikacjach na telefony, palmtopy, odtwarzacze mp3, mp4). Dostęp do bazy SQLite'a można uzyskać z wielu języków programowania: Ruby, Python, C/C++, Tcl, PHP, Java, Perl Z SQLite korzystają m.in: iphone, ipod, Symbian, Avast!, Antivir, SunSolaris, Mozilla Firefox, Google, Philips, Adobe, Apple.
SQLite jest wygodnym motorem bazodanowym: - dla aplikacji desktopowych, które korzystają ze złożonych strukturalnie danych przechowywanych na dysku (dane te można wpakować do bazy SQLite i przechowywać jako pojedynczy plik). - dla aplikacji na telefony komórkowe, tablety czy netbooki, - dla stron internetowych o małym bądź średnim natężeniu ruchu, - dla programów, które sortują i filtrują duże ilości złożonych danych (operacje te lepiej i łatwiej wykonać przez motor SQLite), - do testowania prototypów aplikacji, i wielu innych zastosowań.
Narzędzia do zarządzania bazami SQLite: - SQLite Manager (dodatek przeglądarki MozillaFirefox) - SQLite Database Browser (http://sourceforge.net/projects/sqlitebrowser/) - SQLite Database Browser Portable (http://portableapps.com/) - SQLite Administrator (http://sqliteadmin.orbmu2k.de/) - SQLite Manager (Android/iOS) (http://sqlitemgr.com/) - SQLiteManager (komercyjny, www.sqlabs.com) i wiele innych, ale przede wszystkim - sqlite3.exe (narzędzie znakowe)
http://sqlitemgr.com/, marzec 2014
www.sqlabs.com, marzec 2014
http://sqlitemanager.softonic.pl/, marzec 2014
Źródła http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html http://www.shokhirev.com/nikolai/abc/sql/sql.html http://www.sqlite.org/ http://php.net/manual/en/book.sqlite.php http://www.helloandroid.pl/2009/11/lekcja-9-sqlitedatabase-poprostu.html http://www.android4devs.pl/2011/07/sqlite-androidziekompletny-poradnik-dla-poczatkujacych/ https://play.google.com/store/apps/details? id=com.xuecs.sqlitemanager&hl=pl http://sqlitemanager.softonic.pl/ http://sqlitestudio.pl/ http://sqliteman.com/
INSTALAJCA w systemie WINDOWS Pobieramy pliki: sqlite-dll-win32-x86-3071502 sqlite-shell-win32-x86-3071502 sqlite-doc-3071502 ze strony www.sqlite.org [SQLite jest rozpowszechniany na licencji Public Domain]
INSTALAJCA w systemie WINDOWS cd Rozpakowujemy pierwsze dwa pobrane pliki i umieszczamy je np. w katalogu c:/program Files/SQLite, a trzeci po rozpakowania np. w katalogu c:/program Files/SQLite/Doc Pierwszą z tych ścieżek dodajemy do zmiennej systemowej Path. Całą dokumentację dostępną na stronie www.sqlite.org możemy oglądać w trybie off-line uruchamiając plik index z drugiego katalogu.
URUCHOMIENIE w systemie WINDOWS W wierszu poleceń lub w konsoli interpretera poleceń cmd wpisujemy: e: (ewentualna zmiana dysku) cd temp (wybór katalogu z plikami) sqlite3 world.db (uruchomienie shella) Od tego momentu prompt w konsoli przyjmuje postać: sqlite> i możemy wykonywać polecenia konsoli Sqlite'a na bazie o nazwie world (zapamiętanej w pliku world.db w katalogu e:/temp).
URUCHOMIENIE w systemie WINDOWS, cd Dwa polecenia należy zapamiętać:.help.quit Pierwsze wypisuje polecenia powłoki, drugie pozwala na zamknięcie programu. Należy zapoznać się z krótką dokumentacją www.sqlite.org/sqlite.html
PRZYKŁAD UŻYCIA SQLite'a Wczytujemy przygotowany wcześniej plik z poleceniami języka SQL umieszczony w naszym katalogu e:/temp:.read world1.txt Jest to baza danych pobrana w roku 2005 ze strony www.mysql.com i używana do nauczania języka SQL. Wersja dla serwera MySQL ma u nas nazwę world.111, a wersja dla SQLite'a nazwę world1.txt.
PRZYKŁAD UŻYCIA SQLite'a cd Sprawdzamy, jakie tabele zostały zdefiniowane w naszej nowej bazie:.tables Następnie oglądamy zawartość tych tabel: select * from city limit 5; select * from country limit 5; select * from countrylanguage limit 5;
PRZYKŁAD UŻYCIA SQLite'a cd.help.header ON.width 5 15 5 15 10.mode colum i powtarzamy użyte już polecenie języka SQL: select * from city limit 5; Kończymy pracę z SQLite'm.quit i ewentualnie zamykamy konsolę cmd.
Po co używać baz danych? Nad złożonymi danymi łatwiej zapanować, gdy nada im się strukturę relacyjnej bazy danych. Złożone strukturalnie dane łatwiej aktualizować, gdy są przechowywane w bazie danych. Język SQL jest powszechnie stosowanym językiem dostępu do danych, łatwym i wygodnym w użyciu w niemal wszystkich językach programowania.
Studium przypadku KOMUNIKACJA AUTOBUSOWA
DIAGRAM ZWIĄZKÓW ENCJI
SCHEMAT BAZY DANYCH KOMUNIKACJI AUTOBUSOWEJ
SKRYPT DEFINIUJACY BAZĘ (fragment) CREATE TABLE Kurs ( KodKur SMALLINT AUTO_INCREMENT, KodTr VARCHAR(10), Dzien DATE, Godzina TIME, KierID SMALLINT, AutoID SMALLINT, PRIMARY KEY (KodKur) );
SKRYPT WYPEŁNIAJĄCY BAZĘ (fragment) INSERT INTO Kurs (KodTr, Dzien, Godzina, KierID, AutoID) VALUES ('KR-WA',DATE_ADD('2012-07-01', INTERVAL FLOOR(250*RAND()) DAY), MAKETIME(24*RAND(), 60*RAND(), 00), FLOOR(10*RAND())+1, FLOOR(10*RAND())+1), ('WA-KR',DATE_ADD('2012-07-01', INTERVAL FLOOR(250*RAND()) DAY), MAKETIME(24*RAND(), 60*RAND(), 00), FLOOR(10*RAND())+1, FLOOR(10*RAND())+1),
SQL język relacyjnych baz danych 1. Projekt struktury danych 2. Tworzenie tabel 3. Kwerendy proste 4. Filtrowanie i porządkowanie 5. Grupowanie 6. Kwerendy złożone 7. Skrypty
Studium przypadku WORLD (Country-City-Language)
CITI LANGUAGE capital locate use COUNTRY
Studium przypadku BANK98
Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad 322 tysiące rekordów opisujących operacje z 1998 roku). Kolejne kolumny tej tabeli zawierają: numer transakcji, rodzaj operacji, numer rachunku, kwotę operacji, datę operacji, saldo po operacji typ operacji i kilka innych. Średnia liczba transakcji przypadających na dany dzień tygodnia powinna wynosić 1/7 wszystkich transakcji, czyli około 14,29%. Jakie są odchylenia procentowe od tej średniej dla każdego z dni tygodnia?
1
2
3
4
5