NARZĘDZIA WIZUALIZACJI
Transkrypt
NARZĘDZIA WIZUALIZACJI
Kurs interaktywnej komunikacji wizualnej NARZĘDZIA WIZUALIZACJI Andrzej Łachwa [email protected] 3‐4/8 Zobacz film: http://www.ted.com/talks/david_mccandless_the_beauty_of_dat a_visualization.html 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. zajmującą od 180 do 250 KB! Implementuje bezserwerowy i bezkonfiguracyjny silnik relacyjnego języka zapytań SQL. 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). SQLite pozwala na jednoczesny dostęp różnych procesów do tych samych danych (do pliku z danymi). Nie trzeba nic instalować ani konfigurować! SQLite działa na różnych platformach: Linux, MacOSX, Win32, Win64, OS/2 i in. Przenoszenie z systemu 32-bitowego na 64bitowy 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. Możliwy import plików .csv 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 wykonać przez motor SQLite dla bazy załadowanej do pamięci operacyjnej), - do testowania prototypów aplikacji, i wielu innych zastosowań. Narzędzia do zarządzania bazami: - SQLite Manager - dodatek przeglądarki Mozilla Firefox - SQLite Database Browser, narzędzie graficzne - sqlite3, narzędzie znakowe Wybrane ograniczenia: - brak kluczy obcych - nie można dodać ani usuną kolumny przez ALTER TABLE - możliwe tylko pojedyncze transakcje - niemożliwe łączenie FULL JOIN i RIGHT JOIN - perspektywy tylko do odczytu Typy kolumn: INTEGER, NUMERIC, REAL, TEXT, NONE. Typy wartości: NULL, INTEGER, REAL, TEXT, BLOB (mechanizm manifest typing). Ź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 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 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 definiujemy: .header ON i powtarzamy: select * from city limit 5; PRZYKŁAD UŻYCIA SQLite'a cd .help definiujemy: .width 5 15 5 15 10 .mode column i powtarzamy: select * from city limit 5; PRZYKŁAD UŻYCIA SQLite'a cd .help A teraz coś bardziej złożonego: .width 15 15 select Country.name CountryName, City.name CityName from City, Country where Code=CountryCode and Capital=id and Continent="Europe"; KOŃCZYMY PRACĘ z SQLite'em .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. 2. 3. 4. 5. 6. 7. Projekt struktury danych Tworzenie tabel Kwerendy proste Filtrowanie i porządkowanie Grupowanie Kwerendy złożone Skrypty