humble beginnings
This commit is contained in:
parent
1624784975
commit
1367c35a31
1
MTM/task4-straipsnis/.gitignore
vendored
Normal file
1
MTM/task4-straipsnis/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/db/
|
23
MTM/task4-straipsnis/managedb
Executable file
23
MTM/task4-straipsnis/managedb
Executable 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
|
53
MTM/task4-straipsnis/straipsnis.md
Normal file
53
MTM/task4-straipsnis/straipsnis.md
Normal 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
|
Loading…
Reference in New Issue
Block a user