Oracle Lessons

Lezioni Pratiche in Italiano

Creato da Pietro_Bonfigli il 11/03/2009

Area personale

 

Tag

 

Archivio messaggi

 
 << Luglio 2024 >> 
 
LuMaMeGiVeSaDo
 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
 
 

Cerca in questo Blog

  Trova
 

FACEBOOK

 
 

Ultime visite al Blog

marcop1973pixfaxhellingen666RiukaTerzo_Blog.GiusFDMDMFqwerty_alnicola.cambaraFilippoPaganellifrancocapoluanadiciommoaleale78alebherryraffaelesoldanoio_brina
 

Chi puņ scrivere sul blog

Solo l'autore puņ pubblicare messaggi in questo Blog e tutti gli utenti registrati possono pubblicare commenti.
 
RSS (Really simple syndication) Feed Atom
 
 

 

« Oracle Tipi Dati Astratt...Oracle Tipi Dati Astratt... »

Oracle Tipi Dati Astratti Lezione 3

Post n°29 pubblicato il 16 Agosto 2010 da Pietro_Bonfigli
 

 

Riprendiamo la nostra tabella CLIENTI, essa è composta da una colonna di tipo semplice e da una colonna strutturata:

 

create table CLIENTI

(Cliente_id number,

Persona PERSONA_TY

);

 

Dove il tipo PERSONA_TY è strutturato nel seguente modo:

 

create type PERSONA_TY as object

(Nome varchar2(…),

Indirizzo UTE1.INDIRIZZO_TY

);

 

Gli attributi del tipo di dati vengono completamente qualificati quando si fa riferimento alle colonne all’interno dei tipi di dato astratti, anteponendo al nome dell’attributo il nome della colonna, e facendo procedere quest’ultimo da una variabile di correlazione.

Ad esempio la seguente query restituisce la colonna Cliente_id, e la colonna Nome.

La colonna Nome è un attributo del tipo di dati che definisce la colonna Persona, per cui si dovrà fare riferimento all’attributo con la notazione Persona.Nome :

 

select Cliente_id, c.Persona.Nome

from CLIENTE c; 

Nota.

Quando si esegue una query sugli attributi di un tipo di dati astratto, è necessario utilizzare una variabile di correlazione per la tabella, come mostrato in questo esempio.

 

Per impostare gli attributi di visualizzazione per gli attributi di un tipo di dati astratto in SQL*Plus si utilizza il comando column, specificando il nome del tipo di dati e l’attributo:

 

column Cliente_id format 9999999;

column Persona.Nome format A25;

 

Per fare riferimento ad attributi all’interno del tipo di dati INDIRIZZO_TY, occorre specificare il percorso completo attraverso le colonne correlate. Ad esempio per fare riferimento alla colonna via occorre scrivere:

 

Persona.Indirizzo.Via

 

Descrivendo per esteso la sua collocazione all’interno della struttura della tabella.

 

Select c.Persona.Nome, c.Persona.Indirizzo.Citta

From CLIENTE c

Where c.Persona.Indirizzo.Cirra like ‘C%’;

 

Dato che la colonna Citta viene utilizzata con un intervallo di ricerca all’interno della clausola where, l’ottimizzatore di Oracle è in grado di utilizzare un’indice al momento di risolvere la query. Per creare un indice su una colonna che faccia parte di un tipo di dati astratto, si deve specificare il percorso completo sino alla colonna come parte del comando create index.

 

Create index I_CLIENTE$CITTA

On CLIENTE(Persona.Indirizzo.Citta);

 

Con questo indice ogni volta che si accede alla colonna Citta, l’ottimizzatore di Oracle potrà valutare il suo utilizzo.

  Importante

Per creare indici su tabelle basate su tipi di dati astratto, è necessario considerare come avviene l’accesso alle colonne all’interno di tali tipi di dato. Se, come avviene per la colonna Citta, nell’esempio precedente, alcune colonne vengono utilizzate normalmente nelle query come parte delle condizioni di limitazione, queste colonne devono essere indicizzate. A questo riguardo, la rappresentazione di più colonne in un unico tipo di dati astratto può determinare un peggioramento delle prestazioni dell’applicazione, in quanto può mascherare l’esigenza di indicizzare colonne specifiche all’interno del tipo di dati.

 

Con i tipi di dato astratti, ci si abitua a trattare un gruppo di colonne come un’unica entità.

 

E’ importante ricordare però che l’ottimizzatore, in sede di valutazione dei percorsi di accesso all’informazione, prende in considerazione le colonne singolarmente. Inoltre l’indice agisce sulla tabella e non sul tipo INDIRIZZO_TY.

 

Pertanto, uno dei vantaggi offerti dai tipi di dato astratti ossia la capacità di migliorare l’aderenza agli standard per la rappresentazione di dati logici, non si estende alla rappresentazione dei dati fisici.

Ciascuna implementazione fisica deve essere curata separatamente.

 
 
 
Vai alla Home Page del blog
 
 

© Italiaonline S.p.A. 2024Direzione e coordinamento di Libero Acquisition S.á r.l.P. IVA 03970540963