· 5 years ago · Jun 10, 2020, 12:26 PM
1DROP TABLE IF EXISTS edu_cfg_bncc_dados;
2DROP TABLE IF EXISTS edu_cfg_bncc_valor;
3
4CREATE TABLE public.edu_cfg_bncc_valor
5(
6 cfbnccvl_cod SERIAL PRIMARY KEY,
7 cfbnccvl_cfbnccestcod INTEGER,
8 cfbnccvl_sigla VARCHAR(10),
9 cfbnccvl_maincod VARCHAR(20),
10 cfbnccvl_descricao VARCHAR,
11 cfbnccd_comentarios VARCHAR,
12 --CONSTRAINT idx_unique_edu_cfg_bncc_valor UNIQUE (cfbnccvl_cfbnccestcod, cfbnccvl_sigla,cfbnccvl_maincod),
13 CONSTRAINT fk_cfbnccvl_cfbnccestcod FOREIGN KEY (cfbnccvl_cfbnccestcod)
14 REFERENCES public.edu_cfg_bncc_estrutura (cfbnccest_cod) MATCH SIMPLE
15 ON UPDATE NO ACTION
16 ON DELETE NO ACTION
17);
18
19CREATE INDEX idx_cfbnccvl_cfbnccestcod ON public.edu_cfg_bncc_valor
20 USING btree (cfbnccvl_cfbnccestcod);
21
22CREATE OR REPLACE FUNCTION public.trigger_validate_update_edu_cfg_bncc_valor()
23 RETURNS trigger
24 LANGUAGE 'plpgsql'
25 COST 100
26 VOLATILE NOT LEAKPROOF
27AS $BODY$
28DECLARE
29 has_vinculo INTEGER;
30BEGIN
31
32 IF (TG_OP = 'UPDATE') THEN
33
34 SELECT has_foreign_keys(CAST(TG_TABLE_NAME AS VARCHAR),NEW.cfbnccvl_cod)
35 INTO has_vinculo;
36 IF (has_vinculo > 0) THEN
37 RAISE EXCEPTION 'Não é possível alterar o campo ''cfbnccvl_cfbnccestcod'', pois este registro já possui vínculos!';
38 END IF;
39
40 END IF;
41
42 RETURN NEW;
43END;
44$BODY$;
45
46ALTER FUNCTION public.trigger_validate_update_edu_cfg_bncc_valor()
47 OWNER TO educacao;
48
49CREATE TRIGGER trigger_validate_update_edu_cfg_bncc_valor
50 BEFORE UPDATE OF cfbnccvl_cfbnccestcod
51 ON public.edu_cfg_bncc_valor
52 FOR EACH ROW
53 EXECUTE PROCEDURE public.trigger_validate_update_edu_cfg_bncc_valor();
54
55
56CREATE TABLE public.edu_cfg_bncc_dados
57(
58 cfbnccd_cod SERIAL PRIMARY KEY,
59 cfbnccd_cfbnccdcod INTEGER,
60 cfbnccd_cfbnccvlcod INTEGER,
61 cfbnccd_ordem INTEGER,
62 cfbnccd_cfbnccdcod_nivel1 INTEGER,
63 cfbnccd_cfbnccdcod_nivel2 INTEGER,
64 cfbnccd_cfbnccdcod_nivel3 INTEGER,
65 cfbnccd_cfbnccdcod_nivel4 INTEGER,
66 cfbnccd_cfbnccdcod_nivel5 INTEGER,
67 cfbnccd_cfbnccdcod_nivel6 INTEGER,
68 CONSTRAINT fk_cfbnccd_cfbnccdcod_nivel1 FOREIGN KEY (cfbnccd_cfbnccdcod_nivel1)
69 REFERENCES public.edu_cfg_bncc_dados (cfbnccd_cod) MATCH SIMPLE
70 ON UPDATE NO ACTION
71 ON DELETE NO ACTION,
72 CONSTRAINT fk_cfbnccd_cfbnccdcod_nivel2 FOREIGN KEY (cfbnccd_cfbnccdcod_nivel2)
73 REFERENCES public.edu_cfg_bncc_dados (cfbnccd_cod) MATCH SIMPLE
74 ON UPDATE NO ACTION
75 ON DELETE NO ACTION,
76 CONSTRAINT fk_cfbnccd_cfbnccdcod_nivel3 FOREIGN KEY (cfbnccd_cfbnccdcod_nivel3)
77 REFERENCES public.edu_cfg_bncc_dados (cfbnccd_cod) MATCH SIMPLE
78 ON UPDATE NO ACTION
79 ON DELETE NO ACTION,
80 CONSTRAINT fk_cfbnccd_cfbnccdcod_nivel4 FOREIGN KEY (cfbnccd_cfbnccdcod_nivel4)
81 REFERENCES public.edu_cfg_bncc_dados (cfbnccd_cod) MATCH SIMPLE
82 ON UPDATE NO ACTION
83 ON DELETE NO ACTION,
84 CONSTRAINT fk_cfbnccd_cfbnccdcod_nivel5 FOREIGN KEY (cfbnccd_cfbnccdcod_nivel5)
85 REFERENCES public.edu_cfg_bncc_dados (cfbnccd_cod) MATCH SIMPLE
86 ON UPDATE NO ACTION
87 ON DELETE NO ACTION,
88 CONSTRAINT fk_cfbnccd_cfbnccdcod_nivel6 FOREIGN KEY (cfbnccd_cfbnccdcod_nivel6)
89 REFERENCES public.edu_cfg_bncc_dados (cfbnccd_cod) MATCH SIMPLE
90 ON UPDATE NO ACTION
91 ON DELETE NO ACTION,
92 CONSTRAINT fk_cfbnccd_cfbnccvlcod FOREIGN KEY (cfbnccd_cfbnccvlcod)
93 REFERENCES public.edu_cfg_bncc_valor (cfbnccvl_cod) MATCH SIMPLE
94 ON UPDATE NO ACTION
95 ON DELETE NO ACTION,
96 CONSTRAINT fk_cfbnccd_cfbnccdcod FOREIGN KEY (cfbnccd_cfbnccdcod)
97 REFERENCES public.edu_cfg_bncc_dados (cfbnccd_cod) MATCH SIMPLE
98 ON UPDATE NO ACTION
99 ON DELETE NO ACTION
100);
101
102CREATE INDEX idx_cfbnccd_cfbnccdcod ON public.edu_cfg_bncc_dados
103 USING btree (cfbnccd_cfbnccdcod);
104
105CREATE INDEX idx_cfbnccd_cfbnccvlcod ON public.edu_cfg_bncc_dados
106 USING btree (cfbnccd_cfbnccvlcod);
107
108CREATE INDEX idx_cfbnccd_cfbnccdcod_nivel1 ON public.edu_cfg_bncc_dados
109 USING btree (cfbnccd_cfbnccdcod_nivel1);
110
111CREATE INDEX idx_cfbnccd_cfbnccdcod_nivel2 ON public.edu_cfg_bncc_dados
112 USING btree (cfbnccd_cfbnccdcod_nivel2);
113
114CREATE INDEX idx_cfbnccd_cfbnccdcod_nivel3 ON public.edu_cfg_bncc_dados
115 USING btree (cfbnccd_cfbnccdcod_nivel3);
116
117CREATE INDEX idx_cfbnccd_cfbnccdcod_nivel4 ON public.edu_cfg_bncc_dados
118 USING btree (cfbnccd_cfbnccdcod_nivel4);
119
120CREATE INDEX idx_cfbnccd_cfbnccdcod_nivel5 ON public.edu_cfg_bncc_dados
121 USING btree (cfbnccd_cfbnccdcod_nivel5);
122
123CREATE INDEX idx_cfbnccd_cfbnccdcod_nivel6 ON public.edu_cfg_bncc_dados
124 USING btree (cfbnccd_cfbnccdcod_nivel6);
125
126CREATE OR REPLACE FUNCTION public.get_niveis_cfbnccd_cod_atual(
127 in_cfbnccd_cod integer)
128RETURNS character varying
129 LANGUAGE 'plpgsql'
130 COST 100
131 IMMUTABLE
132AS $BODY$
133DECLARE
134 niveis_cfbnccd_cod VARCHAR;
135BEGIN
136
137 WITH RECURSIVE cte_dados_bncc(
138 cfbnccd_cod,
139 niveis_cfbnccd_cod
140 )
141 AS (
142 --Selecionando as estruturas de primeiro nivel
143 SELECT
144 ecned1.cfbnccd_cod,
145 CAST(ecned1.cfbnccd_cod AS VARCHAR) AS niveis_cfbnccd_cod
146 FROM edu_cfg_bncc_dados ecned1
147 INNER JOIN edu_cfg_bncc_valor ecbv1
148 ON ecned1.cfbnccd_cfbnccvlcod = ecbv1.cfbnccvl_cod
149 WHERE ecned1.cfbnccd_cfbnccdcod IS NULL
150 UNION ALL
151 --Selecionando as outras estruturas
152 SELECT
153 ecned2.cfbnccd_cod,
154 cdb1.niveis_cfbnccd_cod || '>' || ecned2.cfbnccd_cod AS niveis_cfbnccd_cod
155 FROM edu_cfg_bncc_dados ecned2
156 INNER JOIN edu_cfg_bncc_valor ecbv2
157 ON ecned2.cfbnccd_cfbnccvlcod = ecbv2.cfbnccvl_cod
158 INNER JOIN cte_dados_bncc cdb1
159 ON ecned2.cfbnccd_cfbnccdcod = cdb1.cfbnccd_cod
160 WHERE ecned2.cfbnccd_cfbnccdcod IS NOT NULL
161 )
162 SELECT
163 vwdados.niveis_cfbnccd_cod
164 FROM cte_dados_bncc vwdados
165 WHERE vwdados.cfbnccd_cod = in_cfbnccd_cod
166 INTO niveis_cfbnccd_cod;
167
168 RETURN niveis_cfbnccd_cod;
169
170END;
171$BODY$;
172
173ALTER FUNCTION public.get_niveis_cfbnccd_cod_atual(integer)
174 OWNER TO educacao;
175
176CREATE OR REPLACE FUNCTION public.set_update_edu_cfg_bncc_dados_niveis(
177 in_cfbnccd_cod integer)
178RETURNS boolean
179 LANGUAGE 'plpgsql'
180 COST 100
181 VOLATILE
182AS $BODY$
183DECLARE
184 niveis_cfbnccd_cod VARCHAR;
185 var_cfbnccd_cod INTEGER;
186 var_nivel1 VARCHAR;
187 var_nivel2 VARCHAR;
188 var_nivel3 VARCHAR;
189 var_nivel4 VARCHAR;
190 var_nivel5 VARCHAR;
191 var_nivel6 VARCHAR;
192BEGIN
193
194 SELECT get_niveis_cfbnccd_cod_atual(in_cfbnccd_cod)
195 INTO niveis_cfbnccd_cod;
196
197 var_nivel1 = split_part(niveis_cfbnccd_cod,'>',1);
198 var_nivel2 = split_part(niveis_cfbnccd_cod,'>',2);
199 var_nivel3 = split_part(niveis_cfbnccd_cod,'>',3);
200 var_nivel4 = split_part(niveis_cfbnccd_cod,'>',4);
201 var_nivel5 = split_part(niveis_cfbnccd_cod,'>',5);
202 var_nivel6 = split_part(niveis_cfbnccd_cod,'>',6);
203
204 IF (var_nivel1 = '') THEN
205 var_nivel1 = NULL;
206 END IF;
207
208 IF (var_nivel2 = '') THEN
209 var_nivel2 = NULL;
210 END IF;
211
212 IF (var_nivel3 = '') THEN
213 var_nivel3 = NULL;
214 END IF;
215
216 IF (var_nivel4 = '') THEN
217 var_nivel4 = NULL;
218 END IF;
219
220 IF (var_nivel5 = '') THEN
221 var_nivel5 = NULL;
222 END IF;
223
224 IF (var_nivel6 = '') THEN
225 var_nivel6 = NULL;
226 END IF;
227
228 UPDATE edu_cfg_bncc_dados SET
229 cfbnccd_cfbnccdcod_nivel1 = CAST(var_nivel1 AS INTEGER),
230 cfbnccd_cfbnccdcod_nivel2 = CAST(var_nivel2 AS INTEGER),
231 cfbnccd_cfbnccdcod_nivel3 = CAST(var_nivel3 AS INTEGER),
232 cfbnccd_cfbnccdcod_nivel4 = CAST(var_nivel4 AS INTEGER),
233 cfbnccd_cfbnccdcod_nivel5 = CAST(var_nivel5 AS INTEGER),
234 cfbnccd_cfbnccdcod_nivel6 = CAST(var_nivel6 AS INTEGER)
235 WHERE cfbnccd_cod = in_cfbnccd_cod;
236
237 RETURN true;
238END;
239$BODY$;
240
241ALTER FUNCTION public.set_update_edu_cfg_bncc_dados_niveis(integer)
242 OWNER TO educacao;
243
244DROP FUNCTION public.trigger_update_edu_cfg_bncc_dados_niveis();
245
246CREATE FUNCTION public.trigger_update_edu_cfg_bncc_dados_niveis()
247 RETURNS trigger
248 LANGUAGE 'plpgsql'
249 COST 100
250 VOLATILE NOT LEAKPROOF
251AS $BODY$
252DECLARE
253 niveis_cfbnccd_cod VARCHAR;
254 var_cfbnccd_cod INTEGER;
255 var_nivel1 VARCHAR;
256 var_nivel2 VARCHAR;
257 var_nivel3 VARCHAR;
258 var_nivel4 VARCHAR;
259 var_nivel5 VARCHAR;
260 var_nivel6 VARCHAR;
261BEGIN
262
263 IF (TG_OP = 'INSERT' OR TG_OP = 'UPDATE') THEN
264 PERFORM set_update_edu_cfg_bncc_dados_niveis(NEW.cfbnccd_cod);
265 END IF;
266
267 RETURN NEW;
268
269END;
270$BODY$;
271
272ALTER FUNCTION public.trigger_update_edu_cfg_bncc_dados_niveis()
273 OWNER TO educacao;
274
275
276CREATE TRIGGER tr_edu_cfg_bncc_dados
277 AFTER INSERT OR UPDATE OF cfbnccd_cfbnccdcod, cfbnccd_cfbnccvlcod
278 ON public.edu_cfg_bncc_dados
279FOR EACH ROW
280 EXECUTE PROCEDURE public.trigger_update_edu_cfg_bncc_dados_niveis();
281
282INSERT INTO public.edu_cfg_bncc_valor(cfbnccvl_cod, cfbnccvl_cfbnccestcod, cfbnccvl_sigla, cfbnccvl_maincod, cfbnccvl_descricao, cfbnccd_comentarios)
283VALUES
284 --ens infantil - faixa etaria
285 (1, 1, '01', NULL, 'Bebês (zero a 1 ano e 6 meses)', NULL),
286 (2, 1, '02', NULL, 'Crianças bem pequenas (1 ano e 7 meses a 3 anos e 11 meses)', NULL),
287 (3, 1, '03', NULL, 'Crianças pequenas (4 anos a 5 anos e 11 meses)', NULL),
288 --ens infantil - campos de experiencia
289 (4, 2, 'EO', NULL, 'O eu, o outro e o nós', NULL),
290 (5, 2, 'CG', NULL, 'Corpo, gestos e movimentos', NULL),
291 (6, 2, 'TS', NULL, 'Traços, sons, cores e formas', NULL),
292 (7, 2, 'EF', NULL, 'Escuta, fala, pensamento e imaginação', NULL),
293 (8, 2, 'ET', NULL, 'Espaços, tempos, quantidades, relações e transformações', NULL),
294 --ens infantil - objetivo de aprendizagem
295 (9, 3, '01', 'EI01EO01', 'Perceber que suas ações têm efeitos nas outras crianças e nos adultos.', NULL),
296 (10, 3, '02', 'EI01EO02', 'Perceber as possibilidades e os limites de seu corpo nas brincadeiras e interações das quais participa.', NULL),
297 (11, 3, '01', 'EI02EO01', 'Demonstrar atitudes de cuidado e solidariedade na interação com crianças e adultos.', NULL),
298 (25, 3, '01', 'EI01CG01', 'Movimentar as partes do corpo para exprimir corporalmente emoções, necessidades e desejos.', NULL),
299 --ens fundamental - matematica - unidade tematica
300 (12, 4, NULL, NULL, 'Números', NULL),
301 (13, 4, NULL, NULL, 'Álgebra', NULL),
302 (14, 4, NULL, NULL, 'Geometria', NULL),
303 (15, 4, NULL, NULL, 'Grandezas e medidas', NULL),
304 (16, 4, NULL, NULL, 'Probabilidade e estatística', NULL),
305 --ens fundamental - matematica - objeto conhecimento
306 (17, 5, NULL, NULL, 'Contagem de rotina; Contagem ascendente e descendente; Reconhecimento de números no contexto diário: indicação de quantidades, indicação de ordem ou indicação de código para a organização de informações', NULL),
307 (18, 5, NULL, NULL, 'Quantificação de elementos de uma coleção: estimativas, contagem um a um, pareamento ou outros agrupamentos e comparação', NULL),
308 (19, 5, NULL, NULL, 'Padrões figurais e numéricos: investigação de regularidades ou padrões em sequências', NULL),
309 (20, 5, NULL, NULL, 'Localização de objetos e de pessoas no espaço, utilizando diversos pontos de referência e vocabulário apropriado', NULL),
310 --ens fundamental - matematica - habilidade
311 (21, 6, '01', 'EF01MA01', 'Utilizar números naturais como indicador de quantidade ou de ordem em diferentes situações cotidianas e reconhecer situações em que os números não indicam contagem nem ordem, mas sim código de identificação.', NULL),
312 (22, 6, '01', 'EF01MA02', 'Contar de maneira exata ou aproximada, utilizando diferentes estratégias como o pareamento e outros agrupamentos.', NULL),
313 (23, 6, '09', 'EF01MA09', 'Organizar e ordenar objetos familiares ou representações por figuras, por meio de atributos, tais como cor, forma e medida.', NULL),
314 (24, 6, '11', 'EF01MA11', 'Descrever a localização de pessoas e de objetos no espaço em relação à sua própria posição, utilizando termos como à direita, à esquerda, em frente, atrás.', NULL),
315 --ens fundamental - lingua portuguesa - campos de atuacao
316 (26, 7, NULL, NULL, 'Todos os campos de atuação', NULL),
317 (27, 7, NULL, NULL, 'Campo da vida cotidiana', NULL),
318 (28, 7, NULL, NULL, 'Campo da vida pública', NULL),
319 (29, 7, NULL, NULL, 'Campo das práticas de estudo e pesquisa', NULL),
320 (30, 7, NULL, NULL, 'Campo artístico-literário', NULL),
321 (31, 7, NULL, NULL, 'Campo jornalístico/midiático', NULL),
322 --ens fundamental - lingua portuguesa - praticas de linguagem
323 (32, 8, NULL, NULL, 'Leitura/escuta (compartilhada e autônoma)', NULL),
324 (33, 8, NULL, NULL, 'Escrita(compartilhada e autônoma)', NULL),
325 (34, 8, NULL, NULL, 'Análise linguística/semiótica (Alfabetização)', NULL),
326 (35, 8, NULL, NULL, 'Oralidade', NULL),
327 (36, 8, NULL, NULL, 'Produção de textos(escrita compartilhada e autônoma)', NULL),
328 --ens fundamental - lingua portuguesa - objetos conhecimento
329 (37, 9, NULL, NULL, 'Protocolos de leitura', NULL),
330 (38, 9, NULL, NULL, 'Correspondência fonema-grafema', NULL),
331 (39, 9, NULL, NULL, 'Construção do sistema alfabético/ Convenções da escrita', NULL),
332 (40, 9, NULL, NULL, 'Conhecimento do alfabeto do português do Brasil', NULL),
333 (44, 9, NULL, NULL, 'Textualização de textos argumentativos e apreciativos', NULL),
334 (46, 9, NULL, NULL, 'Planejamento de texto', NULL),
335 --ens fundamental - lingua portuguesa - habilidade
336 (41, 10, '01', 'EF01LP01', 'Reconhecer que textos são lidos e escritos da esquerda para a direita e de cima para baixo da página.', NULL),
337 (42, 10, '02', 'EF01LP02', 'Escrever, espontaneamente ou por ditado, palavras e frases de forma alfabética - usando letras/grafemas que representem fonemas.', NULL),
338 (43, 10, '03', 'EF01LP03', 'Observar escritas convencionais, comparando-as às suas produções escritas, percebendo semelhanças e diferenças.', NULL),
339 (45, 10, '03', 'EF09LP03', 'Produzir artigos de opinião, tendo em vista o contexto de produção dado, assumindo posição diante de tema polêmico, argumentando de acordo com a estrutura própria desse tipo de texto e utilizando diferentes tipos de argumentos - de autoridade, comprovação, exemplificação princípio etc.', NULL),
340 (47, 10, '03', 'EF15LP05', 'Planejar, com a ajuda do professor, o texto que será produzido, considerando a situação comunicativa, os interlocutores (quem escreve/para quem escreve); a finalidade ou o propósito (escrever para quê); a circulação (onde o texto vai circular); o suporte (qual é o portador do texto); a linguagem, organização e forma do texto e seu tema, pesquisando em meios impressos ou digitais, sempre que for preciso, informações necessárias à produção do texto, organizando em tópicos os dados e as fontes pesquisadas.', NULL)
341;
342
343INSERT INTO public.edu_cfg_bncc_dados(cfbnccd_cod, cfbnccd_cfbnccdcod, cfbnccd_cfbnccvlcod,cfbnccd_ordem)
344VALUES
345 --ens infantil
346 (1, NULL, 1, 1), --Bebês
347 (2, 1, 4, 1), --O eu, o outro e o nós
348 (3, 2, 9, 1), --EI01EO01
349 (4, 2, 10, 2), --EI01EO02
350 (5, 1, 5, 2), --Corpo, gestos e movimentos
351 (13, 5, 25, 1), --EI01CG01
352 (6, NULL, 2, 2), --Crianças bem pequenas
353 (7, 6, 4, 1), --O eu, o outro e o nós
354 (8, 7,11, 1), --EI02EO01
355 (9, NULL, 3, 3), --Crianças pequenas
356 (10, 9, 4, 1), --O eu, o outro e o nós
357 (11, 9, 5, 2), --Corpo, gestos e movimentos
358 (12, 9, 6, 3), --Traços, sons, cores e formas
359 --ens fundamental - matematica
360 (14, NULL, 12, 1), --Números
361 (15, 14, 17, 1), --Contagem de rotina; Contagem ascendente e descendente;...
362 (16, 15, 21, 1), --EF01MA01
363 (17, 14, 18, 2), --Quantificação de elementos de uma coleção: estimativas,..
364 (18, 17, 22, 1), --EF01MA02
365 (19, NULL, 13, 2), --Álgebra
366 (20, 19, 19, 1), --Padrões figurais e numéricos: investigação...
367 (21, 20, 23, 1), --EF01MA09
368 (22, NULL, 14, 3), --Geometria
369 (23, 22, 20, 1), --Localização de objetos e de pessoas...
370 (24, 23, 24, 1), --EF01MA11
371 --ens fundamental - lingua portuguesa
372 (25, NULL, 26, 1), --Todos os campos de atuação
373 (26, 25, 32, 1), -- Leitura/escuta (compartilhada e autônoma)
374 (27, 26, 37, 1), -- Protocolos de leitura
375 (28, 27, 41, 1), -- EF01LP01
376 (29, 25, 33, 2), -- Escrita(compartilhada e autônoma
377 (30, 29, 38, 1), -- Correspondência fonema-grafem
378 (31, 30, 42, 1), -- EF01LP02
379 (32, 29, 39, 2), -- Construção do sistema alfabético/ Convenções da escrita
380 (33, 32, 43, 1), -- EF01LP03
381 (38, 25, 36, 3), -- Produção de textos(escrita compartilhada e autônoma)
382 (39, 38, 46, 1), -- Planejamento de texto
383 (40, 39, 47,1), -- EF15LP05
384 (34, NULL, 31, 6), --Campo jornalístico/midiático
385 (35, 34, 36, 1), --Produção de textos(escrita compartilhada e autônoma)
386 (36, 35, 44, 1), --Textualização de textos argumentativos e apreciativos
387 (37, 36, 45, 1) --EF09LP03
388;