Creazione e gestione di annotazioni dello schema
Le annotazioni dello schema sono campi di testo in formato libero che contengono proprietà estese o personalizzate di oggetti di database quali tabelle, viste, colonne, indici e domini dei casi d'uso dei dati. Le annotazioni sono una funzionalità dichiarativa leggera che consente di registrare centralmente le proprietà di utilizzo per gli oggetti dello schema di database. Possono essere considerati come markup standardizzato leggero per i metadati del database, per essere utilizzati dalle applicazioni per registrare ed elaborare proprietà di utilizzo estese e personalizzate.
Vedere anche: Oracle AI Database Concepts per ulteriori informazioni generali sulle annotazioni
creazione di annotazioni.
Le annotazioni sono proprietà degli oggetti dello schema e possono essere specificate nell'istruzione CREATE per l'oggetto.
-
L'istruzione seguente crea una nuova tabella con annotazioni per la tabella stessa e le colonne sottostanti.
CREATE TABLE employees ( id NUMBER(5) PRIMARY KEY ANNOTATIONS (Identity, Display 'Employee Name'), ename VARCHAR2(50) ANNOTATIONS(Display 'Employee Name'), salary NUMBER ANNOTATION(Display 'Employee Name', Confidential) ) ANNOTATIONS (Display 'Employee Table'); -
L'istruzione seguente include un'annotazione nella creazione del dominio di utilizzo dell'applicazione
dept_codesnello schemahr.CREATE DOMAIN dept_codes AS NUMBER(3) CONSTRAINT dept_chk CHECK (dept_codes > 99 AND dept_codes != 200) ANNOTATIONS (Title 'Domain Annotation);
Vedere anche: Oracle AI Database Development Guide per informazioni sulle istruzioni DDL per le annotazioni
Lista delle annotazioni
È possibile utilizzare le viste dizionario per ottenere l'elenco delle annotazioni utilizzate per oggetti specifici.
Per le annotazioni e l'uso delle annotazioni vengono definite le viste del dizionario riportate di seguito.
-
ALL_ANNOTATION_VALUES, DBA_ANNOTATION_VALUES, USER_ANNOTATION_VALUES
-
ALL_ANNOTATIONS, DBA_ANNOTATIONS, USER_ANNOTATIONS
-
ALL_ANNOTATIONS_USAGE, DBA_ANNOTATIONS_USAGE, USER_ANNOTATIONS_USAGE
Le viste ALL_* includono tutte le annotazioni per gli oggetti di proprietà dell'utente, tutte le annotazioni per gli oggetti di proprietà di altri utenti in cui l'utente dispone del privilegio ALTER e tutte le annotazioni per gli oggetti in cui l'utente dispone dei privilegi di sistema per tale tipo di oggetto. Le viste DBA_* includono tutte le annotazioni per tutti gli oggetti nel database. Le viste USER_* includono tutte le annotazioni per gli oggetti di proprietà dell'utente.
-
L'istruzione seguente recupera le annotazioni a livello di tabella per la tabella
EMPLOYEE:SELECT * from USER_ANNOTATIONS_USAGE WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NULL; -
L'istruzione seguente recupera le annotazioni a livello di colonna per la tabella
EMPLOYEE:SELECT * from USER_ANNOTATIONS_USAGE WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NOT NULL; -
L'istruzione seguente ottiene le annotazioni a livello di colonna per la tabella
EMPLOYEEcome singola raccolta JSON per colonna:SELECT U.Column_Name, JSON_ARRAYAGG(JSON_OBJECT(U.Annotation_Name, U.Annotation_Value)) FROM USER_ANNOTATIONS_USAGE U WHERE Object_Name = 'EMPLOYEE' AND Object_Type = 'TABLE' AND Column_Name IS NOT NULL GROUP BY Column_Name;
Vedere anche: Oracle AI Database Reference per informazioni sulle viste del dizionario per le annotazioni.
Modifica delle annotazioni
Per modificare un'annotazione, utilizzare l'istruzione ALTER per l'oggetto schema annotato.
-
L'istruzione seguente aggiunge un'annotazione aggiuntiva
Departmentcon il valoreHRalla tabellaemployees.ALTER TABLE employees ANNOTATIONS (ADD Department 'HR'); -
L'istruzione seguente elimina l'annotazione
Titlee aggiunge una nuova annotazioneNamecon il valoreDomainal dominiodept_code.ALTER DOMAIN dept_codes ANNOTATIONS(DROP Title, ADD Name 'Domain');
Vedere anche: Oracle AI Database Development Guide per informazioni sulle istruzioni DDL per le annotazioni