Padrão Oficial para Nomenclatura de Banco de Dados, Existe?

Bom dia!

Estamos remodelando o nosso banco de dados aqui na empresa, pois vamos migrar o sistema desktop para a WEB, portanto, pesquisei na WEB e não fui capaz de encontrar uma nomenclatura padrão, em cada lugar, vejo uma padronização diferente, porém sempre semelhante.

Portanto, existe algum padrão oficial, semelhante as convenções de código da Sun? Ou o melhor a se fazer é obter esses padrões de vários lugares, e criar nosso próprio padrão com base nas melhores práticas encontradas?

Abraço a todos!

Você pode consultar algum colega seu que seja DBA da Caixa Econômica, do Banco Bradesco etc. que tenha uma cópia daquele documento de padrões de nomenclatura. Pode ser que o padrão seja muito “feio” ou orientado para bancos de dados de mainframe, mas são os padrões que existem por aí.

Eu digo “setor bancário” porque normalmente os departamentos de TI de bancos são bem organizados e sistematizados, comparados a empresas de outros setores.

Existe o padrão ANSI e atualmente é chamado de SQL , mais informação aqui http://www.fabioprado.net/2012/05/sql-padrao-ansi-x-padrao-oracle.html

No caso do Java é uma convenção , ou seja, por java ser OO e uma de suas características é o reaproveitamento de código, a convenção existe , mas não necessariamente você deve fazer de acordo com a convenção estabelecida (Recomendação) … no caso do sql existe o padrão e no seu caso , vc quer padrão de nome de tabelas, colunas , etc …neste caso sua empresa deve criar uma convenção e fazer com que as pessoas sigam esta convenção … o mais importante em nome de tabela e colunas é manter o dicionário de dados sempre atualizado e claro manter a coerência de nomes para facilitar o entendimento e a busca do que você precisa…

Primeiramente, agradeço pelas respostas!

Infelizmente não conheço um profissional do porte que de um DBA de um sistema bancário, até pq sou bem novo na área e meu networking é pequeno, então meu refúgio é o google e os foruns, hehe.

Enfim, se eu não conseguir achar um que exatamente atenda as necessidades, criarei um deles junto ao pessoal.

Apenas para tirar uma dúvida, nas aulas de banco de dados que tive na facul, e no próprio site que o Aleksandro postou, as queries são realizadas todas em caixa alta, o que me leva a acreditar que as tabelas e colunas também existem nesse tipo de nomenclatura, existe alguma justificativa técnica para isso, ou apenas uma convenção mesmo?

Abraços!

[quote=Aleksandro]Existe o padrão ANSI e atualmente é chamado de SQL , mais informação aqui http://www.fabioprado.net/2012/05/sql-padrao-ansi-x-padrao-oracle.html
[/quote]

Aleksandro, o que ele quer saber é se DBAs costumam seguir padrões para colunas e nomes de tabelas - claro que seguem, mas costumam ser documentos internos de cada organização.

Eu digo que os padrões normalmente acabam gerando nomes “feios” porque eles são muito “mecânicos”. Suponha que o analista tenha criado um nome lógico para uma coluna com o nome “Número de Estornos da Nota Fiscal Eletrônica do Contribuinte de Outros Estados”. O nome da coluna, para evitar que ultrapasse 30 caracteres (no caso do DB2), poderia acabar sendo algo como “NR_EST_NOT_FISC_ELET_CONTR_OU_EST” ou coisa parecida.

Além disso, esses padrões costumam ter dicionários padrões de abreviaturas. Além das abreviaturas óbvias (CPF = Cadastro de Pessoa Física, etc.) há algumas abreviaturas menos óbvias, e que podem ser customizadas para cada projeto. Já vi algo como “CFDG” = Certificado Digiral, e assim por diante.

[quote=Bruno M Gasparotto]Bom dia!

Estamos remodelando o nosso banco de dados aqui na empresa, pois vamos migrar o sistema desktop para a WEB, portanto, pesquisei na WEB e não fui capaz de encontrar uma nomenclatura padrão, em cada lugar, vejo uma padronização diferente, porém sempre semelhante.

Portanto, existe algum padrão oficial, semelhante as convenções de código da Sun? Ou o melhor a se fazer é obter esses padrões de vários lugares, e criar nosso próprio padrão com base nas melhores práticas encontradas?
[/quote]

Não existe um padrão oficial. Pense bem, oficial de quem ?
Existem tradições, bem antigas por sinal e totalmente fora de moda.
Alguns bancos de dados têm problemas com os nomes longos e obrigam a que as tabelas tenham nomes muito abreviados em forma de siglas. Isso era comum no passado, mas ainda existem bancos assim. Para esses, não ha o que fazer. Você tem que se ajustar à tecnologia. Agora, se vc usa um banco que não tem esse problema, os nomes das tabelas devem ser explicitos. Sem abreviaturas. Não precisam começar com TB. Use o mesmo padrão que no java é usado para constantes (tudo letras maiusculas com paalvras separadas por _ ) e veja feliz.

Se vc adotar uma politica model-first então as ferramentas vão crias os nomes para vc. Por exemplo, usando os mesmos nomes das classes.

O tempo de venerar o banco de dados já passou.

Encontrei esse documento na internet que tem um padrão que, ao meu ponto de vista, é bem interessante de se implementar, e parecer atender as necessidades, tem inclusive uma grande tabela de abreviaturas.

https://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CD8QFjAB&url=http%3A%2F%2Fwww.documentador.pr.gov.br%2Fdocumentador%2FacessoPublico.do%3Faction%3DdownloadArquivoUuid%26uuid%3D%40gtf-escriba%40ba702f86-9af4-4d8d-b30e-d3c135879256&ei=82vUUNjJBorm8gTF2ICQDA&usg=AFQjCNGG6qrGgBaEL6qNwTZnHeNiTlMtaw&sig2=KU1qhUQzGDzIJo7MrFjlhw&bvm=bv.1355534169,d.eWU&cad=rja

[quote=sergiotaborda][quote=Bruno M Gasparotto]Bom dia!

Estamos remodelando o nosso banco de dados aqui na empresa, pois vamos migrar o sistema desktop para a WEB, portanto, pesquisei na WEB e não fui capaz de encontrar uma nomenclatura padrão, em cada lugar, vejo uma padronização diferente, porém sempre semelhante.

Portanto, existe algum padrão oficial, semelhante as convenções de código da Sun? Ou o melhor a se fazer é obter esses padrões de vários lugares, e criar nosso próprio padrão com base nas melhores práticas encontradas?
[/quote]

Não existe um padrão oficial. Pense bem, oficial de quem ?
Existem tradições, bem antigas por sinal e totalmente fora de moda.
Alguns bancos de dados têm problemas com os nomes longos e obrigam a que as tabelas tenham nomes muito abreviados em forma de siglas. Isso era comum no passado, mas ainda existem bancos assim. Para esses, não ha o que fazer. Você tem que se ajustar à tecnologia. Agora, se vc usa um banco que não tem esse problema, os nomes das tabelas devem ser explicitos. Sem abreviaturas. Não precisam começar com TB. Use o mesmo padrão que no java é usado para constantes (tudo letras maiusculas com paalvras separadas por _ ) e veja feliz.

Se vc adotar uma politica model-first então as ferramentas vão crias os nomes para vc. Por exemplo, usando os mesmos nomes das classes.

O tempo de venerar o banco de dados já passou. [/quote]
me parece uma boa coisa, acredito que vou utilizar dessa forma, já utilizei nomenclatura com a primeira letra em maisculo, e o restante minusculo, e não gostei muito.
A princípio não vou utilizar ferramentas que criam um banco para mim, portanto estou dando atenção a esse ponto.

Na verdade , na maioria das vezes quem cria o padrão é a equipe de Analistas X desenvolvedores … pelo menos no meu caso sempre foi assim, os DBAs pegavam os scripts e geravam em produção, mas antes disto pediamos uma ajuda na questão do que é melhor e tal , pois é o DBA que manja estas coisas , quando o script era gerado em produção já era…

Mas já trabalhei em outros projetos que a geração era feita pelo EA … classes java,tabelas, etc… mas mesmo neste modelo tinhamos um modelo coerente de nomes , exatamente para facilitar o reuso e neste caso os DBAs faziam parte do Team (Scrum) e facilitava o andamento das coisas … cada empresa tem uma forma de trabalhar … o ideal é criar algo que seja comum à todos … respeitando as limitações de cada tecnologia …

Infelizmente nunca vi. =/

O pior é que você encontra coisas do tipo tb_pessoa_fisica, pessoa_fisica, pessoafisica, pessoaFisica (quando criada por alguém de java :lol: :lol: :lol: )

[quote=Hebert Coelho]Infelizmente nunca vi. =/

O pior é que você encontra coisas do tipo tb_pessoa_fisica, pessoa_fisica, pessoafisica, pessoaFisica (quando criada por alguém de java :lol: :lol: :lol: )[/quote]

Putzzz isto eu ja vi tbm … o pior que não podia mudar pois outros sistemas utilizavam as bases de dados … rs… é complicado …mas isto acontece em sistemas legados … pelo menos nos que eu vi …rs…