Uso dati dell'applicazione
Questo capitolo spiega quali sono i domini dei casi d'uso dei dati e le annotazioni degli schemi.
-
Domini caso d'uso dati Un dominio caso d'uso dati è un oggetto dizionario di alto livello appartenente a uno schema e incapsula un set di proprietà e vincoli facoltativi.
-
Annotazioni dello schema Per molte applicazioni, è importante gestire metadati di proprietà aggiuntivi per oggetti di database quali tabelle, viste, colonne di tabella, indici e domini.
Domini caso d'uso dati
Un dominio del caso d'uso dei dati è un oggetto dizionario di alto livello che appartiene a uno schema e incapsula un set di proprietà e vincoli facoltativi.
I database in genere hanno avuto una comprensione limitata di come i dati vengono effettivamente utilizzati dalle applicazioni. I database memorizzano i dati utilizzando tipi primitivi come VARCHAR2, NUMBER o DATE, mentre la conoscenza che un valore memorizzato rappresenta, ad esempio, un numero di carta di credito o una data di nascita, esiste solo all'interno di metadati o contesto a livello di applicazione. Questo approccio aumenta la complessità dell'applicazione individuale, frammenta la consapevolezza dell'uso tra strumenti e applicazioni e introduce la possibilità di semantica divergente.
I tentativi passati di contrastare questa divergenza sono stati quelli di aggiungere più tipi di dati integrati specifici per l'uso ai database e fornire supporto per tipi definiti dall'utente per l'estensibilità. I sistemi di tipo di database più elaborati hanno ricevuto un'adozione limitata poiché aumentano la mancata corrispondenza con i tipi di linguaggio dell'applicazione, creano codice dell'applicazione non portatile e aumentano la complessità dello sviluppo poiché le operazioni che coprono diversi tipi sono limitate.
Tali restrizioni sulla rappresentazione dell'uso dei dati possono essere evitate utilizzando il concetto di dominio esteso di Oracle AI Database come definito dallo standard SQL. Utilizzando questo approccio, una colonna può essere dichiarata sia con un tipo di dati primitivo come NUMBER, sia con un dominio per l'utilizzo dei dati, come "Temperatura" o "Punteggio credito". Tale dominio di un caso d'uso può facoltativamente essere associato a proprietà d'uso diverse, quali vincoli di controllo, proprietà di visualizzazione, regole di ordinamento e altre. Soprattutto, le informazioni centralizzate sul dominio possono essere utilizzate dalle applicazioni per standardizzare le operazioni senza richiedere metadati a livello di applicazione; ad esempio, per mascherare i numeri di carta di credito, formattare i numeri di telefono e i valori di valuta, visualizzare i valori percentuali in una colonna come grafico a torta e altro ancora.
I domini dei casi d'uso non modificano il tipo di dati sottostante e possono, pertanto, essere aggiunti anche ai dati esistenti senza interrompere le applicazioni o creare problemi di portabilità. Un dominio caso d'uso può essere dichiarato per una o più colonne in una tabella e può essere utilizzato anche per rappresentare scenari di utilizzo delle variabili in cui l'uso effettivo dei dati dipende dai dati in altre colonne. I domini dei casi d'uso possono essere considerati come modificatori di tipo leggero che documentano centralmente l'uso dei dati previsto per le applicazioni. Inoltre, è possibile utilizzare i domini dei casi d'uso per condividere le annotazioni.
L'eliminazione di una tabella con un dominio caso d'uso associato può produrre risultati diversi dall'eliminazione di una tabella con un tipo PL/SQL associato. Quando si elimina una tabella a cui è associato un dominio caso d'uso o un tipo PL/SQL, vengono applicate le regole riportate di seguito.
-
Se una tabella è stata eliminata senza la clausola
PURGE, sarà comunque disponibile nel cestino (se il cestino è abilitato) per un potenziale ripristino futuro. -
Se la tabella contiene una colonna che utilizza un tipo PL/SQL o un tipo di dati astratti e un'altra colonna associata a un dominio caso d'uso, procedere come segue.
-
L'eliminazione del dominio caso d'uso con la clausola
FORCEconsentirà comunque il ripristino della tabella. Il dominio del caso d'uso viene semplicemente dissociato dalla colonna. -
L'eliminazione del tipo PL/SQL, con o senza la clausola
FORCE, comporterà la rimozione della tabella dal cestino perché non è possibile ripristinarla completamente.
-
Caratteristiche dei domini dei casi d'uso:
-
Vincoli: i domini possono essere utilizzati per condividere i vincoli tra più tabelle e colonne. Questi vincoli possono essere disabilitati per vincoli differibili. I vincoli della chiave primaria e della chiave esterna non sono consentiti nei domini.
-
Tipi di dati: sono consentiti tutti i tipi di dati Oracle incorporati, ad eccezione dei tipi di dati raw lunghi e lunghi e degli oggetti.
-
Espressione predefinita: sono consentite le espressioni predefinite, che corrispondono ai valori predefiniti delle colonne.
-
Ricerca senza distinzione tra maiuscole e minuscole: i domini consentono ricerche senza distinzione tra maiuscole e minuscole che possono essere utilizzate nelle clausole
WHEREeORDER BY. -
Espressione di visualizzazione: le espressioni di visualizzazione consentono regole di visualizzazione personalizzate. Ad esempio, la visualizzazione delle valute nel formato locale.
-
Espressione degli ordini: un'espressione degli ordini consente ordini complessi. Ad esempio, ordinando in base alla valuta aziendale standard normalizzata, ad esempio gli importi in dollari USA.
Tipi di dominio caso d'uso:
-
Colonna singola: si applica a una singola colonna di dati.
-
Multi-colonna: si applica a più colonne, ad esempio la valuta.
-
Domini flessibili: basati su altri domini e devono essere tipi di dati compatibili con i sottodomini. Un esempio sono i formati di indirizzo per diversi paesi.
-
Enumeration: è costituito da un set di nomi e, facoltativamente, da un valore corrispondente a un nome.
Rigoroso rispetto a non rigoroso:
-
Non rigoroso: un dominio non rigoroso deve corrispondere al tipo di dati specificato, ma non necessariamente alla lunghezza o alla scala dei dati numerici.
-
Restrittivo: richiede che il tipo di dati, la lunghezza e la scala corrispondano esattamente. Ad esempio, i codici valuta che devono essere esattamente due o tre caratteri.
È possibile creare un dominio di enumerazione utilizzando Oracle SQL. A differenza dei domini normali, un dominio di enumerazione ha un vincolo CHECK predefinito e un'espressione di visualizzazione. I nomi all'interno di un dominio di enumerazione possono essere utilizzati ovunque sia consentito un valore in un'espressione SQL scalare e il dominio stesso può essere utilizzato nella clausola FROM di un'istruzione SELECT come se fosse una tabella. Un dominio di enumerazione è un tipo speciale di dominio di utilizzo e può essere utilizzato come qualsiasi dominio a colonna singola.
Un dominio di enumerazione è costituito da un insieme di nomi e, facoltativamente, un valore corrispondente a un nome. Il nome deve essere un identificativo SQL valido e ogni valore specificato deve essere un valore o, nel caso di un'enumerazione a più colonne, un elenco di valori. Sebbene i valori possano essere di qualsiasi tipo di dati supportati per un dominio caso d'uso dei dati, tutti devono essere dello stesso tipo di dati.
Ad esempio, l'utente SCOTT, a cui è stato concesso in precedenza il privilegio CREATE DOMAIN, crea un dominio enumerato a colonna singola per il titolo mansione.
CREATE DOMAIN Job_Title AS
ENUM (
Clerk = 'CLERK',
Salesman = SalesPerson = 'SALESMAN',
Manager = 'MANAGER',
Analyst = 'ANALYST',
President = 'PRESIDENT'
);
Il dominio Job_Title può ora essere utilizzato come tipo di dati durante la creazione della tabella EMP. Ad esempio:
CREATE TABLE emp
( empno NUMBER(4) CONSTRAINT emp_pk PRIMARY KEY,
ename VARCHAR2(10),
job Job_Title,
mgr NUMBER(4) CONSTRAINT emp_mgr_fk REFERENCES emp(empno),
hiredate DATE,
sal NUMBER(7,2)
);
Quando si inserisce una nuova riga di dati, il dominio enumerato può essere utilizzato per specificare il valore per la colonna JOB. Le seguenti tre istruzioni INSERT sono equivalenti.
INSERT INTO emp VALUES (8000, 'PATEL', Job_Title.Salesman, 7698, TO_DATE('11-MAR-2024', 'DD-MON-YYYY'), 3500);
INSERT INTO emp VALUES (8000, 'PATEL', Job_Title.SalesPerson, 7698, TO_DATE('11-MAR-2024', 'DD-MON-YYYY'), 3500);
INSERT INTO emp VALUES (8000, 'PATEL', 'SALESMAN', 7698, TO_DATE('11-MAR-2024', 'DD-MON-YYYY'), 3500);
Argomenti correlati
Annotazioni schema
Per molte applicazioni, è importante gestire metadati di proprietà aggiuntivi per oggetti di database come tabelle, viste, colonne di tabelle, indici e domini.
Sebbene i domini includano proprietà di utilizzo integrate quali vincoli di controllo, raccolte, ordinamento personalizzato e altre ancora, per l'estensibilità il database Oracle offre anche la possibilità di aggiungere proprietà personalizzate tramite il meccanismo ANNOTATIONS per i metadati del database, tra cui colonne di tabella, tabelle, indici e altro ancora. Le applicazioni spesso devono gestire metadati di proprietà aggiuntivi, in particolare per il rendering delle interfacce utente o la personalizzazione della logica dell'applicazione.
Di seguito sono riportati alcuni esempi di proprietà di utilizzo a livello di colonna.
-
Etichetta di visualizzazione: questo può essere diverso dal nome della colonna (ad esempio, visualizzare il titolo "Salario" da una colonna denominata Employee_Salary)
-
Gruppo di colonne: in molti casi, una colonna "gruppo" è interessante per un'interfaccia utente (ad esempio, per raggruppare le colonne Numero civico, Nome civico, Città e CAP in un gruppo di indirizzi)
-
Formato maschera: ad esempio, una maschera di visualizzazione di
$99,999.99può essere utilizzata da uno strumento dell'interfaccia utente per visualizzare 56434 come$56,434.00 -
Nascondi: indica se mostrare la colonna nell'interfaccia utente a un utente finale (ad esempio, non mostrare colonne con informazioni riservate o colonne aggiunte dal sistema a una determinata classe di utenti finali)
-
Evidenzia: indica se la colonna deve essere visualizzata con un'evidenziazione speciale
-
Operazioni consentite: consente all'interfaccia di determinare se consentire a una colonna di supportare l'ordinamento, il raggruppamento, la visualizzazione di un elenco di valori e altri.
Le proprietà di utilizzo a livello di tabella possono essere utilizzate in modo simile per consentire alle applicazioni di registrare se una tabella contiene informazioni riservate, il nome visualizzato, i moduli nell'applicazione di cui è proprietaria o gestita e altro ancora.
La maggior parte delle applicazioni crea i propri repository per questo tipo di metadati di utilizzo, con conseguente complessità degli sviluppatori e la possibilità di divergenze tra applicazioni, moduli e microservizi.
Le annotazioni dello schema di Oracle AI Database sono una funzionalità dichiarativa leggera che consente agli sviluppatori di registrare centralmente le proprietà d'uso per gli oggetti dello schema di database. Le annotazioni vengono memorizzate direttamente all'interno del database nelle tabelle dei dizionari insieme alla definizione del modello di dati e ai dati stessi e sono disponibili per qualsiasi applicazione al fine di standardizzare il comportamento tra i dati comuni, ma non vengono interpretate dal database in alcun modo. Dovrebbero essere considerati come markup standardizzato leggero per i metadati del database, per l'uso da parte delle applicazioni per registrare ed elaborare proprietà di utilizzo estese e personalizzate.
Argomenti correlati