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