SQLite
Transkrypt
SQLite
NARZĘDZIA WIZUALIZACJI Kurs interaktywnej komunikacji wizualnej ANDRZEJ ŁACHWA [email protected] Kraków, październik 2015 2/4 Zwykłe działanie programu z danymi przechowywanymi w bazie danych polega na komunikowaniu się programu z serwerem bazodanowym. program program baza baza baza baza program 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/ marzec 2014 INSTALAJCA w systemie WINDOWS Pobieramy pliki: sqlite-shell-win32-x86-3090100.zip sqlite-dll-win32-x86-3090100.zip albo sqlite-dll-win64-x64-3090100.zip ze strony www.sqlite.org [SQLite jest rozpowszechniany na licencji Public Domain] INSTALAJCA w systemie WINDOWS cd Rozpakowujemy dwa pobrane pliki i umieszczamy je np. w katalogu c:/Program Files/SQLite Następnie ścieżkę tę dodajemy do zmiennej systemowej Path. Całą dokumentację mamy dostępną na stronie www.sqlite.org. Możemy ja pobrać i oglądać w trybie off-line uruchamiając plik index.html. 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 danych 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 pozostałymi poleceniami „z kropką”. Opis znajduje się na http://www.sqlite.org/cli.html Studium przypadku WORLD (Country-City-Language) CITY LANGUAGE locate use capital COUNTRY PRZYKŁAD UŻYCIA SQLite'a Wczytujemy przygotowany wcześniej plik z poleceniami języka SQL umieszczony w naszym katalogu (np. e:/temp) poprzez wykonanie polecenia powłoki: .read world.txt Wykonanie tego skryptu utworzy bazę danych. Baza ta pobrana została w roku 2005 ze strony www.mysql.com i jest powszechnie używana do nauczania języka SQL. 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. SQL – język relacyjnych baz danych 1. 2. 3. 4. 5. 6. 7. Definiowanie struktury danych Tworzenie tabel Kwerendy proste Filtrowanie i porządkowanie Grupowanie Kwerendy złożone Skrypty 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), Dobra infografika mówi coś, czego trudno byłoby się dowiedzieć w inny sposób. Szczególnie widać to na przykładzie dużej liczby danych . STUDIUM PRZYPADKU zobacz www.flightradar24.com 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, – numer rachunku, – datę operacji, – typ operacji – rodzaj operacji, – kwotę operacji, – saldo po 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 3 4 5 Dobór kolorów https://kuler.adobe.com/create/color-wheel/ http://colrd.com/ http://www.procato.com/rgb+index/ http://www.perbang.dk/rgb/5E33CC/ http://meyerweb.com/eric/tools/color-blend/ http://www.galeria.muzykaduszy.pl/grafika4.php © Andrzej Łachwa, 2015 http://colrd.com/