Capitolo 11
Implementazione delle
sorgenti dati
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Indice
• Architettura generale
• Mapping standard
– Mapping di entità e relazioni
– Mapping di attributi BLOB
– Mapping di dati derivati
• Modelli di architetture
– Dedicata
– Con replicazione
– Distribuita
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Architettura
Applicazione
Web
Diagramma E-R
Mapping
standard
Interrogazioni per estrazione
dati e gestione contenuti
Schema
relazionale
standard
Mapping dei
contenuti
Mapping dei contenuti
Accesso offline
Accesso online
Sorgenti
relazionali
Sorgenti
non relazionali
Sorgenti dati esterne
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Architettura
• Il modello concettuale dei dati (ER) è
mappato su una struttura relazionale
• Esiste un mapping standard
• Le interrogazioni da parte dell’applicazione
avvengono sullo schema relazionale
• Un unico schema relazionale può coprire
diverse sorgenti, anche non relazionali
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Mapping standard
• Insieme di regole standard di corrispondenza
da E-R a relazionale. Esempi:
– ENTITA’:
Entità1
Attributo1
Attributo2
TabellaEnt1
Create Table TabellaEnt1 (
OID integer PRIMARY KEY,
Attributo1 ...,
Attributo2 ...,
);
OID
Attributo1
Attributo2
– RELAZIONI N:N:
Entità1
0:N
Rel1
0:N
Entità2
Create Table TabellaRel1 (
Ent1_OID integer,
Ent2_OID integer,
Primary key (Ent1_OID, Ent2_OID),
Foreign key Ent1_OID
references Ent1_Table
on delete cascade,
Foreign key Ent2_OID
references Ent2_Table
on delete cascade
);
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
TabellaRel1
Ent1_OID
Ent2_OID
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Mapping di attributi BLOB
• Diversi modi per memorizzare oggetti BLOB:
TabellaEnt
OID
Attr1
TabellaEnt
OID
BLOB
TabellaEnt
Attr1
Attr1
BLOB_OID
TabellaEnt
PercorsoBLOB
OID
BLOB
(b) Memorizzazione interna tabella BLOB separata
(a) Memorizzazione interna stessa tabella
OID
Blob_Table
\blob\ ...
(c) Memorizzazione esterna nel file
system con legame esplicito
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
OID
Attr1
\Album\
copert\
131.jpg
(d) Memorizzazione esterna nel
file system con legame implicito
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Mapping di dati derivati
• Dati derivati vengono mappati su view del
database:
Artista
Nome
Cognome
Biografia
Foto
/NumeroAlbum{Count(Artista.Artista_Album)}
CREATE TABLE ArtistBaseTable (
Oid number(10) primary key,
FirstName varchar(50),
LastName varchar(50),
Biography clob,
Photo varchar(100),
);
CREATE VIEW ArtistView AS
SELECT Oid, FirstName, LastName, Biography, Photo,
COUNT(AlbumTable.Oid) AS NumberOfAlbums
FROM ArtistBaseTable, AlbumTable
WHERE ArtistBaseTable.Oid=AlbumTable.ArtistOid
GROUPBY ArtistBaseTable.Oid
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Architetture di basi di dati
• Il mapping standard è la situazione ideale
• Spesso bisogna interagire con più sorgenti o
con database pre-esistenti
• Soluzioni possibili:
– DATABASE DEDICATO: un apposito DB per il sito
(schema standard)
– DATABASE REPLICATO: il DB del sito è replicato in
toto o in parte da un DB esistente (schema standard)
– DATABASE IN LINEA: lo schema dei dati standard
del sito è una view su una sorgente dati esterna,
direttamente interrogata
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Database dedicato
• Schema e contenuti del DB costruiti ad
hoc per l’applicazione Web
Applicazione
Web
Interrogazioni di estrazione
dati e gestione contenuti
Diagramma E-R
Base di dati
dedicata
Mapping
standard
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Integrazione di schemi
• E’ necessario allineare lo schema
standard agli schemi reali delle sorgenti
dati.
• Due approcci possibili:
– Adattare lo schema standard
– Adattare lo schema delle sorgenti esterne
• Possibilità: utilizzare viste sulle sorgenti
esterne
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Integrazione di schemi
attraverso view
Applicazione
Web
Applicazioni
pre-esistenti
Interrogazione
Interrogazione
Risultato
Interrogazione
Risultato
Risultato
Schema
adattato
(viste)
Schema
reale
(tabelle)
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Database replicati
• L’integrazione di sorgenti diverse viene affrontata importando
i dati dalle varie sorgenti in un unico DB con schema standard
• Ciò può richiedere un workflow di trasformazioni dei dati
Applicazione
Web
Interrogazioni di estrazione dati
Schema
relazionale
standard
Diagramma E-R
Mapping
standard
Push
Sorgenti
dati
relazionali
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Push
Sorgenti
dati non
relazionali
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Basi di dati distribuite
Applicazione
Web
Diagramma E-R
Interrogazioni di estrazione
dati e gestione contenuti
Base di dati
distribuita
Mapping
standard
Istanze di basi di dati distribuite
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Basi di dati distribuite. Osservazioni
• Prodotti disponibili sul mercato
• Vantaggi:
– Trasparenza di localizzazione garantita
– Trasparenza di frammentazione garantita
L’applicazione non si deve preoccupare di dove stanno
fisicamente i dati
• Servizi di BD distribuite:
–
–
–
–
–
Viste distribuite
Query distribuite
Transazioni distribuite
Servizi di amministrazione distribuite
Prestazioni scalabili
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Basi di dati in linea
• In assenza di infrastruttura distribuita, effettuo
connessioni esplicite e indipendenti ad ogni differente
sorgente
Applicazione
Web
Diagramma E-R
Regole di
conversione
standard
Interrogazioni di estrazione
dati e gestione contenuti
Connessioni alle basi di dati
(JDBC / ODBC)
Sorgenti dati esterne
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Basi di dati in linea. Osservazioni
• Architettura molto semplice
• Molti svantaggi:
– Trasparenza di localizzazione è impossibile
– Relazioni inter-database devono essere gestite a
mano
– Atomicità transazionale è assente
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano