Tabelas

Uma definição de Tabela descreve os metadados necessários para o aplicativo trabalhar e acessar uma tabela ou exibição de banco de dados.

A definição inclui os seguintes detalhes principais:
  • A descrição da tabela no aplicativo.

  • A lista de campos definidos na tabela e todas as restrições da chave externa que eles estabelecem com outras tabelas.

  • A chave primária da tabela e como ela é gerada.

  • Se a tabela contém dados administrativos, mestres ou transacionais.

  • Se a tabela é liberada com linhas de dados do sistema pertencentes ao produto ou não.

  • A função da tabela no processo de conversão.

  • Como o conteúdo da tabela deve ser atualizado.

  • E muito mais.

As seções a seguir descrevem conceitos e diretrizes relacionados à definição de tabelas com mais detalhes.

Tabelas do Sistema

As tabelas liberadas com linhas pertencentes ao produto base são chamadas de tabelas do sistema. Essas tabelas incluem o campo Proprietário (OWNER_​FLG) para capturar o proprietário de cada linha.

Para obter mais informações sobre convenções de nomenclatura e padrões em torno da propriedade de registros de linha, consulte Dados do Sistema.

A configuração Atualizar no registro de definição de tabela controla o que acontece nas linhas de uma tabela quando o sistema é atualizado para uma nova versão. A configuração mais comum permite que linhas de propriedade do cliente sejam mescladas com linhas pertencentes ao produto base. Outras configurações podem manter o conteúdo da tabela como está, ou seja, as linhas não são alteradas pela atualização, ou atualizar completamente o conteúdo da tabela com linhas do produto base.

Alguns campos em determinadas tabelas pertencentes ao sistema estão explicitamente marcados para permitir personalização. Isso significa que a implementação pode alterar esses campos específicos para um registro pertencente à base. As alterações no valor de campo de um desses tipos de campos por uma implementação são mantidas na atualização para uma nova versão do produto.

Funções de Tabela Designadas

Algumas tabelas foram projetadas para serem compatíveis com as seguintes atribuições de aplicativo:
  • Tabelas de Chave
    • Uma tabela de chave contém uma cópia somente da chave primária de uma tabela e só é aplicável a tabelas com chaves geradas pelo sistema.

    • As tabelas com chaves geradas pelo sistema fazem referência à Tabela de Chave como parte do registro de definição de Tabela.

    • Os registros na tabela de chave permanecem no sistema mesmo quando a entidade relacionada é arquivada, impedindo que a mesma chave seja alocada para um novo registro. Manter a chave permite que o sistema mantenha a integridade de todas as referências à entidade arquivada que ainda possam existir.

  • Tabelas de Idioma
    • Para oferecer suporte implementações de vários idiomas, todos os rótulos e descrições apresentados a um usuário são mantidos em uma tabela de idiomas designada na qual existe uma linha para cada idioma ativado.

    • O produto é liberado com o conteúdo em inglês fornecido nas várias tabelas de idiomas. Uma linha adicional é acrescentada a essas tabelas para cada idioma ativado juntamente com o conteúdo traduzido desse idioma. Para obter mais informações, consulte Suporte para Idiomas Diferentes.

    • As tabelas associadas a campos que fazem distinção de idioma fazem referência à Tabela de Idioma correspondente como parte do registro de definição de Tabela.

  • Tabelas de Características
    • Muitas entidades no sistema aceitam uma ou mais Tabelas de características, que são usadas para capturar campos adicionais para o objeto que ainda não são aceitas pelos atributos fornecidos da entidade.

    • Uma Tabela de características foi projetada para capturar características aplicáveis somente à entidade específica. A entidade associada a uma tabela de características é referenciada no registro de definição da Tabela.

    • Para obter mais informações, consulte Configurando Tipos e Valores de Característica.

  • Tabelas de Log de Entidade
    • Muitas entidades no sistema oferecem suporte à captura do ciclo de vida e outros eventos de negócios importantes em uma tabela de logs designada.

    • Uma tabela de log captura os detalhes do evento na forma de uma mensagem de aplicativo e armazena qualquer parâmetro da mensagem em uma tabela de parâmetros de log-filho. Todas as tabelas de parâmetros de log e de log seguem uma estrutura predefinida, permitindo que elas sejam implementadas de forma consistente e eficiente.

    • Normalmente, as tabelas de log não participam do processo de conversão.

Restrições da Tabela

Os relacionamentos de chave externa entre tabelas não são impostos no nível do banco de dados, mas sim no nível do aplicativo, dando ao aplicativo mais flexibilidade em relação à manipulação de dados e à integridade referencial.

Os seguintes tipos de restrições podem ser definidos no registro de definição da Tabela:
  • Chave Primária consiste no campo ou no conjunto de campos que representam o identificador exclusivo de um registro armazenado em uma tabela.

  • Chave Lógica representa um identificador exclusivo alternativo de um registro baseado em um conjunto de campos diferentes da Chave primária.

  • Chave Externa representa um campo ou um conjunto de campos que especifica relacionamentos com e sem identificação com outras tabelas do aplicativo. Uma restrição de chave externa faz referência à restrição da chave primária de outra tabela.

  • Chave Externa Condicional representa relacionamentos raros entre tabelas em que um único campo (ou um conjunto de campos) pode fazer referência a várias restrições de chave primária de outras tabelas dentro do aplicativo como uma chave externa.

O sistema utiliza as informações de restrições de chave externa da tabela para executar a validação da integridade referencial quando as linhas dessa tabela são excluídas. Essas validações podem ser desativadas marcando o campo Ativar Integridade Referencial no registro de definição da Tabela.

Índices da Tabela

Os índices fornecidos pelo produto base para uma determinada tabela estão visíveis nos metadados do índice. Além disso, as informações de índice de tabela podem ser definidas como parte do suporte a serviços de nuvem para geração de tabelas personalizadas em determinados casos de uso. Consulte a seção Gerando Tabelas Personalizadas a seguir para obter mais informações.

Tipo de Chave Primária

A chave primária de uma tabela pode ser dos seguintes tipos:

  • Definido pelo usuário significa que o usuário especifica a chave quando um registro é adicionado. Esse tipo de chave geralmente é usado para tabelas de configuração e administrativas.

  • Gerado pelo sistema significa que um programa gera uma chave numérica aleatória para o registro ao ser adicionado.
    • Esse tipo de tabela geralmente é associado a uma tabela de chaves. Para obter mais informações, consulte a seção Atribuições de Tabela Designadas.

    • As chaves geradas pelo sistema podem ser totalmente aleatórias ou parcialmente herdadas da chave de uma tabela-pai por motivos de desempenho. Para obter mais informações, consulte o System Generated Keys.

  • Sequencial significa que um número de sequência é incrementado sempre que um registro é adicionado à tabela. O próximo número da seqüência determina o valor-chave.

  • Chave Sequencial Nativa do Banco de Dados significa que um número exclusivo é atribuído usando um objeto de sequência de banco de dados.

  • Outro significa que alguma outra regra de negócios aloca a chave primária da tabela ou a chave primária é feita de várias partes.

Chaves Geradas pelo Sistema

Em geral, chaves de sistema numéricas geradas aleatoriamente são usadas para tentar distribuir igualmente os registros entre um intervalo completo de IDs possíveis. Programas em batch que usam vários threads geralmente dividirão os threads usando intervalos de ID. Chaves distribuídas igualmente ajudarão a propagar o trabalho entre esses threads.

Se uma tabela que usa uma chave gerada pelo sistema for filha de outra tabela, a chave da tabela-filho poderá herdar uma parte do número aleatório da chave da tabela-pai. A herança principal para registros filhos estende ainda mais o benefício de desempenho. Ao considerar o particionamento, a recomendação para administradores de bancos de dados é classificar os dados da partição com base na chave primária para que threads de batch diferentes operem em partições diferentes, o que reduz a contenção de bloqueios altos. Preferencialmente, o número de threads de batch será um múltiplo exato do número de partições. Programas de batch que inserem dados filhos (por exemplo, a criação de Faturamento em batch) também se beneficiam desse design, especialmente quando as tabelas filhas são particionadas do mesmo modo. O pai geralmente é o driver do processo em batch. Se esse for um processo de multithread, cada thread processará um conjunto de registros pai em um determinado intervalo de IDs, e todos os registros filhos serão inseridos no mesmo intervalo de IDs.

Embora a maioria das entidades com chaves geradas pelo sistema use chaves totalmente aleatórias ou parcialmente herdadas de um único pai, as entidades podem ser projetadas para implementar regras de geração de chaves mais específicas.

Quando a herança de chave é usada, a definição de tabela da tabela-filho define as seguintes informações:
  • O número dos dígitos mais significativos da chave primária do registro pai a serem usados como o prefixo para o valor-chave do registro-filho.

  • O nome do campo de chave-pai do qual herdar a chave. Essas informações são fornecidas somente para fins de exibição e documentação e só são fornecidas quando a regra de herança implementada pela entidade pode ser documentada dessa forma. Normalmente, o valor da chave-filho é herdado de uma única chave-pai, mas, em alguns casos, a regra de herança pode ser mais complexa. Por exemplo, tipos diferentes de registros na mesma tabela-filho podem herdar sua chave de campos chave-pai diferentes. Nesse caso, vários nomes de campo-pai podem ser listados para descrever as várias opções de herança. Quando a regra é muito complexa, essas informações podem não ser fornecidas no registro de definição de tabela.

Opções de Conversão

O processo de conversão gerencia o processo pelo qual os dados legados mestre e de transação, carregados em um esquema de preparação, são validados e atribuídos a novas chaves geradas pelo sistema antes de serem copiados para o esquema de produção. Para saber mais, consulte o Noções Básicas Sobre o Processo de Conversão.

A ferramenta classifica as tabelas nas seguintes atribuições:
  • Tabelas administrativas Eles só existem no esquema de produção. Em vez de uma tabela, existe uma visualização para a tabela de produção no esquema de preparação. Essas visualizações são necessárias para impor referências de chave externa quando os dados são validados no esquema de preparação

  • Tabelas conversíveis que retêm suas chaves primárias. A conversão de dados é suportada nessas tabelas e seus valores de chave primária permanecem inalterados.

  • Tabelas conversíveis que exigem que uma nova chave gerada pelo sistema seja atribuída. A conversão de dados é suportada nessas tabelas e sua chave primária é reatribuída pelo sistema durante a conversão.

  • Tabelas não conversíveis. A atribuição de novas chaves geradas pelo sistema para um registro e a substituição de todas as referências de chave externa que elas podem ter com a nova chave é um processo complicado que pode não ser compatível com todas as tabelas.

A configuração Função de Conversão de Dados no registro de definição de tabela controla se/como a tabela será usada pelo processamento de conversão.

Configuração de data/hora

Os campos que capturam informações de data/hora podem ser projetados para armazenar dados no horário oficial local ou no horário padrão local. O horário legal local é capturado conforme digitado e exibido conforme capturado no banco de dados. Ele também presume que as informações de data/hora se referem ao fuso horário definido nas opções de instalação. Para obter mais informações, consulte Padrão vs. Legal.

Gerando Tabelas Personalizadas

Para clientes da nuvem e para determinados casos de uso, o produto suporta a definição de metadados de tabela para tabelas personalizadas e a geração das DDLs relacionadas para esses metadados no banco de dados. Para essas tabelas personalizadas, há um Status de Geração visível nos metadados da Tabela que identifica onde a Tabela está no ciclo de vida desse recurso suportado. Além disso, a guia de índice no portal da tabela é usada para definir índices personalizados que são incluídos na DDL como parte desse recurso. Se você for um cliente da nuvem e quiser obter mais informações, consulte o Cloud Services Implementation Guide.