Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
UNION
L’integrazione degli schemi locali genera un’unione, dove tramite GAV gli attributi locali sono
relazionati nello schema globale: viene inoltre codificata eventuale conoscenza di dominio
(come caratteristiche sui dati), dipendente grazie all’interazione diretta di esperti di dominio
e data integrator.
Nell’esempio, il fatto che S1 contenga dati di prog esperti in DB ed S2 contenga dati di prof
italiani, viene codificato tramite l’inserimento di valori di default relativamente agli attributi
area (“DB”) e country (“ITA”) rispettivamente nelle tuple prese dalle tabelle opposte.
2. LAV (Local-as-View) – lo schema globale è costruito indipendentemente dagli schemi locali,
realizzato da un esperto data integrator. L’approccio è basato sull’idea che il contenuto di
ogni schema è descritto in termini di una vista sullo schema globale. Il mapping LAV specifica
come i dati locali (reali) contribuiscono agli elementi globali (virtuali). Di seguito l’esempio
con le tabelle usate per GAV: 48
Mettendo a confronto i due tipi di mapping, otteniamo le seguenti differenze:
Nel LAV lo schema globale è costruito a priori, nessun tool di supporto è associato a questi
sistemi, inoltre la gestione delle query risulta più difficile rispetto a GAV. È più semplice
inserire nuove sorgenti dati, poiché basta semplicemente definire un nuovo mapping
(ovvero una vista).
Nel GAV sono forniti tool di supporto alla costruzione semi-automatica dello schema globale,
con gli associati schema mapping. La gestione delle query è più intuitiva, poiché basta
scriverla utilizzando la vista globale in termini di schemi locali. È però più complessa
l’aggiunta di nuove sorgenti, in quanto può affliggere i mapping esistenti e quindi richiedere
una riscrittura completa.
Per questi motivi è più utilizzato il GAV del LAV.
6.2.1 – Analisi della Publishing Phase GAV
Gli schemi globali possono essere rappresentati con schemi relazionali, linguaggi object-oriented
oppure linguaggi semistrutturati/XML-based: consideriamo gli schemi relazionali.
La costruzione dello schema globale è basata sull’identificazione, l’analisi e la risoluzione di conflitti
tra le diverse sorgenti locali: 49
Schema matching – identificazione di concetti semanticamente correlati in diversi schemi
locali, basata sulla capacità di implementazione di tecniche che possono identificare dati
simili in sorgenti diverse. L’obiettivo è identificare conflitti in terminologie, strutture, formati
di dati e significati caratterizzanti i dati salvati in ogni sorgente. Le tipologie di conflitto sono:
a. Sinonimi, concetti con nomi differenti ma stesso significato in sorgenti diverse;
b. Omonimi, concetti con nomi uguali ma diverso significato in sorgenti diverse.
c. Rappresentazioni diverse della stessa informazione;
Schema unification – risoluzione dei conflitti tra concetti semanticamente correlati in un
unico concetto globale, definito come unica rappresentazione globale. Viene creata una
rappresentazione unificata dei concetti in conflitto trovati con lo schema matching,
attraverso la creazione di mapping su cui costruire lo schema globale.
50
GAV mapping – creazione dello schema globale, dove i concetti globali sono mappati nei
corrispondenti concetti locali semanticamente correlati, da cui derivano. Per ogni elemento
dello schema globale:
a. Definizione nome globale, ovvero unificazione dei corrispondenti concetti locali
usando un nome tra essi o uno generico;
b. Definizione attributi globali, ovvero l’unificazione degli attributi correlati nei concetti
locali;
c. Definizione del GAV mapping, per specificare come ogni elemento globale
corrisponde a quelli locali da cui derivano.
51
Per integrare i diversi schemi di sorgenti diverse utilizzo modelli di dati a livello middleware, come
ad esempio schema ER.
Per disambiguare gli omonimi si applica il nome più specifico, per i sinonimi si cerca il nome più
appropriato, per le rappresentazioni si mantengono quelle più ricche. Gli attributi frammentati si
ricompongono in attributi unici, mentre per la risoluzione dei vincoli di integrità si mantiene il meno
restrittivo. 52
ESERCIZIO GAV – Publishing Phase
53
54
6.2.2 – Analisi della Querying Phase GAV
Questa fase permette la sottomissione di query formulate sullo schema globale, effettuando le
opportune operazioni per suddividere una query tra tutte le sorgenti e ottenere un risultato globale
come composizione dei risultati locali. Questa fase si suddivide in:
1. Query rewriting – riscrittura della query globale in base alle sorgenti locali, grazie all’utilizzo
della mapping table. Vengono generate un set di query locali.
A partire dalla query globale, vengono analizzati gli attributi ed associati ai relativi attributi
locali, come scritto nella mapping table, e create le opportune query locali. Ad esempio:
2. Local query execution – le query generate al passo precedente vengono sottomesse ai siti
locali dai rispettivi wrapper, i quali restituiscono i risultati per la fase successiva. Esempio:
55
3. Mediated query execution – i risultati ottenuti vengono quindi ricomposti, rimappando gli
attributi locali con quelli globali (attribute renaming e value conversion), e poi effettuare il
merge tra le istanze comuni (object fusion) ed ottenere il risultato globale della query
sottomessa.
a) Attribute renaming: processo opposto al query rewriting, tramite la mapping table
si compongono gli attributi locali per creare quelli globali.
b) Data transformation: i dati dalle sorgenti vengono trasformati nel formato globale.
56
c) Object fusion: le istanze dello stesso oggetto comuni tra diverse query locali devono
essere identificate ed unite per generare la risposta globale alla query di partenza
senza fornire dati duplicati, ovvero è quel meccanismo di riconoscimento delle tuple
che si riferiscono agli stessi oggetti in sorgenti diverse. Si utilizzano tecniche basate
sul join approssimato: vi è una JoinMap table che definisce il criterio di join con cui
confrontare le istanze di due diverse relazioni R e R’, contiene quindi la codifica dei
match scelti per riconoscere le istanze comuni.
i. Join esatto (diretto): le chiavi locali k e k’ sono omogenee e matchano, per cui
diventano attributi del join per la JoinMap e la condizione dell’equijoin su k e
k’ diventa la condizione per riconoscere le istanze corrispondenti di R e R’;
ii. Join approssimato (indiretto): gli attributi x e x’ del join sono definiti dal
designer (Data analist/integrator) diventando quindi gli attributi per la
JoinMap. Il predicato di similarità su x e x’ diventa la condizione per
riconoscere le istanze corrispondenti di R e R’. Questo paio di valori
corrispondenti di x e x’ è esplicitamente inserito nella JoinMap table.
La differenza tra questo join ed il precedente è che non viene ricercata una
coincidenza forzata sui valori, si considera la similarità.
Esempio: 57
Il risultato globale finale della query è quindi costruito come proiezione (select) sull’istanza ottenuta
tramite outer join tra i risultati delle query locali. Esempio:
I sistemi di Data Integration sono complessi, vengono costruiti a partire da una conoscenza della
struttura dei vari DB locali considerati. Gli accessi allo schema globale sono limitati alle sole
operazioni di lettura (read-only), mentre le scritture, per ragioni di consistenza, sono eseguite
localmente: sarebbe costosissimo e gravosa una propagazione di scritture.
58
Esercizio su Data Integration
59
60
ESAME:
- Domande a risposta chiusa su teoria e lab;
- Esercizio su gestione transazioni: questa T è conflict-serializable? Se si, qual è lo schedule seriale
equivalente?
- Esercizio su recovery: effettuare il recupero dato un file di log;
- Dare lo schema di frammentazione o allocazione, data una query;
- Trovare il piano di esecuzione della query che minimizza i costi (conoscendo i dati);
- Dato schema relazionale dare uno schema di frammentazione. coerenza > giustezza
- Esercizio su data integration: date due relazioni ed alcuni dettagli sui dati, costruire lo schema
globale GAV.
1:30/2:00 H 61
Matteo Seragiotto Appunti di
Laboratorio di Gestione dell’Informazione
A.A. 2017/2018
1 – Gli account SYS e SYSTEM
Oracle suddivide la creazione delle tabelle dall’amministrazione del sistema, tramite due utenti
principali:
SYS, ovvero il proprietario di tutte le tabelle di sistema. Possiede due tipi di privilegi:
o SYSOPER, che esegue
STARTUP e SHUTDOWN;
ALTER DATABASE OPEN/MOUNT/BACKUP
ALTER DATABASE ARCHIVELOG
ALTER DATABASE RECOVER (solo recovery completo)
o SYSDBA
Possiede tutti i permessi di SYSOPER
CREATE DATABASE
DROP DATABASE
SYSTEM, l’amministratore con privilegi DML (Data Manipulation Language), che può eseguire
operazioni di INSERT e UPDATE sulla tabelle di SYS.
2 – Interfaccia e connessione
L’interfaccia predefinita è quella a linea di comando, che riceve comandi di tipo SQL, PL/SQL e
comandi specifici SQL*Plus.
Si avvia da un prompt/terminale, includendo anche l’username:
sqlplus username[/password]
oppure posticipando la connessione all’istanza:
sqlplus /nolog
la connessione ad Oracle si esegue tramite la seguente sintassi:
CONN[ECT] [{username[/password][@connect_identifier]}]
Quindi per connettere l’utente system al database chiamato xe sulla macchina locale il comando
sarà: CONNECT system@xe
La disconnessione si effettua con DISCONNECT
3 – Struttura di un Database Oracle
Istanza: insieme di processi e strutture di memoria per la gestione di uno ed un solo DB
SELECT instance_name, host_name, version FROM v$instance
SGA (System Global Area) è lo
spazio di memoria gestito
dall’istanza dove:
o Shared Pool è lo spazio
di memoria riservato
alla gestione dei
comandi SQL;
o Large Pool è lo spazio
di memoria dedicato al
backup/ripristino.
La comunicazione tra istanze di
DB Oracle avviene tramite
l’utilizzo di un livello di rete
proprietario chiamato TNS
(Transparent Network Substrate), il quale si appoggia a tecnologie come TCP/IP.
Ogni istanza di Oracle deve essere configurata ed associata ad un nome TNS (esattamente
come ogni host in una rete TCP/IP deve essere associato ad un indirizzo IP).
Database: spazio fisico su disco dove vengono memorizzati i dati. Può essere gestito da più
istanze.
Tablespace: suddivisione ulteriore del database
SELECT tablespace_name FROM dba_data_files
Oracle memorizza u