Changes between Version 80 and Version 81 of rfc:datamodel


Ignore:
Timestamp:
09/01/15 09:01:51 (11 years ago)
Author:
gribeiro
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • rfc:datamodel

    v80 v81  
    1 = TerraMA² - Request for Comment - Modelo de Dados da Versão 4.0.0 = 
    2  
    3  
    4 **Autores:** Gilberto Ribeiro de Queiroz, Jano Simas, Vinícius Campanha, Paulo Remoli.\\  
    5 **Revisor:** Eymar Lopes\\  
    6 **Data:** 20/08/2015 
    7  
    8 **Resumo:** //Este documento apresenta o modelo de dados do TerraMA² na versão 3.x e a proposta de modificações para a versão 4.x.// 
    9  
    10 [https://trac.dpi.inpe.br/terrama2/wiki/rfc%3Adatamodel#ModelodeDadosdaVersão3.x == Modelo de Dados da Versão 3.x == ] 
    11 [[BR]] 
    12 [https://trac.dpi.inpe.br/terrama2/wiki/rfc%3Adatamodel#ModelodeDadosdaVersão4.x == Modelo de Dados da Versão 4.x == ] 
    13  
    14 [[BR]] 
    15 [[BR]] 
    16  
    17 == Modelo de Dados da Versão 3.x == 
    18  
    19  ws_dbco::  
    20         Tabela de controle de versão do esquema do BD TerraMA2. 
    21  
    22 ||||||= Tabela: **ws_dbco** =|| 
    23 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    24 || dbcoin_schema || integer || NOT NUL || 
    25 || dbcovc_desc || varchar(100) || NOT NULL || 
    26 || dbcobo_studydb || boolean || NOT NULL || 
    27  
    28 Note que esta tabela contém também um atributo para indicar se o banco de dados é destinado ou não a estudos. 
    29  
    30 **??Esta tabela agora armazenará configurações do banco de dados e não somente informações sobre a versão do esquema.??** 
    31  
    32 ---- 
    33  
    34  ws_conn:: 
    35         Esta tabela armazena as configurações dos servidores de dados: FTP, Arquivo ou serviço OGC. 
    36  
    37 ||||||= Tabela: **ws_conn** =|| 
    38 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    39 || connse_id || serial || UNIQUE || 
    40 || connvc_name || varchar(60) || NOT NULL || 
    41 || connvc_protocol || varchar(4) || || 
    42 || connvc_url || varchar(255) || || 
    43 || connin_interval_minutes || integer || || 
    44 || connvc_username || varchar(50) || || 
    45 || connvc_password || varchar(50) || || 
    46 || connin_port || integer || || 
    47 || connte_details || text || || 
    48 || connbo_active || boolean || NOT NULL || 
    49 || connte_base_path || text || || 
    50  
    51 O campo //connvc_protocol// pode assumir um dos seguintes valores: 'FTP', 'HTTP', 'FILE' ou 'OGC'. 
    52  
    53 **Nota:** atualmente esta tabela está sem uma chave primária definida. Apenas uma definição de UNIQUE é aplicada sobre a coluna //connse_id// após a criação da tabela. 
    54  
    55 ---- 
    56  ws_dcon:: 
    57         Contém as informações da configuração de coleta de cada série de dados proveniente de um servidor de dados. 
    58  
    59 ||||||= Tabela: **ws_dcon** =|| 
    60 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    61 || dconse_id || SERIAL || PRIMARY KEY || 
    62 || dconvc_name || varchar(200) || UNIQUE || 
    63 || dconte_type || text || || 
    64 || projection_id || integer || UNIQUE || 
    65 || dconre_spatial_resolution || real || || 
    66 || dconre_update_freq_minutes || real || || 
    67 || dconte_details || text || NOT NULL || 
    68 || dconte_path || text || || 
    69 || dconte_mask || text || || 
    70 || dconte_timezone || text || NOT NULL DEFAULT '+00:00' || 
    71 || dconte_prefix || text || || 
    72 || dconte_unit || varchar(20) || || 
    73 || dconte_format || text || NOT NULL || 
    74 || dconte_geometry || text || || 
    75 || connse_id || integer || || 
    76 || dconte_ascii_grid_coord_unit || text || || 
    77 || dconte_tiff_navigation_file || text || || 
    78 || dconte_pcd_collection_rule_lua_script || text || DEFAULT NULL || 
    79 || dconte_grads_ctl_file || text || || 
    80 || dconte_grads_data_type || text || || 
    81 || dconre_grads_multiplier || real || DEFAULT 1 || 
    82 || dconte_grads_swap || text || || 
    83 || dconin_grads_numbands || integer || || 
    84 || dconin_grads_bandheader || integer || || 
    85 || dconin_grads_bandtrailler || integer || || 
    86 || dconin_grads_bandtimeoffset || integer || || 
    87 || dconvc_pcd_infl_type || varchar(20) || || 
    88 || pcd_theme_id || integer || || 
    89 || dconvc_pcd_attribute || varchar(30) || || 
    90 || dconre_wcs_dummy || real || DEFAULT NULL || 
    91 || dconte_wfs_pcd_id_attr || text || DEFAULT NULL || 
    92 || dconte_wfs_pcd_timestamp_attr || text || DEFAULT NULL || 
    93 || dconte_wfs_pcd_timestamp_mask || text || DEFAULT NULL || 
    94 || dconmo_aux_id || integer || DEFAULT NULL || 
    95  
    96 O campo //dconte_ascii_grid_coord_unit// pode conter um dos seguintes valores: 'DECIMAL_DEGREES' ou 'MILLIDEGREES'. 
    97  
    98 O campo //dconte_format// pode conter um dos seguintes valores: 'ASCII-Grid', 'PCD', 'TIFF', 'GrADS', 'Additional Map', 'PROARCO File', 'Model', 'OGC WCS', 'PCD OGC WFS', 'Surface' ou 'Instrument'. 
    99  
    100 O campo //dconte_geometry// pode conter um dos seguintes valores: 'RASTER', 'POINTS' ou 'POINTSDIFF'. 
    101  
    102 O campo //dconte_grads_data_type// pode conter um dos seguintes valores: 'FLOAT32' ou 'INTEGER16' 
    103  
    104 O campo //dconte_grads_swap// pode conter um dos seguintes valores: 'AUTO', LITTLEENDIAN' ou 'BIGENDIAN'. 
    105  
    106 O campo //dconte_type// pode conter um dos seguintes valores: 'PREDICTED_RAIN', 'ACCUMULATED_RAIN' ou 'OTHER' 
    107  
    108 O campo //dconvc_pcd_infl_type// pode conter um dos seguintes valores: 'RADIUS_TOUCH', 'RADIUS_CENTER' ou 'THEME'. 
    109  
    110 Chaves estrangeiras: 
    111   * connse_id: referencia //ws_conn(connse_id)// 
    112     * ON DELETE RESTRICT ON UPDATE RESTRICT 
    113   * projection_id: referencia //te_projection(projection_id)// 
    114     * ON DELETE RESTRICT ON UPDATE RESTRICT 
    115   * pcd_theme_id: referencia //te_theme(theme_id)// 
    116     * ON DELETE RESTRICT ON UPDATE RESTRICT 
    117   * dconmo_aux_id: referencia //ws_anru(anruse_id)// 
    118     * ON DELETE CASCADE; 
    119  
    120 ---- 
    121  ws_dcof::  
    122         Armazena informações sobre filtros das séries de dados. Estes filtros podem ser por data, relacionamento espacial ou por uma pré-análise. 
    123  
    124 ||||||= Tabela: **ws_dcof** =|| 
    125 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    126 || dcofse_id || serial || PRIMARY KEY || 
    127 || dconse_id || integer || NOT NULL || 
    128 || dcofbo_date_before_enabled || boolean || DEFAULT false || 
    129 || dcofda_date_before || date || || 
    130 || dcofbo_date_after_enabled || boolean || DEFAULT false || 
    131 || dcofda_date_after || date || || 
    132 || dcofte_area_filter_type || text || NOT NULL || 
    133 || dcofre_x_min || real || || 
    134 || dcofre_x_max || real || || 
    135 || dcofre_y_min || real || || 
    136 || dcofre_y_max || real || || 
    137 || dcofin_theme_id || integer || || 
    138 || dcofte_preanalysis_type || text || NOT NULL || 
    139 || dcofre_preanalysis_value || real || || 
    140 || dcofbo_preanalysis_theme_enabled || boolean || DEFAULT false || 
    141 || dcofin_preanalysis_theme || integer || || 
    142 || dcofte_band_filter || text || || 
    143 || dcofdu_dummy || real || NOT NULL DEFAULT -10.0 || 
    144 || dcofdu_usedu || boolean || NOT NULL DEFAULT false || 
    145  
    146 Chaves estrangeiras: 
    147   * dconse_id: referencia //ws_dcon(dconse_id)// 
    148     * ON DELETE CASCADE 
    149  
    150 ---- 
    151  ws_pcd::  
    152         Localização geográfica, situação e máscara de nome da PCD. 
    153  
    154 ||||||= Tabela: **ws_pcd** =|| 
    155 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    156 || pcdse_id || serial || PRIMARY KEY || 
    157 || dconse_id || integer || || 
    158 || pcdte_file_name || text || NOT NULL || 
    159 || pcdre_latitude || real || NOT NULL || 
    160 || pcdre_longitude ||real || NOT NULL || 
    161 || pcdbo_active || boolean || DEFAULT true || 
    162  
    163 Chaves estrangeiras: 
    164   * dconse_id: referencia //ws_dcon(dconse_id)// 
    165     * ON DELETE RESTRICT ON UPDATE RESTRICT 
    166  
    167 Campos únicos: (dconse_id, pcdte_file_name) 
    168  
    169 ---- 
    170  ws_pclo::  
    171         Log de coleta de dados da PCD (date_time_collection: quando o TerraMA recebeu o arquivo) 
    172  
    173 ||||||= Tabela: **ws_pclo** =|| 
    174 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    175 || pclose_id || serial || PRIMARY KEY || 
    176 || dconse_id || integer || NOT NULL || 
    177 || pclote_pcd_name || text || NOT NULL || 
    178 || pclore_longitude || real || NOT NULL || 
    179 || pclore_latitude || real || NOT NULL || 
    180 || pclots_timestamp || timestamp without time zone || NOT NULL || 
    181 || pclots_date_time_collection || timestamp without time zone || NOT NULL DEFAULT NOW() || 
    182  
    183 Chaves estrangeiras: 
    184   * dconse_id: referencia //ws_dcon(dconse_id)// 
    185     * ON DELETE RESTRICT ON UPDATE RESTRICT 
    186  
    187 ---- 
    188  ws_pcsu:: 
    189         Armazena os parâmetros de interpolação da série de dados PCD utilizadas na criação de novas superfícies. 
    190  
    191 ||||||= Tabela: **ws_pcsu** =|| 
    192 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    193 || pcsuse_id || serial || PRIMARY KEY || 
    194 || dconse_id || integer || NOT NULL || 
    195 || pcsute_attribute_name || text || || 
    196 || pcsute_grid_output_name || text || || 
    197 || pcsute_method || text || || 
    198 || pcsuin_number_neighbors || integer || || 
    199 || pcsuin_pow_value || integer || || 
    200 || pcsudp_roi_x1 || real || || 
    201 || pcsudp_roi_y1 || real || || 
    202 || pcsudp_roi_x2 || real || || 
    203 || pcsudp_roi_y2 || real || || 
    204 || pcsuid_res_unit || text || || 
    205 || pcsudp_res_x || real || || 
    206 || pcsudp_res_y || real || || 
    207 || pconse_id || integer || || 
    208  
    209 Chaves estrangeiras: 
    210   * dconse_id: referencia //ws_dcon(dconse_id)// 
    211     * ON DELETE CASCADE 
    212   * pconse_id: referencia //ws_dcon(dconse_id)// 
    213     * ON DELETE RESTRICT ON UPDATE RESTRICT 
    214  
    215  
    216 ---- 
    217  ws_sclo::  
    218         Tabela de registro das superficies criadas/coletadas  
    219  
    220 ||||||= Tabela: **ws_sclo** =|| 
    221 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    222 || sclose_id || serial || PRIMARY KEY || 
    223 || sclots_date_time_file || timestamp without time zone || NOT NULL || 
    224 || sclots_date_time_collection || timestamp without time zone || NOT NULL || 
    225 || dconse_id || integer || NOT NULL || 
    226 || surfac_id || integer || NOT NULL || 
    227 || repres_id || integer || || 
    228  
    229 Chaves estrangeiras: 
    230   * dconse_id: referencia //ws_dcon(dconse_id)// 
    231     * ON DELETE RESTRICT ON UPDATE RESTRICT 
    232   * surfac_id: referencia //ws_dcon(dconse_id)// 
    233     * ON DELETE RESTRICT ON UPDATE RESTRICT 
    234   * repres_id: referencia //te_representation(repres_id)// 
    235     * ON DELETE RESTRICT ON UPDATE RESTRICT 
    236  
    237  
    238  
    239  
    240 ---- 
    241  ws_dclo::  
    242         Esta tabela contém o log da coleta de dados. 
    243  
    244 ||||||= Tabela: **ws_dclo** =|| 
    245 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    246 || dclose_id || serial || PRIMARY KEY || 
    247 || dclots_date_time_file || timestamp without time zone || NOT NULL || 
    248 || dclots_date_time_collection || timestamp without time zone || NOT NULL || 
    249 || dconse_id || integer || NOT NULL || 
    250 || dclovc_absolutefilepath || character varying(255) || || 
    251 || repres_id || integer || || 
    252  
    253 Chaves estrangeiras: 
    254   * dconse_id: referencia //ws_dcon(dconse_id)// 
    255     * ON DELETE RESTRICT ON UPDATE RESTRICT 
    256   * repres_id: referencia //te_representation(repres_id)// 
    257     * ON DELETE RESTRICT ON UPDATE RESTRICT 
    258  
    259 Índices: 
    260   * (dclots_date_time_collection); 
    261  
    262 ---- 
    263  ws_pcat::  
    264         Esta tabela contém atributos de coleta de pontos, guarda cada linha e valor dos atributos coletados de uma PCD 
    265  
    266 ||||||= Tabela: **ws_pcat** =|| 
    267 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    268 || pcatse_id || serial || PRIMARY KEY || 
    269 || pclose_id || integer || NOT NULL || 
    270 || pcatte_attr_name || text || NOT NULL || 
    271 || pcatre_attr_value || real || NOT NULL || 
    272  
    273 Chave estrangeira: 
    274   * pclose_id: referencia //ws_pclo(pclose_id)// 
    275     * ON DELETE CASCADE 
    276  
    277  
    278 ---- 
    279  ws_anru::  
    280         Regras de análise 
    281  
    282 ||||||= Tabela: **ws_anru** =|| 
    283 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    284  
    285 ---- 
    286  ws_fiop::  
    287         Tabela para armazenar as operações que o usuário deseja utilizar para o preenchimento de celulas dos espaços celulares (apenas para análises TerraME) 
    288  
    289 ||||||= Tabela: **ws_flop** =|| 
    290 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    291  
    292  
    293 ---- 
    294  ws_inds::  
    295         Data Sources de entrada 
    296  
    297 ||||||= Tabela: **ws_inds** =|| 
    298 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    299  
    300 **Nota:** a descrição não me parece coerene 
    301  
    302 ---- 
    303  ws_vers::  
    304         Tabela para controle da versão do esquema do sistema 
    305  
    306 **NOTA:** Não achei estatabela no script do TerraMA2 versão 3.x 
    307 ---- 
    308  ws_usnf::  
    309         Tabela de filtros de região para a notificação 
    310  
    311 ||||||= Tabela: **ws_usnf** =|| 
    312 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    313  
    314 ---- 
    315  ws_blge::  
    316         Tabela para informar os boletins gerados 
    317  
    318 ||||||= Tabela: **ws_blge** =|| 
    319 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    320  
    321 ---- 
    322  ws_anat::  
    323         Tabela de registro dos atributos acrescentados pela análise    
    324  
    325 ||||||= Tabela: **ws_anat** =|| 
    326 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    327  
    328 ---- 
    329  ws_dica::  
    330         Tabela contendo os atributos dos planos adicionais que devem ser mostrados junto com a visualização de alerta  
    331  
    332 ||||||= Tabela: **ws_dica** =|| 
    333 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    334  
    335 ---- 
    336  ws_csma::  
    337         Tabela para armazenar os espaços celulares que serão utilizados pelo TerraME 
    338  
    339 ||||||= Tabela: **ws_csma** =|| 
    340 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    341  
    342 ---- 
    343  ws_intr::  
    344         Adiciona tabela para armazenar as operações de interseção que serão usadas no pre-processamento sobre dados pontuais em diferentes localizações. As colunas são preenchidas conforme o tipo de layer usado na interseção: raster estático (intrin_theme_id e intrte_bands), vetor estático (intrin_theme_id e intrte_attribute), fonte de dados (intrin_data_source) 
    345  
    346 ||||||= Tabela: **ws_intr** =|| 
    347 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    348  
    349  
    350 ---- 
    351  ws_pnti::  
    352         Tabela para armazenar a figura que o ponto vai ser representado 
    353  
    354 ||||||= Tabela: **ws_pnti** =|| 
    355 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    356  
    357 **Nota:** descrição deve ser mais precisa! 
    358  
    359 ---- 
    360  ws_imag::  
    361         Tabela para armazenar as figuras 
    362  
    363 ||||||= Tabela: **ws_imag** =|| 
    364 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    365  
    366 ---- 
    367  ws_riup::  
    368         Tabela para armazenar as atualizações 
    369  
    370 ||||||= Tabela: **ws_riup** =|| 
    371 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    372  
    373 **Nota:** Atualizações do que? 
    374  
    375 ---- 
    376  ws_pins::  
    377         Tabela para armazenar os alertas por instrumento 
    378  
    379 ||||||= Tabela: **ws_pins** =|| 
    380 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    381  
    382 ---- 
    383  ws_bull::  
    384         Tabela de boletins 
    385  
    386 ||||||= Tabela: **ws_bull** =|| 
    387 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    388  
    389 ---- 
    390  ws_blan::  
    391         Tabela de associação entre boletim e análise 
    392  
    393 ||||||= Tabela: **ws_blan** =|| 
    394 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    395  
    396 ---- 
    397  ws_blus::  
    398         Tabela de associação entre boletim e usuários 
    399  
    400 ||||||= Tabela: **ws_blus** =|| 
    401 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    402  
    403 ---- 
    404  ws_arru::  
    405         Tabela para armazenamento das regras de arquivamento de dados 
    406  
    407 ||||||= Tabela: **ws_arru** =|| 
    408 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    409  
    410 ---- 
    411  ws_rmpr::  
    412         Tabela de propriedades dos atributos dos Mapas de Risco 
    413  
    414 ||||||= Tabela: **ws_rmpr** =|| 
    415 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    416  
    417 ---- 
    418  ws_adma::  
    419         Tabela para armazenar os mapas adicionais 
    420  
    421 ||||||= Tabela: **ws_adma** =|| 
    422 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    423  
    424 ---- 
    425  ws_anlo::  
    426         Tabela para armazenar os logs de análise  
    427  
    428 ||||||= Tabela: **ws_anlo** =|| 
    429 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    430  
    431  
    432 ---- 
    433  ws_dslo::  
    434         Associa um log de análise com um dado usado na análise 
    435  
    436 ||||||= Tabela: **ws_dslo** =|| 
    437 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    438  
    439  
    440 ---- 
    441  ws_dico::  
    442         Configuração de exibição 
    443  
    444 ||||||= Tabela: **ws_dico** =|| 
    445 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    446  
    447  
    448 ---- 
    449  ws_rima::  
    450         Mapa de riscos 
    451  
    452 ||||||= Tabela: **ws_rima** =|| 
    453 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    454  
    455 ---- 
    456  ws_rmpr::  
    457         Propriedades dos atributos do mapa de risco 
    458  
    459 ||||||= Tabela: **ws_rmpr** =|| 
    460 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    461  
    462  
    463 ---- 
    464  ws_user::  
    465         Tabela de usuários 
    466  
    467 ||||||= Tabela: **ws_user** =|| 
    468 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    469  
    470 ---- 
    471  ws_usvi::  
    472         Views por usuário 
    473  
    474 ||||||= Tabela: **ws_usvi** =|| 
    475 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    476  
    477  
    478 ---- 
    479  ws_walo::  
    480         Log de alertas 
    481  
    482 ||||||= Tabela: **ws_walo** =|| 
    483 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    484  
    485  
    486 ------- 
    487  
    488  
    489 == Modelo de Dados da Versão 4.x == 
    490  
    491  
    492  
    493  
    494  
    495  
    496  
    497  admin_collection:: -> Arquivo xml do projeto item: <collection> 
    498 Paramêtros de configuração do serviço de coleta configurados no módulos de administração. 
    499  
    500 ||||||= Tabela: **admin_collection** =|| 
    501 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    502 || project_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    503 || log_output_file || character varying(255) ||  NOT NULL ||  
    504 || timeout_min || integer ||  ||  
    505 || default_path || character varying(255) ||  ||  
    506 || service_port_number || integer ||  NOT NULL ||  
    507 || service_parameters || text ||  ||  
    508 || service_address || text ||  NOT NULL ||  
    509 || service_command || text ||  NOT NULL ||  
    510  
    511 Chaves Estrangeiras: 
    512  
    513   * project_id: referencia //project(id)// 
    514     * ON UPDATE CASCADE ON DELETE CASCADE 
    515  
    516 ------- 
    517  
    518  project:: ->  Arquivo xml do projeto item: sismaden 
    519 Tabela onde são armazenadas as configurações do projeto. 
    520  
    521 ||||||= Tabela: **project** =|| 
    522 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    523 || id || integer ||  PRIMARY KEY NOT NULL ||  
    524 || name || character varying(200) ||  UNIQUE NOT NULL ||  
    525 || study || boolean ||  ||  
    526  
    527 ------- 
    528  
    529  project_server:: -> Não existe no modelo antigo pois era um projeto por banco. 
    530 Relaciona os servidores com o projeto. 
    531  
    532 ||||||= Tabela: **project_server** =|| 
    533 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    534 || project_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    535 || server_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    536  
    537 Chaves Estrangeiras: 
    538  
    539   * project_id: referencia //project(id)// 
    540     * ON UPDATE CASCADE ON DELETE CASCADE 
    541   * server_id: referencia //server(id)// 
    542     * ON UPDATE CASCADE ON DELETE CASCADE 
    543  
    544 ------- 
    545  
    546  user_roles:: -> Não existe no modelo antigo. 
    547 Perfis de acesso para compartilhamento dos servidores e coletores. Nesses perfis será definido o tipo de permissão que os usuário podem ter (ex.: leitura, escrita, nenhum) 
    548  
    549 ||||||= Tabela: **user_roles** =|| 
    550 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    551 || id || integer ||  PRIMARY KEY NOT NULL ||  
    552 || role || character varying(20) ||  NOT NULL ||  
    553 || description || text ||  NOT NULL ||  
    554  
    555 ------- 
    556  
    557  users:: -> ws_user 
    558 Armazena as informação pessoais do usuário como email e nome e também login e senha. A partir dessa tabela poderão ser criados perfis de acesso a cada componente. 
    559  
    560 ||||||= Tabela: **users** =|| 
    561 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    562 || id || integer ||  PRIMARY KEY NOT NULL ||  
    563 || login || character varying(20) ||  UNIQUE NOT NULL ||  
    564 || password || character varying(20) ||  NOT NULL ||  
    565 || name || character varying(200) ||  NOT NULL ||  
    566 || email || character varying(50) ||  NOT NULL ||  
    567 || cellphone || character varying(20) ||  NOT NULL ||  
    568  
    569 ------- 
    570  
    571  project_user:: -> Não existe no modelo antigo. 
    572 Esta tabela serve para definir o compartilhamento de servidores e coletores entre os projetos. 
    573  
    574 ||||||= Tabela: **project_user** =|| 
    575 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    576 || user_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    577 || project_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    578 || role_id || integer ||  FOREIGN KEY NOT NULL ||  
    579  
    580 Chaves Estrangeiras: 
    581  
    582   * user_id: referencia //users(id)// 
    583     * ON UPDATE CASCADE ON DELETE CASCADE 
    584   * role_id: referencia //user_roles(id)// 
    585     * ON UPDATE CASCADE ON DELETE RESTRICT 
    586   * project_id: referencia //project(id)// 
    587     * ON UPDATE CASCADE ON DELETE CASCADE 
    588  
    589 ------- 
    590  
    591  server:: -> ws_conn 
    592 Parametros de conexão. Define um servidor que será acessado, mais de um coletor pode acessar o mesmo servidor. 
    593  
    594 ||||||= Tabela: **server** =|| 
    595 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    596 || id || integer ||  PRIMARY KEY NOT NULL ||  
    597 || name || character varying(60) ||  UNIQUE NOT NULL ||  
    598 || protocol || character varying(4) ||  ||  
    599 || url || character varying(255) ||  ||  
    600 || username || character varying(50) ||  ||  
    601 || password || character varying(50) ||  ||  
    602 || port || integer ||  ||  
    603 || description || text ||  ||  
    604 || active || boolean ||  NOT NULL ||  
    605 || base_path || character varying(255) ||  ||  
    606  
    607 ‘active’ : Define se os coletores que utilizam essa conexão podem ser acessados. 
    608  
    609 ------- 
    610  
    611  collector_server:: -> No modelo atual a tabela ws_dcon tem uma chave estrangeira para o ws_conn. 
    612 Associa os coletores a um servidor de arquivo, mais de um coletor pode ser associado ao mesmo servidor mas um coletor só pode ter um servidor associado. 
    613  
    614 ||||||= Tabela: **collector_server** =|| 
    615 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    616 || collector_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    617 || server_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    618  
    619 Chaves Estrangeiras: 
    620  
    621   * server_id: referencia //server(id)// 
    622     * ON UPDATE CASCADE ON DELETE CASCADE 
    623   * collector_id: referencia //collector(id)// 
    624     * ON UPDATE CASCADE ON DELETE CASCADE 
    625  
    626 ------- 
    627  
    628  interpolator:: -> ws_pcsu 
    629 Armazena  os parâmetros de interpolação utilizados para criar as superfícies. 
    630  
    631 ||||||= Tabela: **interpolator** =|| 
    632 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    633 || id || integer ||  PRIMARY KEY NOT NULL ||  
    634 || attribute_name || text ||  ||  
    635 || grid_output_name || text ||  ||  
    636 || method || text ||  ||  
    637 || number_neighbors || integer ||  ||  
    638 || pow_value || integer ||  ||  
    639 || roi_x1 || double precision ||  ||  
    640 || roi_y1 || double precision ||  ||  
    641 || roi_x2 || double precision ||  ||  
    642 || roi_y2 || double precision ||  ||  
    643 || res_unit || text ||  ||  
    644 || res_x || double precision ||  ||  
    645 || res_y || double precision ||  ||  
    646  
    647 Restrições:  
    648 ‘method’: NN, AVERAGE, WEIGHT_AVERAGE ou LINEAR_LEAST_SQUARE 
    649 ‘res_unit’: METERS ou DD 
    650  
    651  
    652 ------- 
    653  
    654  collector_interpolator:: -> No modelo atual a tabela ws_pcsu tem uma chave estrangeira para ws_dcon. 
    655 Esta tabela faz a associação entre um coletor e as superfícies configuradas para este coletor. 
    656  
    657 ||||||= Tabela: **collector_interpolator** =|| 
    658 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    659 || collector_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    660 || interpolator_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    661  
    662 Chaves Estrangeiras: 
    663  
    664   * collector_id: referencia //collector(id)// 
    665     * ON UPDATE CASCADE ON DELETE CASCADE 
    666   * interpolator_id: referencia //interpolator(id)// 
    667     * ON UPDATE CASCADE ON DELETE CASCADE 
    668  
    669 ------- 
    670  
    671  version:: -> ws_dbco 
    672 Essa tabela armazena o número da versão atual do modelo, sempre que o modelo de dados for convertido para uma versão mais nova o registro desta tabela deve ser atualizado. 
    673  
    674 ||||||= Tabela: **version** =|| 
    675 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    676 || version || character varying(10) ||  ||  
    677 || description || text ||  ||  
    678  
    679 ------- 
    680  
    681  collector_log:: -> ws_dclo 
    682 Nessa tabela serão gravados os arquivos histórico do coletor, horario do acesso, se a coleta foi bem sucedida, onde os dados foram gravados. 
    683  
    684 ||||||= Tabela: **collector_log** =|| 
    685 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    686 || id || integer ||  PRIMARY KEY NOT NULL ||  
    687 || collector_id || integer ||  FOREIGN KEY NOT NULL ||  
    688 || data_path || character varying(255) ||  NOT NULL ||  
    689 || date_time_file || timestamp without time zone ||  NOT NULL ||  
    690 || date_time_collection || timestamp without time zone ||  NOT NULL ||  
    691 || status || character varying(20) ||  ||  
    692  
    693 Chaves Estrangeiras: 
    694  
    695   * collector_id: referencia //collector(id)// 
    696     * ON UPDATE CASCADE ON DELETE CASCADE 
    697  
    698 ------- 
    699  
    700  archiving_rules:: -> ws_arru 
    701 Esta tabela armazena as regras de armazenamento, é possível criar regra para uma análise ou para um coletor 
    702  
    703 ||||||= Tabela: **archiving_rules** =|| 
    704 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    705 || id || integer ||  PRIMARY KEY NOT NULL ||  
    706 || collector_id || integer ||  FOREIGN KEY ||  
    707 || analysis_id || integer ||  ||  
    708 || type || character varying(50) ||  NOT NULL ||  
    709 || action || character varying(50) ||  NOT NULL ||  
    710 || condition || integer ||  NOT NULL ||  
    711 || create_filter || boolean ||  NOT NULL ||  
    712  
    713 Chaves Estrangeiras: 
    714  
    715   * collector_id: referencia //collector(id)// 
    716     * ON UPDATE CASCADE ON DELETE CASCADE 
    717  
    718 TODO: modelar um agendador de execução para a criação de um serviço de arquivamento. 
    719  
    720 ------- 
    721  
    722  grads:: -> Colunas com "_grads_" na tabela //ws_dcon//. 
    723 Parâmetros para aquisição de arquivos GrAds. 
    724  
    725 ||||||= Tabela: **grads** =|| 
    726 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    727 || collector_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    728 || control_file || text ||  NOT NULL ||  
    729 || is_float || boolean ||  NOT NULL ||  
    730 || multiplier || double precision ||  ||  
    731 || is_bigendian || boolean ||  ||  
    732 || band_quantity || integer ||  ||  
    733 || band_header || integer ||  ||  
    734 || band_trailler || integer ||  ||  
    735 || band_time_offset || integer ||  ||  
    736 || data_type || character varying(40) ||  ||  
    737  
    738 Chaves Estrangeiras: 
    739  
    740   * collector_id: referencia //collector(id)// 
    741     * ON UPDATE CASCADE ON DELETE CASCADE 
    742  
    743 ‘control_file’ : Nome do arquivo de configuração. 
    744 ‘is_float’ : Define se os dados tem ponto flutuante ou são número inteiros. 
    745 ‘is_bigendian’ : Define o formato que os dados estão armazendos de acordo com a arquitetura do processador. 
    746 ‘band_quantity’ : Quantidade de bandas presentes no arquivo. 
    747 ‘band_header’ : Número de bytes que precede cada banda. 
    748 ‘band_trailler’ : Número de bytes que sucede cada banda. 
    749 ‘band_time_offset’ : Intervalo de tempo entre cada banda. 
    750  
    751  
    752 ------- 
    753  
    754  wfs:: -> Colunas com "_wfs_" na tabela //ws_dcon//. 
    755 Parâmetros de acesso a um serviço wfs. 
    756  
    757 ||||||= Tabela: **wfs** =|| 
    758 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    759 || collector_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    760 || id_attr || text ||  NOT NULL ||  
    761 || timestamp_attr || text ||  NOT NULL ||  
    762 || timestamp_mask || text ||  NOT NULL ||  
    763  
    764 Chaves Estrangeiras: 
    765  
    766   * collector_id: referencia //collector(id)// 
    767     * ON UPDATE CASCADE ON DELETE CASCADE 
    768  
    769 ‘timestamp_attr’ : Atributo que armazena a data em que o dado foi gerado. 
    770 ‘timestamp_mask’ : Máscara de interpretação da data. 
    771  
    772 ------- 
    773  
    774  wcs:: -> Colunas com "_wcs_" na tabela //ws_dcon//. 
    775 Parâmetros de acesso a um serviço wcs. 
    776  
    777 ||||||= Tabela: **wcs** =|| 
    778 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    779 || collector_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    780 || dummy || double precision ||  ||  
    781 || band_quantity || integer ||  NOT NULL ||  
    782 || time_interval || integer ||  NOT NULL ||  
    783  
    784 Chaves Estrangeiras: 
    785  
    786   * collector_id: referencia //collector(id)// 
    787     * ON UPDATE CASCADE ON DELETE CASCADE 
    788  
    789 ‘dummy’ : Valor que identifica posição sem dado. 
    790 ‘band_quantity’ : Quantidade de bandas. 
    791 ‘time_interval’ : Intervalo de tempo entre as bandas. 
    792  
    793  
    794 ------- 
    795  
    796  ascgrid:: -> Colunas com "_ascii_grid_" na tabela //ws_dcon//. 
    797 Parâmetros de arquivos de grade em formato texto. 
    798  
    799 ||||||= Tabela: **ascgrid** =|| 
    800 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    801 || collector_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    802 || coord_unit || text ||  ||  
    803  
    804 Chaves Estrangeiras: 
    805  
    806   * collector_id: referencia //collector(id)// 
    807     * ON UPDATE CASCADE ON DELETE CASCADE 
    808  
    809 ‘coord_unit’ : Unidade das coordenadas. Valores possíveis: DECIMAL_DEGREES, MILLIDEGREES. 
    810  
    811 ------- 
    812  
    813  tiff:: -> Colunas com "_tiff_" na tabela //ws_dcon//. 
    814 Parâmetros de arquivos TIFF 
    815  
    816 ||||||= Tabela: **tiff** =|| 
    817 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    818 || collector_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    819 || navigation_file || text ||  ||  
    820  
    821 Chaves Estrangeiras: 
    822  
    823   * collector_id: referencia //collector(id)// 
    824     * ON UPDATE CASCADE ON DELETE CASCADE 
    825  
    826 ‘navigation_file’ : Arquivo com as informações de coordenada de contorno (“bounding box”) 
    827  
    828 ------- 
    829  
    830  csv:: -> Não existe no modelo atual. 
    831 Parâmetros para arquivos texto com separador de coluna. 
    832  
    833 ||||||= Tabela: **csv** =|| 
    834 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    835 || collector_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    836 || header_size || integer ||  ||  
    837 || header_start_line || integer ||  ||  
    838 || data_start_line || integer ||  ||  
    839 || separator || character varying(10) ||  ||  
    840 || encoding || character varying(10) ||  ||  
    841  
    842 Chaves Estrangeiras: 
    843  
    844   * collector_id: referencia //collector(id)// 
    845     * ON UPDATE CASCADE ON DELETE CASCADE 
    846  
    847 ‘header_size’ : Número de linhas do cabeçalho do arquivo. 
    848 ‘column_names_line’ : Linha onde estão os nomes das colunas. 
    849 ‘data_start_line’ : Linha onde começam os dados. 
    850 ‘separator’ : Separador de colunas. 
    851 ‘encoding’ : Codificação do arquivo. 
    852  
    853 ------- 
    854  
    855  series_pcd:: -> Colunas com "_pcd_" na tabela //ws_dcon//. 
    856 Tabela que armazena os parâmetros de uma série de dados baseada em PCD. 
    857  
    858 ||||||= Tabela: **series_pcd** =|| 
    859 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    860 || id || integer ||  PRIMARY KEY NOT NULL ||  
    861 || name || character varying(40) ||  UNIQUE NOT NULL ||  
    862 || influence || character varying(40) ||  NOT NULL ||  
    863 || data_type || character varying(40) ||  ||  
    864 || script || text ||  ||  
    865 || id_attr || character varying(50) ||  ||  
    866  
    867 TODO: substituir o link para o tema do modelo atual, o tema é utilizado para ler os nomes da PCD através de um CSV. 
    868  
    869 ------- 
    870  
    871  series_pcd_collector:: -> Não existe no modelo atual. 
    872 Tabela que relaciona uma série de PCDs com os coletores (PCD). 
    873  
    874 ||||||= Tabela: **series_pcd_collector** =|| 
    875 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    876 || series_pcd_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    877 || collector_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    878  
    879 Chaves Estrangeiras: 
    880  
    881   * collector_id: referencia //collector(id)// 
    882     * ON UPDATE CASCADE ON DELETE CASCADE 
    883   * series_pcd_id: referencia //series_pcd(id)// 
    884     * ON UPDATE CASCADE ON DELETE CASCADE 
    885  
    886 ------- 
    887  
    888  collector:: -> ws_dcon 
    889 Tabela que armazena as informações do coletor, como descrição, máscara do arquivo a ser lido, intervalo de atualização, etc.  
    890  
    891 ||||||= Tabela: **collector** =|| 
    892 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    893 || id || integer ||  PRIMARY KEY NOT NULL ||  
    894 || name || character varying(20) ||  UNIQUE NOT NULL ||  
    895 || description || text ||  ||  
    896 || type || character varying(20) ||  NOT NULL ||  
    897 || update_frequency_minutes || integer ||  NOT NULL ||  
    898 || prefix || character varying(10) ||  ||  
    899 || projection_id || integer ||  FOREIGN KEY NOT NULL ||  
    900 || mask || character varying(255) ||  NOT NULL ||  
    901 || unit || character varying(20) ||  ||  
    902 || timezone || character varying(10) ||  NOT NULL ||  
    903 || format || text ||  NOT NULL ||  
    904  
    905 Chaves Estrangeiras: 
    906  
    907   * projection_id: referencia //spatial_ref_sys(srid)// 
    908     * ON UPDATE CASCADE ON DELETE RESTRICT 
    909  
    910 ------- 
    911  
    912  storage_strategy:: -> Não existe no modelo atual. 
    913 Tabela descreve a estratégia de armazenamento a ser utilizada pelo coletor, possibilita ao usuário armazenar no banco de dados ou em arquivo. 
    914  
    915 ||||||= Tabela: **storage_strategy** =|| 
    916 ||=  **Coluna** =||= **Tipo** =||= **Modificador** =|| 
    917 || collector_id || integer ||  FOREIGN KEY PRIMARY KEY NOT NULL ||  
    918 || table_name || character varying(40) ||  ||  
    919 || unique_storage || boolean ||  NOT NULL ||  
    920  
    921 Chaves Estrangeiras: 
    922  
    923   * collector_id: referencia //collector(id)// 
    924     * ON UPDATE CASCADE ON DELETE CASCADE 
    925  
    926  
    927  
    928 === Exemplo de Instância do Banco de dados na Versão 4.x === 
    929  
    930 {{{ 
    931 INSERT INTO terrama2.user_roles(role, description) 
    932     VALUES ('Administrator','Administrador da coleta.'); 
    933  
    934 -- CADASTRANDO UM USUÁRIO 
    935 INSERT INTO terrama2.users(login, password, name, email, cellphone) 
    936     VALUES ('user','password','Nome','email@terrama.com.br','55(11)11111-1111'); 
    937  
    938 -- CRIANDO UM PROJETO 
    939 INSERT INTO terrama2.project(name, study) 
    940     VALUES ('Projeto Queimadas', FALSE); 
    941  
    942 INSERT INTO terrama2.project_user(user_id, project_id, role_id) 
    943     VALUES (1, 1, 1); 
    944  
    945 -- CADASTRANDO UM DATA_PROVIDER_TYPE 
    946 INSERT INTO terrama2.data_provider_type(name, description) 
    947         VALUES ( 'FTP', 'FTP TYPE'); 
    948  
    949 -- CADASTRANDO UM DATA_PROVIDER 
    950 INSERT INTO terrama2.data_provider(name, description, kind, uri, active) 
    951     VALUES ('CPTEC - INPE', 'Os dados de previsões numéricas ....', 1, 'URI', TRUE); 
    952  
    953 -- CADASTRANDO UNIT_OF_MEASURE 
    954 INSERT INTO terrama2.unit_fo_measure(unit) 
    955         VALUES ('MINUTES'); 
    956          
    957 -- CADASTRANDO DATASET_TYPE 
    958 INSERT INTO terrama2.dataset_type(name, description) 
    959         VALUES ('PCD', 'TIPOS PCD'), ('OCURRENCE','Pontos de ocorrencia'); 
    960          
    961 -- CADASTRANDO DATASET 
    962 INSERT INTO terrama2.dataset(name, description, active, data_provider_id, kind, data_frequency, data_frequency_unit_id, schedule, schedule_retry, schedule_retry_unit_id, schedule_timeout, schedule_timeout_unit_id) 
    963         VALUES ('Focos_novo', 'Focos de queimadas', TRUE, 1, 2, 5, 1, NULL, NULL, NULL, NULL, NULL); 
    964          
    965 INSERT INTO terramas2.dataset_metadata(key, value, dataset_id) 
    966         VALUES ('metadado1', 'valor1', 1),('metadado2', 'valor2', 1); 
    967          
    968 INSERT INTO terrma2.data_type(name, description) 
    969         VALUES( ?????) 
    970          
    971 INSERT INTO terrama2.data(kind, active, dataset_id, mask, timezone) 
    972         VALUES(????); 
    973 }}} 
    974  
    975  
    976 == Script para criação do modelo para o TerraMA² 4.x == 
    977  
    978 * [https://github.com/TerraMA2/terrama2/blob/master/share/sql/terrama2/terrama2-data-model-pg.sql] 
    979