Aliases de armazenamento

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 4 min. de leitura
  • Saiba mais sobre a função que os aliases de armazenamento desempenham na manipulação de dados e na criação de campos no Now Platform.

    Compreender os aliases de armazenamento é importante para uma gestão de dados eficaz e personalização de esquema no Now Platform, especialmente ao lidar com hierarquias de tabela complexas, como as da tabela Tarefa [task].

    Por padrão, os administradores têm acesso à tabela Aliases de coluna de armazenamento [sys_storage_alias] em uma instância. No entanto, os processos transacionais em relação a esta tabela não podem ser realizados por um administrador na interface do usuário.

    Hierarquia e modelos de tabela

    Compreender o aliasing de armazenamento requer conhecimento das hierarquias de tabela na tabela Tarefa [task], que envolve dois modelos: Tabela por hierarquia e Tabela por classe.

    Tabela por hierarquia
    Este modelo usa uma única tabela física, a tabela Tarefa [task], que apresenta uma hierarquia nivelada em que todas as colunas na hierarquia de tarefas existem somente na tabela de tarefas. Por exemplo, os campos relacionados a solicitações de mudança não estão em uma tabela Solicitação de Mudança [change_request] separada, mas são integrados à tabela Tarefa [task]. Você pode verificar se uma tabela é Tabela por hierarquia verificando o campo do modelo de extensão na tabela Tabelas [sys_db_object]. Se o primário da tabela for um secundário direto da tabela Tarefa [task], a tabela usará Tabela por hierarquia.

    Uma tabela estendida herda a hierarquia de sua tabela primária. Por exemplo, a tabela IMAC [change_request_imac] é uma tabela secundária da tabela Solicitação de mudança [change_request], que estende a tabela Tarefa [task]. Como a tabela Solicitação de mudança [change_request] é Tabela por hierarquia, o modelo de tabela IMAC [change_request_imac] também é Tabela por hierarquia. Tabelas legadas, como a tabela Incidente [incident], a tabela Solicitação de mudança [change_request] e a tabela Problema [problem] fazem parte da hierarquia da tabela Tarefa [task] nivelada.

    Tabela por classe
    Este modelo se aplica a tabelas que existem fisicamente no banco de dados. É usado para novas tabelas que se estendem diretamente da tabela Tarefa [task] quando a contagem de linhas de tarefa excede 1 milhão de linhas. Ao contrário da Tabela por hierarquia, a Tabela por classe não usa o efeito de ocultação porque não opera em uma hierarquia nivelada.

    Definição de alias de armazenamento

    Um alias de armazenamento é criado para cada campo em uma tabela em uma instância. Familiarize-se com os campos de chave na tabela Aliases de coluna de armazenamento [sys_storage_alias].

    Nome de Elemento
    Indica como o campo aparece para os usuários, o que é importante para interações de interface do usuário e scripts.
    Alias de armazenamento
    Indica a coluna física exata em que os dados de um campo são armazenados. O valor do alias de armazenamento é usado em combinação com o valor table_name para identificar quais dados manipular. O valor do alias de armazenamento é a coluna física real na tabela Tarefa [task].
    Nome da tabela de armazenamento
    Especifica a tabela física que hospeda o elemento. Para Tabela por tabelas de hierarquia, o valor é sempre tarefa. Para Tabela por tabelas de classe, o valor é o nome da tabela física.
    Tabela
    Especifica a classe lógica à qual cada elemento está vinculado na tabela Tarefa física [task]. O elemento Table contém o valor table_name, que é o discriminador de classe.
    Figura 1. Aliases da coluna de armazenamento
    Elementos com alias de armazenamento a_ref_2 na tabela de tarefas.

    Neste exemplo, o alias de armazenamento do elemento cab_delegate é a_ref_2 e a tabela de armazenamento físico em que os dados são armazenados é task. O exemplo descreve 10 elementos lógicos em diferentes classes lógicas na Tarefa [tabela] que estão vinculados ao mesmo alias a_ref_2 na tabela Tarefa física [task].

    Os elementos irmãos são agrupados, o que significa que eles compartilham uma coluna física na tabela Tarefa [task]. Você pode consultar dados do elemento lógico cab_delegate usando uma consulta como:

    SELECT a_ref_2 from task WHERE sys_class_name='change_request' AND a_ref_2 IS NOT NULL

    A consulta especifica dados na coluna física a_ref_2. O discriminador de classe change_request é usado em combinação com o alias de armazenamento a_ref_2 para consultar o elemento lógico cab_delegate da classe lógica change_request na tabela Tarefa física [task].

    A convenção de nomenclatura para campos criados nas tabelas físicas reais pode variar dependendo do tipo de campo. Neste exemplo, a_ref_2 é um alias na tabela Tarefa [task] que contém valores para campos de referência.

    Funcionalidade e uso

    Os aliases de armazenamento atendem a várias finalidades.

    Mapeamento
    Os aliases mapeiam elementos lógicos (tabela por hierarquia) ou elementos físicos (tabela por classe) para as colunas físicas reais no banco de dados de back-end. O elemento lógico pode ser agrupado em uma coluna física maior que o max_length do elemento lógico.
    Glomming
    Os aliases permitem que vários elementos irmãos compartilhem uma única coluna física em uma tabela por modelo de hierarquia.
    Mapeamento de rótulo
    Os aliases associam registros sys_documentation (rótulo) aos respectivos elementos, aprimorando a visibilidade em formulários, relatórios e exibições de lista.

    Restrições e regras

    • Dois elementos lógicos na mesma classe não podem compartilhar uma coluna física. Por exemplo, dois campos de cadeia de caracteres criados na tabela Incidente [incidente] não podem ser mapeados para a mesma coluna física no banco de dados.
    • Um elemento primário e seu secundário não podem compartilhar uma coluna física. Por exemplo, um campo criado na tabela Incident [incident] não pode ser mapeado para uma coluna física quando essa coluna física já está mapeada para um campo na tabela Tarefa [task].
    • Somente elementos irmãos podem compartilhar uma coluna física. Por exemplo, um campo de referência na tabela Solicitação de mudança [change_request] e um campo de referência na tabela Incidente [incidente] e podem ser mapeados para a mesma coluna física.
    • Campos criados diretamente na tabela Tarefa [task] (em que sys_class_name é 'task') não podem ser mascarados.