A forma mais simples de organizar a estrutura interna de uma tabela é através da criação de um arranjo de registros, onde cada registro tem pelo menos dois campos, um deles correspondente à chave e o outro, ao valor. Para auxiliar a descrição e manipulação desses dois campos de cada elemento da tabela, são definidos alguns tipos de dados abstratos e suas propriedades correspondentes.
A chave será descrita por um tipo KEY, para o qual pelo menos um operador é definido, que é o teste de igualdade () entre duas chaves. Se a chave pertence a um domínio parcialmente ordenado, então os operadores de comparação de ordem (maior que, , e menor que, ) são também definidos. Naturalmente, os operadores complementares (, , ) podem também ser definidos.
Para os objetivos desta descrição, o valor é descrito por um tipo VALUE, sem nenhuma propriedade específica exceto pelo acesso ao seu conteúdo para leitura e escrita.
Uma entrada em uma tabela será representada pelo tipo ENTRY, definido como um registro com um KEY e um VALUE:
ENTRY | c | : | KEY |
v | : | VALUE |
Com essas definições, a estrutura interna para uma tabela poderia ser representada como um registro com o número de elementos na tabela e um arranjo de entradas:
TABLE | n | : | integer |
e | : | array[n] of ENTRY |