introduzione - Dipartimento di Ingegneria dell`Informazione

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