Toggle navigation
Entrar
Registrar
Administração de Dados
Índice de Documentos
Diretório de Usuários
Application Index
DOCUMENTAÇÃO
Normas e Padrões para Administração de Dados
Nomes de constraints
Código fonte Wiki de
Nomes de constraints
Última modificação por
GEOFLAVIA GUILARDUCCI DE ALVARENGA
em 16/01/2019, 17:31
Esconder números de linha
1: Os nomes dos diferentes tipos de //constraints //devem obedecer às regras seguintes: 2: 3: 4: 5: 1. Todos os nomes de //constraints// devem ser compostos por um prefixo e um identificador único: 6: 7: {{html}} 8: <br> <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-left:180.0pt;margin-right:300pt'><p class=MsoNormal align=center style='background:#E0E0E0;border:none;padding:0cm'><b><span style='color:navy'>{prefixo}_{identificador único}</span></b></p> </div> 9: {{/html}} 10: 11: 12: * O prefixo é constituído por um par de letras que permitem identificar o tipo de //constraint//: 13: **PK** (chave primária), **CK** (//check constraint//), **UK** (chave única) e **FK** (chave estrangeira). 14: * O identificador único é composto por uma ou mais partes extraídas dos nomes dos objetos envolvidos, possuindo uma regra de formação definida para cada tipo de //constraint// (conforme itens a seguir **2** a **6**, nesta página desta subseção **Nomes de //constraints//**). 15: * Obs.: Para a composição desse identificador em modelos multidimensionais, devem ser descartados os prefixos que identificam o tipo de tabela, tais como: **DIM**, **STG**, **DW** e **EXT**. Por outro lado, no caso de tabelas fato, a palavra **FATO** deve ser mantida e também deve ser considerada para fins de abreviação (conforme orientado na seção [[Regras de abreviatura de nomes de tabelas para composição de nomes de objetos>>DOCUMENTAÇÃO.Normas e Padrões para Administração de Dados | '''Normas e padrões para administração e inteligência de dados.Nomenclatura padrão - Regras abrev nomes tabelas para comp nomes obj.WebHome]]). 16: 17: 2. Quando se tratar de chave primária, o nome da //constraint// deve ser precedido pelo prefixo **PK**, seguido do nome da tabela: 18: 19: {{html}} 20: <br> <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-left:180.0pt;margin-right:360pt'><p class=MsoNormal align=center style='background:#E0E0E0;border:none;padding:0cm'><b><span style='color:navy'>PK_{nome da tabela}</span></b></p> </div> <p class=MsoNormal style='margin top:12.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:130pt;margin-bottom:.0001pt;text-align:justify'><br><b><span style='font-size:11.0pt;color:#003366'>Exemplo: </span></b></p> <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-left:200pt;margin-right:360pt'><p class=MsoNormal style='background:#E0E0E0;border:none;padding:0cm'><b><span style='color:#003366'>PK_PROCESSO</span></b></p></div> 21: {{/html}} 22: 23: 24: 25: 3. Quando se tratar de //check constraint//, o nome deve ser precedido pelo prefixo **CK**, seguido da abreviação do nome da tabela (conforme orientado na seção [[Regras de abreviatura de nomes de tabelas para composição de nomes de objetos>>DOCUMENTAÇÃO.Normas e Padrões para Administração de Dados | '''Normas e padrões para administração e inteligência de dados.Nomenclatura padrão - Regras abrev nomes tabelas para comp nomes obj.WebHome]]) e do nome da coluna que será checada: 26: 27: {{html}} 28: <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-left:180.0pt;margin-right:170pt'> <p class=MsoNormal align=center style='background:#E0E0E0;border:none;padding:0cm'><b> <span style='color:navy'>CK_{abreviação da tabela}_{nome da coluna de <i>check</i>}</span></b></p></div> <p class=MsoNormal style='margin top:12.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:130pt;margin-bottom:.0001pt;text-align:justify'><br><b><span style='font-size:11.0pt;color:#003366'>Exemplo: </span></b></p> <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-left:200pt;margin-right:360pt'><p class=MsoNormal style='background:#E0E0E0;border:none;padding:0cm'><b><span style='color:#003366'>CK_PROC_FLG_ATIVO</span></b></p></div> <br> 29: {{/html}} 30: 31: 32: 33: 4. Quando a //check constraint// referir-se a múltiplas colunas, deve ser utilizado na composição o nome da coluna mais relevante. 34: 35: 36: 37: 5. Quando se tratar de //unique key//, o nome deve ser precedido pelo prefixo **UK**, seguido de abreviação do nome da tabela (conforme orientado na seção [[Regras de abreviatura de nomes de tabelas para composição de nomes de objetos>>DOCUMENTAÇÃO.Normas e Padrões para Administração de Dados | '''Normas e padrões para administração e inteligência de dados.Nomenclatura padrão - Regras abrev nomes tabelas para comp nomes obj.WebHome]]) e de um complemento, que deve, preferencialmente, ser o nome da coluna da **UK** ou da primeira das colunas que constituem a **UK**: 38: 39: {{html}} 40: <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-left:180.0pt;margin-right:170pt'> <p class=MsoNormal align=center style='background:#E0E0E0;border:none;padding:0cm'><b> <span style='color:navy'>UK_{abreviação da tabela}_{complemento}</span></b></p></div> <p class=MsoNormal style='margin top:12.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:130pt;margin-bottom:.0001pt;text-align:justify'><br><b><span style='font-size:11.0pt;color:#003366'>Exemplo: </span></b></p> <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-left:200pt;margin-right:300pt'><p class=MsoNormal style='background:#E0E0E0;border:none;padding:0cm'><b><span style='color:#003366'>UK_ANDA_DSC_ANDAMENTO</span></b></p></div> 41: {{/html}} 42: 43: 44: 45: 6. Para chaves estrangeiras (**FK**), cabem as seguintes orientações: 46: 47: * Situação considerada normal: quando a **FK** for passada uma única vez para uma tabela, seu nome deve ser precedido do prefixo **FK**, seguido pelo nome da tabela de relacionamento (origem da **FK** ou tabela pai) e pela abreviatura (conforme orientado na seção [[Regras de abreviatura de nomes de tabelas para composição de nomes de objetos>>DOCUMENTAÇÃO.Normas e Padrões para Administração de Dados | '''Normas e padrões para administração e inteligência de dados.Nomenclatura padrão - Regras abrev nomes tabelas para comp nomes obj.WebHome]]) do nome da tabela na qual a //constraint// está sendo criada (destino da **FK** ou tabela filha): 48: 49: {{html}} 50: <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-left:155pt;margin-right:170pt'> <p class=MsoNormal align=center style='background:#E0E0E0;border:none;padding:0cm'><b> <span style='color:navy'>FK_{nome da tabela pai}_{nome abreviado da tabela filha}</span></b></p></div> <p class=MsoNormal style='margin top:12.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:110pt;margin-bottom:.0001pt;text-align:justify'><br><b><span style='font-size:11.0pt;color:#003366'>Exemplo: </span></b></p> <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-left:170pt;margin-right:300pt'><p class=MsoNormal style='background:#E0E0E0;border:none;padding:0cm'><b><span style='color:#003366'>FK_PROCEDENCIA_PROC</span></b></p></div> 51: {{/html}} 52: 53: 54: * Exceção: caso a **FK** seja passada mais de uma vez para a mesma tabela, seu nome deve ser formado pelo prefixo **FK**, seguido por: 55: ** (1) nome abreviado (conforme orientado na seção [[Regras de abreviatura de nomes de tabelas para composição de nomes de objetos>>DOCUMENTAÇÃO.Normas e Padrões para Administração de Dados | '''Normas e padrões para administração e inteligência de dados.Nomenclatura padrão - Regras abrev nomes tabelas para comp nomes obj.WebHome]]) da tabela de relacionamento (origem da **FK** ou tabela pai); 56: ** (2) uma parte significativa e não-abreviada do nome do atributo relacionado; 57: ** (3) nome abreviado (conforme orientado na seção [[Regras de abreviatura de nomes de tabelas para composição de nomes de objetos>>DOCUMENTAÇÃO.Normas e Padrões para Administração de Dados | '''Normas e padrões para administração e inteligência de dados.Nomenclatura padrão - Regras abrev nomes tabelas para comp nomes obj.WebHome]]) da tabela onde a //constraint// está sendo criada (destino da **FK** ou tabela filha): 58: 59: {{html}} 60: <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-right:0pt'> <p class=MsoNormal align=center style='background:#E0E0E0;border:none;padding:0cm'><b> <span style='color:navy'>FK_{nome abreviado da tabela pai}_{parte significativa do nome do atributo relacionado}_{nome abreviado da tabela filha}</span></b></p></div> <p class=MsoNormal style='margin top:12.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:100pt;margin-bottom:.0001pt;text-align:justify'><br><b><span style='font-size:11.0pt;color:#003366'>Exemplos: </span></b></p> <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-left:170pt;margin-right:260pt'> <p class=MsoNormal style='background:#E0E0E0;border:none;padding:0cm'><b><span style='color:#003366'>FK_TINC_ESCRITA_IDSE <br> FK_TINC_LEITURA_IDSE <br> FK_TINC_CONVERSACAO_IDSE</span></b></p></div> <p class=MsoNormal style='margin-left:54.0pt;text-align:justify;text-autospace:none'><b></b></p> <p class=MsoNormal style='margin-left:144.0pt;text-align:justify'>Obs.: este exemplo retrata o relacionamento entre as tabelas <b>TIPO_NIVEL_CONHECIMENTO</b> e <b>IDIOMA_SERVIDOR</b>. A primeira linha do exemplo retrata o relacionamento com campo <b>escrita</b>, a segunda com o campo <b>leitura</b> e a terceira com o campo <b>conversacao</b>.</p> 61: {{/html}} 62: 63: 64: 65: 7. No caso de definições de **valor //default//**, o nome deve ser precedido pelo prefixo **VD**, seguido do próprio valor. Neste caso, a aplicação da regra restringe-se à sua definição no próprio modelo de dados, já que o nome não é replicado em banco. 66: 67: {{html}} 68: <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-left:180.0pt;margin-right:350pt'> <p class=MsoNormal align=center style='background:#E0E0E0;border:none;padding:0cm'><b> <span style='color:navy'>VD_{valor <i>default</i>}</span></b></p></div> <p class=MsoNormal style='margin top:12.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:130pt;margin-bottom:.0001pt;text-align:justify'><br><b><span style='font-size:11.0pt;color:#003366'>Exemplos: </span></b></p> <div style='border:solid windowtext 1.0pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;background:#E0E0E0;margin-left:200pt;margin-right:250pt'><p class=MsoNormal style='background:#E0E0E0;border:none;padding:0cm'><span style='color:#003366'><b>VD_1</b>, que significa valor <i>default</i> igual a <b>1</b>;<br> <b>VD_S</b>, que significa valor <i>default</i> igual a <b>S</b>;<br> <b>VD_N</b>, que significa valor <i>default</i> igual a <b>N</b>.</span></p></div> 69: {{/html}}