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/

Podobne dokumenty