-
Notifications
You must be signed in to change notification settings - Fork 0
/
Uvoz.R
76 lines (58 loc) · 2.54 KB
/
Uvoz.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
source("auth.R")
library(RPostgreSQL)
library(dplyr)
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, dbname = db, host = host,
user = user, password = password)
#dodamo pravice
dbSendQuery(con, "GRANT CONNECT ON DATABASE sem2019_zigak TO javnost;")
dbSendQuery(con,"GRANT SELECT ON ALL TABLES IN SCHEMA public TO javnost;")
#Uvoz podatkov
#Letališča
letalisca <- read.csv("let.csv")
#Zapišemo podatke v tabelo v bazi
dbSendQuery(con, "DROP TABLE IF EXISTS letalisca; ")
dbWriteTable(con,'letalisca',letalisca, row.names=FALSE)
dbSendQuery(con, "alter table letalisca add id serial")
#Letalske povezave
povezave <- read.csv("povezave.csv")
dbSendQuery(con, "DROP TABLE IF EXISTS letalske_povezave; ")
dbWriteTable(con,'letalske_povezave',povezave, row.names=FALSE)
#Podatki o destinacijah
pot <- read.csv("pod.csv")
dbSendQuery(con, "DROP TABLE IF EXISTS pot; ")
dbWriteTable(con, 'pot', pot, row.names=FALSE )
#Dodamo ID državam
dbSendQuery(con, "alter table pot add id serial")
#Varnostna tveganja v država
#Ker nisem našel tabele primerne za uvoz sem tveganja prilagodil (tj. določil random število med 1 in 4)
#kar lahko privede do nelogičnih rezultatov :)
drzave <- pot["geopoliticalarea"]
tveganja <- round( runif(212, 1, 4))
tveg <- cbind(drzave, data.frame(tveganja))
dbSendQuery(con, "DROP TABLE IF EXSITS tveganja; ")
dbWriteTable(con, 'tveganja', tveg, row.names = FALSE)
dbSendQuery(con, "alter table tveganja add id serial ")
dbSendQuery(con,"ALTER TABLE tveganja
RENAME COLUMN id TO idtveg;")
dbSendQuery(con,"ALTER TABLE tveganja
RENAME COLUMN geopoliticalarea TO drzave;")
#Urejanje podatkov
#Izbiršemo podatke kjer ne vemo kje se letališče nahaja in spremenimo tip
dbSendQuery(con,
"DELETE from letalske_povezave WHERE idodhodno = '\\N'; ")
dbSendQuery(con,
"DELETE from letalske_povezave WHERE idprihodno = '\\N'; ")
dbSendQuery(con, "ALTER TABLE letalske_povezave ALTER COLUMN idodhodno TYPE integer USING (idodhodno::integer);"
)
dbSendQuery(con, "ALTER TABLE letalske_povezave ALTER COLUMN idprihodno TYPE integer USING (idprihodno::integer);"
)
#Ustvarimo pogled
#vseh povezav
dbSendQuery(con, sql <- "CREATE VIEW vse_povezave AS
SELECT ime, idprihodno,idodhodno FROM letalske_povezave
JOIN letalisca
ON letalisca.id = letalske_povezave.idprihodno")
#za tveganja
dbSendQuery(con, "CREATE VIEW tveg AS SELECT * FROM tveganja INNER JOIN pot ON pot.id = tveganja.idtveg")
dbDisconnect(con)