_________________________________________________________________________ PADRÕES PARA BANCO DE DADOS _________________________________________________________________________ Histórico de Versões Versão Data 1.0 1.1 23/07/2013 23/07/2013 Analistas Notas da Revisão Leandro Marcel Documento Inicial Alteração de Identificação em Procedures 1. Objetivo O objetivo deste documento é prover informações para formalizar a nomenclatura dos objetos de banco de dados, bem como apresentar regras para sua utilização evitando assim o hábito de existir diferentes nomenclaturas dentro de uma mesma aplicação. O documento apresenta os objetos de banco de dados com três itens: sintaxe, regras e exemplo. Isto para facilitar o entendimento do desenvolvedor. -1- 2. Padrão para objetos do Banco de Dados O nome do banco de dados deverá identificar a área de negócio que está sendo automatizado ou deverá refletir a sigla da aplicação. Sintaxe: {[A...Z][a...z][1...9]} Xxxxxx, onde: Xxxxxx - Indica o nome da aplicação que o banco de dados irá atender. Para o nome utilizar 1ª Letra em maiúsculo e o restante em minúsculo com no máximo 20 caracteres. Consultas Regras: Comandos SQL em maiúsculas Nomes de colunas e tabelas em minúsculas Sempre usar “Inner Join” explícito Tabelas O nome de uma tabela deverá ser sugestivo. Deve-se fazer o uso de nomenclatura identificando claramente seu conteúdo. Evitar usar abreviações que não sejam claras e evidentes, caso seja necessário criar um dicionário de dados e anexar ao projeto para que todos possam compreender as abreviações. Sintaxe: {[A...Z][a...z]} XxxxxxXxxxxxx, onde: XxxxxxXxxxxxx, - indica o nome da tabela; Regras: Primeira letra em maiúscula, demais em minúsculas. Para cada palavra interna, a primeira letra em maiúscula; Usar no máximo 30 caracteres - padrão da maioria dos bancos; O nome da tabela deve estar sempre no singular; Evite usar abreviações, se necessário use as conhecidas; Não utilize acentuações ou caracteres especiais; Tabelas de relacionamento utilizar Nomeda1atabela_x_Nomeda2atabela, caso o nome do relacionamento não seja forte ou não seja possível expressar claramente em uma única palavra; Colunas Seguindo o mesmo padrão utilizado para tabelas, deve-se identificar a coluna da tabela de maneira clara e descritiva, somente use abreviações quando se tratar de domínio público, exemplo FGTS, fundo de garantia por tempo de serviço ou as definida no dicionário de dados abaixo. -2- Sintaxe: {[A...Z][a...z][1...9]} XxxxxXxxxXxxxx, onde XxxxxXxxxXxxxx – indica o nome da coluna Regras: Primeira letra em maiúscula, demais em minúsculas. Para cada palavra interna, a primeira letra em maiúscula; Não usar artigos e preposições na separação de palavras; Para siglas utilizar todas as letras em maiúsculo; Usar palavras no singular e sem acentuação; Usar nome que identifique e individualize o dado dentro do “ambiente” do cliente; Dar nomes distintos para dados distintos; Evite utilizar abreviações, caso seja extremamente necessário utilize as de domínio; Abreviação Cod Dicionário de Dados Descrição da Abreviação Código Chaves e Índices criados pelo usuário A criação de chave primaria, chave estrangeira e índice pelos analistas geralmente são realizadas através do SQL Enterprise Manager, com isso o SQL encarrega-se de nomear as chaves, para manter o padrão usaremos as seguintes nomenclaturas: Sintaxe: {[PK][A...Z][a...z][1...9]} PK_Xxxxxx, onde: Xxxxxx, 1ª Letra em maiúsculo e o restante em minúsculo - indica o nome da chave primária; {[FK][A...Z][a...z][1...9]} FK_Xxxxxx, onde: Xxxxxx 1ª Letra em maiúsculo e o restante em minúsculo - indica o nome da chave estrangeira; {[IX][A...Z][a...z][1...9]} IX_Xxxxxx, onde: Xxxxxx 1ª Letra em maiúsculo e o restante em minúsculo - indica o nome do índice; Views Deve-se utilizar o mesmo semântica utilizada para as tabelas. Deve ser prefixada a sigla “vi” minúsculo. Sintaxe: {[vi][A...Z][a...z][1...9]} viXxxxxXxxxXxxxx, onde XxxxxXxxxXxxxx - indica o nome da view. -3- Regras: Primeira letra, após “vi” em maiúscula, demais em minúsculas. Para cada palavra interna, a primeira letra em maiúscula; Não usar artigos e preposições na separação de palavras; Para siglas utilizar todas as letras em maiúsculo; Usar palavras no singular e sem acentuação; Usar nome que identifique e individualize o dado dentro do “ambiente” do cliente; Evite utilizar abreviações, caso seja extremamente necessário utilize as de domínio; Stored Procedures Deve-se utilizar a mesma semântica utilizada para as tabelas. Deve ser prefixada a sigla “sp”, minúscula, seguida da função (Consulta, Grava, Atualiza, Apaga) e do nome da stored procedure. Sintaxe: {[schema][sp][Função][A...Z][a...z][1...9]} spConsultaXxxXx, onde XxxXxx indica o nome da store procedure. schema Função Client-Server dbo Internet internet Consulta; Grava; Atualiza; Apaga; Exemplo: dbo.spConsultaAluno internet.spConsultaAluno Regras: Primeira letra, após “sp” + FUNÇÃO em maiúscula, demais em minúsculas. Para cada palavra interna, a primeira letra em maiúscula; Para procedures que executem consultas devem ser utilizadas as regras de consultas definidas acima; Não usar artigos e preposições na separação de palavras; Para siglas utilizar todas as letras em maiúsculo; Usar palavras no singular e sem acentuação; Usar nome que identifique e individualize o dado dentro do “ambiente” do cliente. Dar nomes distintos para dados distintos. Inserir comentários sempre que necessário. Comentários adicionais que auxiliem o entendimento do processo; Não poluir o código com comentários desnecessários, que descrevam procedimentos óbvios; -4- Evitar o aninhamento excessivo de comandos, o que costuma dificultar a visualização Utilizar identação entre os comandos; Definir uma área de identificação geral, onde deverão existir as seguintes informações para todas as stored procedures: ------------- ============================================================ Autor: <nome_analista> Data Criação: <dd/mm/aaaa> Descrição: <função da procedure> Ação: <Consulta/Altera/Grava/Apaga> Tabelas/View: <nome das tabelas, views utilizadas> Desenvolvimento : <Desenvolvida para X sistema > ============================================================ Alterada por: <nome_analista> Data: <dd/mm/aaaa> Descrição: <descrição da alteração realizada> ============================================================ Function (Table, Scalar Valued Function) Deve-se utilizar a mesma semântica utilizada para as tabelas. Deve ser prefixada a sigla “fc”, minúscula, e do nome da função. Sintaxe: {[fc][A...Z][a...z][1...9]} fcXxxxxXxxx, onde XxxxxXxxx - indica o nome da stored function. Regras: Primeira letra, após “fc” + FUNÇÃO em maiúscula, demais em minúsculas. Para cada palavra interna, a primeira letra em maiúscula; Não usar artigos e preposições na separação de palavras; Para siglas utilizar todas as letras em maiúsculo; Usar palavras no singular e sem acentuação; Usar nome que identifique e individualize o dado dentro do “ambiente” do cliente. Inserir comentários sempre que necessário. Comentários adicionais que auxiliem o entendimento do processo; Não poluir o código com comentários desnecessários, que descrevam procedimentos óbvios; Evitar o aninhamento excessivo de comandos, o que costuma dificultar a visualização Utilizar identação entre os comandos; Definir uma área de identificação geral, onde deverão existir as seguintes informações para todas as functions: -5- ---------- ============================================================ Autor: <nome_analista> Data Criação: <dd/mm/aaaa> Descrição: <função da procedure> ============================================================ Alterada por: <nome_analista> Data: <dd/mm/aaaa> Descrição: <descrição da alteração realizada> ============================================================ Trigger Deve-se utilizar a mesma semântica utilizada para as tabelas. Deve ser prefixada a sigla “tg”, minúscula, seguida da função (I = Insert, U = Update, D = Delete) {[tg][I | U | D][A...Z][a...z][1...9]} tgIUDXxxxxXxxx, onde XxxxxXxxx - indica o nome da trigger. Regras: Primeira letra, após “tg” + [I | U | D] em maiúscula, demais em minúsculas. Para cada palavra interna, a primeira letra em maiúscula; Não usar artigos e preposições na separação de palavras; Para siglas utilizar todas as letras em maiúsculo; Usar palavras no singular e sem acentuação; Usar nome que identifique e individualize o dado dentro do “ambiente” do cliente. Inserir comentários sempre que necessário. Comentários adicionais que auxiliem o entendimento do processo; Não poluir o código com comentários desnecessários, que descrevam procedimentos óbvios; Evitar o aninhamento excessivo de comandos, o que costuma dificultar a visualização Utilizar identação entre os comandos; Definir uma área de identificação geral, onde deverão existir as seguintes informações para todas as triggers: ------------ ============================================================ Autor: <nome_analista> Data Criação: <dd/mm/aaaa> Descrição: <função da procedure> Ação: <Insert/Update/Delete> Tabelas/View: <nome das tabelas, views utilizadas> ============================================================ Alterada por: <nome_analista> Data: <dd/mm/aaaa> Descrição: <descrição da alteração realizada> ============================================================ -6-