Sistema di basi di dati - Dipartimento di Informatica e Sistemistica

Basi di dati
Corso di Laurea in Ingegneria Informatica
Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti
Anno Accademico 2008/2009
Introduzione alle basi di dati
Docente
Pierangelo Di Sanzo
Dipartimento di Informatica e Sistemistica “Antonio Ruberti”
“Sapienza Università di Roma“
First Year Ph.D. Report
Cos’è una base di dati (database)
Base di dati: definizione
Collezione di dati che rappresenta informazioni (di interesse per un’organizzazione,
un’azienda, un ufficio, una persona, …)
interpretazione
rappresentazione
informazione
dati
informazione
Quando si interagisce con una base di dati
In molti contesti…
es: biblioteca; videoteca; prenotazione esami; prenotazione on-line di biglietti, viaggi e
soggiorni; acquisti on-line; sportelli bancomat,…
2
First Year Ph.D. Report
Sistemi informativi, sistemi informatici e basi di dati
Il sistema informativo di un’organizzazione è costituito dall’insieme delle informazioni
di interesse unitamente alle procedure utilizzate ed alle risorse (umane, tecnologiche,
…) per la relativa gestione.
Il sistema informativo ha come funzioni:
- la raccolta,
- la conservazione,
- l’elaborazione,
- lo scambio
Sistema azienda
delle informazioni.
Sistema informativo
3
First Year Ph.D. Report
Sistemi informativi, sistemi informatici e basi di dati
Sistema informativo: esempi
Ente comunale:
gestione anagrafe, dipendenti, stipendi, …;
Università:
gestione iscritti, docenti, corsi, esami e prenotazioni, …;
Esercizio commerciale:
gestione fatturazione, fornitori, ordini, magazzino, …;
Esercizio commerciale “on-line”:
come il precedente + gestione registrazione utenti, gestione cataloghi on-line, …
4
First Year Ph.D. Report
Sistemi informativi, sistemi informatici e basi di dati
Parte del sistema informativo può essere automatizzato. Il sistema informatico è la
porzione del sistema informativo automatizzato per mezzo di tecnologie informatiche.
Sistema azienda
Sistema informativo
Sistema informatico
5
First Year Ph.D. Report
Sistemi informativi, sistemi informatici e basi di dati
In un sistema informatico i dati possono essere archiviati attraverso una base di dati.
Sistema informatico
Sistema informatico
archivio
archivio
base di dati
archivio
6
First Year Ph.D. Report
Sistemi informativi, sistemi informatici e basi di dati
Una soluzione per la gestione dei dati in un sistema informatico è costituita dall’utilizzo
di una base di dati e da un relativo sistema di gestione, ossia un DBMS (Database
Management System).
Sistema informatico
DBMS
dati
7
First Year Ph.D. Report
DBMS (Database Management System)
Un DBMS è un sistema software preposto alla gestione delle basi di dati.
In tal caso gli utenti hanno accesso ad una base di dati esclusivamente attraverso il
DBMS che fornisce specifiche interfacce per la creazione e la gestione delle basi di dati.
I DBMS in particolare sono ottimizzati per la gestione di basi di dati:
grandi, condivise, persistenti,
e fornisce diversi vantaggi, tra cui:
indipendenza dei dati, efficienza nell’accesso ai dati, integrità e sicurezza dei dati,
affidabilità, gestione delle transazioni, gestione della concorrenza, amministrazione
centralizzata, interfaccia di accesso ai dati, …
Sistema di basi di dati (Database System)
Un sistema di basi di dati è l’insieme del dbms, della base di dati e delle eventuali
applicazione correlate.
8
First Year Ph.D. Report
Architettura di un DBMS
external interface
(DDL, DML, other languages)
DBMS
parser
optimizer
executor
transaction
manager
file access manager
buffer manager
concurrency
control
logging and
recovery
manager
storage manager
data
9
First Year Ph.D. Report
Modelli di dati
Un modello di dati è una collezione di costrutti per organizzare i dati e descriverne le
relazioni.
Un DBMS consente di gestire i dati attraverso un’organizzazione basata su un modello.
Gli utenti dispongono di una vista logica dei dati (modello logico), che ne nasconde i
dettagli relativi alla memorizzazione a livello più basso.
Esempi di modelli logici adottati dai DBMS:
modello gerarchico, modello reticolare, modello relazionale.
10
First Year Ph.D. Report
Schemi ed istanze
Uno schema descrive la struttura relativa all’organizzazione dei dati.
Un esempio di schema nel modello di dati relazionale è il seguente:
Studente (matricola:int, nome:string, indirizzo:string, città:string)
EsamiSostenuti (esame:string, matricola:int, voto:int)
Un’istanza di uno schema è costituita da un insieme di dati organizzati secondo la
struttura definita dallo schema.
Un esempio relativo allo schema precedente è il seguente:
2424
7878
Rossi
Verdi
Basi di dati
Sistemi operativi
Calcolatori elettronici
Corso Italia
Via Roma
2424
7878
7878
Rieti
Firenze
25
23
30
11
First Year Ph.D. Report
Livelli di astrazione di un DBMS
utente
utente
schema esterno 1
utente
utente
schema esterno 2
utente
utente
schema esterno 3
schema logico
schema fisico
data
12
First Year Ph.D. Report
Livelli di astrazione di un DBMS
• uno schema fisico descrive le strutture relative all’organizzazione dei dati per la
memorizzazione a livello fisico.
• uno schema logico descrive come sono logicamente organizzati i dati attraverso i
costrutti del modello logico adottato dal DBMS, indipendentemente dallo schema fisico.
• uno schema esterno (o di vista logica) descrive come l’utente “vede” l’organizzazione
logica dei dati.
Domanda:
quali possono essere i vantaggi (e gli svantaggi) di una tale organizzazione a tre livelli?
13
First Year Ph.D. Report
Linguaggi per la gestione delle basi di dati
Un DBMS deve fornire dei meccanismi per la gestione degli schemi e delle istanze.
Tali meccanismi sono forniti attraverso due tipi di linguaggi:
•DDL (data definition language), è il linguaggio per la gestione degli schemi (creazione,
modifica, …);
•DML (data manipulation language), è il linguaggio per la gestione delle istanze
(interrogazioni, aggiornamenti, …).
.
14
First Year Ph.D. Report
Attori
I DBMS sono sistemi particolarmente complessi. La crescente complessità ha portato
nel tempo alla nascita di figure che si sono specializzate nei diversi tasks relativi alle
attività connesse alla gestione delle basi di dati. In particolare due figure specializzate
sono:
- i progettisti, che si occupano della progettazione della base di dati (ad es.:
progettazione dello schema logico, definizione dei vincoli sui dati);
- gli amministratori, che si occupano della manutenzione della base di dati in esercizio
(ad es.: gestione degli utenti, sicurezza nell’acceso ai dati, backup, monitoraggio delle
prestazioni ed ottimizzazione);
In genere gli utenti finali di un sistema di basi di dati non si interfacciano con il DBMS
attraverso il linguaggio offerto per la manipolazione dei dati (DML), piuttosto tramite
interfacce offerte da altre applicazioni che interagiscono con il DBMS. Un’altra figura
specializzata è il programmatore di applicazioni per basi di dati.
15
First Year Ph.D. Report
Alcuni DBMS
Commerciali
•Oracle Database
•IBM DB2
•Microsoft SQL Server
Open Source
•MySQL
•PostgreSQL
Diffusione dei DBMS
Fonte: “ICT Watch”, http://ictwatch.blogosfere.it/
16