Toggle navigation
Entrar
Registrar
Administração de Dados
Índice de Documentos
Diretório de Usuários
Application Index
DOCUMENTAÇÃO
Orientações para escrita de scripts SQL
Código fonte Wiki de
Orientações para escrita de scripts SQL
Última modificação por
GEOFLAVIA GUILARDUCCI DE ALVARENGA
em 16/01/2019, 17:32
Esconder números de linha
1: Nesta seção, apresentamos as **orientações para escrita de scripts SQL **que devem ser seguidas pelas equipes de desenvolvedores e analistas. 2: 3: 4: Essas orientações serão listadas na forma de //check list// de verificação, ou seja, o profissional (desenvolvedor/analista) deverá verificar se o script atende essas orientações. 5: 6: 7: **1)** O script está em conformidade com a nomenclatura padrão e a padronização de documentação estabelecidos em [[Normas e Padrões para Administração de Dados>>doc:DOCUMENTAÇÃO.Normas e Padrões para Administração de Dados | '''Normas e padrões para administração e inteligência de dados.WebHome]]? 8: 9: 10: **2)** Os scripts estão separados em script [[DDL>>doc:DOCUMENTAÇÃO.Glossário das Normas e Padrões para Administração de Dados.WebHome||anchor="HDDL"]] e script [[DML>>doc:DOCUMENTAÇÃO.Glossário das Normas e Padrões para Administração de Dados.WebHome||anchor="HDML"]], conforme a necessidade da demanda? 11: 12: * Não deve-se juntar script DDL e DML em um único script. 13: 14: **3)** O script possui nomenclatura de acordo com o projeto/sistema ao qual pertence? 15: Caso o projeto/sistema não adote uma nomenclatura, sugerimos a seguinte fórmula (ou sintaxe): 16: 17: **//{sigla do projeto/sistema}_//** 18: 19: **//{informar aqui a numeração do pacote da versão do projeto/sistema correspondente}_//** 20: 21: **//{informar aqui a ordem numérica sequencial crescente correspondente}~_~_//** 22: 23: **//{informar aqui a sigla DDL se o script for de DDL; ou a sigla DML se o script for de DML}_//** 24: 25: **//{informar aqui de forma geral o que o script está proposto a fazer}.sql//** 26: 27: * Veja um exemplo: **PJE_2.0.1.0_56~_~_DDL_CRIAR_TABELA_LIBERACAO_PUBLICACAO_DECISAO.sql**. Neste exemplo temos: pacote é 2.0.1.0, sequencial é 56, é script de DDL e o propósito principal é 'criar tabela liberação de publicação de decisão'. 28: 29: **4)** O script possui cabeçalho de acordo com o padrão? 30: O conteúdo do cabeçalho deverá conter: número da //issue //e uma descrição resumida do propósito do script; veja o exemplo: 31: 32: [[image:Img_scriptCabecalho.JPG||height="126" width="853"]] 33: 34: 35: **5)** As tabelas criadas possuem colunas e //constraints// adequados ao seu propósito? 36: 37: 38: **6)** O tipo de dado utilizado para as colunas é adequado? 39: 40: 41: **7)** Há instruções SQL (sejam do script de DML ou de DDL) comentadas e sem nenhum valor significativo para compreensão de seu propósito? 42: 43: * Para maior clareza das instruções SQL, recomendamos não deixar instruções comentadas. 44: 45: **8)** Scripts de DDL checam a prévia existência do objeto que será criado/alterado/excluído? 46: 47: * Dado um exemplo de checagem no caso de criação de uma nova coluna em uma tabela existente em um esquema existente no SGBD PostgreSQL: 48: 49: [[image:Img_scriptChecarObjetos.JPG]] 50: 51: 52: **9)** Nos scripts de DDL que criam novos objetos, há nomes de novos objetos cuja quantidade de caracteres é superior a 30 caracteres? 53: 54: * Para mantermos a compatibilidade com o Oracle, recomendamos que todos os scripts de DDL que criam novos objetos (exemplos: //column//, //table//, //view//, //trigger//, //constraint//, //function//, //sequence//, //index//, entre outros) contenham os nomes desses objetos com uma quantidade de caracteres que não seja superior a **30 caracteres**. 55: 56: