Tabelle interne

Il tipo di dati di una tabella interna è completamente specificato dal tipo di riga, chiave e tipo di tabella.

Tipo di linea

Il tipo di linea di una tabella interna può essere qualsiasi tipo di dati. Il tipo di dati di una tabella interna è normalmente una struttura. Ogni componente della struttura è una colonna nella tabella interna. Tuttavia, il tipo di linea può anche essere elementare o un’altra tabella interna.

Chiave

La chiave identifica le righe della tabella. Esistono due tipi di chiave per le tabelle interne: la chiave standard e una chiave definita dall’utente. È possibile specificare se la chiave deve essere UNIVOCA o NON UNIVOCA. Le tabelle interne con una chiave univoca non possono contenere voci duplicate. L’unicità dipende dal metodo di accesso alla tabella.

Nelle tabelle con tipo di riga strutturata, la chiave standard è formata da tutte le colonne di tipo carattere della tabella interna. Se una tabella ha un tipo di riga elementare, la chiave predefinita è l’intera riga. La chiave predefinita di una tabella interna il cui tipo di riga è una tabella interna, la chiave predefinita è vuota. Nelle tabelle con tipo di riga non strutturata, la chiave standard è costituita dall’intera riga. Se il tipo di riga è anche una tabella, viene definita una chiave vuota.

La chiave definita dall’utente può contenere tutte le colonne della tabella interna che non sono tabelle interne e non contengono tabelle interne. I riferimenti sono consentiti come chiavi di tabella. Le tabelle interne con una chiave definita dall’utente sono chiamate tabelle chiave. Quando si definisce la chiave, la sequenza dei campi chiave è significativa. Dovresti ricordarlo, ad esempio, se intendi ordinare la tabella in base alla chiave.

Tipo di tabella

Il tipo di tabella determina in che modo ABAP accederà alle singole voci di tabella. Le tabelle interne possono essere suddivise in tre tipi:

Le tabelle standard hanno un indice lineare interno. Da una particolare dimensione in su, gli indici delle tabelle interne sono amministrati come alberi. In questo caso, il sovraccarico di amministrazione dell’indice aumenta in relazione logaritmica e non lineare al numero di linee. Il sistema può accedere ai record utilizzando l’indice della tabella o la chiave. Il tempo di risposta per l’accesso alla chiave è proporzionale al numero di voci nella tabella. La chiave di una tabella standard è sempre non univoca. Non è possibile specificare una chiave univoca. Ciò significa che le tabelle standard possono sempre essere compilate molto rapidamente, poiché il sistema non deve verificare se ci sono già voci esistenti.

Le tabelle ordinate vengono sempre salvate ordinate per chiave. Hanno anche un indice interno. Il sistema può accedere ai record utilizzando l’indice della tabella o la chiave. Il tempo di risposta per l’accesso alla chiave è logaritmicamente proporzionale al numero di voci della tabella, poiché il sistema utilizza una ricerca binaria. La chiave di una tabella ordinata può essere univoca o non univoca. Quando si definisce la tabella, è necessario specificare se la chiave deve essere UNIVOCA o NON UNIVOCA. Le tabelle standard e le tabelle ordinate sono note genericamente come tabelle indice.

Le tabelle con hash non hanno indice lineare. È possibile accedere a una tabella con hash solo utilizzando la sua chiave. Il tempo di risposta è indipendente dal numero di voci della tabella ed è costante, poiché il sistema accede alle voci della tabella utilizzando un algoritmo hash. La chiave di una tabella con hash deve essere univoca. Quando si definisce la tabella, è necessario specificare la chiave come UNIVOCA.

Tabelle interne generiche

A differenza di altri tipi di dati locali nei programmi, non è necessario specificare completamente il tipo di dati di una tabella interna. È invece possibile specificare una costruzione generica, ovvero la chiave o il tipo di chiave e riga di un tipo di dati di una tabella interna potrebbero non essere specificati. È possibile utilizzare tabelle interne generiche per specificare i tipi di simboli di campo e i parametri di interfaccia delle procedure . Non è possibile utilizzarli per dichiarare oggetti dati.

Leave a Reply