INTRODUZIONE • Motivazioni dei sistemi distribuiti • Caratteristiche generali • Alcuni richiami sui database centralizzati – Standardizzazione dei dati (ANSI/SPARC) – Funzioni dei DBMS relazionali • Problematiche tipiche database distribuiti F.Cesarini - Basi Dati Distribuite Introduzione 1 Motivazioni e Obbiettivi • • • • • Le imprese spesso sono strutturalmente distribuite: la gestione dei dati viene adeguata alla gestione dell’impresa Dal punto di vista tecnologico, un sistema distribuito ha maggiore flessibilità, modularità e resistenza ai guasti rispetto ad un sistema centralizzato In caso di malfunzionamenti locali, la frammentazione e replicazione dei dati aumenta l’usabilità dei dati stessi I dati possono essere memorizzati “vicino” al punto in cui sono utilizzati Il parallelismo insito in un sistema distribuito può essere sfruttato per una esecuzione parallela delle query F.Cesarini - Basi Dati Distribuite Introduzione 2 1 Definizioni [5] • • • • La tecnologia dei sistemi per data base distribuiti (DDBS, Distributed Data Base Systems) risulta dall’unione delle tecnologie dei sistemi per basi di dati e delle reti di calcolatori Ricordiamo che uno degli obbiettivi dei DBMS è l’integrazione delle informazioni, non la centralizzazione Distributed computing system: un insieme di processori autonomi, non necessariamente omogenei, interconnessi da una rete, che cooperano per l’esecuzione dei propri compiti (un processore è un device capace di eseguire un programma) I sistemi distribuiti differiscono tra loro per – – – – Grado di accoppiamento Struttura di interconnessione Interdipendenza dei componenti Sincronizzazione F.Cesarini - Basi Dati Distribuite Introduzione 3 Definizioni – Data Base Distribuito[5] • Database distribuito: collezione di più database, correlati logicamente, distribuiti su una rete di calcolatori • Data base correlati logicamente: – Un database distribuito non è semplicemente una collezione di files distribuiti – Esistono applicazioni che elaborano dati allocati su nodi diversi della rete • Distribuiti su una rete di calcolatori: – Il database non è memorizzato tutto su un sito della rete – I sistemi multiprocessore non rientrano in questa definizione, di essi si parla anche come di database paralleli e presentano problematiche diverse F.Cesarini - Basi Dati Distribuite Introduzione 4 2 Data Base centralizzato su un sito di una rete Site 1 Site 2 Communication Site 4 network Site 3 F.Cesarini - Basi Dati Distribuite Introduzione 5 Data Base Distribuito Site 1 Site 2 Communication Site 4 network Site 3 F.Cesarini - Basi Dati Distribuite Introduzione 6 3 Distributed DBMS • • • • Sistema di gestione per basi di dati distribuite (Distributed DBMS): sistema software che permette la gestione di database distribuiti e rende la distribuzione trasparente agli utenti La trasparenza si riferisce alla separazione tra la semantica ad alto livello del sistema e l’implementazione a basso livello Un sistema trasparente nasconde i dettagli dell’implementazione agli utenti Esempio di trasparenza: consideriamo un’applicazione in cui i dati sono frammentati e replicati – L’utente non deve specificare la locazione dei dati – L’utente non deve essere a conoscenza dell’esistenza di più copi e degli stessi dati F.Cesarini - Basi Dati Distribuite Introduzione 7 Esempio di applicazione distribuita • • Si abbia una compagnia con sedi a Parigi, Boston, Miami e New York La compagnia ha un database (relazionale) in cui sono memorizzate informazioni relative ai suoi impiegati e ai progetti su cui lavorano EMP (Eno, Ename, Title) PROJ (Pno, Pname, Budget) ASG (Eno, Pno, Dur, Resp) • • In ogni sede vengono mantenute le informazioni relative agli impiegati e ai progetti di quella sede, inoltre per motivi sia di prestazioni che di robustezza alcune informazioni sono replicate su più di un sito Se si vogliono trovare i nomi degli impiegati che hanno lavorato su un progetto per più di 12 mesi, devono essere esaminati i dati su più di un sito F.Cesarini - Basi Dati Distribuite Introduzione 8 4 Applicazione Distribuita Paris emp, Boston emp, Boston proj Paris Paris emp, Boston emp, Paris proj, Boston proj Boston Communication network Miami emp, Miami proj, Paris proj F.Cesarini - Basi Dati Distribuite Miami New York New York emp, New York proj Introduzione 9 Una classificazione dei DDBMS • Tipo di DBMS utilizzato nei nodi – Base di dati omogenea se in tutti i nodi è utilizzato lo stesso DBMS – Base di dati eterogenea se vengono utilizzati DBMS diversi • Tipo di rete utilizzata – Rete locale, LAN, Local Area Network – Rete geografica, WAN, Wide Area Network • Diffusione delle basi dati eterogenee – Settori diversi della stessa azienda che usano sistemi diversi (per motivi “storici” o per scelta) – Necessità di interazione fra questi settori F.Cesarini - Basi Dati Distribuite Introduzione 10 5 Alcune applicazioni • • • • • Molte aziende hanno applicazioni di tipo gestionale su rete locale c La gestione dei conti correnti (e in genere applicazioni finanziarie) possono essere realizzate su LAN o WAN Possiamo trovare nelle aziende sistemi informativi eterogenei, integrati tra loro in modo da avere anche applicazioni intersettoriali Sistemi di prenotazione di compagnie aeree possono essere su WAN Sistemi interbancari (per operazioni finanziarie) con DBMS eterogenei su WAN F.Cesarini - Basi Dati Distribuite Introduzione 11 Tipiche Applicazioni [4] Rete LAN Rete WAN DBMS omogeneo Applicazioni gestionali e finanziarie Sistemi di prenotazioni Applicazioni finanziarie DBMS eterogeneo Applicazioni gestionali interfunzionali Sistemi di prenotazione integrati Sistemi interbancari F.Cesarini - Basi Dati Distribuite Introduzione 12 6 DBMS centralizzati Standardizzazione basata sui dati Architettura ANSI/SPARC (1978) • • American National Standard Institute / Standard Planning and Requirements Committee: gruppo di studio sui DBMS Standardizzazione basata sull’organizzazione dei dati – Schema esterno : riguarda la modalità in cui un utente vede i dati – Schema concettuale (che spesso chiameremo anche logico) • Modello relazionale: tabelle, attributi, chiavi, vincoli, … – Schema interno: riguarda la definizione e organizzazione fisica dei dati • Estensione all’ambiente distribuito – Nel contesto dei sistemi distribuiti, verrà utilizzata questa terminologia per la loro illustrazione F.Cesarini - Basi Dati Distribuite Introduzione 13 Architettura ANSI/SPARC Schema esterno Schema esterno Schema esterno Schema logico Schema interno F.Cesarini - Basi Dati Distribuite Introduzione 14 7 Livelli dell’architettura ANSI/SPARC • Livello concettuale o logico – È una definizione astratta dei dati – Il mondo reale visto dall’impresa viene modellato nel database – Rappresenta i dati e le loro correlazioni senza considerare i requisiti delle singole applicazioni o le caratteristiche dei mezzi di memorizzazione • Livello esterno o vista – Una vista rappresenta i dati a cui un utente accede e le correlazioni che esso vuole vedere fra questi dati • Livello interno – A questo livello sono collocati la definizione fisica dei dati e la loro organizzazione – Meccanismi di accesso per accedere ai dati e manipolarli F.Cesarini - Basi Dati Distribuite Introduzione 15 Esempio di livelli • Livello logico Table Emp (Eno CHAR(9), Ename CHAR(15), Title CHAR(10), PRIMARY KEY Eno) Table Pay (Title CHAR(10), Pay NUMERIC (6,2), PRIMARY KEY Title) Table Proj (Pno CHAR(7), Pname CHAR(20), Budget NUMERIC(7,2), PRIMARY KEY Pno) • Livello esterno CREATE VIEW Payroll (Eno, Ename, Sal) AS SELECT Emp.Eno, Emp.Ename, Pay.Sal FROM Emp, Pay Where Emp.Title = Pay.Title; CREATE VIEW Budget (Pname, Bud) AS SELECT Pname, Budget FROM Proj ; • Livello interno – descrizione in un qualche formalismo che c’è un indice su Emp.Eno e del numero di byte associati ad ogni attributo F.Cesarini - Basi Dati Distribuite Introduzione 16 8 Architettura generica per un DBMS centralizzato Applicazione 1 Applicazione k Communication subsystem DBMS Operating system database F.Cesarini - Basi Dati Distribuite Introduzione 17 Strati funzionali di un DBMS relazionale Application Interface Control Compilation Execution Data Access Consistency F.Cesarini - Basi Dati Distribuite User interface View management Semantic integrity control Authorization checking Results Query decomposition and optimization Access plan management Access plan execution control Algebra operation execution Buffer management Access methods Concurrency control Logging Introduzione Database 18 9 Strati funzionali (1) • Interfaccia – Viene gestita l’interfaccia delle applicazioni – Ci possono essere più tipi di interfacce (SQL embedded, QBE, …) – Le applicazioni si riferiscono a viste del database, le operazioni sulle viste devono essere trasformate in operazioni sulle relazioni dello schema logico • Controllo • Query processing – Vengono considerati i vincoli di integrità e le autorizzazioni – La query viene trasformata in una sequenza ottimizzata di operazioni a basso livello – La query viene trasformata in un albero di operazioni dell’algebra relazionale, e la sequenza di esecuzione “migliore” viene memorizzata come access plan F.Cesarini - Basi Dati Distribuite Introduzione 19 Strati funzionali (2) • Esecuzione – Dirige l’esecuzione dell’access plan – Ha la responsabilità dell’esecuzione transazionale (commit, restart) – Interpreta le operazioni relazionali richiamando funzioni di retrieval e update dello strato sottostante • Data access – Gestisce le strutture dati che implementano le relazioni (file, indici) – Gestisce i buffer con tecniche di caching • Consistency – Gestisce i meccanismi di controllo della concorrenza – Controlla il logging per le operazioni di aggiornamento – Permette il recovery dai fallimenti F.Cesarini - Basi Dati Distribuite Introduzione 20 10 Problematiche tipiche ambiente distribuito • • • • • • • Come distribuire i dati Come gestire un catalogo globale (descrizione e allocazione dei dati) Come eseguire una interrogazione che coinvolge dati su più siti Come effettuare il controllo della concorrenza per poter mantenere l’integrità del database (le modifiche sono complicate dal fatto che c’è replicazione dei dati) Come controllare e gestire le situazioni di stallo Come gestire malfunzionamenti e recovery Tutti questi aspetti sono correlati tra loro F.Cesarini - Basi Dati Distribuite Introduzione 21 Correlazione tra problematiche (1) Directory management Query processing Distributed DB design Reliability Concurrency control Deadlock management F.Cesarini - Basi Dati Distribuite Introduzione 22 11 Correlazione tra problematiche (2) • La distribuzione dei dati influenza – La struttura del catalogo (cataloghi) generale che deve renderne conto – Le strategie per eseguire le query che a loro volta possono influenzare i criteri di distribuzione dei dati – Le modalità di controllo della concorrenza, soprattutto a causa della replicazione – Le tecniche di reliability che possono tener conto dell’esistenza di dati duplicati • Il catalogo generale dà informazioni – Per l’esecuzione delle query (dove sono i dati) – Per i meccanismi per il recovery (dove sono i dati e i loro duplicati) • Le tecniche di esecuzione delle query influenzano – Le strategie di distribuzione dei dati – Le tecniche di controllo della concorrenza (un ambiente query-only può avere esigenze diverse da un ambiente update-intensive) F.Cesarini - Basi Dati Distribuite Introduzione 23 Correlazione tra problematiche (3) • Le tecniche per la reliability influenzano – Le tecniche per il controllo della concorrenza perché in genere sono implementate al di sopra di esse e comunque rientrano nell’ambiente della gestione delle transazioni • Le tecniche per il controllo della concorrenza influenzano – Le modalità per i deadlock, non solo poiché siamo sempre nell’ambito della gestione delle transazioni, ma anche perché ad esempio i deadlock si possono avere con i lock ma non con i timestamp F.Cesarini - Basi Dati Distribuite Introduzione 24 12 Alcuni termini (accezione comune) • Client/server – Paradigma ben conosciuto basato su una netta separazione fra le funzioni spettante al client e al server – Possono essere processi diversi sulla stessa macchina o su macchine diverse • Database paralleli • Database federati – Si fa in genere riferimento ad architetture multiprocessor – DBMS omogenei o eterogenei che collaborano fra di loro – Il DBMS stesso può colloquiare con gli altri DBMS • Multi-database – DBMS pienamente indipendenti, uno strato di software al di sopra di essi consente in qualche modo la loro integrazione F.Cesarini - Basi Dati Distribuite Introduzione 25 13