Database e DBMS

Testo di riferimento

Clicca per acquistare su Amazon il libro Programmazione Python per le scienze della vita

Le slide fanno riferimento al Capitolo 5 - La gestione del Database in Python - (pp. 329 a pp 342)

Basi di dati  
Prof. Salvatore Mancarella  
© Salvatore Mancarella  
Base di dati  
´ Con base di dati (o banca dati, a volte abbreviato  
con la sigla DB dall’inglese database) in informatica si  
indica un insieme di dati strutturati ovvero omogeneo  
per contenuti e formato, memorizzati in un computer,  
´ rappresentando di fatto la versione digitale di un  
archivio dati o schedario.  
© Salvatore Mancarella  
Storia  
´ All'inizio della storia dell’informatica, la grande  
maggioranza  
dei  
programmi  
specializzati  
consentivano l'accesso a una singola base di dati, per  
guadagnare in velocità di esecuzione pur perdendo  
in flessibilità.  
´ Oggi, invece, i moderni sistemi possono essere utilizzati  
per compiere operazioni su un gran numero di basi di  
dati differenti.  
´ Dagli anni settanta le basi di dati hanno subito un  
enorme sviluppo sia in fatto di quantità di dati  
memorizzati sia in fatto di tipi di architetture adottate.  
´ Architettura centralizzata, DBMS;  
´ Architettura data Warehouse.  
© Salvatore Mancarella  
Definizione di un DBMS  
Un DBMS è un sistema software che è in grado  
di gestire collezioni di dati grandi, condivise e  
persistenti, in maniera efficiente e sicura.  
Alcune funzionalità  
Ø Creazione di una base di dati e memorizzazione su memoria  
secondaria  
Ø Accesso in lettura/scrittura ai dati  
Ø Condivisione di dati tra diversi utenti/applicazioni  
Ø Protezione dei dati da accessi non autorizzati  
Ø Reliability dei dati in caso di guasti (hardware/software)  
© Salvatore Mancarella  
Separazione  
Dati/Applicazioni con DBMS  
DBMS  
FILES  
APPLICAZIONE  
M1  
M2  
BD  
M2  
Accesso Logico  
ai dati  
Accesso Fisico  
ai dati  
Moduli del DBMS  
Ø Tramite i DBMS, è possibile implementare un  
paradigma di separazione di dati ed applicazioni …  
Ø Le applicazioni non necessitano di conoscere la  
struttura fisica dei dati (es. come e dove sono  
memorizzati su disco) ma solo la struttura logica (cosa  
rappresentano).  
© Salvatore Mancarella  
Le caratteristiche di un DBMS  
Concorrenza  
Efficienza  
DBMS  
Affidabilità  
Sicurezza  
© Salvatore Mancarella  
Le caratteristiche di un DBMS  
Concorrenz  
a
Efficienza  
DBMS  
Affidabilità  
Sicurezza  
© Salvatore Mancarella  
Caratteristiche di un DBMS:  
Efficienza  
´ Efficienza di un DBMS nella  
gestione dei dati :  
Ø DBMS  
forniscono  
adeguate strutture dati  
per organizzare I dati  
all’interno dei file, e per  
supportare le operazioni di  
ricerca/aggiornamento.  
Ø In genere, parliamo di  
strutture dati ad albero o  
tabelle hash.  
© Salvatore Mancarella  
Caratteristiche di un DBMS: Efficienza  
´ Indice à struttura che contiene informazioni sulla posizione di  
memorizzazione delle tuple sulla base del valore del campo  
chiave.  
n A che serve un indice?  
© Salvatore Mancarella  
Caratteristiche di un DBMS:  
Efficienza ( INDICE)  
´ ESEMPIO  
Indice  
Introduzione 1  
Capitolo 1 20  
Capitolo 2 40  
Capitolo 3 60  
Conclusioni 65  
ACCESSO DIRETTO  
11  
© Salvatore Mancarella  
Le caratteristiche di un DBMS  
Concorrenza  
Efficienza  
DBMS  
Affidabilità  
Sicurezza  
© Salvatore Mancarella  
Caratteristiche di un DBMS:  
Gestione della Concorrenza  
Ø In molti sistemi è fondamentale gestire  
operazioni concorrenti di accesso ai dati  
© Salvatore Mancarella  
Caratteristiche di un DBMS:  
Gestione della Concorrenza  
Ø ESEMPIO  
Processing di più di 7.7 milioni  
di pagamenti ogni giorno  
La maggior parte dei DBMS forniscono un  
livello di granularità di locking più fine di  
quello convenzionale (a livello di tabella,  
pagina, o singola entry).  
© Salvatore Mancarella  
Caratteristiche di un DBMS:  
Gestione della Concorrenza  
Ø Al tempo stesso, un  
DBMS deve garantire  
il fatto che accessi  
da  
parte  
di  
applicazioni diverse  
non interferiscano tra  
loro, lasciando il  
sistema in uno stato  
inconsistente.  
© Salvatore Mancarella  
Caratteristiche di un DBMS:  
Gestione della Concorrenza  
Es. Sistema informativo dei conti bancari  
Ø 2 richieste da gestire al tempo t:  
Ø Prelievo di 100 euro dal conto X  
Ø Prelievo di 80 euro dal conto X  
Ø Saldo del conto X at tempo t: 120 euro  
© Salvatore Mancarella  
Caratteristiche di un DBMS:  
Gestione della Concorrenza  
ESEMPIO di ESECUZIONE  
(non corretta!!)  
Schedule:  
OP1: Leggi X  
OP2: Leggi X  
OP1: Calcola X-100  
OP2: Calcola X-80  
OP1: Scrivi X  
Valore X:  
120  
120  
120  
120  
20  
40 (????)  
OP1  
Leggi X  
OP2  
Leggi X  
Calcola X-100 Calcola X-80  
Scrivi X Scrivi X  
OP2: Scrivi X  
Per prevenire tali situazioni, i DBMS implementano  
algoritmi di controllo della concorrenza che  
operazioni sui dati (transazioni) eseguite in  
concorrenza producano lo stesso risultato di  
© Salvatore Mancarella  
un’esecuzione seriale.  
Caratteristiche di un DBMS:  
Gestione della Concorrenza  
Lock Manager à componente del DBMS responsabile  
di gestire i lock alle risorse del DB, e di rispondere alle  
richieste delle transazioni.  
Ø Utilizzo di lock in  
lettura/scrittura  
per accesso a  
risorse condivise  
(dati).  
OP2  
OP1  
Lock(x)  
Leggi X  
Calcola X-100  
Scrivi X  
Unlock(x)  
Lock(x)  
Leggi X  
Calcola X-80  
Scrivi X  
Unlock(x)  
© Salvatore Mancarella  
Le caratteristiche di un DBMS  
Concorrenz  
a
Efficienza  
DBMS  
Affidabilità  
Sicurezza  
© Salvatore Mancarella  
Caratteristiche di un DBMS:  
Meccanismi di Roll-back  
Affidabilità  
Esempio:  
Alcune operazioni sui dati sono particolarmente delicate, e  
devono essere gestite in maniera opportuna, secondo la  
regola del tutto o niente.  
Es. Trasferimento di denaro (100$) dal conto X al conto Y.  
Op1: X=X-100  
CRASH!  
Op2: Y=Y+100  
© Salvatore Mancarella  
21  
Caratteristiche di un DBMS:  
Meccanismi di Roll-back  
Affidabilità  
Ø Alcune operazioni sui dati sono  
particolarmente delicate, e  
devono essere gestite in  
maniera opportuna, secondo la  
regola del tutto o niente.  
Ø Per questo, i DBMS devono fornire appositi strumenti  
per annullare operazioni non completate e fare roll-  
back dello stato del sistema …  
© Salvatore Mancarella  
Le caratteristiche di un DBMS  
Concorrenz  
a
Efficienza  
DBMS  
Affidabilità  
Sicurezza  
© Salvatore Mancarella  
Caratteristiche di un DBMS:  
Multi-utenza e Sicurezza  
La maggior parte dei DBMS implementa politiche di controllo  
degli accessi ad i dati mediante sistemi di permessi:  
Ø Quali operazioni sono consentite all’utente X?  
Ø Quali dati appartengono all’utente X?  
UTENTE X  
Utente  
OPERAZIONE DATO  
PERMESSO  
Utente X  
Utente X  
Utente Y  
Lettura  
Lettura  
Scrittura  
Stipendio di X Consentito  
Stipendio di Y Consentito  
Stipendio di Y Negato  
UTENTE Y  
© Salvatore Mancarella  
Architettura a tre livelli  
Ø In pratica, un DBMS può essere visto  
come un’architettura software a 3 livelli  
Descrive come  
si presenta il DB  
SCHEMA  
ESTERNO  
SCHEMA  
ESTERNO  
SCHEMA  
ESTERNO  
Descrive cosa  
SCHEMA LOGICO  
SCHEMA FISICO  
rappresenta il DB  
Descrive come/dove  
sono memorizzati  
i dati  
Memorie di massa  
© Salvatore Mancarella