commit 1367c35a3123bfac63fdbd0811b0fd7f51956399 (tree)
parent 1624784975c7f5645d71a3f803f07f5e09883b68
Author: Motiejus Jakštys <desired.mta@gmail.com>
Date: Sat, 26 Oct 2019 14:33:46 +0300
humble beginnings
Diffstat:
3 files changed, 77 insertions(+), 0 deletions(-)
diff --git a/MTM/task4-straipsnis/.gitignore b/MTM/task4-straipsnis/.gitignore
@@ -0,0 +1 @@
+/db/
diff --git a/MTM/task4-straipsnis/managedb b/MTM/task4-straipsnis/managedb
@@ -0,0 +1,23 @@
+#!/bin/bash
+set -xeuo pipefail
+
+if [[ $1 == init ]]; then
+ mkdir -p db && initdb db
+ pg_ctl -D db -l db/logfile start
+
+ psql postgres \
+ -c 'CREATE DATABASE airportgames;' \
+ -c 'CREATE USER airportgames;' \
+ -c 'GRANT ALL PRIVILEGES ON DATABASE airportgames to airportgames;'
+ psql -d airportgames \
+ -c 'CREATE EXTENSION postgis'
+fi
+
+if [[ $1 == start ]]; then
+ pg_ctl -D db -l db/logfile start
+fi
+
+
+if [[ $1 == stop ]]; then
+ pg_ctl -D db -l db/logfile stop
+fi
diff --git a/MTM/task4-straipsnis/straipsnis.md b/MTM/task4-straipsnis/straipsnis.md
@@ -0,0 +1,53 @@
+Trumpas įvadas į GIS programuotojui
+===================================
+
+Jei tau nesvetimos duomenų bazės ar programavimas, ir iš žinių norėjote
+daugiau, šis įrašas -- jums. Labai trumpai susipažinsime, kaip sukurti
+"erdvinę" duomenų bazę ir leisti naudingas užklausas.
+
+Turinys:
+- Kas yra PostGis?
+- Užduoties aprašymas.
+- Užduoties vykdymas.
+- Pavyzdžiai.
+
+Kas yra PostGis?
+----------------
+
+PostGis yra PostgreSQL įskiepis, pridedantis naujų duomenų tipų ir funkcijų,
+skirtų dirbti su erdve. Ką tai reiškia? Išspręskime užduotį ir sužinosime.
+
+Užduotis
+--------
+
+Susikurkime PostgreSQL lentelę su viso pasaulio oro uostais (bent tais, kurie
+turi [IATA kodą][1]) ir pažaiskime su duomenimis. Turėdami visus pasaulio oro
+uostus galime sugalvoti daug klausimų, bet man šiuo metu įdomu:
+- kokie du oro uostai yra labiausiai nutolę vienas nuo kito?
+- kurie du oro uosta yra arčiausiai vienas kito?
+- kiek kartų reikia nuskristi United Economy klase iš Vilniaus į San
+ Franciską ir atgal (pro Frankfurtą), kad uždirbčiau [nemokamus pusryčius][2] prieš
+ skrydį?
+
+Užduoties vykdymas
+------------------
+
+Susidarys iš kelių dalių:
+- Duomenų bazės sukūrimas.
+- Duomenų importavimas.
+- Užklausos.
+
+Duomenų bazės sukūrimui galite naudoti skriptą:
+
+```
+./managedb init
+psql airportgames < init.sql
+```
+
+Atsisiųskime oro uostų informaciją [airports.dat][3] faile ir importuokime į duomenų bazę:
+
+
+
+[1]: https://en.wikipedia.org/wiki/International_Air_Transport_Association_code
+[2]: https://www.united.com/ual/en/us/fly/mileageplus/premier/full-premier-benefits-chart.html
+[3]: https://openflights.org/data.html