introduzione - Dipartimento di Ingegneria dell`Informazione

INTRODUZIONE
•
•
•
•
•
•
Accesso ai dati tramite DBMS
Livelli di astrazione
Modello dei dati: schema / istanza / metadati
Alcuni modelli dei dati
Linguaggi per DBMS
Architettura di base di un DBMS
cesarini - BDSI
introduzione
1
Data Base Management Systems
evoluzione tecniche gestione dati
Applicazione 1
Applicazione k
…..
SO
archivio1
cesarini - BDSI
archiviok
introduzione
2
Gestione dati senza DBMS
• Ogni applicazione gestisce i propri dati
• Archivio1 rappresenta l’insieme dei file gestiti da
Applicazione1, …
• Se due applicazioni fanno riferimento agli stessi dati,
questi sono duplicati
• Le applicazioni sono sviluppate con linguaggi di
programmazione: COBOL, C, C++, …
• I dati sono gestiti con le modalità offerte dal sist.op.
cesarini - BDSI
introduzione
3
Data Base Management Systems
evoluzione tecniche gestione dati
applicazione1
applicazionek
vista 1
vista k
DBMS
S. O.
cesarini - BDSI
Schema logico
dei dati
Data Base
introduzione
4
Gestione dati con DBMS
•
•
•
•
Data base: tutte le applicazioni fanno riferimento alla stessa
collezione di dati memorizzata su disco
Schema logico dei dati: tramite il DBMS è possibile “vedere” i dati
in modo astratto, per es. organizzati in tabelle, indipendentemente
dai file in cui sono archiviati
Vista: di tutti i dati che il DBMS gestisce, una applicazione può
“vederne” solo una parte, magari riorganizzata secondo propri
criteri, per es. sottotabelle o tabelle con altre colonne
appositamente calcolate
Le applicazioni sono costruite con le modalità offerte dal DBMS
cesarini - BDSI
introduzione
5
Obbiettivi di un DBMS
• Modalità di accesso generale ad archivi integrati
security
• Sicurezza dei dati
– meccanismi di protezione (es. chiavi di accesso)
• Integrità dei dati
integrity
– vincoli di consistenza (condizioni che devono essere soddisfatte)
• Accesso concorrente ai dati
concurrency
– modifiche in mutua esclusione
• Ripristino dei dati
recovery
– backup (salvataggio)
– giornale, log (diario di tutte le modifiche fatte a partire
dall’ultimo backup)
cesarini - BDSI
introduzione
6
Livelli di astrazione
CODASYL Data Base Task Group 1971
Applic 1
Vista 1
Applic N
…...
Vista N
Data Base
livello esterno
livello logico
logico
livello fisico
Data Base
cesarini - BDSI
fisico
introduzione
7
Livelli di astrazione
•
Livello logico
gerarchico, reticolare, relazionale, a oggetti…
– modello di dati
– schema logico: descrizione della struttura dei dati secondo il modello utilizzato
– es. modello relazionale: descrizione della struttura delle tabelle
•
Livello fisico
– schema fisico, descrizione dei file utilizzati per la memorizzazione dei dati
– esempio: descrizione degli indici costruiti
•
Livello esterno
– vista (sottoschema): sottoparte del database logico o astrazione di una
sottoparte
•
Il livello esterno può coincidere con il livello logico
– la vista non è stata definita
– l’applicazione vede direttamente lo schema logico (es. tutte le tabelle così come
sono state originariamente definite)
cesarini - BDSI
introduzione
8
Livelli di astrazione
indipendenza logica e fisica dei dati
•
Indipendenza fisica
– deriva dall’uso di un modello logico dei dati
– gli utenti e le applicazioni interagiscono con il data base secondo la
sua struttura logica
– è possibile cambiare la struttura fisica senza modificare l’applicazione
• ad es. è possibile aggiungere o togliere un indice al data base senza cambiare il
programma di interrogazione dei dati
•
Indipendenza logica
– deriva dall’uso delle viste
– se un’applicazione interagisce con il data base attraverso le viste è
possibile modificare il livello logico senza modificare l’applicazione
purché le viste rimangano inalterate
• Ad es. è possibile suddividere una tabella in due tabelle purché per
l’applicazione sia definita una vista che vede una unica tabella
cesarini - BDSI
introduzione
9
Modello dei dati
• modello dei dati
– insieme di concetti per organizzare i dati di interesse e
descriverne la struttura
• es: concetto di tabella (con tutte le sue caratteristiche) nel modello
relazionale
– insieme di costruttori che permettono di definire nuovi tipi a
partire da tipi elementari
• schema
– descrizione della organizzazione dei dati di interesse in accordo
al modello considerato
• es: descrizione delle tabelle che vogliamo usare in accordo al
modello relazionale
• istanza
– contenuto corrente della base di dati
• es: contenuto effettivo delle tabelle
cesarini - BDSI
introduzione
10
Modello dei dati
• dizionario dei dati / metadati
– il sistema mantiene un catalogo di tutte le strutture definite nel
data base con le loro caratteristiche
• es: elenco di tutte le tabelle definite, ognuna con i nomi delle
colonne che la compongono
• es: elenco di tutti gli indici definiti
– il dizionario è strutturato secondo il modello logico
• es: strutturato in tabelle (tabella che contiene tutti i nomi delle
tabelle definite, …)
– Il dizionario è accessibile con gli stessi strumenti con cui si
accede ai dati
• es: con una query SQL si può avere l’elenco dei nomi delle tabelle
definite
cesarini - BDSI
introduzione
11
Modelli dei dati
• modello gerarchico
basato su alberi
– primi DBMS anni ‘60
• modello reticolare
basato su grafi
– CODASYL 1973
– nasce come estensione del COBOL
• modello relazionale Relational DBMS
primi DBMS commerciali inizi ‘80
– Codd 1970
– relazione: insieme di record (tuple) a struttura fissa
– tabelle e relazioni tra tabelle (vincoli integrità
referenziale)
cesarini - BDSI
introduzione
12
Modelli dei dati
• modelli semantici
–
–
–
–
fine anni ‘70
vogliono superare i limiti del modello relazionale
non DBMS commerciali
modello Entity Relationship
• Chen 1976
• progettazione concettuale di basi di dati
cesarini - BDSI
introduzione
13
Modelli dei dati
• modello a oggetti Object Oriented DBMS
seconda metà anni ‘80
1989: Bancilhon et al. “manifesto delle basi dati a oggetti”
oggetti: identificatore, valore, metodi associati
valore: costruttori di insieme e di tupla applicati
ricorsivamente a partire da valori base e oggetti
– classe, tipo della classe, sottoclasse, ereditarietà
– Cattel et al “The Object Data Base Standard: ODMG 2.0”
1997
• Object Definition Language, Object Query Language
–
–
–
–
cesarini - BDSI
introduzione
14
Modelli dei dati
• modello relazionale a oggetti ORDBMS
– integrazione di alcuni aspetti del mondo a oggetti nel
modello relazionale
– RDBMS: elemento della tabella di tipo elementare
– ORDBMS: definizione di tipi astratti
• tabelle di tabelle, etc.
– identificatore, gerarchie, ereditarietà, funzioni
– Stonebraker et al. “ Third Generation Database
System Manifesto” 1990
– SQL-3 compatibile con SQL-2
cesarini - BDSI
introduzione
15
Modelli dei dati
• dati semistrutturati
– dati autodescriventi
<persona><nome>Francesca Cesarini<fine nome>
<professione>professore associato<fine
professione>…<fine persona>
dati rappresentati da grafi
strutture senza vincoli nel nesting
non si parla di schema e istanza
flusso di byte che descrivono contestualmente i dati
e il loro significato (la loro struttura)
- XML
– trasferimento di dati su WEB
–
–
–
–
cesarini - BDSI
introduzione
16
Modelli dei dati
• XML
Extensible Markup Language
– W3C (World Wide Web Consortium)
• http://www.w3.org
– Document Type Definition
• descrizione delle regole da seguire nel generare i documenti
• si riprende debolmente il concetto di schema
– proposte pubblicate da w3C
• XML - schema
linguaggio di interrogazione
• XML - QL
– mapping
XML ↔ RDBMS
• strumenti che consentono di trasformare dati XML in
tabelle e viceversa
cesarini - BDSI
introduzione
17
Linguaggi per basi di dati
• Data Definition Language
DDL
– definizione dello schema logico
– definizione schema fisico, schema esterno (viste)
– linguaggio dichiarativo
• es: SQL
• Data Manipulation Language
DML
– inserimento, modifica, cancellazione, reperimento di
dati
– opera sulla istanza di una base di dati
– query language
• es: SQL (è un linguaggio che offre le due funzionalità)
cesarini - BDSI
introduzione
18
Linguaggi per basi di dati
• linguaggio ospite -host language
– es. linguaggio C con possibilità di inserire nei programmi comandi SQL
dati locali
data
base
riferimenti a
variabili locali
comandi DML
programma
applicativo
cesarini - BDSI
data base calls
introduzione
19
Accesso ai dati
• linguaggi di sviluppo ad hoc
– es: PL/SQL per ORACLE
• interfacce user friendly
– finestre, menu, icone…
• dati su WEB
– Open Database Connectivity
ODBC
• interfaccia proposta da Microsoft 1991
• sottoinsieme del linguaggio SQL
– Java Data Base Connectivity
JDBC
• protocollo per accedere a basi dati relazionali da Java
cesarini - BDSI
introduzione
20
Architettura DBMS
query utente
programma
applicativo
query language
processor
database manager
file manager
schema
database
compilatore DDL
metadati
autorizzazione
concorrenza
recovery
database
fisico
cesarini - BDSI
introduzione
21
Architettura DBMS
• Data Base Manager
– Visualizza il “cuore” del DBMS
– Accetta comandi per la gestione effettiva dei dati
– Interagisce con tutte le informazioni memorizzate su disco
(dati e metadati) tramite il gestore dei file
– Gestisce i dati conoscendone la struttura rappresentata nei
metadati (es. aggiorna lo stipendio di un impiegato sapendo
quale è la colonna della tabella impiegato che rappresenta tale
informazione)
– Mantiene informazioni interne che mappano le strutture
logiche in quelle fisiche (es. descrizione del/dei file che
memorizzano la tabella impiegato)
cesarini - BDSI
introduzione
22
Architettura DBMS
• Compilatore DDL / Query Language Processor
– La definizione e la gestione effettiva dei dati sono attività
separate e possono essere effettuate tramite interfacce
differenti
– Lo schema della base di dati è definito interfacciandosi con un
modulo che produce una descrizione dello schema (metadati)
secondo le modalità volute dal database manager
– La gestione dei dati può essere effettuata con comandi immessi
direttamente dall’utente oppure tramite programmi applicativi
appositamente costruiti
– Un sistema generalmente supporta più QLP (es. modulo per
interfaccia grafica e modulo per interfaccia SQL)
– Il modulo QLP genera comandi per il database manager
cesarini - BDSI
introduzione
23
Architettura DBMS
• Ricordiamo che un DBMS deve prevedere
– meccanismi per gestire la privatezza dei dati
(autorizzazione degli accessi)
– meccanismi per il salvataggio e ripristino dei dati
– nel caso di accesso concorrente, meccanismi per il
mantenimento della consistenza dei dati
cesarini - BDSI
introduzione
24