SlideShare uma empresa Scribd logo
1 de 28
Padronização de Nomenclatura para
Alan James
2
3
Será que realmente
é preciso
padronizar ?
Será que realmente
é preciso
padronizar ?
4
E
5
Então por que ter
trabalho em criar um
padrão meu Deus dú
céu ? ? ? ! ! !
Então por que ter
trabalho em criar um
padrão meu Deus dú
céu ? ? ? ! ! !
6
Ôpá ! É Simples, para
obter uma maior
produtividade e
desempenho no
projeto.
Ôpá ! É Simples, para
obter uma maior
produtividade e
desempenho no
projeto.
7
Hmmm, legal ! Mas
qual padrão devo
seguir ?
Hmmm, legal ! Mas
qual padrão devo
seguir ?
Não
“existe”
nenhum !
Se não existe é
só criar um !
Se não existe é
só criar um !
8
Não existe um padrão
e mesmo assim quer
padronizar ?
Desisto !
Não existe um padrão
e mesmo assim quer
padronizar ?
Desisto !
9
10
lSO/lEC11179-5 – ISO90005
11
12
Código
complicado
Código
complicado
Difícil
entendimento
do BD
Difícil
entendimento
do BD
Difícil
Manutenção
Difícil
Manutenção
Repetição de
informações
Repetição de
informações
Perda de
tempo
Perda de
tempo
DesorganizaçãoDesorganização
SQL  complicados de
entender
SQL  complicados de
entender
Dificuldade na
construção de SQL
Dificuldade na
construção de SQL
Documentação
ruim
Documentação
ruim
Não “passa”
credibilidade
Não “passa”
credibilidade
13
Demontra Maturidade
da Empresa /
Funcionário
Demontra Maturidade
da Empresa /
Funcionário
Código de fácil
entendimento
Código de fácil
entendimento
Fácil
entendimento
do BD
Fácil
entendimento
do BD
Boa
documentação
do BD
Boa
documentação
do BD
Facilidade na
manutenção
Facilidade na
manutenção
SQL de fácil
entendimento
SQL de fácil
entendimento
Redução
de custos
Redução
de custos
SQL menos
complexos
SQL menos
complexos
Sem redundância
de informações
Sem redundância
de informações
Maior qualidade
no Sistema /
Software
Maior qualidade
no Sistema /
Software
Códigos e
lógicas mais
intuitivos
Códigos e
lógicas mais
intuitivos
14
Base de
dados
Base de
dados
TabelasTabelas
RestriçõesRestrições
ColunasColunas ProceduresProcedures
TriggersTriggers AbreviaçõesAbreviações
ChavesChaves
15
Base de dados Procedures Triggers
nomeprojeto <NOME_PROCEDURE>.PRC  <NOME_TRIGGER>.TRG 
nome_projeto
NOMEPROJETO
NOME_PROJETO
Nome_Projeto
Tabelas
Comum  N x N
CAD_PES_PESSOAS  CAD_PES_PESSOAS 
CAD_END_ENDERECOS 
CAD_PES_PESSOAS_ENDERECOS (resultado)
Aluno
Pessoa_Fisica
DEPARTAMENTO
Funcionario
Departamento
FuncionarioDerpartamento
tblPessoa
TB_JOGADOR
16
17
Colunas
Nome do atributo Identificação Tipo de dado
utilizado
pes_nome CD Numérico
nome_pes DT Data
VL_VALOR_PARCELA DS String (caracteres)
pesNome (notação húngara) NM String (caracteres)
NR Numérico
ST String (caracteres)
VL Numérico
18
Chaves / Restrições
Nome da chave Identificações
pessoa_id
Id_pessoa
PK_ID_PESSOA
PESSOA_ID_PK
pessoaIdPk (notação húngara)
PK_
fk_funcionario_id
funcionario_id_fk
funcionarioIdFk (notação húngara)
FK_
idxCodigoPessoa (notação húngara)
idx_nome_func
IDX_
UN_NUMERO_TEL UN_ (chave única)
NN_ (restrição não nulo)
CK_ (restrição tipo check)
19
Abreviação
Número de
palavras
Norma Exemplo
1 Palavra Utilizar as 3 primeiras letras da 
palavra
Nome: Pessoas
Abreviatura: PES
2 Palavras Utilizar as 2 primeiras letras da 
primeira palavra e a 1ª letra da 
segunda palavra
Nome: Pessoas Físicas
Abreviatura: PEF
3 ou mais Palavras Utilizar a 1ª letra das duas 
primeiras palavras e a 1ª letra 
da última palavra
Nome: Tipos Contrato Prestado
res
Abreviatura: TCP
 Escolha nomes sem ambiguidade, curtos, não usando mais
que duas palavras.
 distingue tabelas facilmente.
 facilita nomear campos únicos assim como tabelas de 
metadados.
 Use nomes no singular, nunca plural.
 promove consistência com a nomenclatura de campos de 
chave primárias e tabelas de metadados.
 garante ordenação alfabética de uma tabela antes de suas 
tabelas de metadados ou relacionadas.
 evita confusão de regras de plural do português ou inglês. 20
 Evite nomes com acrônimos, abreviados ou concatenados.
 provê arquitetura auto-documentável.
 facilita tanto para desenvolvedores quanto para não-
desenvolvedores lerem e entenderem. ( Bom pra todos )
 Prefixe as tabelas de metadados com o nome das tabelas a
que elas se relacionam.
 agrupa tabelas relacionadas (ex: activity_status, 
activity_type, etc).
 evita conflitos de nomes de tabelas de metadados de 
diferentes entidades.
21
 Para uma tabela associativa (n:n), concatene o nome
das duas tabelas envolvidas:
 expressa o propósito de composição da tabela.
 esta regra não se aplica quando houver mais de uma
tabela associativa para as mesmas entidades originais
 Crie comentários para a tabela e para as colunas:
 facilita a compreensão do propósito da tabela.
 explica o conteúdo presente em uma coluna.
( Bom pra todos )
22
 A chave primária deve ter o nome da tabela com o sufixo
"_id".
 permite que a chave primária seja deduzida ou lembrada a
partir apenas do nome da tabela.
(ex: Tabela: Produto – PK: produto_id )
 consistência com o nome da chave primária.
 evita a necessidade de usar apelidos (alias) na programação
 Chaves estrangeiras devem ter o mesmo nome das chaves
primárias às quais elas se referem.
 faz com que as tabelas às quais elas se referem fique óbvio.
23
24
Bora definir um padrão ?
 Possíveis pontos a definir:
 Usar nome de tabela no plural ou no singular ?
 Usar um caractere identificador para registro ou tabela ?
 Como lidar com nomes compostos ?
 Como nomear as tabela, atributos e colunas.
 Como nomear uma PK e um FK ?
25
 Pensar fácil.
 Simplificar SEMPRE !
 Ambiguidade zero
 Passar a informação correta.
26
 http://www.guj.com.br/java/14696-nomenclatura-padrao-
em-sgdb
 http://www.tiespecialistas.com.br/2011/05/cmmi-nivel-2-
recebendo-padronizacao/#.UaQDW0A05rM
 http://brasil.pmi.org/brazil/AboutUS/WhatisPMI.aspx
 http://metadata-standards.org/11179/
 http://my.opera.com/maicokrause/blog/2009/04/28/padroni
zacao-de-nomes-de-tabelas-e-colunas-de-banco-de-dad
27
28

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Banco De Dados
Banco De DadosBanco De Dados
Banco De Dados
 
Fundamentos de banco de dados 01 indrodução
Fundamentos de banco de dados   01 indroduçãoFundamentos de banco de dados   01 indrodução
Fundamentos de banco de dados 01 indrodução
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Sql server
Sql serverSql server
Sql server
 
Data models
Data modelsData models
Data models
 
Data Vault Overview
Data Vault OverviewData Vault Overview
Data Vault Overview
 
Pipelines and Data Flows: Introduction to Data Integration in Azure Synapse A...
Pipelines and Data Flows: Introduction to Data Integration in Azure Synapse A...Pipelines and Data Flows: Introduction to Data Integration in Azure Synapse A...
Pipelines and Data Flows: Introduction to Data Integration in Azure Synapse A...
 
Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]
 
(OTW13) Agile Data Warehousing: Introduction to Data Vault Modeling
(OTW13) Agile Data Warehousing: Introduction to Data Vault Modeling(OTW13) Agile Data Warehousing: Introduction to Data Vault Modeling
(OTW13) Agile Data Warehousing: Introduction to Data Vault Modeling
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Database
DatabaseDatabase
Database
 
Aula 1
Aula 1Aula 1
Aula 1
 
Conceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDConceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBD
 
Banco de Dados - Conceitos Básicos
Banco de Dados - Conceitos BásicosBanco de Dados - Conceitos Básicos
Banco de Dados - Conceitos Básicos
 
Agile Data Engineering: Introduction to Data Vault 2.0 (2018)
Agile Data Engineering: Introduction to Data Vault 2.0 (2018)Agile Data Engineering: Introduction to Data Vault 2.0 (2018)
Agile Data Engineering: Introduction to Data Vault 2.0 (2018)
 
Banco de Dados - Conceitos
Banco de Dados - ConceitosBanco de Dados - Conceitos
Banco de Dados - Conceitos
 
Breakout: Hadoop and the Operational Data Store
Breakout: Hadoop and the Operational Data StoreBreakout: Hadoop and the Operational Data Store
Breakout: Hadoop and the Operational Data Store
 
Gestão de Dados - Novos tempos
Gestão de Dados - Novos temposGestão de Dados - Novos tempos
Gestão de Dados - Novos tempos
 
1.1 Data Modelling - Part I (Understand Data Model).pdf
1.1 Data Modelling - Part I (Understand Data Model).pdf1.1 Data Modelling - Part I (Understand Data Model).pdf
1.1 Data Modelling - Part I (Understand Data Model).pdf
 

Destaque

Padronização de Nomenclatura para Banco de Dados
Padronização de Nomenclatura para Banco de DadosPadronização de Nomenclatura para Banco de Dados
Padronização de Nomenclatura para Banco de Dados
Samuelson Brito
 

Destaque (7)

Boas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de DadosBoas praticas em um Projeto de Banco de Dados
Boas praticas em um Projeto de Banco de Dados
 
Padronização de Nomenclatura para Banco de Dados
Padronização de Nomenclatura para Banco de DadosPadronização de Nomenclatura para Banco de Dados
Padronização de Nomenclatura para Banco de Dados
 
Oficina Arduino
Oficina ArduinoOficina Arduino
Oficina Arduino
 
Alto desempenho com banco de dados MySQL
Alto desempenho com banco de dados MySQLAlto desempenho com banco de dados MySQL
Alto desempenho com banco de dados MySQL
 
Melhores práticas em gerenciamento de projetos
Melhores práticas em gerenciamento de projetosMelhores práticas em gerenciamento de projetos
Melhores práticas em gerenciamento de projetos
 
Boas práticas de programação em C# .NET
Boas práticas de programação em C# .NETBoas práticas de programação em C# .NET
Boas práticas de programação em C# .NET
 
Find the Right People
Find the Right PeopleFind the Right People
Find the Right People
 

Semelhante a Nomenclatura para Banco de Dados

Semelhante a Nomenclatura para Banco de Dados (20)

TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Refactoring Databases
Refactoring DatabasesRefactoring Databases
Refactoring Databases
 
Melhorias na interface do Management Studio
Melhorias na interface do Management StudioMelhorias na interface do Management Studio
Melhorias na interface do Management Studio
 
Db2
Db2Db2
Db2
 
HyperText Markup Language
HyperText Markup LanguageHyperText Markup Language
HyperText Markup Language
 
HTML
HTMLHTML
HTML
 
Html+para+iniciantes
Html+para+iniciantesHtml+para+iniciantes
Html+para+iniciantes
 
Html
HtmlHtml
Html
 
Html
HtmlHtml
Html
 
Dojo banco de dados
Dojo   banco de dadosDojo   banco de dados
Dojo banco de dados
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Otimizando a performance com in memory no sql 2016
Otimizando a performance com in memory no sql 2016Otimizando a performance com in memory no sql 2016
Otimizando a performance com in memory no sql 2016
 
Introdução ao BD Postgre
Introdução ao BD PostgreIntrodução ao BD Postgre
Introdução ao BD Postgre
 
Dicas importantes do postgre sql pg admin
Dicas importantes do postgre sql pg adminDicas importantes do postgre sql pg admin
Dicas importantes do postgre sql pg admin
 
Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8
 
Agbd aula4 sql_ddl
Agbd aula4 sql_ddlAgbd aula4 sql_ddl
Agbd aula4 sql_ddl
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
7869510 109domine-o-excel-2007[1]
7869510 109domine-o-excel-2007[1]7869510 109domine-o-excel-2007[1]
7869510 109domine-o-excel-2007[1]
 
Introdução ao MySQL - EuDala SF 2023.pptx
Introdução ao MySQL - EuDala SF 2023.pptxIntrodução ao MySQL - EuDala SF 2023.pptx
Introdução ao MySQL - EuDala SF 2023.pptx
 
37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server37 consultando tabelas_com_sql_no_sql_server
37 consultando tabelas_com_sql_no_sql_server
 

Último

Último (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Nomenclatura para Banco de Dados

  • 2. 2
  • 3. 3 Será que realmente é preciso padronizar ? Será que realmente é preciso padronizar ?
  • 4. 4 E
  • 5. 5 Então por que ter trabalho em criar um padrão meu Deus dú céu ? ? ? ! ! ! Então por que ter trabalho em criar um padrão meu Deus dú céu ? ? ? ! ! !
  • 6. 6 Ôpá ! É Simples, para obter uma maior produtividade e desempenho no projeto. Ôpá ! É Simples, para obter uma maior produtividade e desempenho no projeto.
  • 7. 7 Hmmm, legal ! Mas qual padrão devo seguir ? Hmmm, legal ! Mas qual padrão devo seguir ? Não “existe” nenhum !
  • 8. Se não existe é só criar um ! Se não existe é só criar um ! 8 Não existe um padrão e mesmo assim quer padronizar ? Desisto ! Não existe um padrão e mesmo assim quer padronizar ? Desisto !
  • 9. 9
  • 11. 11
  • 12. 12 Código complicado Código complicado Difícil entendimento do BD Difícil entendimento do BD Difícil Manutenção Difícil Manutenção Repetição de informações Repetição de informações Perda de tempo Perda de tempo DesorganizaçãoDesorganização SQL  complicados de entender SQL  complicados de entender Dificuldade na construção de SQL Dificuldade na construção de SQL Documentação ruim Documentação ruim Não “passa” credibilidade Não “passa” credibilidade
  • 13. 13 Demontra Maturidade da Empresa / Funcionário Demontra Maturidade da Empresa / Funcionário Código de fácil entendimento Código de fácil entendimento Fácil entendimento do BD Fácil entendimento do BD Boa documentação do BD Boa documentação do BD Facilidade na manutenção Facilidade na manutenção SQL de fácil entendimento SQL de fácil entendimento Redução de custos Redução de custos SQL menos complexos SQL menos complexos Sem redundância de informações Sem redundância de informações Maior qualidade no Sistema / Software Maior qualidade no Sistema / Software Códigos e lógicas mais intuitivos Códigos e lógicas mais intuitivos
  • 14. 14 Base de dados Base de dados TabelasTabelas RestriçõesRestrições ColunasColunas ProceduresProcedures TriggersTriggers AbreviaçõesAbreviações ChavesChaves
  • 15. 15 Base de dados Procedures Triggers nomeprojeto <NOME_PROCEDURE>.PRC  <NOME_TRIGGER>.TRG  nome_projeto NOMEPROJETO NOME_PROJETO Nome_Projeto
  • 17. 17 Colunas Nome do atributo Identificação Tipo de dado utilizado pes_nome CD Numérico nome_pes DT Data VL_VALOR_PARCELA DS String (caracteres) pesNome (notação húngara) NM String (caracteres) NR Numérico ST String (caracteres) VL Numérico
  • 18. 18 Chaves / Restrições Nome da chave Identificações pessoa_id Id_pessoa PK_ID_PESSOA PESSOA_ID_PK pessoaIdPk (notação húngara) PK_ fk_funcionario_id funcionario_id_fk funcionarioIdFk (notação húngara) FK_ idxCodigoPessoa (notação húngara) idx_nome_func IDX_ UN_NUMERO_TEL UN_ (chave única) NN_ (restrição não nulo) CK_ (restrição tipo check)
  • 19. 19 Abreviação Número de palavras Norma Exemplo 1 Palavra Utilizar as 3 primeiras letras da  palavra Nome: Pessoas Abreviatura: PES 2 Palavras Utilizar as 2 primeiras letras da  primeira palavra e a 1ª letra da  segunda palavra Nome: Pessoas Físicas Abreviatura: PEF 3 ou mais Palavras Utilizar a 1ª letra das duas  primeiras palavras e a 1ª letra  da última palavra Nome: Tipos Contrato Prestado res Abreviatura: TCP
  • 20.  Escolha nomes sem ambiguidade, curtos, não usando mais que duas palavras.  distingue tabelas facilmente.  facilita nomear campos únicos assim como tabelas de  metadados.  Use nomes no singular, nunca plural.  promove consistência com a nomenclatura de campos de  chave primárias e tabelas de metadados.  garante ordenação alfabética de uma tabela antes de suas  tabelas de metadados ou relacionadas.  evita confusão de regras de plural do português ou inglês. 20
  • 21.  Evite nomes com acrônimos, abreviados ou concatenados.  provê arquitetura auto-documentável.  facilita tanto para desenvolvedores quanto para não- desenvolvedores lerem e entenderem. ( Bom pra todos )  Prefixe as tabelas de metadados com o nome das tabelas a que elas se relacionam.  agrupa tabelas relacionadas (ex: activity_status,  activity_type, etc).  evita conflitos de nomes de tabelas de metadados de  diferentes entidades. 21
  • 22.  Para uma tabela associativa (n:n), concatene o nome das duas tabelas envolvidas:  expressa o propósito de composição da tabela.  esta regra não se aplica quando houver mais de uma tabela associativa para as mesmas entidades originais  Crie comentários para a tabela e para as colunas:  facilita a compreensão do propósito da tabela.  explica o conteúdo presente em uma coluna. ( Bom pra todos ) 22
  • 23.  A chave primária deve ter o nome da tabela com o sufixo "_id".  permite que a chave primária seja deduzida ou lembrada a partir apenas do nome da tabela. (ex: Tabela: Produto – PK: produto_id )  consistência com o nome da chave primária.  evita a necessidade de usar apelidos (alias) na programação  Chaves estrangeiras devem ter o mesmo nome das chaves primárias às quais elas se referem.  faz com que as tabelas às quais elas se referem fique óbvio. 23
  • 24. 24 Bora definir um padrão ?
  • 25.  Possíveis pontos a definir:  Usar nome de tabela no plural ou no singular ?  Usar um caractere identificador para registro ou tabela ?  Como lidar com nomes compostos ?  Como nomear as tabela, atributos e colunas.  Como nomear uma PK e um FK ? 25
  • 26.  Pensar fácil.  Simplificar SEMPRE !  Ambiguidade zero  Passar a informação correta. 26
  • 27.  http://www.guj.com.br/java/14696-nomenclatura-padrao- em-sgdb  http://www.tiespecialistas.com.br/2011/05/cmmi-nivel-2- recebendo-padronizacao/#.UaQDW0A05rM  http://brasil.pmi.org/brazil/AboutUS/WhatisPMI.aspx  http://metadata-standards.org/11179/  http://my.opera.com/maicokrause/blog/2009/04/28/padroni zacao-de-nomes-de-tabelas-e-colunas-de-banco-de-dad 27
  • 28. 28