humble beginnings

This commit is contained in:
Motiejus Jakštys 2019-10-26 14:33:46 +03:00
parent 1624784975
commit 1367c35a31
3 changed files with 77 additions and 0 deletions

1
MTM/task4-straipsnis/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/db/

23
MTM/task4-straipsnis/managedb Executable file
View File

@ -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

View File

@ -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