[email protected] 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy...

37
NARZĘDZIA WIZUALIZACJI Kurs interaktywnej komunikacji wizualnej ANDRZEJ ŁACHWA [email protected] 34/8 Kraków, marzec 2014

Transcript of [email protected] 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy...

Page 1: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

NARZĘDZIA WIZUALIZACJIKurs interaktywnej komunikacji wizualnej

ANDRZEJ Ł[email protected]

             3‐4/8Kraków, marzec 2014

Page 2: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

Zwykłe działanie programu z danymi przechowywanymi w bazie danych polega na komunikowaniu się programu z serwerem bazodanowym.

baza

baza

bazabaza

baza

program

program

program

program

© Andrzej Łachwa, 2014

Page 3: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

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.

© Andrzej Łachwa, 2014

Page 4: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

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.

© Andrzej Łachwa, 2014

Page 5: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

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ń.

© Andrzej Łachwa, 2014

Page 6: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

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)

© Andrzej Łachwa, 2014

Page 7: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2014

Page 8: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2014

Page 9: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2014

Page 10: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2014

http://sqlitemgr.com/, marzec 2014

Page 11: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2014

www.sqlabs.com, marzec 2014

Page 12: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2014

http://sqlitemanager.softonic.pl/, marzec 2014

Page 13: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

Źródła

http://souptonuts.sourceforge.net/readme_sqlite_tutorial.htmlhttp://www.shokhirev.com/nikolai/abc/sql/sql.htmlhttp://www.sqlite.org/http://php.net/manual/en/book.sqlite.phphttp://www.helloandroid.pl/2009/11/lekcja-9-sqlitedatabase-po-prostu.htmlhttp://www.android4devs.pl/2011/07/sqlite-androidzie-kompletny-poradnik-dla-poczatkujacych/https://play.google.com/store/apps/details?id=com.xuecs.sqlitemanager&hl=plhttp://sqlitemanager.softonic.pl/http://sqlitestudio.pl/http://sqliteman.com/

© Andrzej Łachwa, 2014

Page 14: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

INSTALAJCA w systemie WINDOWS

Pobieramy pliki:sqlite-dll-win32-x86-3071502sqlite-shell-win32-x86-3071502sqlite-doc-3071502

ze strony www.sqlite.org

[SQLite jest rozpowszechniany na licencji Public Domain]

© Andrzej Łachwa, 2014

Page 15: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

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.

© Andrzej Łachwa, 2014

Page 16: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

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).

© Andrzej Łachwa, 2014

Page 17: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

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

© Andrzej Łachwa, 2014

Page 18: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

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.

© Andrzej Łachwa, 2014

Page 19: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

PRZYKŁAD UŻYCIA SQLite'a cd

Sprawdzamy, jakie tabele zostały zdefiniowane w naszej nowej bazie:

.tablesNastępnie oglądamy zawartość tych tabel:

select * from city limit 5;select * from country limit 5;select * from countryLanguage limit 5;

© Andrzej Łachwa, 2014

Page 20: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

PRZYKŁAD UŻYCIA SQLite'a cd

.help

.header ON

.width 5 15 5 15 10

.mode columi 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.

© Andrzej Łachwa, 2014

Page 21: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

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.

© Andrzej Łachwa, 2014

Page 22: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

Studium przypadku

KOMUNIKACJA AUTOBUSOWA

© Andrzej Łachwa, 2014

Page 23: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...
Page 24: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

DIAGRAM ZWIĄZKÓW ENCJI

Page 25: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2013

SCHEMATBAZY DANYCHKOMUNIKACJIAUTOBUSOWEJ

Page 26: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2013

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));

Page 27: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2013

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),

SKRYPT WYPEŁNIAJĄCY BAZĘ (fragment)

Page 28: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

SQL – język relacyjnych baz danych

1. Projekt struktury danych2. Tworzenie tabel3. Kwerendy proste4. Filtrowanie i porządkowanie5. Grupowanie6. Kwerendy złożone7. Skrypty

© Andrzej Łachwa, 2014

Page 29: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

Studium przypadku

WORLD (Country-City-Language)

© Andrzej Łachwa, 2014

Page 30: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2014

COUNTRY

LANGUAGE

capital

CITI

locateuse

Page 31: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

Studium przypadku

BANK98

© Andrzej Łachwa, 2014

Page 32: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

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?

© Andrzej Łachwa, 2014

Page 33: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2014

1

Page 34: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2014

2

Page 35: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2014

3

Page 36: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2014

4

Page 37: andrzej.lachwa@uj.edu.pl 3 4/8zpgk.fais.uj.edu.pl/documents/2349539/30018349/moto34D.pdf · Mamy bazę bank98.db (17,7MB) w SQLite z tabelą transakcji TRANS (ponad ...

   

© Andrzej Łachwa, 2014

5