Orientações para escrita de scripts SQL
Nesta seção, apresentamos as orientações para escrita de scripts SQL que devem ser seguidas pelas equipes de desenvolvedores e analistas.
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.
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?
2) Os scripts estão separados em script DDL e script DML, conforme a necessidade da demanda?
- Não deve-se juntar script DDL e DML em um único script.
3) O script possui nomenclatura de acordo com o projeto/sistema ao qual pertence?
Caso o projeto/sistema não adote uma nomenclatura, sugerimos a seguinte fórmula (ou sintaxe):
{sigla do projeto/sistema}_
{informar aqui a numeração do pacote da versão do projeto/sistema correspondente}_
{informar aqui a ordem numérica sequencial crescente correspondente}__
{informar aqui a sigla DDL se o script for de DDL; ou a sigla DML se o script for de DML}_
{informar aqui de forma geral o que o script está proposto a fazer}.sql
- 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'.
4) O script possui cabeçalho de acordo com o padrão?
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:
5) As tabelas criadas possuem colunas e constraints adequados ao seu propósito?
6) O tipo de dado utilizado para as colunas é adequado?
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?
- Para maior clareza das instruções SQL, recomendamos não deixar instruções comentadas.
8) Scripts de DDL checam a prévia existência do objeto que será criado/alterado/excluído?
- 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:
9) Nos scripts de DDL que criam novos objetos, há nomes de novos objetos cuja quantidade de caracteres é superior a 30 caracteres?
- 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.