1. Glossario/

Annotations

Annotations (Oracle 23ai)

Le Annotations sono un sistema di metadati introdotto in Oracle Database 23ai che permette di associare coppie chiave/valore a oggetti dello schema: colonne, SQL Domain, tabelle, viste. Sono leggibili dal motore via le viste USER_ANNOTATIONS_USAGE, DBA_ANNOTATIONS_USAGE, ALL_ANNOTATIONS_USAGE.

Come funziona #

Si dichiarano direttamente nel CREATE (o ALTER) dell’oggetto, dentro la clausola ANNOTATIONS (...). Ogni coppia ha la forma nome 'valore'. Esempio in un dominio:

CREATE DOMAIN stato_polizza AS VARCHAR2(20)
  CONSTRAINT chk CHECK (VALUE IN ('EMESSA','IN_VIGORE','SOSPESA'))
  ANNOTATIONS (
    display 'Stato Polizza',
    description 'Ciclo di vita di una polizza',
    ordering 'EMESSA<IN_VIGORE<SOSPESA'
  );

I valori vengono memorizzati nel dizionario dati senza essere interpretati dal motore — sono semantica, non vincolo. Una query su USER_ANNOTATIONS_USAGE permette di estrarli a runtime.

A cosa servono #

Centralizzare nel dizionario dello schema i metadati che fino a 23ai vivevano in tabelle applicative separate o in file di configurazione esterni. Strumenti BI (Power BI, Tableau), framework di UI generation e procedure di reportistica possono leggere direttamente le annotazioni del database per derivare etichette di display, descrizioni di campo, ordering logico — senza richiedere un mapping manuale.

Cosa le distingue da COMMENT #

COMMENT ON COLUMN (presente da decenni in Oracle) permette di associare una sola stringa di testo libero a un oggetto. Le ANNOTATIONS sono strutturate: chiavi distinte, valori interrogabili come campi tabulari, supporto a più annotazioni per oggetto. Un COMMENT resta utile per la documentazione testuale; le ANNOTATIONS sono adatte a metadati che gli strumenti devono leggere e usare automaticamente.