metaestat.sql
8.66 KB
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
/* drop tables */
drop table i3geoestat_agregaregiao;
drop table i3geoestat_classes;
drop table i3geoestat_classificacao;
drop table i3geoestat_fonteinfo_medida;
drop table i3geoestat_medida_variavel_link;
drop table i3geoestat_parametro_medida;
drop table i3geoestat_medida_variavel;
drop table i3geoestat_tipo_regiao;
drop table i3geoestat_conexao;
drop table i3geoestat_fonteinfo;
drop table i3geoestat_mapa_grupo;
drop table i3geoestat_mapa;
drop table i3geoestat_mapa_tema;
drop table i3geoestat_tipo_periodo;
drop table i3geoestat_unidade_medida;
drop table i3geoestat_variavel;
/* create tables */
-- lista controlada dos parâmetros de conexão com o banco de dados onde residem dados
-- código 0 indica que será utilizada a conexão padrão
create table i3geoestat_conexao
(
codigo_estat_conexao integer not null unique primary key autoincrement,
-- nome do banco de dados
bancodedados text,
-- endereço do servidor
host text,
-- porta de comunicação
porta text,
-- nome do usuário que pode acessar o banco
usuario text,
-- senha do usuário que pode acessar o banco
senha text
);
-- identifica as tabelas que possuem colunas com geometrias de determinado local ou região
create table i3geoestat_tipo_regiao
(
codigo_tipo_regiao integer not null unique primary key autoincrement,
nome_tipo_regiao text,
descricao_tipo_regiao text,
codigo_estat_conexao integer,
-- esquema onde encontra-se a tabela com a geometria
esquemadb text,
-- tabela que contém a coluna com a geometria
tabela text,
-- coluna com a geometria da região
colunageo text,
-- data do mapeamento da região
data text,
-- id da tabela onde está a coluna com a geometria e que identifica a região de forma única
identificador integer,
-- coluna que contém o nome de cada região ou local
colunanomeregiao text,
-- código srid correspondente à projeção cartográfica da coluna com a geometria
srid text default '4326',
-- coluna que contém um ponto que representa cada local. pode ser o mesmo que colunageo
colunacentroide text,
-- lista de noes de colunas que ficarão visíveis quando os sql de acesso aos dados forem montados
colunasvisiveis text,
-- apelidos das colunas visíveis. deve estar na mesma ordem das colunas visíveis e separados por vírgulas. opcional.
apelidos text,
foreign key (codigo_estat_conexao)
references i3geoestat_conexao (codigo_estat_conexao)
);
create table i3geoestat_agregaregiao
(
id_agregaregiao integer not null unique primary key autoincrement,
codigo_tipo_regiao integer,
codigo_tipo_regiao_pai integer,
-- coluna na tabela filho que liga com a coluna de identificadores da coluna pai
colunaligacao_regiaopai text,
foreign key (codigo_tipo_regiao)
references i3geoestat_tipo_regiao (codigo_tipo_regiao)
);
-- tabela com o nome e descrição de uma variável variável
create table i3geoestat_variavel
(
codigo_variavel integer not null unique primary key autoincrement,
nome text,
descricao text
);
-- lista controlada de tipos de período de tempo
create table i3geoestat_tipo_periodo
(
codigo_tipo_periodo integer not null unique primary key autoincrement,
nome text,
descricao text
);
create table i3geoestat_unidade_medida
(
codigo_unidade_medida integer not null unique primary key autoincrement,
nome text,
sigla text,
-- o tipo de unidade permite que os valores sejam somados? (0 ou 1)
permitesoma integer default 0,
-- o tipo de unidade permite o cálculo de média aritmética? (0 ou 1)
permitemedia integer default 0
);
-- descreve as colunas que contém valores de algum tipo de medida, por exemplo população residente
create table i3geoestat_medida_variavel
(
id_medida_variavel integer not null unique primary key autoincrement,
codigo_unidade_medida integer,
codigo_tipo_periodo integer,
codigo_variavel integer,
codigo_tipo_regiao integer,
codigo_estat_conexao integer,
-- esquema no banco de dados que contem a tabela
esquemadb text,
-- tabela no banco de dados que contém a coluna
tabela text,
-- nome da colouna que contém os valores da variável
colunavalor text,
-- nome da coluna, na mesma tabela onde estão os valores, que identifica unicamente a região geográfica
colunaidgeo text,
-- filtro opcional que será utilizado na cláusula where
filtro text,
-- titulo da medida
nomemedida text,
-- nome da coluna da tabela que contem os dados e que é um identificador único de cada registro
colunaidunico text,
foreign key (codigo_tipo_regiao)
references i3geoestat_tipo_regiao (codigo_tipo_regiao),
foreign key (codigo_estat_conexao)
references i3geoestat_conexao (codigo_estat_conexao),
foreign key (codigo_variavel)
references i3geoestat_variavel (codigo_variavel),
foreign key (codigo_tipo_periodo)
references i3geoestat_tipo_periodo (codigo_tipo_periodo),
foreign key (codigo_unidade_medida)
references i3geoestat_unidade_medida (codigo_unidade_medida)
);
-- lista de classificacoes de uma medida de variável
create table i3geoestat_classificacao
(
id_classificacao integer not null unique primary key autoincrement,
nome text,
id_medida_variavel integer,
-- observacao sobre a classificação
observacao text,
foreign key (id_medida_variavel)
references i3geoestat_medida_variavel (id_medida_variavel)
);
-- classes pertencentes a uma classificação
create table i3geoestat_classes
(
id_classe integer not null unique primary key autoincrement,
-- expressao no formato válido do mapserver que define os componentes da classe
expressao text,
-- título da classe
titulo text,
-- componente r da cor utilizada para representar a classe
vermelho text,
-- componente g da cor utilizada para representar a classe
verde text,
-- componente b da cor utilizada para representar a classe
azul text,
id_classificacao integer,
-- tamanho do símbolo (item size do mapfile)
tamanho text,
-- symbol name
simbolo text,
-- componente vermelho da cor do outline
overmelho text,
-- componente verde da cor do outline
overde text,
-- componente azul da cor do outline
oazul text,
-- largura da linha do outline
otamanho text,
foreign key (id_classificacao)
references i3geoestat_classificacao (id_classificacao)
);
create table i3geoestat_fonteinfo
(
id_fonteinfo integer not null unique primary key autoincrement,
-- título completo da fonte, devendo conter o ano quando for o caso
titulo text unique,
link text
);
create table i3geoestat_fonteinfo_medida
(
id_medida_variavel integer not null,
id_fonteinfo integer not null,
foreign key (id_fonteinfo)
references i3geoestat_fonteinfo (id_fonteinfo),
foreign key (id_medida_variavel)
references i3geoestat_medida_variavel (id_medida_variavel)
);
create table i3geoestat_mapa
(
-- identificador unico do mapa
id_mapa integer not null unique primary key autoincrement,
titulo text,
-- nome do template para compor a interface
template text,
-- nome do logo localizado a esquerda do mapa
logoesquerdo text,
-- nome ddo logo localizado a direita do mapa
logodireito text,
-- indica se o mapa esta publicado ou nao (sim=1, nao=0)
publicado integer
);
create table i3geoestat_mapa_grupo
(
id_mapa_grupo integer not null unique primary key autoincrement,
-- identificador unico do mapa
id_mapa integer,
titulo text,
foreign key (id_mapa)
references i3geoestat_mapa (id_mapa)
);
create table i3geoestat_mapa_tema
(
id_mapa_tema integer not null unique primary key autoincrement,
id_mapa_grupo integer,
-- titulo do tema, se for vazio, usa o definido no sistema metaestat
titulo text,
id_medida_variavel integer,
foreign key (id_mapa_grupo)
references i3geoestat_mapa_grupo (id_mapa_grupo),
foreign key (id_medida_variavel)
references i3geoestat_medida_variavel (id_medida_variavel)
);
create table i3geoestat_medida_variavel_link
(
link text,
id_medida_variavel integer,
nome text,
id_link integer not null unique primary key autoincrement,
foreign key (id_medida_variavel)
references i3geoestat_medida_variavel (id_medida_variavel)
);
create table i3geoestat_parametro_medida
(
id_parametro_medida integer not null unique primary key autoincrement,
coluna text,
nome text,
descricao text,
-- (0 ou 1) indica se a coluna de valores da variável deve ser agregada ou não (soma dos valores ou média) conforme o tipo de unidade de medida
id_pai integer default 0,
id_medida_variavel integer,
-- tipo de parâmetro, podendo ser:
-- 0 - não definido
-- 1 - ano
-- 2 - mês
-- 3 - dia
-- 4 - hora
-- 5 - lista de opção
tipo integer default 0,
foreign key (id_medida_variavel)
references i3geoestat_medida_variavel (id_medida_variavel)
);